All Projects → noritada → grib-rs

noritada / grib-rs

Licence: Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT
GRIB format parser for Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to grib-rs

grib
Golang GRIB2 parser
Stars: ✭ 41 (+78.26%)
Mutual labels:  weather, meteorology, grib, grib2
gis4wrf
QGIS toolkit 🧰 for pre- and post-processing 🔨, visualizing 🔍, and running simulations 💻 in the Weather Research and Forecasting (WRF) model 🌀
Stars: ✭ 137 (+495.65%)
Mutual labels:  weather, meteorology, grib
gribr
GRIB interface for R using ECMWF ecCodes
Stars: ✭ 18 (-21.74%)
Mutual labels:  weather, meteorology, grib
improver
IMPROVER is a library of algorithms for meteorological post-processing.
Stars: ✭ 76 (+230.43%)
Mutual labels:  weather, meteorology
Herbie
Python for downloading model data (HRRR, RAP, GFS, NBM, etc.) from NOMADS, NOAA's Big Data Program partners (Amazon, Google, Microsoft), ECMWF open data, and the University of Utah Pando Archive System.
Stars: ✭ 92 (+300%)
Mutual labels:  grib, grib2
wetterdienst
Open weather data for humans
Stars: ✭ 190 (+726.09%)
Mutual labels:  weather, meteorology
python-awips
A framework for querying AWIPS meteorological datasets from an EDEX Data Server.
Stars: ✭ 31 (+34.78%)
Mutual labels:  weather, meteorology
nmc met io
提供对MICAPS文件, 卫星云图, 天气雷达等数据的读写, 并访问CIMISS和MICAPS CASSANDRA数据库文件等.
Stars: ✭ 77 (+234.78%)
Mutual labels:  weather, meteorology
wind-js-server
Service to expose Grib2 wind forecast data as JSON
Stars: ✭ 98 (+326.09%)
Mutual labels:  weather, grib
AnimatedEnvironmentLayer
A custom arcgis js api layer to display GRIB data formatted as json as animated particles on a canvas
Stars: ✭ 41 (+78.26%)
Mutual labels:  weather, grib
ArduinoWeatherOS
Arduino Uno, 433MhzRx and OS WMR86 Weather Station
Stars: ✭ 69 (+200%)
Mutual labels:  weather
ponyweather
Android weather app use rxjava&retrofit&material design
Stars: ✭ 79 (+243.48%)
Mutual labels:  weather
weather icons
Flutter library for using erikflowers/weather-icons. An icon pack with over 200 weather icons.
Stars: ✭ 12 (-47.83%)
Mutual labels:  weather
darksky
Forecast.io API wrapper in Go (Golang)
Stars: ✭ 74 (+221.74%)
Mutual labels:  weather
1pone.github.io
Kindle拯救计划——一个Kindle实用工具网站,让你吃灰的Kindle成为时钟、天气看板、电子相册、微博热搜榜单...
Stars: ✭ 150 (+552.17%)
Mutual labels:  weather
nuxt-weather
This weather app is just my sandbox to play with SSR and Nuxt.js ⛱️
Stars: ✭ 30 (+30.43%)
Mutual labels:  weather
tmux-weather
🌤 Weather plugin for tmux
Stars: ✭ 40 (+73.91%)
Mutual labels:  weather
MeteoalarmCard
Meteoalarm, Météo-France and DWD severe weather warnings card for Home Assistant Lovelace UI ⛈️
Stars: ✭ 48 (+108.7%)
Mutual labels:  weather
Perfect-Weather
Demonstrate using URL Routes & variables, Fetching of remote data from API's as JSON, reading and transforming to data more appropriately consumable by an API client.
Stars: ✭ 32 (+39.13%)
Mutual labels:  weather
File-Maker
Generate data files for Wii Channels that have the latest news, forecast data, etc.
Stars: ✭ 65 (+182.61%)
Mutual labels:  weather

grib-rs

docs Crates.io dependency status License (Apache 2.0) License (MIT) Build

GRIB format parser for Rust

About

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.

Vision

A world where everyone can read weather data easily although its interpretation needs some specific knowledge and experience.

Features

  • Rust library grib
    • Ability to read and check the basic structure of GRIB2
    • Ability to access data inside the GRIB2 message:
      • List of surfaces
      • Some parameters of each surface, which are important for most users
      • Underlying sections which make up surfaces and the entire data
    • Support for some code tables defined by WMO
    • Decoding feature supporting following templates:
      • Template 5.0/7.0 (simple packing)
      • Template 5.3/7.3 (complex packing)
      • Template 5.40/7.40 (JPEG 2000 code stream format)
      • Template 5.200/7.200 (run-length encoding)
  • CLI application gribber built on the top of the Rust library
    • 4 subcommends:
      • decode: data export as text and flat binary files
      • info: display of identification information
      • inspect: display of information mainly for development purpose such as template numbers
      • list: display of parameters for each surface inside

Planned features

Please check the ROADMAP to see planned features.

API

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.

CLI application gribber

USAGE:
    gribber [SUBCOMMAND]

OPTIONS:
    -h, --help       Print help information
    -V, --version    Print version information

SUBCOMMANDS:
    decode     Export decoded data
    help       Print this message or the help of the given subcommand(s)
    info       Show identification information
    inspect    Inspect and describes the data structure
    list       List surfaces contained in the data

Note that binaries exported from gribber decode --big-endian use 0x7fc00000 as a missing value, although those from wgrib use 0x6258d19a.

Building

This repository uses the submodules functionality of Git. So, before running cargo build, please add submodules in one of following ways:

  • Cloning with submodules: adding --recursive to git clone will automatically clone submodules in addition to this repository
  • Adding submodules after cloning: running git submodule update --init --recursive after cloning will update the repository to have submodules

Then you can build it in the usual way in the Rust world.

cargo build

Contributing

Contribution is always welcome. Please check CONTRIBUTING.md if you are interested.

License

This project is licensed under either of

at your option.

SPDX-License-Identifier: Apache-2.0 OR MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].