Nexrad.NET
1.1.1
test/debug code left in the textheader class that prints stuff. not a crash causer by any means but kinda clogs the output. use anyway if you dont care about it because its still perfectly functional
See the version list below for details.
dotnet add package Nexrad.NET --version 1.1.1
NuGet\Install-Package Nexrad.NET -Version 1.1.1
<PackageReference Include="Nexrad.NET" Version="1.1.1" />
<PackageVersion Include="Nexrad.NET" Version="1.1.1" />
<PackageReference Include="Nexrad.NET" />
paket add Nexrad.NET --version 1.1.1
#r "nuget: Nexrad.NET, 1.1.1"
#:package Nexrad.NET@1.1.1
#addin nuget:?package=Nexrad.NET&version=1.1.1
#tool nuget:?package=Nexrad.NET&version=1.1.1
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. This comparison can be done directly because the Level3 object is a record that does value based equality.
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 == 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:
- Storm Structure (code=62)
- Melting Layer (code=166)
- Digital Precipitation Array (code=81)
- 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 | Versions 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. |
-
net8.0
- SharpCompress (>= 0.48.0)
-
net9.0
- SharpCompress (>= 0.48.0)
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.