The Lidar Radar Open Software Environment (LROSE) is an National Science Foundation (NSF) supported project to develop common software for the Lidar, Radar, and Profiler community based on collaborative, open source development. The core package is being jointly developed by Colorado State University (CSU) and the Earth Observing Laboratory at the NSF National Center for Atmospheric Research (NSF NCAR/EOL). The current LROSE release is called Colette (a versatile climbing rose).
More information on LROSE can be found on the LROSE wiki.
Notebook Summary¶
This notebook will cover the following:
- LROSE Overview
- LROSE on the Command Line
- LROSE Parameter Files
- Inspect the Data
- Format Conversion
- Simple Gridding
- Basic Data Display
LROSE Overview¶
LROSE encompasses six key toolsets that define a core lidar/radar workflow: Convert, Display, QC, Grid, Echo, and Winds. Colette focuses on high-quality, well-tested, well-maintained and well-documented key applications as ‘building blocks’, allowing users to assemble trusted, reproducible workflows to accomplish more complex scientific tasks.
Installation¶
LROSE is available for download through GitHub. Installation is supported for Linux (source, packages) and Mac OS (source, Homebrew). Conda-forge development is underway.
LROSE Tutorials¶
We’re developing a Science Gateway where LROSE tools are installed on NSF’s Jetstream2 supercomputer. The tutorials from that Gateway can also be found on GitHub.
https://
Issues?¶
For problems running LROSE or general questions, please reach out on the LROSE forum.
Please submit bugs on GitHub.
Listserv¶
We maintain a listserv to alert the LROSE community of new LROSE releases, workshops, and other general communication. Email traffic is generally minimal.
https://
Initialize python¶
import warnings
warnings.filterwarnings("ignore")
import os
import fsspec
import glob
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as plticker
from matplotlib.lines import Line2D
import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader
import cartopy.geodesic as cgds
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
from cartopy import feature as cfeature
import xarray as xr
import pyart
## You are using the Python ARM Radar Toolkit (Py-ART), an open source
## library for working with weather radar data. Py-ART is partly
## supported by the U.S. Department of Energy as part of the Atmospheric
## Radiation Measurement (ARM) Climate Research Facility, an Office of
## Science user facility.
##
## If you use this software to prepare a publication, please cite:
##
## JJ Helmus and SM Collis, JORS 2016, doi: 10.5334/jors.119
# Set directory variable to call LROSE
os.environ["LROSE_DIR"] = "/usr/local/lrose/bin"
# Set the URL and path to access the data on the cloud
URL = "https://js2.jetstream-cloud.org:8001/"
path = f"pythia/radar/erad2024"
fs = fsspec.filesystem("s3", anon=True, client_kwargs=dict(endpoint_url=URL))
fs.glob(f"{path}/20240522_MeteoSwiss_ARPA_Lombardia/Data/Cband/*")
files = fs.glob(
f"{path}/20240522_MeteoSwiss_ARPA_Lombardia/Data/Cband/*.nc"
) #### FIX PATH
local_files = [
fsspec.open_local(
f"simplecache::{URL}{i}", s3={"anon": True}, filecache={"cache_storage": "."}
)
for i in files
]
files[0]
'pythia/radar/erad2024/20240522_MeteoSwiss_ARPA_Lombardia/Data/Cband/MonteLema_202405221300.nc'
# create a directory
!mkdir -p ./raw
# LROSE prefers files to have .nc extension, so create a softlink with the actual filename
# We'll use the first file as an example!
os.system("ln -sf " + local_files[0] + " ./raw/" + files[0].split("/")[-1])
0
!pwd
/__w/erad2024/erad2024/notebooks/lrose
LROSE on the Command Line¶
Each LROSE application has different command line options for running. To see all the available options, use the -h
flag.
RadxPrint -h
# view the command line options
!${LROSE_DIR}/RadxPrint -h
Usage: RadxPrint [args as below]
Options:
[ -h ] produce this list.
[ -ag ] aggregate sweep files into volume on read
applies to DORADE and CFRADIAL sweep files
[ -ag_all ] aggregate files in input list on read.
ALL FILES in the input list are aggregated into a volume.
See '-f' option.
[ -ang ? ] set single fixed angle
or minimum - see '-ang_max'
[ -ang_max ? ] set max fixed angle
use '-ang' for setting minimum
[ -apply_georefs] apply georeference corrections on read.
For moving platforms, measured georeference information is
somtimes available.
If so, this is applied and appropriate corrections made.
Earth-centric azimuth and elevation angles will be computed.
[ -change_lat_sign] change the sign of the radar latitude
Useful for RAPIC files that always have a positive latitude.
[ -const_ngates ] force number of gates constant for all rays
Added gates will be filled with missing values
[ -data ] print field data
[ -d, -debug ] print debug messages
[ -dir ? ] Directory if searching by time
[ -dorade_format ] print format of dorade structs
[ -dwell_secs ? ] set dwell length (secs)
Applies to rays_in_interval mode
[ -dwell_stats ? ] method for computing stats on the dwell
Applies to rays_in_interval mode
Options: mean, median, maximum, minimum, middle
Middle refers to middle ray in dwell sequence
[ -end "yyyy mm dd hh mm ss.???"] set end time
Applies to rays_in_interval mode
ss can be decimal secs to support sub-second precision
[ -f ? ] set file path, see also -path
[ -field ? ] Specify particular field
Specify name or number
Use muptiple -field args for multiple fields
If not specified, all fields will be printed
[ -margin ? ] time_margin (secs): defaults to 3600
applies to all time search modes except latest
[ -meta_only ] only read sweep and field meta data
rays and data will not be read
[ -mode ? ] mode if searching by time
Options: latest, closest, first_before, first_after,
rays_in_interval
[ -native ] print in native format
no translation into Radx
[ -no_trans ] ignore rays with antenna transition flag set
[ -path ? ] set file path, see also -f
[ -preserve_sweeps ] preserve sweep details as they are in file.
This generally applies to NEXRAD data - by default we
consolidate sweeps by combining split-cut sweeps
into a single sweep.
If this flag is true, we leave the sweeps unchanged.
[ -radar_num ? ] set radar number
Applies to NOAA HRD data. LF radar = 1, TA radar = 2
Generally not needed
[ -rays ] print ray meta data
[ -ray_table ] print table of ray properties
[ -relaxed_limits ] If set, turn off strict checking when using
the options -ang and -ang_max, or -sweep and -sweep_max.
If relaxed, and no data lies within the specified limits,
then the closest applicable sweep will be read.
[ -rem_miss ] remove rays in which data at all gates and
for all fields is missing
[ -rem_short ] remove short range rays
Remove NEXRAD short-range Doppler sweeps
[ -rem_long ] remove long range rays
Remove NEXRAD long-range Non-Doppler sweeps
[ -rem_trans ] remove rays with antenna transitions
[ -start "yyyy mm dd hh mm ss.???"] set start time
Applies to rays_in_interval mode
ss can be decimal secs to support sub-second precision
[ -summary ] print summary of each ray
[ -sweep ? ] set single sweep number
or minimum - see '-sweep_max'
[ -sweep_angles ] print sweep angles for each time
[ -sweep_max ? ] set max sweep number
use '-sweep' for setting minimum
[ -time ? ] specify search time
Format is "YYYY MM DD HH MM SS"
[ -trim_sur ] trim surveillance sweeps to 360 degrees
Remove extra rays in each surveillance sweep
[ -v, -verbose ] print verbose debug messages
[ -vv, -extra ] print extra verbose debug messages
[ -vol_fields ] load up volume fields from rays
If not set, fields are left managed by rays
NOTE: You do not need to use the params option (see below).
If no params are specified, you deal with the whole file.
TDRP args: [options as below]
[ -params/--params path ] specify params file path
[ -check_params/--check_params] check which params are not set
[ -print_params/--print_params [mode]] print parameters
using following modes, default mode is 'norm'
short: main comments only, no help or descr
structs and arrays on a single line
norm: short + descriptions and help
long: norm + arrays and structs expanded
verbose: long + private params included
short_expand: short with env vars expanded
norm_expand: norm with env vars expanded
long_expand: long with env vars expanded
verbose_expand: verbose with env vars expanded
[ -tdrp_debug] debugging prints for tdrp
[ -tdrp_usage] print this usage
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
LROSE Parameter Files¶
All LROSE applications have a detailed parameter file, which is read in at startup. The parameters allow the user to control the processing in the LROSE apps. To generate a default parameter file, you use the -print_params option for the app.
For example, for RadxConvert you would use:
RadxConvert -print_params > RadxConvert.nexrad
and then edit RadxConvert.nexrad appropriately.
At runtime you would use:
RadxConvert -params RadxConvert.nexrad ... etc ...
# view the default parameters
!${LROSE_DIR}/RadxPrint -print_params
/**********************************************************************
* TDRP params for /usr/local/lrose/bin/RadxPrint
**********************************************************************/
//======================================================================
//
// Prints out radial RADAR/LIDAR data.
//
//======================================================================
//======================================================================
//
// 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;
//======================================================================
//
// DATA RETRIEVAL CONTROL.
//
//======================================================================
///////////// path ////////////////////////////////////
//
// Path string - full path specified.
//
// File will be read from this path.
//
// Type: string
path = ".";
///////////// specify_file_by_time ////////////////////
//
// Option to specify file by time.
//
// If true, paths for reads and writes are based on time and the data
// directory. If false, reads and writes use the specified path.
//
// Type: boolean
specify_file_by_time = FALSE;
///////////// dir /////////////////////////////////////
//
// Data directory.
//
// Used to locate file if specify_file_by_time is true.
//
// Type: string
dir = ".";
///////////// read_search_mode ////////////////////////
//
// Mode for searching for data in time domain.
//
// For all except LATEST, you must specify the search time and the
// search margin.
//
// Type: enum
// Options:
// READ_LATEST
// READ_CLOSEST
// READ_FIRST_BEFORE
// READ_FIRST_AFTER
// READ_RAYS_IN_INTERVAL
read_search_mode = READ_LATEST;
///////////// read_search_time ////////////////////////
//
// Data time string.
//
// Time for data requested. Format is YYYY MM DD HH MM SS.
//
// Type: string
read_search_time = "1970 01 01 00 00 00";
///////////// read_search_margin //////////////////////
//
// Margin around search time (secs).
//
// Applies to all search modes except LATEST.
//
// Type: int
read_search_margin = 3600;
///////////// read_start_time /////////////////////////
//
// Start time for rays search.
//
// Applies to READ_RAYS_IN_INTERVAL mode.
//
// Type: string
read_start_time = "1970 01 01 00 00 00";
///////////// read_end_time ///////////////////////////
//
// End time for rays search.
//
// Applies to READ_RAYS_IN_INTERVAL mode.
//
// Type: string
read_end_time = "1970 01 01 00 00 00";
///////////// read_dwell_secs /////////////////////////
//
// Dwell width (secs).
//
// Applies to READ_RAYS_IN_INTERVAL mode.
//
// Type: double
read_dwell_secs = 1;
///////////// read_dwell_stats ////////////////////////
//
// Method for computing stats on the dwell.
//
// Applies to READ_RAYS_IN_INTERVAL mode. MIDDLE refers to the middle
// ray in the dwell sequence.
//
// Type: enum
// Options:
// DWELL_STATS_MEAN
// DWELL_STATS_MEDIAN
// DWELL_STATS_MAXIMUM
// DWELL_STATS_MINIMUM
// DWELL_STATS_MIDDLE
read_dwell_stats = DWELL_STATS_MIDDLE;
//======================================================================
//
// READ CONTROL OPTIONS.
//
//======================================================================
///////////// read_meta_data_only /////////////////////
//
// Option to only read the meta data.
//
// In this case sweep and field metadata will be read, but the ray and
// field data will not be read.
//
// Type: boolean
read_meta_data_only = FALSE;
///////////// read_set_field_names ////////////////////
//
// Option to set field names.
//
// Type: boolean
read_set_field_names = FALSE;
///////////// read_field_names ////////////////////////
//
// Field name list.
//
// Type: string
// 1D array - variable length.
read_field_names = {
"DBZ",
"VEL"
};
///////////// read_set_fixed_angle_limits /////////////
//
// Option to set fixed angle limits.
//
// If 'read_apply_strict_angle_limits' is set, only read sweeps within
// the specified fixed angle limits. If strict checking is false and no
// data lies within the limits, return the closest applicable sweep.
// NOTE - fixed angles are elevation in PPI mode and azimuth in RHI
// mode.
//
// Type: boolean
read_set_fixed_angle_limits = FALSE;
///////////// read_lower_fixed_angle //////////////////
//
// Lower fixed angle limit - degrees.
//
// Type: double
read_lower_fixed_angle = 0;
///////////// read_upper_fixed_angle //////////////////
//
// Upper fixed angle limit - degrees.
//
// Type: double
read_upper_fixed_angle = 90;
///////////// read_set_sweep_num_limits ///////////////
//
// Option to set sweep number limits.
//
// If 'read_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
read_set_sweep_num_limits = FALSE;
///////////// read_lower_sweep_num ////////////////////
//
// Lower sweep number limit.
//
// Type: int
read_lower_sweep_num = 0;
///////////// read_upper_sweep_num ////////////////////
//
// Upper sweep number limit.
//
// Type: int
read_upper_sweep_num = 0;
///////////// read_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
read_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;
///////////// aggregate_sweep_files_on_read ///////////
//
// Option to aggregate sweep files into a volume on read.
//
// If false, 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_antenna_transitions //////////////
//
// Option to ignore rays with antenna transition flag set.
//
// The transition flag is set when the antenna is moving between sweeps.
// If this parameter is true, rays containing the transition flag will
// not be read in.
//
// Type: boolean
ignore_antenna_transitions = FALSE;
///////////// load_volume_fields_from_rays ////////////
//
// Option to load up fields on the volume by combining the fields from
// the rays into a single array.
//
// If false, the fields will be left managed by the rays.
//
// Type: boolean
load_volume_fields_from_rays = FALSE;
///////////// 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;
///////////// 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;
///////////// set_max_range ///////////////////////////
//
// Option to set the max range for any ray.
//
// Type: boolean
set_max_range = FALSE;
///////////// max_range_km ////////////////////////////
//
// Specified maximim range - km.
//
// Gates beyond this range are removed.
//
// Type: double
max_range_km = 9999;
///////////// 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 = FALSE;
///////////// 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;
///////////// 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;
//======================================================================
//
// PRINT CONTROL.
//
//======================================================================
///////////// print_mode //////////////////////////////
//
// Print mode option.
//
// Controls details of the printing. Generally set in response to the
// command line args.
//
// Type: enum
// Options:
// PRINT_MODE_NORM
// PRINT_MODE_NATIVE
// PRINT_MODE_DORADE_FORMAT
print_mode = PRINT_MODE_NORM;
///////////// print_sweep_angles //////////////////////
//
// Option to print angles list for each sweep.
//
// The list of angles will be listed for each file or time.
//
// Type: boolean
print_sweep_angles = FALSE;
///////////// print_rays //////////////////////////////
//
// Option to print out ray meta data.
//
// If false, only sweep and calib information will be printed.
//
// Type: boolean
print_rays = FALSE;
///////////// print_ray_summary ///////////////////////
//
// Option to print summary for each ray.
//
// The main metadata will be printed, followed by the ray summary.
//
// Type: boolean
print_ray_summary = FALSE;
///////////// print_ray_table /////////////////////////
//
// Option to print a space-delimited angle table.
//
// If true, prints space-delimited table of ray properties.
//
// Type: boolean
print_ray_table = FALSE;
///////////// print_data //////////////////////////////
//
// Option to print out data.
//
// If true, data values will be printed.
//
// Type: boolean
print_data = FALSE;
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
# save the default parameters to a file
!${LROSE_DIR}/RadxPrint -print_params > ./RadxPrint_params
# if you have an existing parameter file and want to update it (e.g., a new LROSE version is released),
# you could run a command similar to the following, just update the parameter file names
# !${LROSE_DIR}/RadxPrint -f ./path/to/RadxPrint_params -print_params > ./RadxPrint_params_new
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
HDF5-DIAG: Error detected in HDF5 (1.14.3) thread 1:
#000: H5P.c line 1485 in H5Pclose(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type
PropList::~PropList - H5Pclose failed
# View the param file
!cat ./RadxPrint_params
/**********************************************************************
* TDRP params for /usr/local/lrose/bin/RadxPrint
**********************************************************************/
//======================================================================
//
// Prints out radial RADAR/LIDAR data.
//
//======================================================================
//======================================================================
//
// 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;
//======================================================================
//
// DATA RETRIEVAL CONTROL.
//
//======================================================================
///////////// path ////////////////////////////////////
//
// Path string - full path specified.
//
// File will be read from this path.
//
// Type: string
path = ".";
///////////// specify_file_by_time ////////////////////
//
// Option to specify file by time.
//
// If true, paths for reads and writes are based on time and the data
// directory. If false, reads and writes use the specified path.
//
// Type: boolean
specify_file_by_time = FALSE;
///////////// dir /////////////////////////////////////
//
// Data directory.
//
// Used to locate file if specify_file_by_time is true.
//
// Type: string
dir = ".";
///////////// read_search_mode ////////////////////////
//
// Mode for searching for data in time domain.
//
// For all except LATEST, you must specify the search time and the
// search margin.
//
// Type: enum
// Options:
// READ_LATEST
// READ_CLOSEST
// READ_FIRST_BEFORE
// READ_FIRST_AFTER
// READ_RAYS_IN_INTERVAL
read_search_mode = READ_LATEST;
///////////// read_search_time ////////////////////////
//
// Data time string.
//
// Time for data requested. Format is YYYY MM DD HH MM SS.
//
// Type: string
read_search_time = "1970 01 01 00 00 00";
///////////// read_search_margin //////////////////////
//
// Margin around search time (secs).
//
// Applies to all search modes except LATEST.
//
// Type: int
read_search_margin = 3600;
///////////// read_start_time /////////////////////////
//
// Start time for rays search.
//
// Applies to READ_RAYS_IN_INTERVAL mode.
//
// Type: string
read_start_time = "1970 01 01 00 00 00";
///////////// read_end_time ///////////////////////////
//
// End time for rays search.
//
// Applies to READ_RAYS_IN_INTERVAL mode.
//
// Type: string
read_end_time = "1970 01 01 00 00 00";
///////////// read_dwell_secs /////////////////////////
//
// Dwell width (secs).
//
// Applies to READ_RAYS_IN_INTERVAL mode.
//
// Type: double
read_dwell_secs = 1;
///////////// read_dwell_stats ////////////////////////
//
// Method for computing stats on the dwell.
//
// Applies to READ_RAYS_IN_INTERVAL mode. MIDDLE refers to the middle
// ray in the dwell sequence.
//
// Type: enum
// Options:
// DWELL_STATS_MEAN
// DWELL_STATS_MEDIAN
// DWELL_STATS_MAXIMUM
// DWELL_STATS_MINIMUM
// DWELL_STATS_MIDDLE
read_dwell_stats = DWELL_STATS_MIDDLE;
//======================================================================
//
// READ CONTROL OPTIONS.
//
//======================================================================
///////////// read_meta_data_only /////////////////////
//
// Option to only read the meta data.
//
// In this case sweep and field metadata will be read, but the ray and
// field data will not be read.
//
// Type: boolean
read_meta_data_only = FALSE;
///////////// read_set_field_names ////////////////////
//
// Option to set field names.
//
// Type: boolean
read_set_field_names = FALSE;
///////////// read_field_names ////////////////////////
//
// Field name list.
//
// Type: string
// 1D array - variable length.
read_field_names = {
"DBZ",
"VEL"
};
///////////// read_set_fixed_angle_limits /////////////
//
// Option to set fixed angle limits.
//
// If 'read_apply_strict_angle_limits' is set, only read sweeps within
// the specified fixed angle limits. If strict checking is false and no
// data lies within the limits, return the closest applicable sweep.
// NOTE - fixed angles are elevation in PPI mode and azimuth in RHI
// mode.
//
// Type: boolean
read_set_fixed_angle_limits = FALSE;
///////////// read_lower_fixed_angle //////////////////
//
// Lower fixed angle limit - degrees.
//
// Type: double
read_lower_fixed_angle = 0;
///////////// read_upper_fixed_angle //////////////////
//
// Upper fixed angle limit - degrees.
//
// Type: double
read_upper_fixed_angle = 90;
///////////// read_set_sweep_num_limits ///////////////
//
// Option to set sweep number limits.
//
// If 'read_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
read_set_sweep_num_limits = FALSE;
///////////// read_lower_sweep_num ////////////////////
//
// Lower sweep number limit.
//
// Type: int
read_lower_sweep_num = 0;
///////////// read_upper_sweep_num ////////////////////
//
// Upper sweep number limit.
//
// Type: int
read_upper_sweep_num = 0;
///////////// read_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
read_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;
///////////// aggregate_sweep_files_on_read ///////////
//
// Option to aggregate sweep files into a volume on read.
//
// If false, 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_antenna_transitions //////////////
//
// Option to ignore rays with antenna transition flag set.
//
// The transition flag is set when the antenna is moving between sweeps.
// If this parameter is true, rays containing the transition flag will
// not be read in.
//
// Type: boolean
ignore_antenna_transitions = FALSE;
///////////// load_volume_fields_from_rays ////////////
//
// Option to load up fields on the volume by combining the fields from
// the rays into a single array.
//
// If false, the fields will be left managed by the rays.
//
// Type: boolean
load_volume_fields_from_rays = FALSE;
///////////// 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;
///////////// 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;
///////////// set_max_range ///////////////////////////
//
// Option to set the max range for any ray.
//
// Type: boolean
set_max_range = FALSE;
///////////// max_range_km ////////////////////////////
//
// Specified maximim range - km.
//
// Gates beyond this range are removed.
//
// Type: double
max_range_km = 9999;
///////////// 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 = FALSE;
///////////// 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;
///////////// 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;
//======================================================================
//
// PRINT CONTROL.
//
//======================================================================
///////////// print_mode //////////////////////////////
//
// Print mode option.
//
// Controls details of the printing. Generally set in response to the
// command line args.
//
// Type: enum
// Options:
// PRINT_MODE_NORM
// PRINT_MODE_NATIVE
// PRINT_MODE_DORADE_FORMAT
print_mode = PRINT_MODE_NORM;
///////////// print_sweep_angles //////////////////////
//
// Option to print angles list for each sweep.
//
// The list of angles will be listed for each file or time.
//
// Type: boolean
print_sweep_angles = FALSE;
///////////// print_rays //////////////////////////////
//
// Option to print out ray meta data.
//
// If false, only sweep and calib information will be printed.
//
// Type: boolean
print_rays = FALSE;
///////////// print_ray_summary ///////////////////////
//
// Option to print summary for each ray.
//
// The main metadata will be printed, followed by the ray summary.
//
// Type: boolean
print_ray_summary = FALSE;
///////////// print_ray_table /////////////////////////
//
// Option to print a space-delimited angle table.
//
// If true, prints space-delimited table of ray properties.
//
// Type: boolean
print_ray_table = FALSE;
///////////// print_data //////////////////////////////
//
// Option to print out data.
//
// If true, data values will be printed.
//
// Type: boolean
print_data = FALSE;
Inspect the Data¶
RadxPrint can print out file metadata, information about the variables, and other data. It’s an alternative to ncdump, depending on the information you want.
# Print the metadata for the file we linked to earlier (-f flag links to files)
!${LROSE_DIR}/RadxPrint -f ./raw/*.nc
WARNING - NcfRadxFile::_readPositionVariables
latitude should be type double
WARNING - NcfRadxFile::_readPositionVariables
longitude should be type double
WARNING - NcfRadxFile::_readPositionVariables
altitude should be type double
=============== RadxVol ===============
convention: CF/Radial instrument_parameters
version: 1.3
title:
institution:
references:
source:
history:
comment:
volNum: 0
scanName:
scanId(VCP): 0
--------------- RadxPlatform ---------------
instrumentName: L
siteName:
instrumentType: radar
platformType: fixed
primaryAxis: axis_z
latitudeDeg: 46.0408
longitudeDeg: 8.83322
altitudeKm: 1.626
sensorHtAglM: 0
frequencyHz: 5.45077e+09
radarAntGainDbH: -9999
radarAntGainDbV: -9999
radarBeamWidthDegH: 1
radarBeamWidthDegV: 1
radarReceiverBandwidthMhz: 6.90953e-316
--------------------------------------------
rhiMode? N
startTimeSecs: 2024/05/22 12:55:01
startNanoSecs: 0
endTimeSecs: 2024/05/22 12:59:44
endNanoSecs: 9.5e+08
NOTE: ray times are NOT in increasing order
n sweeps: 20
n rays: 7200
n calibs: 0
n fields: 9
field[0]: reflectivity
field[1]: signal_to_noise_ratio
field[2]: reflectivity_vv
field[3]: differential_reflectivity
field[4]: uncorrected_cross_correlation_ratio
field[5]: uncorrected_differential_phase
field[6]: velocity
field[7]: spectrum_width
field[8]: reflectivity_hh_clut
RadxRangeGeom:
rangeGeomSet: Y
startRangeKm: 0.249999
gateSpacingKm: 0.499984
RadxPacking: data packing
nRays: 7200
nPoints: 3542400
maxNGates: 492
nGatesVary: N
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 0
nRays: 360
startRayIndex: 0
endRayIndex: 359
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: -0.192264
targetScanRate: -9999
measuredScanRate: -5983.18
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 1
nRays: 360
startRayIndex: 360
endRayIndex: 719
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 0.401007
targetScanRate: -9999
measuredScanRate: -5983.21
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 2
nRays: 360
startRayIndex: 720
endRayIndex: 1079
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 1.00526
targetScanRate: -9999
measuredScanRate: -5983.25
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 3
nRays: 360
startRayIndex: 1080
endRayIndex: 1439
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 1.60403
targetScanRate: -9999
measuredScanRate: -8975.17
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 4
nRays: 360
startRayIndex: 1440
endRayIndex: 1799
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 2.50492
targetScanRate: -9999
measuredScanRate: -8975.29
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 5
nRays: 360
startRayIndex: 1800
endRayIndex: 2159
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 3.50469
targetScanRate: -9999
measuredScanRate: -7179.9
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 6
nRays: 360
startRayIndex: 2160
endRayIndex: 2519
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 4.50996
targetScanRate: -9999
measuredScanRate: -17949.8
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 7
nRays: 360
startRayIndex: 2520
endRayIndex: 2879
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 5.50423
targetScanRate: -9999
measuredScanRate: -8974.82
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 8
nRays: 360
startRayIndex: 2880
endRayIndex: 3239
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 6.50401
targetScanRate: -9999
measuredScanRate: -11966.7
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 9
nRays: 360
startRayIndex: 3240
endRayIndex: 3599
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 7.49279
targetScanRate: -9999
measuredScanRate: -8975.15
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 10
nRays: 360
startRayIndex: 3600
endRayIndex: 3959
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 8.50355
targetScanRate: -9999
measuredScanRate: -11966.4
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 11
nRays: 360
startRayIndex: 3960
endRayIndex: 4319
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 9.50332
targetScanRate: -9999
measuredScanRate: -8974.6
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 12
nRays: 360
startRayIndex: 4320
endRayIndex: 4679
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 11.003
targetScanRate: -9999
measuredScanRate: -11966
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 13
nRays: 360
startRayIndex: 4680
endRayIndex: 5039
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 13.0025
targetScanRate: -9999
measuredScanRate: -7179.68
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 14
nRays: 360
startRayIndex: 5040
endRayIndex: 5399
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 16.0018
targetScanRate: -9999
measuredScanRate: -17950.7
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 15
nRays: 360
startRayIndex: 5400
endRayIndex: 5759
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 20.0064
targetScanRate: -9999
measuredScanRate: -35901.2
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 16
nRays: 360
startRayIndex: 5760
endRayIndex: 6119
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 25.0053
targetScanRate: -9999
measuredScanRate: -8975.36
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 17
nRays: 360
startRayIndex: 6120
endRayIndex: 6479
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 29.9986
targetScanRate: -9999
measuredScanRate: -35900.9
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 18
nRays: 360
startRayIndex: 6480
endRayIndex: 6839
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 35.003
targetScanRate: -9999
measuredScanRate: -11966.6
raysAreIndexed: Y
angleRes: 1
===========================================
=============== RadxSweep ===============
volNum: 0
sweepNum: 19
nRays: 360
startRayIndex: 6840
endRayIndex: 7199
sweepMode: azimuth_surveillance
polarizationMode: not_set
prtMode: not_set
followMode: not_set
fixedAngle: 40.0018
targetScanRate: -9999
measuredScanRate: -7179.63
raysAreIndexed: Y
angleRes: 1
===========================================
===== NOTE: Field is from first ray =====
=============== RadxField ===============
name: reflectivity
longName: Horizontal Reflectivity
standardName: horizontal_reflectivity
units: dBZ
nRays: 1
nPoints: 492
nBytes: 3936
dataType: fl64
byteWidth: 8
samplingRatio: 1
fieldFolds: N
isDiscrete: N
isRayQualifier: N
missingFl64: -9999
dataIsLocal: 1
RadxRangeGeom:
rangeGeomSet: Y
startRangeKm: 0.249999
gateSpacingKm: 0.499984
RadxPacking: data packing
nRays: 1
nPoints: 492
maxNGates: 492
nGatesVary: N
=========================================
=========================================
===== NOTE: Field is from first ray =====
=============== RadxField ===============
name: signal_to_noise_ratio
longName: Signal to noise ratio
standardName: signal_to_noise_ratio
units: dB
nRays: 1
nPoints: 492
nBytes: 3936
dataType: fl64
byteWidth: 8
samplingRatio: 1
fieldFolds: N
isDiscrete: N
isRayQualifier: N
missingFl64: -9999
dataIsLocal: 1
RadxRangeGeom:
rangeGeomSet: Y
startRangeKm: 0.249999
gateSpacingKm: 0.499984
RadxPacking: data packing
nRays: 1
nPoints: 492
maxNGates: 492
nGatesVary: N
=========================================
=========================================
===== NOTE: Field is from first ray =====
=============== RadxField ===============
name: reflectivity_vv
longName: Vertical Reflectivity
standardName: vertical_reflectivity
units: dBZ
nRays: 1
nPoints: 492
nBytes: 3936
dataType: fl64
byteWidth: 8
samplingRatio: 1
fieldFolds: N
isDiscrete: N
isRayQualifier: N
missingFl64: -9999
dataIsLocal: 1
RadxRangeGeom:
rangeGeomSet: Y
startRangeKm: 0.249999
gateSpacingKm: 0.499984
RadxPacking: data packing
nRays: 1
nPoints: 492
maxNGates: 492
nGatesVary: N
=========================================
=========================================
===== NOTE: Field is from first ray =====
=============== RadxField ===============
name: differential_reflectivity
longName: Differential reflectivity
standardName: differential_reflectivity
units: dB
nRays: 1
nPoints: 492
nBytes: 3936
dataType: fl64
byteWidth: 8
samplingRatio: 1
fieldFolds: N
isDiscrete: N
isRayQualifier: N
missingFl64: -9999
dataIsLocal: 1
RadxRangeGeom:
rangeGeomSet: Y
startRangeKm: 0.249999
gateSpacingKm: 0.499984
RadxPacking: data packing
nRays: 1
nPoints: 492
maxNGates: 492
nGatesVary: N
=========================================
=========================================
===== NOTE: Field is from first ray =====
=============== RadxField ===============
name: uncorrected_cross_correlation_ratio
longName: Uncorrected copolar correlation coefficient (RHOHV)
standardName: copolar_correlation_coefficient
units: -
nRays: 1
nPoints: 492
nBytes: 3936
dataType: fl64
byteWidth: 8
samplingRatio: 1
fieldFolds: N
isDiscrete: N
isRayQualifier: N
missingFl64: -9999
dataIsLocal: 1
RadxRangeGeom:
rangeGeomSet: Y
startRangeKm: 0.249999
gateSpacingKm: 0.499984
RadxPacking: data packing
nRays: 1
nPoints: 492
maxNGates: 492
nGatesVary: N
=========================================
=========================================
===== NOTE: Field is from first ray =====
=============== RadxField ===============
name: uncorrected_differential_phase
longName: Uncorrected differential propagation phase
standardName: differential_phase
units: deg
nRays: 1
nPoints: 492
nBytes: 3936
dataType: fl64
byteWidth: 8
samplingRatio: 1
fieldFolds: N
isDiscrete: N
isRayQualifier: N
missingFl64: -9999
dataIsLocal: 1
RadxRangeGeom:
rangeGeomSet: Y
startRangeKm: 0.249999
gateSpacingKm: 0.499984
RadxPacking: data packing
nRays: 1
nPoints: 492
maxNGates: 492
nGatesVary: N
=========================================
=========================================
===== NOTE: Field is from first ray =====
=============== RadxField ===============
name: velocity
longName: Mean Doppler velocity
standardName: mean_Doppler_velocity
units: m/s
nRays: 1
nPoints: 492
nBytes: 3936
dataType: fl64
byteWidth: 8
samplingRatio: 1
fieldFolds: N
isDiscrete: N
isRayQualifier: N
missingFl64: -9999
dataIsLocal: 1
RadxRangeGeom:
rangeGeomSet: Y
startRangeKm: 0.249999
gateSpacingKm: 0.499984
RadxPacking: data packing
nRays: 1
nPoints: 492
maxNGates: 492
nGatesVary: N
=========================================
=========================================
===== NOTE: Field is from first ray =====
=============== RadxField ===============
name: spectrum_width
longName: Doppler spectrum width
standardName: Doppler_spectrum_width
units: m/s
nRays: 1
nPoints: 492
nBytes: 3936
dataType: fl64
byteWidth: 8
samplingRatio: 1
fieldFolds: N
isDiscrete: N
isRayQualifier: N
missingFl64: -9999
dataIsLocal: 1
RadxRangeGeom:
rangeGeomSet: Y
startRangeKm: 0.249999
gateSpacingKm: 0.499984
RadxPacking: data packing
nRays: 1
nPoints: 492
maxNGates: 492
nGatesVary: N
=========================================
=========================================
===== NOTE: Field is from first ray =====
=============== RadxField ===============
name: reflectivity_hh_clut
longName: reflectivity_hh_clut
standardName: reflectivity_hh_clut
units:
nRays: 1
nPoints: 492
nBytes: 3936
dataType: fl64
byteWidth: 8
samplingRatio: 1
fieldFolds: N
isDiscrete: N
isRayQualifier: N
missingFl64: -9999
dataIsLocal: 1
RadxRangeGeom:
rangeGeomSet: Y
startRangeKm: 0.249999
gateSpacingKm: 0.499984
RadxPacking: data packing
nRays: 1
nPoints: 492
maxNGates: 492
nGatesVary: N
=========================================
=========================================
=========== statusXml ===================
=========================================
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
# Examine ray-specific metadata
!${LROSE_DIR}/RadxPrint -summary -f ./raw/*.nc | tail -200
WARNING - NcfRadxFile::_readPositionVariables
latitude should be type double
WARNING - NcfRadxFile::_readPositionVariables
longitude should be type double
WARNING - NcfRadxFile::_readPositionVariables
altitude should be type double
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.170 40.00 160.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.170 40.00 161.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.240 40.00 162.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.240 40.00 163.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.279 40.00 164.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.279 40.00 165.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.309 40.00 166.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.339 40.00 167.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.380 40.00 168.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.420 40.00 169.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.440 40.00 170.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.440 40.00 171.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.470 40.00 172.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.500 40.00 173.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.539 40.00 174.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.579 40.00 175.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.609 40.00 176.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.609 40.00 177.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.640 40.00 178.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.690 40.00 179.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.690 40.00 180.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.720 40.00 181.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.779 40.00 182.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.779 40.00 183.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.849 40.00 184.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.849 40.00 185.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.890 40.00 186.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.930 40.00 187.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.930 40.00 188.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.970 40.00 189.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:55.980 40.00 190.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.009 40.00 191.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.029 40.00 192.55 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.049 40.00 193.55 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.079 40.00 194.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.109 40.00 195.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.140 40.00 196.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.170 40.00 197.55 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.210 40.00 198.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.250 40.00 199.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.279 40.00 200.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.279 40.00 201.50 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.309 40.00 202.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.329 40.00 203.55 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.359 40.00 204.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.400 40.00 205.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.440 40.00 206.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.480 40.00 207.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.480 40.00 208.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.509 40.00 209.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.529 40.00 210.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.559 40.00 211.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.589 40.00 212.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.609 40.00 213.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.630 40.00 214.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.670 40.00 215.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.690 40.00 216.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.720 40.00 217.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.750 40.00 218.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.779 40.00 219.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.809 40.00 220.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.829 40.00 221.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.890 40.00 222.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.890 40.00 223.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.920 40.00 224.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:56.950 40.00 225.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.000 40.00 226.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.000 40.00 227.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.059 40.00 228.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.059 40.00 229.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.130 40.00 230.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.130 40.00 231.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.160 40.00 232.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.160 40.00 233.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.230 40.00 234.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.230 40.00 235.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.269 40.00 236.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.279 40.00 237.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.319 40.00 238.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.359 40.00 239.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.390 40.00 240.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.390 40.00 241.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.420 40.00 242.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.440 40.00 243.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.470 40.00 244.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.500 40.00 245.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.529 40.00 246.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.559 40.00 247.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.589 40.00 248.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.640 40.00 249.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.640 40.00 250.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.700 40.00 251.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.700 40.00 252.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.730 40.00 253.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.740 40.00 254.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.769 40.00 255.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.799 40.00 256.55 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.829 40.00 257.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.890 40.00 258.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.890 40.00 259.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.920 40.00 260.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:47.940 40.00 261.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.000 40.00 262.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.000 40.00 263.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.059 40.00 264.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.059 40.00 265.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.079 40.00 266.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.119 40.00 267.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.160 40.00 268.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.200 40.00 269.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.200 40.00 270.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.220 40.00 271.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.259 40.00 272.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.299 40.00 273.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.339 40.00 274.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.339 40.00 275.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.400 40.00 276.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.400 40.00 277.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.440 40.00 278.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.440 40.00 279.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.470 40.00 280.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.529 40.00 281.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.529 40.00 282.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.559 40.00 283.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.579 40.00 284.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.609 40.00 285.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.680 40.00 286.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.680 40.00 287.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.720 40.00 288.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.750 40.00 289.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.750 40.00 290.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.809 40.00 291.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.809 40.00 292.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.839 40.00 293.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.859 40.00 294.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.890 40.00 295.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.960 40.00 296.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:48.960 40.00 297.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.000 40.00 298.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.000 40.00 299.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.059 40.00 300.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.059 40.00 301.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.099 40.00 302.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.150 40.00 303.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.150 40.00 304.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.190 40.00 305.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.200 40.00 306.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.259 40.00 307.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.259 40.00 308.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.299 40.00 309.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.309 40.00 310.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.339 40.00 311.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.359 40.00 312.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.390 40.00 313.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.460 40.00 314.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.460 40.00 315.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.500 40.00 316.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.500 40.00 317.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.539 40.00 318.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.579 40.00 319.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.579 40.00 320.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.609 40.00 321.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.640 40.00 322.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.680 40.00 323.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.720 40.00 324.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.750 40.00 325.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.750 40.00 326.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.779 40.00 327.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.819 40.00 328.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.859 40.00 329.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.890 40.00 330.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.890 40.00 331.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.920 40.00 332.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:49.960 40.00 333.55 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.000 40.00 334.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.029 40.00 335.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.029 40.00 336.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.089 40.00 337.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.089 40.00 338.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.119 40.00 339.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.140 40.00 340.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.160 40.00 341.55 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.190 40.00 342.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.220 40.00 343.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.250 40.00 344.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.279 40.00 345.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.299 40.00 346.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.329 40.00 347.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.359 40.00 348.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.390 40.00 349.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.450 40.00 350.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.450 40.00 351.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.480 40.00 352.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.500 40.00 353.54 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.529 40.00 354.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.569 40.00 355.53 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.609 40.00 356.52 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.640 40.00 357.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.640 40.00 358.51 SUR 0 492 19 0
Time el az mode prf ngates sweep# vol#: 2024/05/22 12:58:50.670 40.00 359.50 SUR 0 492 19 0
Format Conversion¶
RadxConvert can convert many different file types into CfRadial files, which are used by most LROSE applications. You can specify specific parameters in a parameter file, but most of the time, RadxConvert works with a simple command.
# Convert file (already cfradial, but you get the idea)
# this will create a new subdirectory called convert along with a subdirectory YYYYMMDD that contains the file
!${LROSE_DIR}/RadxConvert -f ./raw/*.nc -outdir ./convert
======================================================================
Program 'RadxConvert'
Run-time 2024/09/08 07:02:14.
Copyright (c) 1992 - 2024
University Corporation for Atmospheric Research (UCAR)
National Center for Atmospheric Research (NCAR)
Boulder, Colorado, USA.
Redistribution and use in source and binary forms, with
or without modification, are permitted provided that the following
conditions are met:
1) Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2) Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3) Neither the name of UCAR, NCAR nor the names of its contributors, if
any, may be used to endorse or promote products derived from this
software without specific prior written permission.
4) If the software is modified to produce derivative works, such modified
software should be clearly marked, so as not to confuse it with the
version available from UCAR.
======================================================================
WARNING - NcfRadxFile::_readPositionVariables
latitude should be type double
WARNING - NcfRadxFile::_readPositionVariables
longitude should be type double
WARNING - NcfRadxFile::_readPositionVariables
altitude should be type double
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
Simple Gridding¶
Another commonly-used applicated is Radx2Grid, which regrids data onto a Cartesian grid. Usually, a user will want to specify parameters in a parameter file, but for the sake of time, we’ll just use the defaults to show how the application works.
!${LROSE_DIR}/Radx2Grid -f ./convert/*/*.nc -outdir ./gridded
======================================================================
Program 'Radx2Grid'
Run-time 2024/09/08 07:02:19.
Copyright (c) 1992 - 2024
University Corporation for Atmospheric Research (UCAR)
National Center for Atmospheric Research (NCAR)
Boulder, Colorado, USA.
Redistribution and use in source and binary forms, with
or without modification, are permitted provided that the following
conditions are met:
1) Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2) Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3) Neither the name of UCAR, NCAR nor the names of its contributors, if
any, may be used to endorse or promote products derived from this
software without specific prior written permission.
4) If the software is modified to produce derivative works, such modified
software should be clearly marked, so as not to confuse it with the
version available from UCAR.
======================================================================
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
PropList::~PropList - H5Pclose failed
Basic Data Display¶
With these files, we can plot the output to look at the data. Here, we’ll use Py-ART to plot the data in the CfRadial file and xarray/matplotlib to plot the gridded data.
Plotting CfRadial data with Py-ART¶
# Read CfRadial file into radar object
filePath = os.path.join(
"./", "convert/20240522/cfrad.20240522_125501.000_to_20240522_125944.950_L_SUR.nc"
)
radar = pyart.io.read_cfradial(filePath)
radar.info("compact")
altitude: <ndarray of type: float64 and shape: (1,)>
altitude_agl: <ndarray of type: float64 and shape: (1,)>
antenna_transition: <ndarray of type: int8 and shape: (7200,)>
azimuth: <ndarray of type: float32 and shape: (7200,)>
elevation: <ndarray of type: float32 and shape: (7200,)>
fields:
reflectivity: <ndarray of type: float64 and shape: (7200, 492)>
signal_to_noise_ratio: <ndarray of type: float64 and shape: (7200, 492)>
reflectivity_vv: <ndarray of type: float64 and shape: (7200, 492)>
differential_reflectivity: <ndarray of type: float64 and shape: (7200, 492)>
uncorrected_cross_correlation_ratio: <ndarray of type: float64 and shape: (7200, 492)>
uncorrected_differential_phase: <ndarray of type: float64 and shape: (7200, 492)>
velocity: <ndarray of type: float64 and shape: (7200, 492)>
spectrum_width: <ndarray of type: float64 and shape: (7200, 492)>
reflectivity_hh_clut: <ndarray of type: float64 and shape: (7200, 492)>
fixed_angle: <ndarray of type: float32 and shape: (20,)>
instrument_parameters:
frequency: <ndarray of type: float32 and shape: (1,)>
follow_mode: <ndarray of type: |S1 and shape: (20, 32)>
pulse_width: <ndarray of type: float32 and shape: (7200,)>
prt_mode: <ndarray of type: |S1 and shape: (20, 32)>
prt: <ndarray of type: float32 and shape: (7200,)>
prt_ratio: <ndarray of type: float32 and shape: (7200,)>
polarization_mode: <ndarray of type: |S1 and shape: (20, 32)>
nyquist_velocity: <ndarray of type: float32 and shape: (7200,)>
unambiguous_range: <ndarray of type: float32 and shape: (7200,)>
n_samples: <ndarray of type: int32 and shape: (7200,)>
radar_antenna_gain_h: <ndarray of type: float32 and shape: (1,)>
radar_antenna_gain_v: <ndarray of type: float32 and shape: (1,)>
radar_beam_width_h: <ndarray of type: float32 and shape: (1,)>
radar_beam_width_v: <ndarray of type: float32 and shape: (1,)>
radar_rx_bandwidth: <ndarray of type: float32 and shape: (1,)>
measured_transmit_power_v: <ndarray of type: float32 and shape: (7200,)>
measured_transmit_power_h: <ndarray of type: float32 and shape: (7200,)>
latitude: <ndarray of type: float64 and shape: (1,)>
longitude: <ndarray of type: float64 and shape: (1,)>
nsweeps: 20
ngates: 492
nrays: 7200
radar_calibration: None
range: <ndarray of type: float32 and shape: (492,)>
scan_rate: <ndarray of type: float32 and shape: (7200,)>
scan_type: ppi
sweep_end_ray_index: <ndarray of type: int32 and shape: (20,)>
sweep_mode: <ndarray of type: |S1 and shape: (20, 32)>
sweep_number: <ndarray of type: int32 and shape: (20,)>
sweep_start_ray_index: <ndarray of type: int32 and shape: (20,)>
target_scan_rate: <ndarray of type: float32 and shape: (20,)>
time: <ndarray of type: float64 and shape: (7200,)>
metadata:
Conventions: CF/Radial instrument_parameters
Sub_conventions: CF-Radial instrument_parameters radar_parameters
version: 1.3
title:
institution:
references:
source:
history:
comment:
original_format: CFRADIAL
driver: RadxConvert(NCAR)
created: 2024/09/08 07:02:16.451
start_datetime: 2024-05-22T12:55:01Z
time_coverage_start: 2024-05-22T12:55:01Z
start_time: 2024-05-22 12:55:01.000
end_datetime: 2024-05-22T12:59:44Z
time_coverage_end: 2024-05-22T12:59:44Z
end_time: 2024-05-22 12:59:44.950
instrument_name: L
site_name:
scan_name:
scan_id: 0
platform_is_mobile: false
n_gates_vary: false
ray_times_increase: true
volume_number: 0
platform_type: fixed
instrument_type: radar
primary_axis: axis_z
display = pyart.graph.RadarDisplay(radar)
fig = plt.figure(1, (10, 10))
# DBZ
axDbz = fig.add_subplot(221)
display.plot_ppi(
"reflectivity",
0,
vmin=-32,
vmax=64.0,
axislabels=("x(km)", "y(km)"),
colorbar_label="DBZ",
)
display.plot_range_rings([50, 100, 150, 200])
display.plot_cross_hair(200.0)
# velocity
axKdp = fig.add_subplot(222)
display.plot_ppi(
"velocity",
0,
vmin=-15,
vmax=15,
axislabels=("x(km)", "y(km)"),
colorbar_label="velocity (m/s)",
)
display.plot_range_rings([50, 100, 150, 200])
display.plot_cross_hair(200.0)
# spectrum width
axHybrid = fig.add_subplot(223)
display.plot_ppi(
"spectrum_width", 0, axislabels=("x(km)", "y(km)"), colorbar_label="sw (m/s)"
)
display.plot_range_rings([50, 100, 150, 200])
display.plot_cross_hair(200.0)
# NCAR PID (computed)
axPID = fig.add_subplot(224)
display.plot_ppi(
"differential_reflectivity",
0,
axislabels=("x(km)", "y(km)"),
colorbar_label="ZDR (dB)",
)
display.plot_range_rings([50, 100, 150, 200])
display.plot_cross_hair(200.0)
fig.tight_layout()
plt.show()
Plotting Gridded Data with xarray and matplotlib¶
# Read in example radar mosaic for a single time
filePathGridded = os.path.join("./", "gridded/20240522/ncf_20240522_125944.nc")
dsGridded = xr.open_dataset(filePathGridded)
print("Radar mosaic file path: ", filePathGridded)
print("Radar mosaic data set: ", dsGridded)
# Compute time
start_time = dsGridded["start_time"]
startTimeStr = start_time.dt.strftime("%Y/%m/%d-%H:%M:%S UTC")[0].values
print("Start time: ", startTimeStr)
Radar mosaic file path: ./gridded/20240522/ncf_20240522_125944.nc
Radar mosaic data set: <xarray.Dataset> Size: 116MB
Dimensions: (time: 1, bounds: 2, x0: 400, y0: 400,
z0: 20)
Coordinates:
* time (time) datetime64[ns] 8B 2024-05-22T...
* x0 (x0) float32 2kB -199.5 ... 199.5
* y0 (y0) float32 2kB -199.5 ... 199.5
lat0 (y0, x0) float32 640kB ...
lon0 (y0, x0) float32 640kB ...
* z0 (z0) float32 80B 0.5 1.5 ... 18.5 19.5
Dimensions without coordinates: bounds
Data variables: (12/13)
start_time (time) datetime64[ns] 8B ...
stop_time (time) datetime64[ns] 8B ...
time_bounds (time, bounds) datetime64[ns] 16B ...
grid_mapping_0 int32 4B ...
reflectivity (time, z0, y0, x0) float32 13MB ...
signal_to_noise_ratio (time, z0, y0, x0) float32 13MB ...
... ...
differential_reflectivity (time, z0, y0, x0) float32 13MB ...
uncorrected_cross_correlation_ratio (time, z0, y0, x0) float32 13MB ...
uncorrected_differential_phase (time, z0, y0, x0) float32 13MB ...
velocity (time, z0, y0, x0) float32 13MB ...
spectrum_width (time, z0, y0, x0) float32 13MB ...
reflectivity_hh_clut (time, z0, y0, x0) float32 13MB ...
Attributes:
Conventions: CF-1.6
history: Applying azimuth offset: 0, mod time 2024/09/08 07:02:20\nA...
institution: EOL/NCAR
source:
title: L
comment:
Start time: 2024/05/22-12:55:01 UTC
minLonMosaic = 7
maxLonMosaic = 11
minLatMosaic = 44.5
maxLatMosaic = 47
# Create map for plotting lat/lon grids
def new_map(fig):
## Create projection centered on data
proj = ccrs.PlateCarree()
## New axes with the specified projection:
ax = fig.add_subplot(1, 1, 1, projection=proj)
## Set extent the same as radar mosaic
# ax.set_extent([minLonMosaic, maxLonMosaic, minLatMosaic, maxLatMosaic])
## Add grid lines & labels:
gl = ax.gridlines(
crs=ccrs.PlateCarree(),
draw_labels=True,
linewidth=1,
color="lightgray",
alpha=0.5,
linestyle="--",
)
gl.top_labels = False
gl.left_labels = True
gl.right_labels = False
gl.xlines = True
gl.ylines = True
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
gl.xlabel_style = {"size": 8, "weight": "bold"}
gl.ylabel_style = {"size": 8, "weight": "bold"}
return ax
# Plot column-max reflectivity
figDbzComp = plt.figure(figsize=(8, 8), dpi=150)
axDbzComp = new_map(figDbzComp)
plt.imshow(
dsGridded["reflectivity"].sel(z0=4.5).isel(time=0),
cmap="pyart_Carbone42",
interpolation="bilinear",
origin="lower",
extent=([minLonMosaic, maxLonMosaic, minLatMosaic, maxLatMosaic]),
)
axDbzComp.add_feature(cfeature.BORDERS, linewidth=0.5, edgecolor="black")
axDbzComp.add_feature(cfeature.STATES, linewidth=0.3, edgecolor="brown")
# axDbzComp.coastlines('10m', 'darkgray', linewidth=1, zorder=0)
plt.colorbar(label="DBZ", orientation="vertical", shrink=0.5)
plt.title("Radar DBZ: " + startTimeStr)
Hawkeye¶
We also have an application called HawkEye that displays CfRadial radar data. It’s useful for switching between different sweeps and files.
Afternoon preview¶
Want to learn how to run multi-Doppler analysis using FRACTL and SAMURAI? Join us in the afternoon!
Additional resources¶
More tutorials can be found on our Gateway GitHub repo:
https://
The LROSE wiki can be found here:
http://
The LROSE forum can be found here:
http://