#grib #data #file-reader #binary-data #binary-file #file-search #grib1

grib1_reader

A simple library capable of reading GRIB version 1 files

3 unstable releases

0.2.1 Mar 13, 2024
0.2.0 Mar 5, 2024
0.1.0 Oct 26, 2023

#9 in #grib

MIT/Apache

23KB
435 lines

GRIB1 Reader

Read a GRIB1 file and search for data based on parameter and level values. The results can either be decoded or extracted as a binary blob so it can be saved to a separate file.

Currently only the Grid 10 (RotatedLatLon) data representation type is supported

Usage

Add this to your Cargo.toml:

[dependencies]
grib1_reader = "0.2.0"

and this to your source code:

use grib1_reader::{Grib1Reader, SearchParams};

Example

let file = File::open("data/sample.grib").await?;
let mut reader = Grib1Reader::new(BufReader::new(file));
let result = reader.read(vec![SearchParams { param: 33, level: 700 }]).await?;

println!("Results:");
for grib in result {
    println!("{:#?}", &grib.pds);
    if let Some(gds) = grib.gds {
        println!("{:#?}", &gds);
    }
}

lib.rs:

Read a GRIB1 file and search for data based on parameter and level values. The results can either be decoded or extracted as a binary blob so it can be saved to a separate file. Currently only the Grid 10 (RotatedLatLon) data representation type is supported.

Dependencies

~2.5–8.5MB
~70K SLoC