GRIB format parser for Rust
This is a GRIB format parser library written in Rust programming language. This project aims to provide a set of library and tools which is simple-to-use, efficient, and educational.
GRIB is a concise data format commonly used in meteorology to store historical and forecast weather data. It is intended to be a container of a collection of records of 2D data. GRIB files are huge and binary and should be processed efficiently. Also, since GRIB is designed to support various grid types and data compression using parameters defined in external code tables and templates, some popular existing softwares cannot handle some GRIB data.
A world where everyone can read weather data easily although its interpretation needs some specific knowledge and experience.
grib
gribber
built on the top of the Rust library
Please check the ROADMAP to see planned features.
API Documentation of the released version of the library crate is available on Docs.rs although it is not extensive. The development version is available on GitHub Pages.
The examples may help you understand the API. The functionality is still inadequate, and we are working on expanding the basic functionality as our top priority in this project, so we would be happy to receive any requests.
gribber
``` Usage: gribber [COMMAND]
Commands: decode Export decoded data info Show identification information inspect Inspect and describes the data structure list List surfaces contained in the data help Print this message or the help of the given subcommand(s)
Options: -h, --help Print help information -V, --version Print version information ```
Note that binaries exported from gribber decode --big-endian
use 0x7fc00000
as a missing value, although those from wgrib
use 0x6258d19a
.
This repository uses the submodules functionality of Git. So, before running cargo build
, please add submodules in one of following ways:
--recursive
to git clone
will automatically clone submodules in addition to this repositorygit submodule update --init --recursive
after cloning will update the repository to have submodulesThen you can build it in the usual way in the Rust world.
cargo build
Contribution is always welcome. Please check CONTRIBUTING.md if you are interested.
This project is licensed under either of
at your option.
SPDX-License-Identifier: Apache-2.0 OR MIT