You are here

Decoding Utilities and Examples

Downloaded radar data is in a unique digital binary format. Special software must be used to decode the data. Several free and currently supported decoders are available for download.

Level-2 NEXRAD BZip2 Block Decoder

The real-time NEXRAD Level-2 data transmission uses several blocks of data per sweep. These blocks include header and data sections. The data sections are compressed using bzip2 compression. Full volume scan files are created by concatenating the blocks together, ordered in time from the first to last block of the volume scan. The resulting format of the volume scan files is unique and will not decompress with standard bzip2 decompression tools. The files in the NCEI archive do not use the bzip2 block compression and exist in the uncompressed Message-1 or Message-31 format, with gzip compression applied to the entire file. Several decoders are available for the bzip2 block compression, including decoders integrated into the Unidata NetCDF-Java library and Deptartment of Energy (DOE) PyART.  

NCEI uses a standalone Java version, which only depends on the Apache Commons Compress library.

Java Radar Decoder

The Network Common Data Format (NetCDF) is a set of software libraries and self-describing, machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data. The NetCDF for Java API from Unidata is used to decode radar data. The NetCDF for Java API includes several decoders that allow non-NetCDF formats to be read as if they are native NetCDF. Level-II and Level-III Next Generation Radar (NEXRAD) formats are supported.

The decoders do not use native code and run easily on all Java-supported operating systems, including Windows, Mac, and Linux. The application "toolsUI" is part of this API, and it provides a debugging tool for NetCDF. For convenience, the "toolsUI" is distributed as a single bundled Java library (.jar) file with all dependencies included. This "toolsUI.jar" file is the only file needed to run the examples below. The examples use version 4.0 of "toolsUI" and the NetCDF for Java library.

Java Radar Decoding Examples

  • Easy Solution
    This example converts NEXRAD data into NetCDF format, which is readable by many software packages on virtually all platforms. There is no need for programming.
  • Java Solution
    This example reads NEXRAD data with the NetCDF for Java API into objects that represent the sweeps, rays, etc. With this approach, you do not have to deal with NetCDF dimensions, attributes, and variables.

Python Radar Decoder

Py-ART (Python ART Radar Toolkit)
Py-ART is a Python module containing a collection of weather radar algorithms and utilities. Py-ART has the ability to ingest (read) from a number of common weather radar formats including Sigmet/IRIS, MDV, CF/Radial, UF, and NEXRAD Level II archive files. Radar data can be written to NetCDF files that conform to the CF/Radial convention.

C Radar Decoder

NASA RSL (TRMM Radar Software Library)
This library is an object oriented programming environment for writing software applicable to all radar data related to the TRMM GV effort. This library reads the WSR88D, Lassen, Sigmet, McGill, UF, HDF, RADTEC and native RSL file formats. Additional functions are provided to manipulate the RSL objects.

C++ Radar Decoder

University Corporation for Atmospheric Research (UCAR) Radx Library
The Radx C++ library was developed at the National Center for Atmospheric Research to provide support for the new CfRadial radar data format, and to provide translation between common radar data formats. The library includes several command-line utilities and conversion between several radar formats, including NEXRAD.