Skip to main content

Decoding Utilities and Examples

Radar data needs to be decoded with special software before it can be opened. Several free and currently supported decoders are available, including the following programs:

Level-2 NEXRAD BZip2 Block Decoder

The real-time Next Generation Weather Radar (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. Full volume scan files are created by linking together blocks and arranging them based on scanning order . The 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 Department of Energy (DOE) PyART.

NCEI uses a standalone Java version that 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 can read non-NetCDF formats. The API supports Level-II and Level-III NEXRAD formats.

The decoders do not use native code but, do run 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. 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. It does not require any 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 is a Python module containing a collection of weather radar algorithms and utilities. Py-ART has the ability to 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.

Py-ART (Python ART Radar Toolkit)

C Radar Decoder

This library is an object oriented programming environment for writing software applicable to all radar data related to the Tropical Rainfall Measurement Mission (TRMM) Global Vegetation (GV) effort. This library reads the following:

  • WSR88D
  • Lassen
  • Sigmet
  • McGill
  • UH
  • HDF
  • Native RSL file formats*

*Additional functions are provided to manipulate the RSL objects.

NASA RSL (TRMM Radar Software Library)

C++ Radar Decoder

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

University Corporation for Atmospheric Research (UCAR) Radx Library