Radar volume data are available in remapped form on the LAPS grid. The polar gate-by-gate radar data are remapped in 'remap_polar_netcdf.exe', producing output on the cartesian LAPS grid as described below. The input polar files are in NetCDF format and contain one tilt each. For the most part these polar NetCDF files are self describing. Running 'ncdump' on such a file will show the various flag value settings. The "Fill Value" can be used to denote areas of invalid data or regions not scanned by the radar. Otherwise, the count values are processed by lookup tables - the inverse transformations are specified within the remapper input subroutine 'counts_to_dbz' in LAPS source file 'src/ingest/radar/remap/netcdfio.f'. To make the polar NetCDF files you can use these transformations:
REF_CDF = 2*(dBZ + 32) + 2
VEL_CDF = 2*Vel + 129, where Vel is in meters/sec
The remapper is run as a separate entry in the laps cron.
For each LAPS grid point, the remapping algorithm computes reflectivity by taking the mean Z value of all gates lying within a grid volume centered on the LAPS grid point. The use of all gates (rather than just the nearest neighbors) is advantageous in that it allows all of the radar information to influence the analysis and mitigates any noise that could be introduced by sub-sampling or spatial aliasing. The radar beam-width is assumed to be zero at this stage and only those grid volumes directly illuminated by the gates within the beam are filled in. We thus have the potential to produce a sparse array if the grid-resolution is < 10km or so. The average Z is converted to dBZ prior to output. When the mean reflectivity is less than a user adjustable QC threshold (e.g. 0 dBZ), it is set to a flag no echo value (e.g. -10 dBZ). If the data is nearly free of echoes, an output file is not written in order to save disk space. Another QC requirement is that at least 4 gates in the grid volume contain valid reflectivity data. This criterion is normally relaxed when the grid spacing is less than about 4km.
The radial velocity is averaged similarly; positive velocities represent motion away from the radar. Several quality control checks are performed on the velocity data. One QC requirement is that >40% of all gates located within a LAPS grid box or at least 4 of them, whichever is greater, must contain valid velocity data (i.e., are not flagged as ground clutter or range-folded). Another QC check is done on the standard deviation of the velocities. If a threshold is exceeded, the LAPS grid box is assigned with the missing data value. It should be noted that broad volumetric coverage of quality controlled velocity data is contingent upon there being sufficient scattering particles present in the atmosphere.
The Nyquist velocity and a logical flag are written to the comment section of the velocity field within the 'v01' file. If the flag is set to FALSE, then the data are aliased. If the data has been de-aliased, the flag is set to TRUE. The value of the Nyquist velocity is written into the comment if it is constant throughout the volume; otherwise it is set to the missing data value. If it varies within the volume, then a third gridded field is written out which is the average Nyquist velocity of each grid point. The Nyquist velocity information can be used for subsequent velocity de-aliasing.
The velocity comment field looks like this example...
39.366 -101.701 1133. 1411KGLD 0.3336E+02 FThe numbers are latitude, longitude, elevation (meters), number of valid velocities, radar name, Nyquist velocity, and Nyquist flag.
The data are written in sparse arrays that can be compressed if needed to save disk space. A post-processing option worth considering is to apply an additional three-dimensional Cartesian ground clutter map to the reflectivity data.
For high resolution grids, a post-process running within 'remap_polar_netcdf.exe' does horizontal filling between radials and is called 'ref_fill_horz'. This is currently a simple average of the nearest neighbors done only where gaps between radials are one grid-point across. The size of the filter kernel is adaptable as it is determined by the angular beam width (i.e. separation between successive radials, a run-time input parameter) and range from the radar. Since we often encounter gaps/holes covering only one grid-point (with 8 adjacent neighbors), this simple algorithm provides results largely equivalent to a Barnes weighting. We are considering adding in a Barnes weighting into the filter-kernel to better handle cases when we have to fill across more than one grid-point.
Another-post processing subroutine fills in vertical gaps of up to 2km using linear interpolation. This runs within a second executable called 'mosaic_radar.x' as a one of the steps prior to writing out the 'vrz' radar reflectivity 3-D mosaic file. The gaps occur in the space between successive radar sweeps with increasing antenna elevation.
The routine also has the option of filling in echo in low levels judged to be either below the radar horizon (due to the earth's curvature) or blanked out by mountains or ground clutter. Thus any echo whose base is within 800m of the local terrain is assumed by the fill routine to extend down to the ground in reality. Echoes are also extended down to the ground if their bases are less than 1.5 elevation angle as seen from the radar site.
This subroutine can also be called as a stand-alone library routine from various LAPS analysis and display programs.
Reflectivity data is written out in the NetCDF files. The fill value (i.e. r_missing_data) indicates the radar was not scanning in that sector, or it is out of range. Values exceeding the user set minimum threshold are written out as dBZ. For other special situations we have QC flags within the gridded reflectivities written out as follows...
! r_missing_data Insufficient number of "potential gates" in ! the grid volume ! ! -101. Insufficient fractional coverage of "actual" ! gates in grid volume ! ! -102. Reflectivity less than threshold valueNote that within areas of no echo QC flags may be averaged together during the Horizontal Reflectivity Fill procedure. QC flags would not however be averaged in with valid reflectivity values to "dilute" the radar echoes.