Downloadable from our Releases page.

Changes for Version 2.20.0:

Please note:

  • The CMake option ENABLE_PYTHON has been renamed to ENABLE_PYTHON2
    The Python 2 interface is no longer being developed. Users are strongly advised to migrate to Python 3.
  • The GRIB2 representation of parameter 238 has been modified. See ECC-1177 for details
  • The command "codes_info -v" no longer outputs a trailing space. Some user scripts may need to be modified.


  • [ECC-1164] - Performance: grib_nearest_find for reduced Gaussian grids
  • [ECC-1159] - Windows: MEMFS option does not work

New Features/Improvements

  • [ECC-1178] - Spurious trailing blank in "codes_info -v"
    [ECC-1157] - Python 2 support: Rename CMake option ENABLE_PYTHON to ENABLE_PYTHON2
  • [ECC-1168] - Update GRIB2 tables/templates with the latest WMO V26.0.0
  • [ECC-1173] - Update BUFR tables with the latest WMO v35.0.0
  • [ECC-1167] - GRIB: Allow setting byte array as string
  • [ECC-1171] - Performance: Python bindings: remove assert statements
  • [ECC-1181] - Add function to determine if a BUFR key is defined in the header or data section
  • [ECC-779] - Tools: Error 'no messages found in ...' should go to stderr
  • [ECC-1163] - Update CAMS parameters with their CF names
  • [ECC-1166] - GRIB: Add the gridName key for ORCA grids
  • [ECC-1169] - GRIB2: Create 3 new parameters in the category 211
  • [ECC-1175] - BUFR: Local tables to support CloudSat and CALIPSO data
  • [ECC-1177] - Update GRIB2 definition of parameter 238
  • [ECC-1182] - GRIB2: Deprecate Product Definition Template 4.47 in favour of 4.85
  • [ECC-1184] - GRIB2: TypeOfLevel 17 and 18 should be mapped to levtype "sfc"
  • [ECC-1190] - New MARS class UL (Ulysses)
  • [ECC-1192] - Originating Centre: Update the details for the WMO code 291
  • [ECC-1179] - bufr_copy/bufr_ls: Allow 'where' clause with Data Section keys
  • [ECC-1183] - grib_ls: Add "gridName" to the list of keys for ECMWF unstructured grids
  • [ECC-1186] - grib_dump: Does not print the definition file used for Flag Table keys

Bug Fixes

  • [ECC-403] - BUFR: codes_is_missing reports 1 on keys that are not missing
  • [ECC-806] - Local definitions precedence order
  • [ECC-1156] - Python bindings test fails when library is built with MEMFS
  • [ECC-1158] - GRIB encoding: data quality checks (limits) not working for spectral fields
  • [ECC-1160] - Building with ENABLE_PRODUCT_BUFR=OFF and ENABLE_MEMFS=ON fails
  • [ECC-1162] - GRIB2: Remove typeOfFirstFixedSurface from cnmc paramId 500044
  • [ECC-1165] - Assertion: calling codes_set_bytes with incorrect length passed in
  • [ECC-1170] - grib_filter: Fail if key of type double (e.g. values) is assigned to a string
  • [ECC-1174] - bufr_filter: Time interval extraction fails if 'second' key has a missing value
  • [ECC-1176] - Python3 bindings: float32 recognised as int instead of float
  • [ECC-1185] - Crash in codes_context_delete() call
  • [ECC-1187] - BUFR: Crash on codes_set_missing()