Hi all,
I've been working on building containerized data pipelines to process large-scale meteorological observations and forecasts. Go is my favorite platform to build these with because I can achieve very small, high-performance containers.
To do this, I needed to read the grib2 file format. It's a highly compressed and esoteric storage format for gridded weather data. Many of the NOAA's flagship forecasts publish their data into grib2 files.
I wanted a pure-Go solution without external dependencies. Not seeing one that was compatible with the files I work with, I built my own. It can read geospatial grid points and their values from NOAA's GFS, HRRR, GDAS, and MRMS weather products (and likely others).
It's open source (MIT) and available on GitHub.
I've completed pressure testing on the grib files I use. If you find a file it does not work with, open a PR and attach the file. This package is the backbone of my pipelines and I am pushing to make it fully compliant with the grib2 spec, but I need example files to find edge cases that aren't handled correctly or that use templates I have not implemented.
Links:
Thanks,
Tom