NEXRAD
Download and decode functions for NEXRAD radar data.
Summary
This library provides functions to download and decode NEXRAD Level II data from AWS uploaded in near real-time by NOAA.
An EF4 tornado near Des Moines, IA on March 5, 2022 rendered using this library's "render" example.
Downloading
The download feature may be enabled to download NEXRAD Level II data from AWS. For more information on this data
source, see the Registry of Open Data's page. As the radar rotates or
"sweeps" it collects data which is aggregated into messages. The messages are broken into 5-minute "chunks" before being
compressed and uploaded to AWS.
The data is organized by site and date. Here is an example of downloading the first file for April 6, 2023 from KDMX:
let site = "KDMX";
let date = from_ymd_opt.expect;
let metas = list_files.await?;
if let Some = metas.first else
In this example, list_files is being used to query which files are available for the specified site and date, and
download_file is used to download the contents of the first file. The downloaded file will need to be decompressed and
decoded before the data can be inspected.
Decompression
Raw data files are compressed with bzip2 and must be decompressed prior to decoding. Here is an example of decompressing a file:
let compressed_file = ...;
println!;
println!;
let decompressed_file = decompress_file?;
println!;
println!;
Decoding
A decompressed data file consists of binary-encoded messages containing sweep data. Here is an example of decoding a file:
let decompressed_file = ...;
let decoded = decode_file?;
println!;
Rendering
A downloaded file can be rendered to an image using the render example. Here is an example usage and the result:
cargo run --example render KDMX20220305_233003_V06
Acknowledgements
I consulted the following resources when developing this library: