GRIB (GRIdded Binary or General Regularly-distributed Information in Binary form) is a concise data format commonly used in meteorology to store historical and forecast weather data. It is standardized by the World Meteorological Organization's Commission for Basic Systems, known under number GRIB FM 92-IX, described in WMO Manual on Codes No.306. Currently there are three versions of GRIB. Version 0 was used to a limited extent by projects such as TOGA, and is no longer in operational use. The first edition (current sub-version is 2) is used operationally worldwide by most meteorological centers, for Numerical Weather Prediction output (NWP). A newer generation has been introduced, known as GRIB second edition, and data is slowly changing over to this format. Some of the second-generation GRIB are used for derived product distributed in Eumetcast of Meteosat Second Generation. Another example is the NAM (North American Mesoscale) model.
GRIB files are a collection of self-contained records of 2D data, and the individual records stand alone as meaningful data, with no references to other records or to an overall schema. So collections of GRIB records can be appended to each other or the records separated.
Each GRIB record has two components - the part that describes the record (the header), and the actual binary data itself. The data in GRIB-1 are typically converted to integers using scale and offset, and then bit-packed. GRIB-2 also has the possibility of compression.
GRIB superseded the Aeronautical Data Format (ADF).
The World Meteorological Organization (WMO) Commission for Basic Systems (CBS) met in 1985 to create the GRIB (GRIdded Binary) format. The WGDM in February 1994, after major changes, approved revision 1 of the GRIB format. GRIB Edition 2 format was approved in 2003 at Geneva.
No way in GRIB to describe a collection of GRIB records
- Each record is independent, with no way to reference the GRIB writer's intended schema
- No foolproof way to combine records into the multidimensional arrays from which they were derived.
The use of external tables to describe the meaning of the data.
- No authoritative place for centers to publish their local tables.
- Inconsistent and incorrect methods of versioning local tables.
- No machine-readable versions of the WMO tables (now available for GRIB-2, but not GRIB-1)
GRIB 1 Header
There are 2 parts of the GRIB 1 header - one mandatory (Product Definition Section - PDS) and one optional (Grid Description Section - GDS). The PDS describes who created the data (the research/operation center), the involved numerical model/process - can be NWP or GCM, the data that is actually stored (such as wind, temperature, ozone concentration etc.), units of the data (meters, pressure etc.), vertical system of the data (constant height, constant pressure, constant potential temperature), and the time stamp.
If a description of the spatial organization of the data is needed, the GDS must be included as well. This information includes spectral (harmonics of divergence and vorticity) vs gridded data (Gaussian, X-Y grid), horizontal resolution, and the location of the origin.
- ATMOGRAPH ModelVis Commercial numerical weather model data visualization software capable of decoding and displaying both GRIB 1 and GRIB 2 data formats
- ArcGIS Market leading GIS software
- WGRIB Command line based program to manipulate, inventory and decode GRIB1 files
- GrADS, free command line based desktop application that directly handles GRIB1 and GRIB2 files 
- Picogrib GRIB 1 C-language (FORTRAN callable) free decoding package compatible to some extent with ECMWF GRIBEX routine
- NCEP codes free software (C and FORTRAN library) for decoding and encoding data in GRIB 1 format
- NCEP codes free software (C and FORTRAN library) for decoding and encoding data in GRIB 2 format (some template only)
- JGrib - Jgrib is a free library for reading GRIB files in Java.
- Meteosatlib - Meteosatlib is a free software C++ library and set of tools to convert satellite images between various formats; it can read and write GRIB data, and its GRIB encoding/decoding library can be used standalone.
- The NCAR Command Language can be used to read, analyze and visualize GRIB data, as well convert it to other gridded data formats.
- PyNIO is a Python programming language module that allows read and/or write access to a variety of data formats using an interface modelled on netCDF.
- degrib (AKA NDFD GRIB2 Decoder) is a reader for GRIB 1 and GRIB 2 files.
- wgrib2 is a reader for GRIB 2 files.
- GRIB API is an API developed at ECMWF to decode and encode GRIB edition 1 and 2 data. Note: this package is in the process of being replaced by ecCodes which is a superset of GRIB API. A useful set of command line tools is also included. ECMWF also offers the plotting package Magics and the Metview workstation/batch system to handle/visualise GRIB files.
- Ugrib – Ugrib is a no cost graphical GRIB viewer designed for reading GRIB 1 files. The website GRIB.US also aims to provide education on the prudent and safe use of GRIB data for forecasting weather. This link is not working as of 20th of May 2017.
- Expedition – Expedition is the Sailing navigation and weather application. Grib display and download from many sources is free.
- SmartMet - SmartMet is a Windows tool that reads, writes and visualises GRIB data.
- Xconv/Convsh – Xconv is a graphical tool for displaying and converting gridded data, and is available for most operating systems. Convsh is the command-line equivalent.
- The NetCDF-Java Common Data Model is a Java library that can read GRIB 1 and GRIB 2 files.
- zyGrib a graphical software for Linux, Mac OS X and Windows (GPL3, Qt) to download and display GRIB 1 and GRIB 2 (since v8.0) files.
- GDAL, a popular open source reading and writing library for geospatial data
- PredictWind Offshore App A multi platform app designed for boats heading offshore with a need to download forecast GRIB data on a Satellite or SSB connection .
- PyGrib A python language extension module which allows one to read and write GRIB 1 and GRIB 2 formats.
- PolarView A navigation application that includes a GRIB viewer, supporting both GRIB 1 and GRIB 2. PolarView includes a GRIB download service for GFS (wind/atmospheric pressure), NWW3 (wave height/direction) and RTOFS (Atlantic currents) data from NOAA. Available for Linux, Mac and Windows.
- OpenCPN Open Source Chart Plotter / Marine Navigator. For day to day cruising or advance route planning. (NOTE: GRIB support is available since version 1.3.5 beta)
- CDO (Climate Data Operators) is an analysis tool for geoscientific data with GRIB support
- IDV is a meteorologically oriented, platform-independent application for visualization and analysis of GRIB1, GRIB2 and NetCDF files.
- SoftwareOnBoard A marine navigation application for Windows that includes GRIB overlays on the chart.
- GribAE A freeware Windows interface for WGRIB.
- qtVlm a free software for linux, windows, mac, android, raspberryPi and iOS, with an interface with GPS and routing functions (+ an interface with virtual sailing game VLM)
- PyNDFD an open source Python module for retrieving real-time forecast data from the US National Weather Service. GRIB formatted data is cached and parsed to give the developer access to dozens of up-to-date weather forecast variables. Data is available for the next 7 days for any coordinate within the United States.
Several iOS Apps support the GRIB format, including:
Several Android Apps support the GRIB format, including:
- Common Data Format (CDF)
- Hierarchical Data Format (HDF)
- Global Forecast System