Nexrad.NET 1.0.2

dotnet add package Nexrad.NET --version 1.0.2
                    
NuGet\Install-Package Nexrad.NET -Version 1.0.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Nexrad.NET" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Nexrad.NET" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="Nexrad.NET" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Nexrad.NET --version 1.0.2
                    
#r "nuget: Nexrad.NET, 1.0.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Nexrad.NET@1.0.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Nexrad.NET&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=Nexrad.NET&version=1.0.2
                    
Install as a Cake Tool

Nexrad.NET


Nexrad.NET is a C# library created for the purpose of reading and processing NEXRAD Level 3 radar files.

Overview


Basic Usage

This library is pretty straightfoward in its usage. Here is a basic example of decoding a super resolution base reflectivity file:

BinaryReader reader = new(File.OpenRead("super_res_base_ref_file"));
Level3 level3 = new(ref reader);

Comparison

Level3 objects can be compared to check if they are the same radar data.

BinaryReader reader = new(File.OpenRead("super_res_base_ref_file"));
Level3 level3_1 = new(ref reader);
Level3 level3_2 = new(ref reader);
Console.WriteLine(level3_1.compare(level3_2)); // will output "true" because both of these contain the same radar data

Arguments

The Level3 object has different arguments. They are specified as:

Level3 level3 = new(
    ref reader, // binary reader, which is always required and is the only required arg. (must be passed as reference via ref keyword)
    processingStages = 0b111, // processing stages. see below for more details.
    textHeaderLength = -1, // the length of the text header, if known. default value is -1.
    guessFormat = true, // tells the object to try to guess the format and text header length. default value is true.
    enableDebuggingLogging = true // tells the object to output to console for logging reasons.
);

Unsupported Products

Currently, there are 4 unsupported products that may get support in the future. Those products are:

  1. Storm Structure (code=62)
  2. Melting Layer (code=166)
  3. Digital Precipitation Array (code=81)
  4. Supplemental Precipitation Data (code=82)

Processing Stages

The Level3 object has a processing stages argument which tells the class what parts of the product to decode. The value is structured as "0b111". This value is composed of 3 bits, each one telling the program what part to decode.

Basic overview of the bit stucture:

0b111
  ^^^
  |||
  ||⤷ Bit 3. Decode symbology block if set to 1.
  |⤷ Bit 2. Decode graphic block if set to 1.
  ⤷ Bit 1. Decode tabular block if set to 1.

Setting any of the bits to 0 will make that block not get processed. Can be used to save memory and processing time if you do not need the other blocks.
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Nexrad.NET:

Package Downloads
SPCNet

An API made to gather data from the Storm Prediction Center (and other US meteorology agencies), and compile it into an easy to use format.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2 87 7/30/2025
1.0.1 85 7/30/2025
1.0.0 202 7/26/2025

Fixed parsing errors for other products