Parser and library for grib2 file format.
Forked from github.com/analogic/grib which is now abandoned by the author (see comment on my pull request).
Install by typing
go get -u github.com/nilsmagnus/grib
$ grib -h
Usage of grib:
-category int
Filters on Category within discipline. -1 means all categories (default -1)
-dataExport
Export data values. (default true)
-discipline int
Filters on Discipline. -1 means all disciplines (default -1)
-export int
Export format. Valid types are 0 (none) 1(print discipline names) 2(print categories) 3(json)
-file string
Grib filepath
-latMax int
Maximum latitude multiplied with 100000. (default 36000000)
-latMin int
Minimum latitude multiplied with 100000.
-longMax int
Maximum longitude multiplied with 100000. (default 9000000)
-longMin int
Minimum longitude multiplied with 100000. (default -9000000)
-maxmsg int
Maximum number of messages to parse. Does not work in combination with filters. (default 2147483647)
-operation string
Operation. Valid values: 'parse', 'reduce'. (default "parse")
-reducefile string
Destination for reduced file. (default "reduced.grib2")
Reduce input file to default output-file with discipline 0 (Meteorology):
grib -operation reduce -file testdata/reduced.grib2 -discipline 0
Filter on area on size of norway+sweden, output to json:
grib -file testdata/gfs.t00z.pgrb2.2p50.f003 -latMin 57000000 -latMax 71000000 -longMin 4400000 -longMax 32000000 -export 3
Filter on temperature only:
grib -file testdata/gfs.t00z.pgrb2.2p50.f003 -discipline 0 -category 0
Have a look at 'main.go' for main usage.
- basic binary parsing of GRIB2 GFS files from NOAA
- implemented only "Grid point data - complex packing and spatial differencing"
- Parsing Data3 type
- Parsing Data0 type (Thanks to Cyrille Meichel)
grib itself has no dependencies and wants to stay that way to keep it simple. Therefore, there is no dep/glide and no dependency-configuration-files.
Grib uses make to build. You probably need go-lint installed in order to build.
To build, simply type
$ make
to test:
$ make test
- Support different types of grids, not only grid0
- Support different types of products, not only product0
- Tests for reduction
- Tests for reading all sections
- "analogic", https://github.com/analogic
- Cyrille Meichel, https://github.com/landru29
- Nils Larsgård, https://github.com/nilsmagnus
Feel free to fork and submit pull requests or simply create issues for improvements :)
Grib specification:
http://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc.shtml
Documentation from noaa.gov :
http://www.nco.ncep.noaa.gov/pmb/docs/on388/
Daily grib2 files from NOAA can be found at