Skip to article frontmatterSkip to article content

An Introduction to LROSE

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:

  1. LROSE Overview
  2. LROSE on the Command Line
  3. LROSE Parameter Files
  4. Inspect the Data
  5. Format Conversion
  6. Simple Gridding
  7. 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://github.com/nsf-lrose/lrose-hub

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://lists.colostate.edu/cgi-bin/mailman/listinfo/lrose-users

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()
<Figure size 1000x1000 with 8 Axes>

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)
<Figure size 1200x1200 with 2 Axes>

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://github.com/nsf-lrose/lrose-hub

The LROSE wiki can be found here: http://wiki.lrose.net/index.php/Main_Page#

The LROSE forum can be found here: http://forum.lrose.net/