Page tree

GRIB-API support is being discontinued at the end of 2018. Please consider upgrading to ecCodes

Skip to end of metadata
Go to start of metadata

Downloadable from our Releases page.

Changes for Version 1.13.0

Release 1.13.0 comes with support for the CMake build system for compilation and installation.
At the moment this is still experimental. Please report any issues to or via JIRA to .
More Information can be found in the GRIB API CMake installation

Please note that autotools (the configure script) is still supported.

Note: Some of the GRIB files used in the tests are now downloaded rather than included in the distribution tarball.
Before running the "make check" step please make sure you are connected to the internet.

New Features/Improvements
  • [GRIB-640] - Deprecate the tools "grib_convert" and "grib_cmp"
    Note: These two tools are deprecated. Instead of grib_cmp please use grib_compare and instead of grib_convert use grib_filter.
    In the next major version these tools will be removed.

  • [GRIB-605] - Mark the function "grib_handle_new_from_template" as deprecated
    Note: This function is deprecated. Please use "grib_handle_new_from_samples" instead.
    In the next major version this function will be removed.

  • [GRIB-658] - GRIB2 Grid definition template 3.12 key 'm' datatype
    This concerns GRIB edition 2 messages with grid type of Transverse Mercator (grid definition template 3.12).
    The type of the key "m" (also known as scaleFactorAtReferencePoint) has been corrected (changed from signed integer to a float).
    If you have any existing grib2 data using this template, you should re-encode this key.
  • [GRIB-534] - Implement and/or document a clean way of removing vertical coordinates, that now requires setting two different keys
    You can now use a single key to remove vertical coordinates. This sets the number of coordinates values to 0 and clears the "pv" array:
     grib_set -s deletePV=1 in.grib out.grib 

  • [GRIB-550] - Need access to grib samples path (via API)
    The C API now has a new function to allow access to the samples path:
     char* grib_samples_path(const grib_context *c);

  • [GRIB-368] - grib_dump should support the "-s" option
    A "-s" option is provided for grib_dump to allow you to set a key. (Similar to grib_get/grib_ls)

  • [GRIB-392] - grib_dump: provide output in JSON format
    A "-j" option is provided for grib_dump to have the output in JSON format.

  • [GRIB-389] - Provide option to process the input file after a given offset (in bytes)
    A "-X" option is provided for grib_ls, grib_get and grib_dump to allow you to skip a certain number of bytes by providing an offset

  • [GRIB-437] - grib_to_netcdf: Allow user to make the "time" dimension UNLIMITED
    A "-u" option is provided for grib_to_netcdf which takes the name of a dimension e.g. time and makes it "unlimited":

     grib_to_netcdf -utime -o in.grib

  • [GRIB-259] - Implement grib_find_nearest() for lambert grid type
  • [GRIB-460] - Modify GRIB API to adapt JRA-55's grib table
  • [GRIB-524] - New timeRangeIndicators required for ERA
  • [GRIB-537] - Support access to environment variables within definition files
  • [GRIB-571] - Update local concepts for Met Éireann
  • [GRIB-631] - Update local concepts for DWD
  • [GRIB-574] - grib_get_data: Add Polar Stereographic support
  • [GRIB-577] - Create GRIB1 concept for GLAMEPS CAPE parameter
  • [GRIB-597] - Provide edition independent keys to query shape of the earth
  • [GRIB-620] - Add templates for new reduced Gaussian grid - N96
  • [GRIB-657] - New shortNames required, for table 2, version 162, by NCAR
  • [GRIB-15] - nearest on unsupported grids should fail with a more meaningful message
  • [GRIB-323] - grib_find_nearest: distance to same grid point should be 0
  • [GRIB-338] - Add kwbc (NCEP) local definitions for grib1
  • [GRIB-404] - grib_to_netcdf - new names for some netcdf variables
  • [GRIB-415] - Can't set level to 1.5m
  • [GRIB-468] - Setting Generalized Vertical Height Coordinate should set typeOfFirstFixedSurface=150 and NV=6
  • [GRIB-472] - Boustrophedonic ordering handling of masked not consistent with gribex
  • [GRIB-496] - Feature request: Allow inheritance in Python GRIB API typechecking
  • [GRIB-523] - grib_get_data does not query the bitmap for missing values
  • [GRIB-525] - Better error message when concept match fails
  • [GRIB-526] - grib_filter very picky about format of floats
  • [GRIB-549] - Grib2 template.3.100: Add keys to namespace "geography"
  • [GRIB-615] - Compiler warnings with jasper: macros redefined
  • [GRIB-638] - grib_to_netcdf: Inform user which keys are being ignored
  • [GRIB-639] - Inclusion of lower and upper limit virtual keys in templates 4.5 and 4.9
  • [GRIB-600] - Add development helper scripts to distribution archive
  • [GRIB-604] - Add grib1 sample file for the clustering products
  • [GRIB-623] - Add centre code for Indonesia
  • [GRIB-629] - Remove grib2 local coding for parameters "wildfire flux ..."
  • [GRIB-634] - Update GRIB2 definitions with the latest WMO V14.0.0 templates/tables
  • [GRIB-647] - New UERRA related set up
  • [GRIB-652] - New stream and types for MACC GFAS dataset
  • [GRIB-653] - GRIB-API definition files for MACC GFAS support in MARS
  • [GRIB-659] - Provide key to get angular precision
  • [GRIB-662] - Add new entries for UERRA in Table 1.3 'Production status of data'
Bug Fixes
  • [GRIB-140] - GRIB2 JPEG packing error (using jasper)
  • [GRIB-201] - Variable defined twice in shortName.def
  • [GRIB-205] - mars.type is changed during grib1->grib2 conversion using TIGGE definition file
  • [GRIB-249] - grib_api bug: multi-field messages
  • [GRIB-272] - Wrong computed iDirectionIncrementInDegrees when first=5, last=355, iScansNegatively=1
  • [GRIB-343] - Memory leak: when decoding md5 keys
  • [GRIB-355] - CRASH: grib_compare on grib1 files after changing local definition
  • [GRIB-356] - Unclear message when concept def file not found
  • [GRIB-370] - grib_dump -O tn.grb1 SECTION 2: 29-32 padding_grid0_1 = *** ERR=-6 (Passed array is too small)
  • [GRIB-383] - grib_get reports negative length for large grib2 message!
  • [GRIB-394] - grib_filter arithmetic operators not correct for floating point values
  • [GRIB-406] - grib_get_data: Values outside of subarea specified
  • [GRIB-419] - grib_to_netcdf: time dimension is present even though specifying -I time and -T
  • [GRIB-420] - grib_to_netcdf: Should fail if several messages have the same validity time
  • [GRIB-422] - The MARS STEP key is incorrectly defined for stream=EDMM/EDMO and type=FC
  • [GRIB-476] - wrong automated change of grib key typeOfProcessedData for tigge GRIB2 datasets
  • [GRIB-478] - Support of local usage for GRIB edition 2
  • [GRIB-481] - Grib_api not threadsafe when creating grib_handle, grib_handle_create
  • [GRIB-486] - grib_histogram bug
  • [GRIB-488] - GRIB2: step calculation for typeOfTimeIncrement=1
  • [GRIB-489] - Crash using a calculated key to retrieve 'apparently numeric' index value with grib_index_get_long
  • [GRIB-497] - Mars.step needs to be defined appropriately
  • [GRIB-499] - Incorrect units in Table 2, version 162
  • [GRIB-500] - grib_ls crashes if specified index to "-i" switch is out of bounds
  • [GRIB-503] - GRIB_API problems coding variables with typeOfLevel = generalVertical in GRIB2.
  • [GRIB-504] - Skewness and kurtosis stats seem to be wrongly computed
  • [GRIB-506] - grib_ls goes into infinite loop when a directory is passed in
  • [GRIB-514] - Potential buffer overrun in grib_util.c
  • [GRIB-515] - Cppcheck error: resource leak
  • [GRIB-516] - needs to be defined appropriately
  • [GRIB-518] - Using flex in maximal compatibility mode causes syntax errors
  • [GRIB-530] - PDT 4.44 inconsistent with specifications
  • [GRIB-540] - grib_api rounding/packing bug
  • [GRIB-542] - Sample file geometry is incorrectly specified
  • [GRIB-543] - Error with grib_set scaleValuesBy: unable to set bitsPerValue
  • [GRIB-544] - Valgrind reports errors on "make check"
  • [GRIB-545] - GRIB2 probability templates: declare type of limits as "signed"
  • [GRIB-547] - Setting productionStatusOfProcessedData creates unreadable GRIB
  • [GRIB-557] - Extension of CMA local table to support radionuclides
  • [GRIB-563] - grib_find_nearest memory leak
  • [GRIB-564] - grib_find_nearest returns missing values with jpeg packing
  • [GRIB-566] - Key iterator filters grib_skip_computed and grib_skip_coded do not work
  • [GRIB-568] - Python call grib_new_from_file does not fail on corrupt GRIB message
  • [GRIB-569] - Memory leak in grib_yylex
  • [GRIB-570] - grib_keys_iterator memory leak
  • [GRIB-575] - grib_compare: should not print min and max for spectral_complex
  • [GRIB-580] - Creating an index on an empty file crashes
  • [GRIB-581] - typo in template.3.latlon_vares.def
  • [GRIB-594] - netcdf parameter names referring to the radiation
  • [GRIB-603] - Transverse Mercator projection and negative co-ordinates
  • [GRIB-633] - Check fails in example/F90 for (with PGF90)
  • [GRIB-637] - GRIB2: Potential vorticity surface: incorrect decoding of "level" as double