Level3File

class metpy.io.Level3File(filename)[source]

Handle reading the wide array of NEXRAD Level 3 (NIDS) product files.

This class attempts to decode every byte that is in a given product file. It supports all of the various compression formats that exist for these products in the wild.

metadata

Various general metadata available from the product

Type

dict

header

Decoded product header

Type

namedtuple

prod_desc

Decoded product description block

Type

namedtuple

siteID

ID of the site found in the header, empty string if none found

Type

str

lat

Radar site latitude

Type

float

lon

Radar site longitude

Type

float

height

Radar site height AMSL

Type

float

product_name

Name of the product contained in file

Type

str

max_range

Maximum range of the product, taken from the NIDS ICD

Type

float

map_data

Class instance mapping data int values to proper floating point values

Type

Mapper

sym_block

Any symbology block packets that were found

Type

list, optional

tab_pages

Any tabular pages that were found

Type

list, optional

graph_pages

Any graphical pages that were found

Type

list, optional

Notes

The internal data structure that things are decoded into is still to be determined.

Create instance of Level3File.

Parameters

filename (str or file-like object) – If str, the name of the file to be opened. If file-like object, this will be read from directly.

Attributes Summary

additional_gsm_fmt

digital_radial_fmt

digital_radial_hdr_fmt

graph_block_fmt

gsm_fmt

header_fmt

ij_to_km

packet_map

prod_desc_fmt

prod_spec_map

standalone_tabular

sym_block_fmt

sym_layer_fmt

tab_block_fmt

tab_header_fmt

wmo_finder

Methods Summary

__init__(filename)

Create instance of Level3File.

pos_scale(is_sym_block)

Scale of the position information in km.

Attributes Documentation

additional_gsm_fmt = <metpy.io._tools.NamedStruct object>
digital_radial_fmt = <metpy.io._tools.NamedStruct object>
digital_radial_hdr_fmt = <metpy.io._tools.NamedStruct object>
graph_block_fmt = <metpy.io._tools.NamedStruct object>
gsm_fmt = <metpy.io._tools.NamedStruct object>
header_fmt = <metpy.io._tools.NamedStruct object>
ij_to_km = 0.25
packet_map = {1: <function Level3File._unpack_packet_uniform_text>, 2: <function Level3File._unpack_packet_special_text_symbol>, 3: <function Level3File._unpack_packet_special_graphic_symbol>, 4: <function Level3File._unpack_packet_wind_barbs>, 6: <function Level3File._unpack_packet_linked_vector>, 8: <function Level3File._unpack_packet_uniform_text>, 10: <function Level3File._unpack_packet_vector>, 11: <function Level3File._unpack_packet_special_graphic_symbol>, 12: <function Level3File._unpack_packet_special_graphic_symbol>, 13: <function Level3File._unpack_packet_special_graphic_symbol>, 14: <function Level3File._unpack_packet_special_graphic_symbol>, 15: <function Level3File._unpack_packet_special_graphic_symbol>, 16: <function Level3File._unpack_packet_digital_radial>, 17: <function Level3File._unpack_packet_digital_precipitation>, 18: <function Level3File._unpack_packet_digital_precipitation>, 19: <function Level3File._unpack_packet_special_graphic_symbol>, 20: <function Level3File._unpack_packet_special_graphic_symbol>, 21: <function Level3File._unpack_packet_cell_trend>, 22: <function Level3File._unpack_packet_trend_times>, 23: <function Level3File._unpack_packet_scit>, 24: <function Level3File._unpack_packet_scit>, 25: <function Level3File._unpack_packet_special_graphic_symbol>, 26: <function Level3File._unpack_packet_special_graphic_symbol>, 28: <function Level3File._unpack_packet_generic>, 29: <function Level3File._unpack_packet_generic>, 2050: <function Level3File._unpack_packet_contour_color>, 3587: <function Level3File._unpack_packet_linked_contour>, 44831: <function Level3File._unpack_packet_radial_data>, 47623: <function Level3File._unpack_packet_raster_data>}
prod_desc_fmt = <metpy.io._tools.NamedStruct object>
prod_spec_map = {16: ('Base Reflectivity', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('calib_const', <function float_elem.<locals>.<lambda>>))), 17: ('Base Reflectivity', 460.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('calib_const', <function float_elem.<locals>.<lambda>>))), 18: ('Base Reflectivity', 460.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('calib_const', <function float_elem.<locals>.<lambda>>))), 19: ('Base Reflectivity', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>), ('calib_const', <function float_elem.<locals>.<lambda>>))), 20: ('Base Reflectivity', 460.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>), ('calib_const', <function float_elem.<locals>.<lambda>>))), 21: ('Base Reflectivity', 460.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('calib_const', <function float_elem.<locals>.<lambda>>))), 22: ('Base Velocity', 60.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', 3), ('max', 4))), 23: ('Base Velocity', 115.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', 3), ('max', 4))), 24: ('Base Velocity', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', 3), ('max', 4))), 25: ('Base Velocity', 60.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', 3), ('max', 4))), 26: ('Base Velocity', 115.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', 3), ('max', 4))), 27: ('Base Velocity', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', 3), ('max', 4), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>))), 28: ('Base Spectrum Width', 60.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3))), 29: ('Base Spectrum Width', 115.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3))), 30: ('Base Spectrum Width', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>))), 31: ('User Selectable Storm Total Precipitation', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('end_hour', 0), ('hour_span', 1), ('null_product', 2), ('max_rainfall', <function scaled_elem.<locals>.inner>), ('rainfall_begin', <function date_elem.<locals>.inner>), ('rainfall_end', <function date_elem.<locals>.inner>), ('bias', <function scaled_elem.<locals>.inner>), ('gr_pairs', <function scaled_elem.<locals>.inner>))), 32: ('Digital Hybrid Scan Reflectivity', 230.0, <class 'metpy.io.nexrad.DigitalRefMapper'>, (('max', 3), ('avg_time', <function date_elem.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 33: ('Hybrid Scan Reflectivity', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('max', 3), ('avg_time', <function date_elem.<locals>.inner>))), 34: ('Clutter Filter Control', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('clutter_bitmap', 0), ('cmd_map', 1), ('bypass_map_date', <function date_elem.<locals>.inner>), ('notchwidth_map_date', <function date_elem.<locals>.inner>))), 35: ('Composite Reflectivity', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('calib_const', <function float_elem.<locals>.<lambda>>))), 36: ('Composite Reflectivity', 460.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('calib_const', <function float_elem.<locals>.<lambda>>))), 37: ('Composite Reflectivity', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('calib_const', <function float_elem.<locals>.<lambda>>))), 38: ('Composite Reflectivity', 460.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('calib_const', <function float_elem.<locals>.<lambda>>))), 41: ('Echo Tops', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>))), 48: ('VAD Wind Profile', None, <class 'metpy.io.nexrad.LegacyMapper'>, (('max', 3), ('dir_max', 4), ('alt_max', <function scaled_elem.<locals>.inner>))), 50: ('Cross Section Reflectivity', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('azimuth1', <function scaled_elem.<locals>.inner>), ('range1', <function scaled_elem.<locals>.inner>), ('azimuth2', <function scaled_elem.<locals>.inner>), ('range2', <function scaled_elem.<locals>.inner>))), 51: ('Cross Section Velocity', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('azimuth1', <function scaled_elem.<locals>.inner>), ('range1', <function scaled_elem.<locals>.inner>), ('azimuth2', <function scaled_elem.<locals>.inner>), ('range2', <function scaled_elem.<locals>.inner>))), 55: ('Storm Relative Mean Radial Velocity', 50.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('window_az', <function scaled_elem.<locals>.inner>), ('window_range', <function scaled_elem.<locals>.inner>), ('el_angle', <function scaled_elem.<locals>.inner>), ('min', 3), ('max', 4), ('source', 5), ('height', 6), ('avg_speed', <function scaled_elem.<locals>.inner>), ('avg_dir', <function scaled_elem.<locals>.inner>), ('alert_category', 9))), 56: ('Storm Relative Mean Radial Velocity', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', 3), ('max', 4), ('source', 5), ('avg_speed', <function scaled_elem.<locals>.inner>), ('avg_dir', <function scaled_elem.<locals>.inner>))), 57: ('Vertically Integrated Liquid', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3))), 58: ('Storm Tracking Information', 460.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('num_storms', 3),)), 59: ('Hail Index', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, ()), 61: ('Tornado Vortex Signature', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('num_tvs', 3), ('num_etvs', 4))), 62: ('Storm Structure', 460.0, <class 'metpy.io.nexrad.LegacyMapper'>, ()), 63: ('Layer Composite Reflectivity (Layer 1 Average)', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('max', 3), ('layer_bottom', <function scaled_elem.<locals>.inner>), ('layer_top', <function scaled_elem.<locals>.inner>), ('calib_const', <function float_elem.<locals>.<lambda>>))), 64: ('Layer Composite Reflectivity (Layer 2 Average)', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('max', 3), ('layer_bottom', <function scaled_elem.<locals>.inner>), ('layer_top', <function scaled_elem.<locals>.inner>), ('calib_const', <function float_elem.<locals>.<lambda>>))), 65: ('Layer Composite Reflectivity (Layer 1 Max)', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('layer_bottom', <function scaled_elem.<locals>.inner>), ('layer_top', <function scaled_elem.<locals>.inner>), ('calib_const', <function float_elem.<locals>.<lambda>>))), 66: ('Layer Composite Reflectivity (Layer 2 Max)', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('layer_bottom', <function scaled_elem.<locals>.inner>), ('layer_top', <function scaled_elem.<locals>.inner>), ('calib_const', <function float_elem.<locals>.<lambda>>))), 67: ('Layer Composite Reflectivity - AP Removed', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('layer_bottom', <function scaled_elem.<locals>.inner>), ('layer_top', <function scaled_elem.<locals>.inner>), ('calib_const', <function float_elem.<locals>.<lambda>>))), 74: ('Radar Coded Message', 460.0, <class 'metpy.io.nexrad.LegacyMapper'>, ()), 78: ('Surface Rainfall Accumulation (1 hour)', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('max_rainfall', <function scaled_elem.<locals>.inner>), ('bias', <function scaled_elem.<locals>.inner>), ('gr_pairs', <function scaled_elem.<locals>.inner>), ('rainfall_end', <function date_elem.<locals>.inner>))), 79: ('Surface Rainfall Accumulation (3 hour)', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('max_rainfall', <function scaled_elem.<locals>.inner>), ('bias', <function scaled_elem.<locals>.inner>), ('gr_pairs', <function scaled_elem.<locals>.inner>), ('rainfall_end', <function date_elem.<locals>.inner>))), 80: ('Storm Total Rainfall Accumulation', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('max_rainfall', <function scaled_elem.<locals>.inner>), ('rainfall_begin', <function date_elem.<locals>.inner>), ('rainfall_end', <function date_elem.<locals>.inner>), ('bias', <function scaled_elem.<locals>.inner>), ('gr_pairs', <function scaled_elem.<locals>.inner>))), 81: ('Hourly Digital Precipitation Array', 230.0, <class 'metpy.io.nexrad.PrecipArrayMapper'>, (('max_rainfall', <function scaled_elem.<locals>.inner>), ('bias', <function scaled_elem.<locals>.inner>), ('gr_pairs', <function scaled_elem.<locals>.inner>), ('rainfall_end', <function date_elem.<locals>.inner>))), 82: ('Supplemental Precipitation Data', None, <class 'metpy.io.nexrad.LegacyMapper'>, ()), 89: ('Layer Composite Reflectivity (Layer 3 Average)', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('max', 3), ('layer_bottom', <function scaled_elem.<locals>.inner>), ('layer_top', <function scaled_elem.<locals>.inner>), ('calib_const', <function float_elem.<locals>.<lambda>>))), 90: ('Layer Composite Reflectivity (Layer 3 Max)', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('layer_bottom', <function scaled_elem.<locals>.inner>), ('layer_top', <function scaled_elem.<locals>.inner>), ('calib_const', <function float_elem.<locals>.<lambda>>))), 93: ('ITWS Digital Base Velocity', 115.0, <class 'metpy.io.nexrad.DigitalVelMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', 3), ('max', 4), ('precision', 6))), 94: ('Base Reflectivity Data Array', 460.0, <class 'metpy.io.nexrad.DigitalRefMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 95: ('Composite Reflectivity Edited for AP', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('calib_const', <function float_elem.<locals>.<lambda>>))), 96: ('Composite Reflectivity Edited for AP', 460.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('calib_const', <function float_elem.<locals>.<lambda>>))), 97: ('Composite Reflectivity Edited for AP', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('calib_const', <function float_elem.<locals>.<lambda>>))), 98: ('Composite Reflectivity Edited for AP', 460.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('calib_const', <function float_elem.<locals>.<lambda>>))), 99: ('Base Velocity Data Array', 300.0, <class 'metpy.io.nexrad.DigitalVelMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', 3), ('max', 4), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 113: ('Power Removed Control', 300.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('rpg_cut_num', 0), ('cmd_generated', 1), ('el_angle', <function scaled_elem.<locals>.inner>), ('clutter_filter_map_dt', <function date_elem.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 132: ('Clutter Likelihood Reflectivity', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>))), 133: ('Clutter Likelihood Doppler', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>))), 134: ('High Resolution VIL', 460.0, <class 'metpy.io.nexrad.DigitalVILMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('num_edited', 4), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 135: ('Enhanced Echo Tops', 345.0, <class 'metpy.io.nexrad.DigitalEETMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>), ('num_edited', 4), ('ref_thresh', 5), ('points_removed', 6), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 138: ('Digital Storm Total Precipitation', 230.0, <class 'metpy.io.nexrad.DigitalStormPrecipMapper'>, (('rainfall_begin', <function date_elem.<locals>.inner>), ('bias', <function scaled_elem.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>), ('rainfall_end', <function date_elem.<locals>.inner>), ('gr_pairs', <function scaled_elem.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 141: ('Mesocyclone Detection', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('min_ref_thresh', 0), ('overlap_display_filter', 1), ('min_strength_rank', 2))), 152: ('Archive III Status Product', None, <class 'metpy.io.nexrad.LegacyMapper'>, (('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 153: ('Super Resolution Reflectivity Data Array', 460.0, <class 'metpy.io.nexrad.DigitalRefMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 154: ('Super Resolution Velocity Data Array', 300.0, <class 'metpy.io.nexrad.DigitalVelMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', 3), ('max', 4), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 155: ('Super Resolution Spectrum Width Data Array', 300.0, <class 'metpy.io.nexrad.DigitalSPWMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 156: ('Turbulence Detection (Eddy Dissipation Rate)', 230.0, <class 'metpy.io.nexrad.EDRMapper'>, (('el_start_time', 0), ('el_end_time', 1), ('el_angle', <function scaled_elem.<locals>.inner>), ('min_el', <function scaled_elem.<locals>.inner>), ('mean_el', <function scaled_elem.<locals>.inner>), ('max_el', <function scaled_elem.<locals>.inner>))), 157: ('Turbulence Detection (Eddy Dissipation Rate Confidence)', 230.0, <class 'metpy.io.nexrad.EDRMapper'>, (('el_start_time', 0), ('el_end_time', 1), ('el_angle', <function scaled_elem.<locals>.inner>), ('min_el', <function scaled_elem.<locals>.inner>), ('mean_el', <function scaled_elem.<locals>.inner>), ('max_el', <function scaled_elem.<locals>.inner>))), 158: ('Differential Reflectivity', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', <function scaled_elem.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>))), 159: ('Digital Differential Reflectivity', 300.0, <class 'metpy.io.nexrad.GenericDigitalMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', <function scaled_elem.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 160: ('Correlation Coefficient', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', <function scaled_elem.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>))), 161: ('Digital Correlation Coefficient', 300.0, <class 'metpy.io.nexrad.GenericDigitalMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', <function scaled_elem.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 162: ('Specific Differential Phase', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', <function scaled_elem.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>))), 163: ('Digital Specific Differential Phase', 300.0, <class 'metpy.io.nexrad.GenericDigitalMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', <function scaled_elem.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 164: ('Hydrometeor Classification', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>),)), 165: ('Digital Hydrometeor Classification', 300.0, <class 'metpy.io.nexrad.DigitalHMCMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 166: ('Melting Layer', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>))), 167: ('Super Res Digital Correlation Coefficient', 300.0, <class 'metpy.io.nexrad.GenericDigitalMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', <function scaled_elem.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 168: ('Super Res Digital Phi', 300.0, <class 'metpy.io.nexrad.GenericDigitalMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', 3), ('max', 4), ('delta_time', <function delta_time.<locals>.inner>), ('supplemental_scan', <function supplemental_scan.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 169: ('One Hour Accumulation', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('null_product', <function low_byte.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>), ('rainfall_end', <function date_elem.<locals>.inner>), ('bias', <function scaled_elem.<locals>.inner>), ('gr_pairs', <function scaled_elem.<locals>.inner>))), 170: ('Digital Accumulation Array', 230.0, <class 'metpy.io.nexrad.GenericDigitalMapper'>, (('null_product', <function low_byte.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>), ('rainfall_end', <function date_elem.<locals>.inner>), ('bias', <function scaled_elem.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 171: ('Storm Total Accumulation', 230.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('rainfall_begin', <function date_elem.<locals>.inner>), ('null_product', <function low_byte.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>), ('rainfall_end', <function date_elem.<locals>.inner>), ('bias', <function scaled_elem.<locals>.inner>), ('gr_pairs', <function scaled_elem.<locals>.inner>))), 172: ('Digital Storm Total Accumulation', 230.0, <class 'metpy.io.nexrad.GenericDigitalMapper'>, (('rainfall_begin', <function date_elem.<locals>.inner>), ('null_product', <function low_byte.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>), ('rainfall_end', <function date_elem.<locals>.inner>), ('bias', <function scaled_elem.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 173: ('Digital User-Selectable Accumulation', 230.0, <class 'metpy.io.nexrad.GenericDigitalMapper'>, (('period', 1), ('missing_period', <function high_byte.<locals>.inner>), ('null_product', <function low_byte.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>), ('rainfall_end', <function date_elem.<locals>.inner>), ('start_time', 5), ('bias', <function scaled_elem.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 174: ('Digital One-Hour Difference Accumulation', 230.0, <class 'metpy.io.nexrad.GenericDigitalMapper'>, (('max', <function scaled_elem.<locals>.inner>), ('rainfall_end', <function date_elem.<locals>.inner>), ('min', <function scaled_elem.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 175: ('Digital Storm Total Difference Accumulation', 230.0, <class 'metpy.io.nexrad.GenericDigitalMapper'>, (('rainfall_begin', <function date_elem.<locals>.inner>), ('null_product', <function low_byte.<locals>.inner>), ('max', <function scaled_elem.<locals>.inner>), ('rainfall_end', <function date_elem.<locals>.inner>), ('min', <function scaled_elem.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 176: ('Digital Instantaneous Precipitation Rate', 230.0, <class 'metpy.io.nexrad.GenericDigitalMapper'>, (('rainfall_begin', <function date_elem.<locals>.inner>), ('precip_detected', <function high_byte.<locals>.inner>), ('need_bias', <function low_byte.<locals>.inner>), ('max', 3), ('percent_filled', <function scaled_elem.<locals>.inner>), ('max_elev', <function scaled_elem.<locals>.inner>), ('bias', <function scaled_elem.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 177: ('Hybrid Hydrometeor Classification', 230.0, <class 'metpy.io.nexrad.DigitalHMCMapper'>, (('mode_filter_size', 3), ('hybrid_percent_filled', 4), ('max_elev', <function scaled_elem.<locals>.inner>), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 180: ('TDWR Base Reflectivity', 90.0, <class 'metpy.io.nexrad.DigitalRefMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 181: ('TDWR Base Reflectivity', 90.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3))), 182: ('TDWR Base Velocity', 90.0, <class 'metpy.io.nexrad.DigitalVelMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', 3), ('max', 4), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 183: ('TDWR Base Velocity', 90.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('min', 3), ('max', 4))), 185: ('TDWR Base Spectrum Width', 90.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3))), 186: ('TDWR Long Range Base Reflectivity', 416.0, <class 'metpy.io.nexrad.DigitalRefMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3), ('compression', 7), ('uncompressed_size', <function combine_elem.<locals>.inner>))), 187: ('TDWR Long Range Base Reflectivity', 416.0, <class 'metpy.io.nexrad.LegacyMapper'>, (('el_angle', <function scaled_elem.<locals>.inner>), ('max', 3)))}
standalone_tabular = [62, 73, 75, 82]
sym_block_fmt = <metpy.io._tools.NamedStruct object>
sym_layer_fmt = <metpy.io._tools.NamedStruct object>
tab_block_fmt = <metpy.io._tools.NamedStruct object>
tab_header_fmt = <metpy.io._tools.NamedStruct object>
wmo_finder = re.compile('((?:NX|SD|NO)US)\\d{2}[\\s\\w\\d]+\\w*(\\w{3})\r\r\n')

Methods Documentation

__init__(filename)[source]

Create instance of Level3File.

Parameters

filename (str or file-like object) – If str, the name of the file to be opened. If file-like object, this will be read from directly.

static pos_scale(is_sym_block)[source]

Scale of the position information in km.

Examples using metpy.io.Level3File