FRACTL
From Lrose Wiki
Contents
Overview
FRACTL is a fast traditional solver with integrated interpolation using LROSE infrastructure, and it is able to perform both gridding and multi-Doppler synthesis for airborne radars and multiple ground-based radars. This is different than Radx2Grid which is only capable of gridding data for a single ground-based radar. FRACTL adopts both REORDER and CEDRIC programs. REORDER transforms radar data from its native coordinate system to cartesian space and the data can then be ingested into CEDRIC for synthesis. FRACTL currently accepts either CfRadial or DORADE file format. Different than Radx2Grid, FRACTL doesn’t require the CfRadial file with an aggregation of the sweeps.
The main features of FRACTL are:
- “Traditional” multi-Doppler solver written from the ground up in C++
- Quasi-horizontal 2-radar assumption (U,V) with mass-continuity for W, or full 3D solution (U, V, W)
- Nearest neighbor algorithm adds Doppler gates directly to matrix solver at each grid point, no interpolation or averaging of velocity required
- Solve normal equations using Singular Value Decomposition (preferred) or Cramer’s method
- Subset of CEDRIC diagnostics implemented, more on the way
- Fast computation. It takes less than 5 minutes for dual-Doppler synthesis (~3M gates)
- Doppler data only
FRACTL Quickstart Guide
A sample of NEXRAD level II data with a uniform wind field and a pre-configured parameter file is available here for use with this quick start guide.
Note: If using the Virtual Toolbox version of LROSE, “lrose -- ” must precede every LROSE command, e.g. “lrose -- fractl -h”
To check all command line options for FRACTL, including debugging options and file paths, the typical ‘-h’ flag can be invoked:
fractl -h
Likewise, to print a listing of the default parameter file contents, use the following command:
fractl -print_params
To create a copy of the default parameter file for use and editing, use the above command followed by the right-pointing angle bracket (i.e. greater-than symbol), and a name of your choosing for the file with the file extension “.params”:
fractl -print_params > my_fractl_parameters.params
Parameters
There are several key parameters to look for and modify and they are listed below in the relative order they appear in the parameter file. To see more parameter options, go to the bottom of this page [1]. For a full list of parameters and their descriptions, see the FRACTL parameter file:
Lat/Lon Origin
////////////// projLat0 /////////////////////////////
//
// For example: 16.5.
//
//
// Type: double
//
projLat0 = 29.4719;
The default is 0. If unchanged the program will start but abort prematurely, giving the following error:
terminating with uncaught exception of type std::out_of_range:vector”
////////////// projLon0 //////////////////////////////
//
// For example: 148.0.
//
//
// Type: double
//
projLon0 = -94.8787;
The default is 0. If unchanged the program will terminate and you will get the following error:
terminating with uncaught exception of type std::out_of_range:vector”
Input/Output
Within the FILES AND DIRECTORIES section of the parameter file, you must edit inDir
and outTxt
. inDir
refers to the input directory where you have stored your radar data, and outTxt
refers to the the name of the text file that will contain the verification of grid results.
Recommendation: though not required, we recommend using the CfRadial file format for FRACTL. If using DORADE files, "fileRegex" must be changed to "^swp". "fileRegex" refers to the data format of your radar data and is set to "^cfrad" for CfRadial by default.
//==============================================================
//
// FILES AND DIRECTORIES.
//
// =============================================================
//
///////////// inDir /////////////////////////////
//
// Any radx supported format, or output of Rdx2Grid.
//
//
// Type: string
//
inDir = “input”;
We recommend using absolute file paths here. The default is “not_set”. If unchanged, FRACTL will throw the following error:
Fractl: error:
Must spec either -inDir or -fileList
///////////// outTxt /////////////////////////////
//
// Has verification of grid results.
//
//
// Type: string
//
outTxt = “fractl_verif.txt”;
This file is created in the same directory that the FRACTL program was invoked. The default is “not_set”. If unchanged, you will get the following error:
Fractl: error:
parameter not specified: -outTxt
Variable Names
You must specify the names of the following fields as they are named in the radar files: reflectivity factor, radial velocity, and normalized coherent power (NCP).
Radial Velocity
//==============================================================
//
// FIELDS.
//
//==============================================================
///////////// radialName //////////////////////////
//
// VEL for NEXRAD, VG for Eldora, VE for CSU-CHILL.
//
//
// Type: string
//
radialName = “VEL”;
The default is “not_set”. If unchanged or set improperly, the program will terminate and you will get the following error:
Fractl: throwerr: radialName not found
Reflectivity
///////////// dbzName //////////////////////////
//
// REF for NEXRAD, DBZ for Eldora, DZ for CSU-CHILL.
//
//
// Type: string
//
dbzName = “REF”;
The default is “not_set”. If unchanged or set improperly, the program will terminate and you will get the following error:
Fractl: throwerr: dbzName not found
Normalized Coherent Power
///////////// ncpName //////////////////////////
//
// Not available for NEXRAD, NCP for Eldora, NC for CSU-CHILL.
//
//
// Type: string
//
ncpName = “not_set”;
The default is “not_set”. If there is no NCP field, set this to any other existing field to do some basic, automatic quality control. You will then need to set “minNcp” for the QC threshold, accordingly. If unchanged or set to a nonexistent field name, the program will terminate and you will get the following error:
Fractl: throwerr: ncpName not found
Note: even if you set the ncpName to a different field (e.g. "ZDR"), it will still be labeled as "NCP" in the output file(s).
Running FRACTL
After modifying the parameter file to your desired output analysis, type the following command to the terminal to invoke the program, calling your edited parameter file in the process:
fractl -params my_fractl_paramters.params
Output
Your output data should be stored in a subdirectory named for the year, month, and day (yyymmdd) and contained in a netCDF file.
The FRACTL parameter file
To control FRACTL’s operation, there are several key parameters to be modified in order to obtain the desired output:
- minDbz: any values below the minimum reflectivity will be tossed out.
- minNcp: any values below the minimum NCP will be tossed out. Note that both NEXRAD WSR88D and NOAA P-3 tail radars do not have this variable currently, so the NCP variable can be replaced by any other variables to perform the simple quality control (QC). Both minDbz and minNcp are designed for the QC of a real-time analysis.
- testMode: the default test mode is MODE_ZETA. The testMode option is designed for the developers to test and debug.
- zGrid: specify vertical grid spacing “incr” or “min, max, incr” which represents the lowest level, the highest level, and constant spacing of the vertical level respectively.
- yGrid: similar as zGrid. It specifies the grid parameters in y.
- xGrid: similar as zGrid. It specifies the grid parameters in x.
- gridType: mesh is for stand-alone analysis, while mish is as a background field for SAMURAI input. For the current release, we recommend the users to use mesh for the analysis. The mish gridType is experimental and still under development.
- projLat0: the latitude of the reference point (0,0).
- projLon0: the longitude of the reference point (0,0).
- numNbrMax: the maximum points for the nearest neighbor algorithm to consider at each grid point.
- inDir: input directory for searching for files. Files will be searched for in this directory.
- fileRegex: regular expression to select files in inDir. If input file format is CfRadial (DORADE), specify it as “^cfrad (^swp)”.
- outTxt: specify the directory of a output summary file which contains verification of grid results.
- outNc: specify the directory of a output netCDF file which is the result of the analysis.
- radialName: specify the variable name of radial velocity.
- dbzName: specify the variable name of reflectivity.
- ncpName: specify the variable name of NCP. If there is no NCP variable, you can specify any other variable to perform the QC. This variable corresponds to minNcp for the threshold.
- uvInterp: set the wind interpolation method for u and v. The specified interpolation method will be applied before calculating the vertical velocity. The default mode is INTERP_NONE.
Descriptions of the default parameter file can be found here: FRACTL parameter file.