/**********************************************************************
- * TDRP params for RadxConvert
- **********************************************************************/
-
-//======================================================================
-//
-// Converts files between CfRadial and other radial formats.
-//
-//======================================================================
-
-//======================================================================
-//
-// DEBUGGING.
-//
-//======================================================================
-
-///////////// debug ///////////////////////////////////
-//
-// Debug option.
-// If set, debug messages will be printed appropriately.
-//
-// Type: enum
-// Options:
-// DEBUG_OFF
-// DEBUG_NORM
-// DEBUG_VERBOSE
-// DEBUG_EXTRA
-//
-
-debug = DEBUG_OFF;
-
-///////////// instance ////////////////////////////////
-//
-// Program instance for process registration.
-// This application registers with procmap. This is the instance used
-// for registration.
-// Type: string
-//
-
-instance = "$(RADAR_NAME)";
-
-//======================================================================
-//
-// DATA INPUT.
-//
-//======================================================================
-
-///////////// input_dir ///////////////////////////////
-//
-// Input directory for searching for files.
-// Files will be searched for in this directory.
-// Type: string
-//
-
-input_dir = "$(NEXRAD_DATA_DIR)/raw/$(RADAR_NAME)";
-
-///////////// mode ////////////////////////////////////
-//
-// Operating mode.
-// In REALTIME mode, the program waits for a new input file. In ARCHIVE
-// mode, it moves through the data between the start and end times set
-// on the command line. In FILELIST mode, it moves through the list of
-// file names specified on the command line. Paths (in ARCHIVE mode, at
-// least) MUST contain a day-directory above the data file --
-// ./data_file.ext will not work as a file path, but
-// ./yyyymmdd/data_file.ext will.
-//
-// Type: enum
-// Options:
-// REALTIME
-// ARCHIVE
-// FILELIST
-//
-
-mode = ARCHIVE;
-
-///////////// max_realtime_data_age_secs //////////////
-//
-// Maximum age of realtime data (secs).
-// Only data less old than this will be used.
-// Type: int
-//
-
-max_realtime_data_age_secs = 300;
-
-///////////// latest_data_info_avail //////////////////
-//
-// Is _latest_data_info file available?.
-// If TRUE, will watch the latest_data_info file. If FALSE, will scan
-// the input directory for new files.
-// Type: boolean
-//
-
-latest_data_info_avail = FALSE;
-
-///////////// search_recursively //////////////////////
-//
-// Option to recurse to subdirectories while looking for new files.
-// If TRUE, all subdirectories with ages less than max_dir_age will be
-// searched. This may take considerable CPU, so be careful in its use.
-// Only applies if latest_data_info_avail is FALSE.
-// Type: boolean
-//
-
-search_recursively = TRUE;
-
-///////////// max_recursion_depth /////////////////////
-//
-// Maximum depth for recursive directory scan.
-// Only applies search_recursively is TRUE. This is the max depth, below
-// input_dir, to which the recursive directory search will be carried
-// out. A depth of 0 will search the top-level directory only. A depth
-// of 1 will search the level below the top directory, etc.
-// Type: int
-//
-
-max_recursion_depth = 5;
-
-///////////// wait_between_checks /////////////////////
-//
-// Sleep time between checking directory for input - secs.
-// If a directory is large and files do not arrive frequently, set this
-// to a higher value to reduce the CPU load from checking the directory.
-// Only applies if latest_data_info_avail is FALSE.
-// Minimum val: 1
-// Type: int
-//
-
-wait_between_checks = 2;
-
-///////////// file_quiescence /////////////////////////
-//
-// File quiescence when checking for files - secs.
-// This allows you to make sure that a file coming from a remote machine
-// is complete before reading it. Only applies if latest_data_info_avail
-// is FALSE.
-// Type: int
-//
-
-file_quiescence = 60;
-
-///////////// search_ext //////////////////////////////
-//
-// File name extension.
-// If set, only files with this extension will be processed.
-// Type: string
-//
-
-search_ext = "";
-
-///////////// gematronik_realtime_mode ////////////////
-//
-// Set to TRUE if we are watching for Gematronik XML volumes.
-// Gematronik volumes (for a given time) are stored in multiple files,
-// one for each field. Therefore, after the time on a volume changes and
-// a new field file is detected, we need to wait a while to ensure that
-// all of the files have had a chance to be writted to disk. You need to
-// set gematronik_realtime_wait_secs to a value in excess of the time it
-// takes for all of the files to be written.
-// Type: boolean
-//
-
-gematronik_realtime_mode = FALSE;
-
-///////////// gematronik_realtime_wait_secs ///////////
-//
-// Number of seconds to wait, so that all field files can be written to
-// disk before we start to read.
-// See 'gematronik_realtime_mode'.
-// Type: int
-//
-
-gematronik_realtime_wait_secs = 5;
-
-//======================================================================
-//
-// OPTIONAL FIXED ANGLE OR SWEEP NUMBER LIMITS.
-//
-// Fixed angles are elevation in PPI mode and azimuth in RHI mode.
-//
-//======================================================================
-
-///////////// set_fixed_angle_limits //////////////////
-//
-// Option to set fixed angle limits.
-// Only use sweeps within the specified fixed angle limits.
-// Type: boolean
-//
-
-set_fixed_angle_limits = FALSE;
-
-///////////// lower_fixed_angle_limit /////////////////
-//
-// Lower fixed angle limit - degrees.
-// Type: double
-//
-
-lower_fixed_angle_limit = 0;
-
-///////////// upper_fixed_angle_limit /////////////////
-//
-// Upper fixed angle limit - degrees.
-// Type: double
-//
-
-upper_fixed_angle_limit = 90;
-
-///////////// set_sweep_num_limits ////////////////////
-//
-// Option to set sweep number limits.
-// If 'apply_strict_angle_limits' is set, only read sweeps within the
-// specified limits. If strict checking is false and no data lies within
-// the limits, return the closest applicable sweep.
-// Type: boolean
-//
-
-set_sweep_num_limits = FALSE;
-
-///////////// lower_sweep_num /////////////////////////
-//
-// Lower sweep number limit.
-// Type: int
-//
-
-lower_sweep_num = 0;
-
-///////////// upper_sweep_num /////////////////////////
-//
-// Upper sweep number limit.
-// Type: int
-//
-
-upper_sweep_num = 0;
-
-///////////// apply_strict_angle_limits ///////////////
-//
-// Option to apply strict checking for angle or sweep number limits on
-// read.
-// If true, an error will occur if the fixed angle limits or sweep num
-// limits are outside the bounds of the data. If false, a read is
-// guaranteed to return at least 1 sweep - if no sweep lies within the
-// angle limits set, the nearest sweep will be returned.
-// Type: boolean
-//
-
-apply_strict_angle_limits = TRUE;
-
-///////////// read_set_radar_num //////////////////////
-//
-// Option to set the radar number.
-// See read_radar_num.
-// Type: boolean
-//
-
-read_set_radar_num = FALSE;
-
-///////////// read_radar_num //////////////////////////
-//
-// Set the radar number for the data to be extracted.
-// Most files have data from a single radar, so this does not apply. The
-// NOAA HRD files, however, have data from both the lower fuselage (LF,
-// radar_num = 1) and tail (TA, radar_num = 2) radars. For HRD files, by
-// default the TA radar will be used, unless the radar num is set to 1
-// for the LF radar.
-// Type: int
-//
-
-read_radar_num = 0;
-
-//======================================================================
-//
-// READ OPTIONS.
-//
-//======================================================================
-
-///////////// aggregate_sweep_files_on_read ///////////
-//
-// Option to aggregate sweep files into a volume on read.
-// If true, and the input data is in sweeps rather than volumes (e.g.
-// DORADE), the sweep files from a volume will be aggregated into a
-// volume.
-// Type: boolean
-//
-
-aggregate_sweep_files_on_read = FALSE;
-
-///////////// aggregate_all_files_on_read /////////////
-//
-// Option to aggregate all files in the file list on read.
-// If true, all of the files specified with the '-f' arg will be
-// aggregated into a single volume as they are read in. This only
-// applies to FILELIST mode. Overrides 'aggregate_sweep_files_on_read'.
-// Type: boolean
-//
-
-aggregate_all_files_on_read = FALSE;
-
-///////////// ignore_idle_scan_mode_on_read ///////////
-//
-// Option to ignore data taken in IDLE mode.
-// If true, on read will ignore files with an IDLE scan mode.
-// Type: boolean
-//
-
-ignore_idle_scan_mode_on_read = TRUE;
-
-///////////// remove_rays_with_all_data_missing ///////
-//
-// Option to remove rays for which all data is missing.
-// If true, ray data will be checked. If all fields have missing data at
-// all gates, the ray will be removed after reading.
-// Type: boolean
-//
-
-remove_rays_with_all_data_missing = FALSE;
-
-///////////// remove_rays_with_antenna_transitions ////
-//
-// Option to remove rays taken while the antenna was in transition.
-// If true, rays with the transition flag set will not be used. The
-// transiton flag is set when the antenna is in transtion between one
-// sweep and the next.
-// Type: boolean
-//
-
-remove_rays_with_antenna_transitions = FALSE;
-
-///////////// transition_nrays_margin /////////////////
-//
-// Number of transition rays to include as a margin.
-// Sometimes the transition flag is turned on too early in a transition,
-// on not turned off quickly enough after a transition. If you set this
-// to a number greater than 0, that number of rays will be included at
-// each end of the transition, i.e. the transition will effectively be
-// shorter at each end by this number of rays.
-// Type: int
-//
-
-transition_nrays_margin = 0;
-
-///////////// trim_surveillance_sweeps_to_360deg //////
-//
-// Option to trip surveillance sweeps so that they only cover 360
-// degrees.
-// Some sweeps will have rays which cover more than a 360-degree
-// rotation. Often these include antenna transitions. If this is set to
-// true, rays are trimmed off either end of the sweep to limit the
-// coverage to 360 degrees. The median elevation angle is computed and
-// the end ray which deviates from the median in elevation is trimmed
-// first.
-// Type: boolean
-//
-
-trim_surveillance_sweeps_to_360deg = FALSE;
-
-///////////// set_max_range ///////////////////////////
-//
-// Option to set the max range for any ray.
-// Type: boolean
-//
-
-set_max_range = TRUE;
-
-///////////// max_range_km ////////////////////////////
-//
-// Specified maximim range - km.
-// Gates beyond this range are removed.
-// Type: double
-//
-
-max_range_km = 230.0;
-
-///////////// preserve_sweeps /////////////////////////
-//
-// Preserve sweeps just as they are in the file.
-// Applies generally to NEXRAD data. If true, the sweep details are
-// preserved. If false, we consolidate sweeps from split cuts into a
-// single sweep.
-// Type: boolean
-//
-
-preserve_sweeps = FALSE;
-
-///////////// remove_long_range_rays //////////////////
-//
-// Option to remove long range rays.
-// Applies to NEXRAD data. If true, data from the non-Doppler long-range
-// sweeps will be removed.
-// Type: boolean
-//
-
-remove_long_range_rays = TRUE;
-
-///////////// remove_short_range_rays /////////////////
-//
-// Option to remove short range rays.
-// Applies to NEXRAD data. If true, data from the Doppler short-range
-// sweeps will be removed.
-// Type: boolean
-//
-
-remove_short_range_rays = FALSE;
-
-///////////// set_ngates_constant /////////////////////
-//
-// Option to force the number of gates to be constant.
-// If TRUE, the number of gates on all rays will be set to the maximum,
-// and gates added to shorter rays will be filled with missing values.
-// Type: boolean
-//
-
-set_ngates_constant = FALSE;
-
-//======================================================================
-//
-// OPTION TO OVERRIDE INSTRUMENT AND/OR NAME.
-//
-//======================================================================
-
-///////////// override_instrument_name ////////////////
-//
-// Option to override the instrument name.
-// If true, the name provided will be used.
-// Type: boolean
-//
-
-override_instrument_name = FALSE;
-
-///////////// instrument_name /////////////////////////
-//
-// Instrument name.
-// See override_instrument_name.
-// Type: string
-//
-
-instrument_name = "unknown";
-
-///////////// override_site_name //////////////////////
-//
-// Option to override the site name.
-// If true, the name provided will be used.
-// Type: boolean
-//
-
-override_site_name = FALSE;
-
-///////////// site_name ///////////////////////////////
-//
-// Site name.
-// See override_site_name.
-// Type: string
-//
-
-site_name = "unknown";
-
-//======================================================================
-//
-// OPTION TO OVERRIDE RADAR LOCATION.
-//
-//======================================================================
-
-///////////// override_radar_location /////////////////
-//
-// Option to override the radar location.
-// If true, the location in this file will be used. If not, the location
-// in the time series data will be used.
-// Type: boolean
-//
-
-override_radar_location = FALSE;
-
-///////////// radar_latitude_deg //////////////////////
-//
-// Radar latitude (deg).
-// See override_radar_location.
-// Type: double
-//
-
-radar_latitude_deg = -999;
-
-///////////// radar_longitude_deg /////////////////////
-//
-// Radar longitude (deg).
-// See override_radar_location.
-// Type: double
-//
-
-radar_longitude_deg = -999;
-
-///////////// radar_altitude_meters ///////////////////
-//
-// Radar altitude (meters).
-// See override_radar_location.
-// Type: double
-//
-
-radar_altitude_meters = -999;
-
-///////////// change_radar_latitude_sign //////////////
-//
-// Option to negate the latitude.
-// Mainly useful for RAPIC files. In RAPIC, latitude is always positive,
-// so mostly you need to set the latitiude to the negative value of
-// itself.
-// Type: boolean
-//
-
-change_radar_latitude_sign = FALSE;
-
-///////////// apply_georeference_corrections //////////
-//
-// Option to apply the georeference info for moving platforms.
-// For moving platforms, measured georeference information is sometimes
-// available. If this is set to true, the georeference data is applied
-// and appropriate corrections made. If possible, Earth-centric azimuth
-// and elevation angles will be computed.
-// Type: boolean
-//
-
-apply_georeference_corrections = FALSE;
-
-//======================================================================
-//
-// OPTION TO OVERRIDE SELECTED GLOBAL ATTRIBUTES.
-//
-//======================================================================
-
-///////////// version_override ////////////////////////
-//
-// Option to override the version global attribute.
-// If empty, no effect. If not empty, this string is used to override
-// the version attribute.
-// Type: string
-//
-
-version_override = "";
-
-///////////// title_override //////////////////////////
-//
-// Option to override the title global attribute.
-// If empty, no effect. If not empty, this string is used to override
-// the title attribute.
-// Type: string
-//
-
-title_override = "";
-
-///////////// institution_override ////////////////////
-//
-// Option to override the institution global attribute.
-// If empty, no effect. If not empty, this string is used to override
-// the institution attribute.
-// Type: string
-//
-
-institution_override = "";
-
-///////////// references_override /////////////////////
-//
-// Option to override the references global attribute.
-// If empty, no effect. If not empty, this string is used to override
-// the references attribute.
-// Type: string
-//
-
-references_override = "";
-
-///////////// source_override /////////////////////////
-//
-// Option to override the source global attribute.
-// If empty, no effect. If not empty, this string is used to override
-// the source attribute.
-// Type: string
-//
-
-source_override = "";
-
-///////////// history_override ////////////////////////
-//
-// Option to override the history global attribute.
-// If empty, no effect. If not empty, this string is used to override
-// the history attribute.
-// Type: string
-//
-
-history_override = "";
-
-///////////// comment_override ////////////////////////
-//
-// Option to override the comment global attribute.
-// If empty, no effect. If not empty, this string is used to override
-// the comment attribute.
-// Type: string
-//
-
-comment_override = "";
-
-///////////// author_override /////////////////////////
-//
-// Option to override the author global attribute.
-// If empty, no effect. If not empty, this string is used to override
-// the author attribute.
-// Type: string
-//
-
-author_override = "";
-
-//======================================================================
-//
-// OPTION TO CORRECT ANTENNA ANGLES.
-//
-//======================================================================
-
-///////////// apply_azimuth_offset ////////////////////
-//
-// Option to apply an offset to the azimuth values.
-// If TRUE, this offset will be ADDED to the measured azimuth angles.
-// This is useful, for example, in the case of a mobile platform which
-// is not set up oriented to true north. Suppose you have a truck (like
-// the DOWs) which is oriented off true north. Then if you add in the
-// truck HEADING relative to true north, the measured azimuth angles
-// will be adjusted by the heading, to give azimuth relative to TRUE
-// north.
-// Type: boolean
-//
-
-apply_azimuth_offset = FALSE;
-
-///////////// azimuth_offset //////////////////////////
-//
-// Azimuth offset (degrees).
-// See 'apply_azimuth_offset'. This value will be ADDED to the measured
-// azimuths.
-// Type: double
-//
-
-azimuth_offset = 0;
-
-///////////// apply_elevation_offset //////////////////
-//
-// Option to apply an offset to the elevation values.
-// If TRUE, this offset will be ADDED to the measured elevation angles.
-// This is useful to correct for a systematic bias in measured elevation
-// angles.
-// Type: boolean
-//
-
-apply_elevation_offset = FALSE;
-
-///////////// elevation_offset ////////////////////////
-//
-// Elevation offset (degrees).
-// See 'apply_elevation_offset'. This value will be ADDED to the
-// measured elevations.
-// Type: double
-//
-
-elevation_offset = 0;
-
-//======================================================================
-//
-// OPTION TO SPECIFY FIELD NAMES AND OUTPUT ENCODING.
-//
-//======================================================================
-
-///////////// set_output_fields ///////////////////////
-//
-// Set the field names and output encoding.
-// If false, all fields will be used.
-// Type: boolean
-//
-
-set_output_fields = TRUE;
-
-///////////// output_fields ///////////////////////////
-//
-// Output field details.
-// Set the details for the output fields. The output_field_name is the
-// ndtCDF variable name. Set the long name to a more descriptive name.
-// Set the standard name to the CF standard name for this field. If the
-// long name or standard name are empty, the existing names are used. If
-// SCALING_SPECIFIED, then the scale and offset is used.
-//
-// Type: struct
-// typedef struct {
-// string input_field_name;
-// string output_field_name;
-// string long_name;
-// string standard_name;
-// string output_units;
-// output_encoding_t encoding;
-// Options:
-// OUTPUT_ENCODING_ASIS
-// OUTPUT_ENCODING_FLOAT32
-// OUTPUT_ENCODING_INT32
-// OUTPUT_ENCODING_INT16
-// OUTPUT_ENCODING_INT08
-// output_scaling_t output_scaling;
-// Options:
-// SCALING_DYNAMIC
-// SCALING_SPECIFIED
-// double output_scale;
-// double output_offset;
-// }
-//
-// 1D array - variable length.
-//
-
-output_fields = {
- {
- input_field_name = "REF",
- output_field_name = "DBZ",
- long_name = "radar_reflectivity",
- standard_name = "equivalent_reflectivity_factor",
- output_units = "dBZ",
- encoding = OUTPUT_ENCODING_INT16,
- output_scaling = SCALING_DYNAMIC,
- output_scale = 0.01,
- output_offset = 0
- }
- ,
- {
- input_field_name = "VEL",
- output_field_name = "VEL",
- long_name = "radial_velocity",
- standard_name = "radial_velocity_of_scatterers_away_from_instrument",
- output_units = "m/s",
- encoding = OUTPUT_ENCODING_INT16,
- output_scaling = SCALING_DYNAMIC,
- output_scale = 0.01,
- output_offset = 0
- }
- ,
- {
- input_field_name = "SW",
- output_field_name = "WIDTH",
- long_name = "spectrum_width",
- standard_name = "doppler_spectrum_width",
- output_units = "m/s",
- encoding = OUTPUT_ENCODING_INT16,
- output_scaling = SCALING_DYNAMIC,
- output_scale = 0.01,
- output_offset = 0
- }
- ,
- {
- input_field_name = "ZDR",
- output_field_name = "ZDR",
- long_name = "differential_reflectivity",
- standard_name = "log_differential_reflectivity_hv",
- output_units = "dB",
- encoding = OUTPUT_ENCODING_INT16,
- output_scaling = SCALING_DYNAMIC,
- output_scale = 0.01,
- output_offset = 0
- }
- ,
- {
- input_field_name = "PHI",
- output_field_name = "PHIDP",
- long_name = "differential_phase",
- standard_name = "differential_phase_hv",
- output_units = "deg",
- encoding = OUTPUT_ENCODING_INT16,
- output_scaling = SCALING_DYNAMIC,
- output_scale = 0.01,
- output_offset = 0
- }
- ,
- {
- input_field_name = "RHO",
- output_field_name = "RHOHV",
- long_name = "cross_correlation",
- standard_name = "cross_correlation_ratio_hv",
- output_units = "",
- encoding = OUTPUT_ENCODING_INT16,
- output_scaling = SCALING_DYNAMIC,
- output_scale = 0.01,
- output_offset = 0
- }
-};
-
-///////////// write_other_fields_unchanged ////////////
-//
-// Option to write out the unspecified fields as they are.
-// If false, only the fields listed in output_fields will be written. If
-// this is true, all other fields will be written unchanged.
-// Type: boolean
-//
-
-write_other_fields_unchanged = FALSE;
-
-///////////// exclude_specified_fields ////////////////
-//
-// Option to exclude fields in the specified list.
-// If true, the specified fields will be excluded. This may be easier
-// than specifiying all of the fields to be included, if that list is
-// very long.
-// Type: boolean
-//
-
-exclude_specified_fields = FALSE;
-
-///////////// excluded_fields /////////////////////////
-//
-// List of fields to be excluded.
-// List the names to be excluded.
-// Type: string
-// 1D array - variable length.
-//
-
-excluded_fields = {
- "DBZ",
- "VEL"
-};
-
-//======================================================================
-//
-// OPTION TO SPECIFY OUTPUT ENCODING FOR ALL FIELDS.
-//
-//======================================================================
-
-///////////// set_output_encoding_for_all_fields //////
-//
-// Option to set output encoding for all fields.
-// Type: boolean
-//
-
-set_output_encoding_for_all_fields = FALSE;
-
-///////////// output_encoding /////////////////////////
-//
-// Output encoding for all fields, if requested.
-//
-// Type: enum
-// Options:
-// OUTPUT_ENCODING_ASIS
-// OUTPUT_ENCODING_FLOAT32
-// OUTPUT_ENCODING_INT32
-// OUTPUT_ENCODING_INT16
-// OUTPUT_ENCODING_INT08
-//
-
-output_encoding = OUTPUT_ENCODING_ASIS;
-
-//======================================================================
-//
-// CENSORING.
-//
-// You have the option of censoring the data fields - i.e. setting the
-// fields to missing values - at gates which meet certain criteria. If
-// this is done correctly, it allows you to preserve the valid data and
-// discard the noise, thereby improving compression.
-//
-//======================================================================
-
-///////////// apply_censoring /////////////////////////
-//
-// Apply censoring based on field values and thresholds.
-// If TRUE, censoring will be performed. See 'censoring_fields' for
-// details on how the censoring is applied.
-// Type: boolean
-//
-
-apply_censoring = FALSE;
-
-///////////// censoring_fields ////////////////////////
-//
-// Fields to be used for censoring.
-// Specify the fields to be used to determine whether a gate should be
-// censored. The name refers to the input data field names. Valid field
-// values lie in the range from min_valid_value to max_valid_value
-// inclusive. If the value of a field at a gate lies within this range,
-// it is considered valid. Each specified field is examined at each
-// gate, and is flagged as valid if its value lies in the valid range.
-// These field flags are then combined as follows: first, all of the
-// LOGICAL_OR flags are combined, yielding a single combined_or flag
-// which is true if any of the LOGICAL_OR fields is true. The
-// combined_or flag is then combined with all of the LOGICAL_AND fields,
-// yielding a true value only if the combined_or flag and the
-// LOGICAL_AND fields are all true. If this final flag is true, then the
-// data at the gate is regarded as valid and is retained. If the final
-// flag is false, the data at the gate is censored, and all of the
-// fields at the gate are set to missing.
-//
-// Type: struct
-// typedef struct {
-// string name;
-// double min_valid_value;
-// double max_valid_value;
-// logical_t combination_method;
-// Options:
-// LOGICAL_AND
-// LOGICAL_OR
-// }
-//
-// 1D array - variable length.
-//
-
-censoring_fields = {
- {
- name = "SNR",
- min_valid_value = 0,
- max_valid_value = 1000,
- combination_method = LOGICAL_OR
- }
- ,
- {
- name = "NCP",
- min_valid_value = 0.15,
- max_valid_value = 1000,
- combination_method = LOGICAL_OR
- }
-};
-
-///////////// censoring_min_valid_run /////////////////
-//
-// Minimum valid run of non-censored gates.
-// Only active if set to 2 or greater. A check is made to remove short
-// runs of noise. Looking along the radial, we compute the number of
-// contiguous gates (a 'run') with uncensored data. For the gates in
-// this run to be accepted the length of the run must exceed
-// censoring_min_valid_run. If the number of gates in a run is less than
-// this, then all gates in the run are censored.
-// Type: int
-//
-
-censoring_min_valid_run = 1;
-
-//======================================================================
-//
-// OPTION TO APPLY LINEAR TRANSFORM TO SPECIFIED FIELDS.
-//
-// These transforms are fixed. The same transform is applied to all
-// files.
-//
-//======================================================================
-
-///////////// apply_linear_transforms /////////////////
-//
-// Apply linear transform to specified fields.
-// If true, we will apply a linear transform to selected fields.
-// Type: boolean
-//
-
-apply_linear_transforms = FALSE;
-
-///////////// transform_fields ////////////////////////
-//
-// transform field details.
-// Set the field name, scale and offset to be applied to the selected
-// fields. NOTE: the field name is the INPUT field name.
-//
-// Type: struct
-// typedef struct {
-// string input_field_name;
-// double transform_scale;
-// double transform_offset;
-// }
-//
-// 1D array - variable length.
-//
-
-transform_fields = {
- {
- input_field_name = "DBZ",
- transform_scale = 1,
- transform_offset = 0
- }
- ,
- {
- input_field_name = "VEL",
- transform_scale = 1,
- transform_offset = 0
- }
-};
-
-//======================================================================
-//
-// OPTION TO APPLY VARIABLE LINEAR TRANSFORM TO SPECIFIED FIELDS.
-//
-// These transforms vary from file to file, controlled by specific
-// metadata.
-//
-//======================================================================
-
-///////////// apply_variable_transforms ///////////////
-//
-// Apply linear transforms that vary based on specific metadata.
-// If true, we will apply variable linear transform to selected fields.
-// Type: boolean
-//
-
-apply_variable_transforms = FALSE;
-
-///////////// variable_transform_fields ///////////////
-//
-// Details for variable transforms.
-// We based the field decision off the input_field_name. You need to
-// pick the method of control: STATUS_XML_FIELD - based on the value
-// associated with an XML tag in the status block; ELEVATION_DEG - based
-// on the elevation in degrees; PULSE_WIDTH_US - based on the pulse with
-// in microsecs. For STATUS_XML_FIELD Set the relevant status_xml_tag,
-// which will be used to find the relevant value. The lookup table is a
-// series of entries specifying the metadata_value and the scale and
-// offset to be appied for that given metadata value. Each entry is
-// enclosed in parentheses, and is of the form (metadata_value, scale,
-// offset). The entries themselves are also are comma-separated.
-// Interpolation is used for metadata values that lie between those
-// specified in the lookup table. The enries in the lookup table should
-// have metadata_values that are monotonically increasing.
-//
-// Type: struct
-// typedef struct {
-// string input_field_name;
-// variable_transform_control_t control;
-// Options:
-// STATUS_XML_FIELD
-// string xml_tag;
-// string lookup_table;
-// }
-//
-// 1D array - variable length.
-//
-
-variable_transform_fields = {
- {
- input_field_name = "dBZ",
- control = STATUS_XML_FIELD,
- xml_tag = "gdrxanctxfreq",
- lookup_table = "(57.0, 1.0, -0.7), (60.0, 1.0, -0.2), (64.0, 1.0, -0.3), (67.0, 1.0, -1.8), (68.0, 1.0, -1.2), (69.0, 1.0, -1.3)"
- }
- ,
- {
- input_field_name = "dBZv",
- control = STATUS_XML_FIELD,
- xml_tag = "gdrxanctxfreq",
- lookup_table = "(57.0, 1.0, 0.1), (58.0, 1.0, 0.3), (60.0, 1.0, -0.3), (67.0, 1.0, -2.3), (69.0, 1.0, -2.0)"
- }
- ,
- {
- input_field_name = "ZDR",
- control = STATUS_XML_FIELD,
- xml_tag = "gdrxanctxfreq",
- lookup_table = "(56.0, 1.0, -0.75), (58.0, 1.0, -0.75), (61.0, 1.0, 0.1), (63.5, 1.0, 0.2), (64.0, 1.0, 0.6), (69.0, 1.0, 0.6)"
- }
-};
-
-//======================================================================
-//
-// OUTPUT FORMAT.
-//
-//======================================================================
-
-///////////// output_format ///////////////////////////
-//
-// Format for the output files.
-//
-// Type: enum
-// Options:
-// OUTPUT_FORMAT_CFRADIAL
-// OUTPUT_FORMAT_DORADE
-// OUTPUT_FORMAT_FORAY
-// OUTPUT_FORMAT_NEXRAD
-// OUTPUT_FORMAT_UF
-// OUTPUT_FORMAT_MDV_RADIAL
-//
-
-output_format = OUTPUT_FORMAT_CFRADIAL;
-
-///////////// netcdf_style ////////////////////////////
-//
-// NetCDF style - if output_format is CFRADIAL.
-// netCDF classic format, netCDF 64-bit offset format, netCDF4 using
-// HDF5 format, netCDF4 using HDF5 format but only netCDF3 calls.
-//
-// Type: enum
-// Options:
-// CLASSIC
-// NC64BIT
-// NETCDF4
-// NETCDF4_CLASSIC
-//
-
-netcdf_style = NETCDF4;
-
-//======================================================================
-//
-// OUTPUT BYTE-SWAPPING and COMPRESSION.
-//
-//======================================================================
-
-///////////// output_native_byte_order ////////////////
-//
-// Option to leave data in native byte order.
-// If false, data will be byte-swapped as appropriate on output.
-// Type: boolean
-//
-
-output_native_byte_order = FALSE;
-
-///////////// output_compressed ///////////////////////
-//
-// Option to compress data fields on output.
-// Applies to netCDF and Dorade. UF does not support compression.
-// Type: boolean
-//
-
-output_compressed = TRUE;
-
-//======================================================================
-//
-// OUTPUT OPTIONS FOR CfRadial FILES.
-//
-//======================================================================
-
-///////////// output_force_ngates_vary ////////////////
-//
-// Option to force the use of ragged arrays for CfRadial files.
-// Only applies to CfRadial. If true, forces the use of ragged arrays
-// even if the number of gates for all rays is constant.
-// Type: boolean
-//
-
-output_force_ngates_vary = FALSE;
-
-///////////// compression_level ///////////////////////
-//
-// Compression level for output, if compressed.
-// Applies to netCDF only. Dorade compression is run-length encoding,
-// and has not options..
-// Type: int
-//
-
-compression_level = 4;
-
-//======================================================================
-//
-// OUTPUT DIRECTORY AND FILE NAME.
-//
-//======================================================================
-
-///////////// output_dir //////////////////////////////
-//
-// Output directory path.
-// Files will be written to this directory.
-// Type: string
-//
-
-output_dir = "$(NEXRAD_DATA_DIR)/cfradial/moments/$(RADAR_NAME)";
-
-///////////// output_filename_mode ////////////////////
-//
-// Mode for computing output file name.
-// START_AND_END_TIMES: include both start and end times in file name.
-// START_TIME_ONLY: include only start time in file name. END_TIME_ONLY:
-// include only end time in file name. SPECIFY_FILE_NAME: file of this
-// name will be written to output_dir.
-//
-// Type: enum
-// Options:
-// START_AND_END_TIMES
-// START_TIME_ONLY
-// END_TIME_ONLY
-// SPECIFY_FILE_NAME
-//
-
-output_filename_mode = START_AND_END_TIMES;
-
-///////////// output_filename_prefix //////////////////
-//
-// Optional prefix for output filename.
-// If empty, the standard prefix will be used.
-// Type: string
-//
-
-output_filename_prefix = "";
-
-///////////// include_instrument_name_in_file_name ////
-//
-// Option to include the instrument name in the file name.
-// Default is true. Only applies to CfRadial files. If true, the
-// instrument name will be included just before the volume number in the
-// output file name.
-// Type: boolean
-//
-
-include_instrument_name_in_file_name = TRUE;
-
-///////////// include_subsecs_in_file_name ////////////
-//
-// Option to include sub-seconds in date-time part of file name.
-// Default is true. Only applies to CfRadial files. If true, the
-// millisecs of the start and end time will be included in the file
-// name.
-// Type: boolean
-//
-
-include_subsecs_in_file_name = TRUE;
-
-///////////// use_hyphen_in_file_name_datetime_part ///
-//
-// Option to use a hyphen between date and time in filename.
-// Default is false. Only applies to CfRadial files. Normally an
-// underscore is used.
-// Type: boolean
-//
-
-use_hyphen_in_file_name_datetime_part = FALSE;
-
-///////////// output_filename /////////////////////////
-//
-// Name of output file.
-// Applies only if output_filename_mode is SPECIFY_FILE_NAME. File of
-// this name will be written to output_dir.
-// Type: string
-//
-
-output_filename = "cfradial.test.nc";
-
-///////////// append_day_dir_to_output_dir ////////////
-//
-// Add the day directory to the output directory.
-// Path will be output_dir/yyyymmdd/filename.
-// Type: boolean
-//
-
-append_day_dir_to_output_dir = TRUE;
-
-///////////// append_year_dir_to_output_dir ///////////
-//
-// Add the year directory to the output directory.
-// Path will be output_dir/yyyy/yyyymmdd/filename.
-// Type: boolean
-//
-
-append_year_dir_to_output_dir = FALSE;
-
-///////////// write_individual_sweeps /////////////////
-//
-// Option to write out individual sweeps if appropriate.
-// If true, the volume is split into individual sweeps for writing.
-// Applies to CfRadial format. This is always true for DORADE format
-// files.
-// Type: boolean
-//
-
-write_individual_sweeps = FALSE;
-
-///////////// write_latest_data_info //////////////////
-//
-// Option to write out _latest_data_info files.
-// If true, the _latest_data_info files will be written after the
-// converted file is written.
-// Type: boolean
-//
-
-write_latest_data_info = TRUE;
-
-//======================================================================
-//
-// OPTION TO OVERRIDE MISSING VALUES.
-//
-// Missing values are applicable to both metadata and field data. The
-// default values should be satisfactory for most purposes. However, you
-// can choose to override these if you are careful with the selected
-// values.
-
-// The default values for metadata are:
-// missingMetaDouble = -9999.0
-// missingMetaFloat = -9999.0
-// missingMetaInt = -9999
-// missingMetaChar = -128
-
-// The default values for field data are:
-// missingFl64 = -9.0e33
-// missingFl32 = -9.0e33
-// missingSi32 = -2147483647
-// missingSi16 = -32768
-// missingSi08 = -128.
-//
-//======================================================================
-
-///////////// override_missing_metadata_values ////////
-//
-// Option to override the missing values for meta-data.
-// See following parameter options.
-// Type: boolean
-//
-
-override_missing_metadata_values = FALSE;
-
-///////////// missing_metadata_double /////////////////
-//
-// Missing value for metadata of type double.
-// Only applies if override_missing_metadata_values is TRUE.
-// Type: double
-//
-
-missing_metadata_double = -9999;
-
-///////////// missing_metadata_float //////////////////
-//
-// Missing value for metadata of type float.
-// Only applies if override_missing_metadata_values is TRUE.
-// Type: float
-//
-
-missing_metadata_float = -9999;
-
-///////////// missing_metadata_int ////////////////////
-//
-// Missing value for metadata of type int.
-// Only applies if override_missing_metadata_values is TRUE.
-// Type: int
-//
-
-missing_metadata_int = -9999;
-
-///////////// missing_metadata_char ///////////////////
-//
-// Missing value for metadata of type char.
-// Only applies if override_missing_metadata_values is TRUE.
-// Type: int
-//
-
-missing_metadata_char = -128;
-
-///////////// override_missing_field_values ///////////
-//
-// Option to override the missing values for field data.
-// See following parameter options.
-// Type: boolean
-//
-
-override_missing_field_values = FALSE;
-
-///////////// missing_field_fl64 //////////////////////
-//
-// Missing value for field data of type 64-bit float.
-// Only applies if override_missing_field_values is TRUE.
-// Type: double
-//
-
-missing_field_fl64 = -9999;
-
-///////////// missing_field_fl32 //////////////////////
-//
-// Missing value for field data of type 32-bit float.
-// Only applies if override_missing_field_values is TRUE.
-// Type: double
-//
-
-missing_field_fl32 = -9999;
-
-///////////// missing_field_si32 //////////////////////
-//
-// Missing value for field data of type 32-bit integer.
-// Only applies if override_missing_field_values is TRUE.
-// Type: int
-//
-
-missing_field_si32 = -999999;
-
-///////////// missing_field_si16 //////////////////////
-//
-// Missing value for field data of type 16-bit integer.
-// Only applies if override_missing_field_values is TRUE.
-// Type: int
-//
-
-missing_field_si16 = -232768;
-
-///////////// missing_field_si08 //////////////////////
-//
-// Missing value for field data of type 8-bit integer.
-// Only applies if override_missing_field_values is TRUE.
-// Type: int
-//
-
-missing_field_si08 = -128;
-