Please note: There is a new webpage for the Migration to GRIB2: Migration to GRIB2
This webpage also includes a section where changes in the parameter encodings for the coming ecCodes versions are documented: Changes in the parameter encodings

Version 2.42.0 (June 2025)

Please note:

  • With version 2.42.0 comes a significant reworking of the concepts and lookup related to the paramIds/shortNames/names and the MARS namespace in preparation for the Migration to GRIB2 (MTG2) at ECMWF.
    This mechanism is predominantly handled by the WMO tables version, with tablesVersion 33 imposing the pre or post migration behaviour.
    All data using the MARS namespace will default to this switching behaviour, but some exceptions have been implemented to, for example, preserve ECMWF operations until CY51R1.
    • With a tablesVersion less than or equal 33 a frozen set of definition files are used to ensure backwards compatibility.
    • With a tablesVersion greater than 33 the standard set of definition files are used to ensure continuity of the standard definitions.
    • As well as the standard defintions, there are also new definitions related to chemistry to facilitate the split of paramId into a paramId + chemId in the case of atmospheric composition modelling.
  • Please experiment with this change in behaviour by updating the WMO tablesVersion to the latest version 35 and observe the changes that can occur to paramId (the param key) in the case of time-processed parameters as well as the addition of keywords for time-processed parameters (the timespankey) and for chemical parameters (the chem key).


  • The minimum required version of CMake is 3.18
  • The following C API functions are deprecated and have been removed:

    codes_string_list* codes_grib_util_get_param_id(const char* mars_param);
    codes_string_list* codes_grib_util_get_mars_param(const char* param_id);

New Features/Improvements

Bug Fixes

Version 2.41.0 (April 2025)

Please note:

  • The following C API functions are deprecated and will be removed in a future release:

    codes_string_list* codes_grib_util_get_param_id(const char* mars_param);
    codes_string_list* codes_grib_util_get_mars_param(const char* param_id);

  • The CMake option ENABLE_TIMER is deprecated and will be removed in the next release

  • bufr_dump will fail if an unknown descriptor is encountered. See ECC-2030.

New Features/Improvements

Bug Fixes

Version 2.40.0 (February 2025)

Please note some important changes in this release (v2.40.0) of ecCodes:

  • The following C API functions have been removed:
    • codes_context_set_memory_proc
    • codes_context_set_persistent_memory_proc
    • codes_context_set_buffer_memory_proc
  • GRIB: Encoding a constant field now sets the binary scale factor to zero. See ECC-2012

New Features/Improvements

Bug Fixes

Version 2.39.0 (November 2024)

In this release new parameters have been added which reflect a statistical processing in time of an existing parameter. This is to streamline and unify statistically processed parameters, as well as prevent accidental misuse of the instantaneous paramId for parameters which are statistically processed in time and hence require more metadata in the GRIB message.
The addition of new parameters follows the following structure where possible:


inst

mean

accum

max

min

std

atm

XXX

235YYY

236YYY

237YYY

238YYY

239YYY

wave

140XXX

141XXX

142XXX

143XXX

144XXX

145XXX

ocean

262XXX

263XXX

264XXX

265XXX

266XXX

267XXX

Please note that existing parameters will not fit into this structure, e.g. accumulated water and radiation parameters.
A pre-existing example can be found in, for example, mucape as below:


inst

mean

accum

max

min

std

most-unstable CAPE
(shortName, paramId)

mucape

228235

avg_mucape

235117

max_mucape

237117

min_mucape

238117

std_mucape

239117

Due to clashes with current ECMWF operational output, we will delay the addition of the following parameters until further developments have been implemented:

  • 235288; Time-mean total cloud cover (base parameter 228164)
  • 235326; Time-mean total lightning flash density (base parameter 228050)
  • 237287; Time-maximum convective available potential energy (base parameter 59)
  • 237167; Time-maximum 2 metre temperature (base parameter 167, already have generic encoding 201)
  • 237318; Time-maximum 10 metre wind gust (base parameter 228029, already have generic encoding 49)
  • 237321; Time-maximum convective available potential energy shear (base parameter 228044)
  • 237055; Time-maximum total precipitation rate (base parameter 260048, already have generic encoding 228226)
  • 238167; Time-minimum 2 metre temperature (base parameter 167, already have generic encoding 202)
  • 238055; Time-minimum total precipitation rate (base parameter 260048, already have generic encoding 228227)

The following C API functions are deprecated and will be removed in the next release:

  • codes_context_set_memory_proc
  • codes_context_set_persistent_memory_proc
  • codes_context_set_buffer_memory_proc

New Features/Improvements

Bug Fixes

Version 2.38.3 (October 2024)

Version 2.38.0 (September 2024)

New Features/Improvements

Bug Fixes

Version 2.37.0 (September 2024)

Please note:

  • This version will be the first version of ecCodes to be used in a Python binary wheel, due for release on Monday 9th September.
    From version 2.37.0 onwards, both the ecCodes binary library and its Python bindings will share the same version number and be released simultaneously. The Python bindings will by default include a wheel with the ecCodes binary library.

Bug fixes

Version 2.36.0 (June 2024)

Please note:

  • In the next release we will deprecate the following tools:
    • grib_merge
    • gg_sub_area_check
    • big2gribex
  • In the near future, the contents of the "definitions/grib2" directory will be grouped into sub-directories.
    This could affect users who have their own customised definitions.

New Features/Improvements

Bug Fixes

Version 2.35.0 (April 2024)

Please note:

GRIB2 templates 4.51 and 4.91 had the keys "codeFigure" and "categoryType" in the wrong order (See ECC-1797).
This has been corrected to be in line with WMO Manual on Codes.
We apologise for any inconvenience caused.

New Features/Improvements

Bug Fixes

Version 2.34.1 (February 2024)

Version 2.34.0 (February 2024)

Please note some important changes in this release (v2.34.0) of ecCodes:

  • Support for sub-hourly data in GRIB edition 2. For more details, see here

New Features/Improvements

Bug Fixes

Version 2.33.0 (December 2023)

Please note:

We are aiming to add official support for sub-hourly GRIB2 data in the next release (v2.34.0).

This will have an impact on users of ecCodes who currently produce sub-hourly GRIB2 data.
We strongly encourage you to contact us ahead of time so that we can help you adapt to the changes that this release will bring.

 

Please note some important changes in this release (v2.33.0) of ecCodes:

  • The key "levtype" is now read-only (for GRIB edition 2). Please use "typeOfLevel" to set fixed surface types
  • The key "validityTime" now has 4 characters as a string (like dataTime). This affects the output of commands like "grib_ls -n time"

New Features/Improvements

Bug Fixes

Version 2.32.1 (October 2023)

Version 2.32.0 (October 2023)

 

Please note some important changes in this release (v2.32.0) of ecCodes:

  • The tigge_* tools have been removed (tigge_check, tigge_split etc)
  • The grib1to2 script has been removed

New Features/Improvements

Bug Fixes

Version 2.31.0 (July 2023)

Please note some important changes in the next release (v2.32.0) of ecCodes:

  • The tigge_* tools will be removed (tigge_check, tigge_split etc)

New Features/Improvements

Bug Fixes

Version 2.30.2 (June 2023)

Version 2.30.0 (April 2023)

Please note some important changes in this release (v2.30.0) of ecCodes:

  • 32-bit platforms are no longer supported

New Features/Improvements

Bug Fixes

Version 2.29.0 (March 2023)

Please note some important changes in this release (v2.29.0) of ecCodes:

  • The Python2 interface has been removed
  • Users will require a C++ compiler to build ecCodes. It can no longer be built with a C compiler.
    Note: The C, Fortran and Python3 interfaces have not changed


Please note some important changes in the next release of ecCodes:

  • 32-bit platforms will no longer be supported

Version 2.28.0 (January 2023)

Please note some important changes in the next release of ecCodes:

  • The Python2 interface will be removed
  • Users will require a C++ compiler to build ecCodes. It can no longer be built with a C compiler


In preparation for the Migration to GRIB2, from 2.28.0 there has been a number of changes in the way a number of parameters are encoded in GRIB 2. There are also a number of new parameters, some existing ones have seen their names changed, and a small number of them have been removed. Check the corresponding links for the details of the parameters affected. If ecCodes 2.28.0 or later is used to encode those parameters that changed encoding, it will not be possible to correctly decode them for earlier versions. 

New Features/Improvements

Bug Fixes

Version 2.27.1 (December 2022)

Version 2.27.0 (August 2022)

Please note:

  • The Python 2 interface will be removed in Q1 2023. Users are strongly advised to migrate to Python 3.

  • We have added an experimental CMake option to allow compilation with a C++ compiler. To enable this, pass the following to the cmake command:
    -D ENABLE_EXPERIMENTAL_BUILD_WITH_CXX=ON
    This option is disabled by default.

New Features/Improvements

Bug Fixes

Version 2.26.0 (May 2022)

Please note:

  • Calling the deprecated C functions codes_box_new and codes_box_get_points now return an error. These functions will be removed in the next version.

New Features/Improvements

Bug Fixes

Version 2.25.0 (March 2022)

Please note:

  • The CMake option ENABLE_AEC is now ON by default.
    AEC (Adaptive Entropy Coding) provides the WMO GRIB CCSDS compression and decompression of data.
    To force the build without it, use -DENABLE_AEC=OFF

New Features/Improvements

Bug Fixes

Version 2.24.2 (January 2022)

Version 2.24.1 (January 2022)

Version 2.24.0 (December 2021)

Please note:
The high-level Python interface (in eccodes/high_level/*) was always experimental and has been removed in this release.
Please use cfgrib and pdbufr instead.

New Features/Improvements

Bug Fixes

Version 2.23.0 (August 2021)

Please note:
The high-level Python interface (in eccodes/high_level/*) was always experimental and will be removed in the next release.
Please use cfgrib and pdbufr instead.

New Features/Improvements

Bug Fixes

Version 2.22.1 (June 2021)

Version 2.22.0 (May 2021)

New Features/Improvements

Bug Fixes

Version 2.21.0 (March 2021)

Please note:

  • grib_get_data output is slightly modified: Words on the first line are now separated by spaces not commas (See ECC-1197)
  • The tools now check that the output file is not the same as the input to avoid overwriting/corrupting the source (See ECC-539)
  • The MARS keys levtype and levelist have been removed from the GRIB2 templates 4.53 and 4.54 (See ECC-1204)

Contributions

New Features/Improvements

Bug Fixes


Version 2.20.0 (January 2021)

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.

Contributions

New Features/Improvements

Bug Fixes

Version 2.19.1 (November 2020)

Version 2.19.0 (October 2020)

Please note:

  • For this release, the minimum required version of CMake is 3.12
  • The CMake option ENABLE_PYTHON now defaults to OFF (previously it was ON).
    In the next release, this option will be renamed to ENABLE_PYTHON2
    The Python 2 interface is no longer being developed. Users are strongly advised to migrate to Python 3.

Contributions

New Features/Improvements

Bug Fixes

Version 2.18.0 (June 2020)

Please note:
ecCodes now uses the standard CMake way of putting the project version number directly into the top-level CMakeLists.txt file.
The file "VERSION.cmake" is no longer present. See ECC-1098 below

New Features/Improvements

Bug Fixes

Version 2.17.0 (March 2020)

New Features/Improvements

Bug Fixes

Version 2.16.0 (January 2020)

New Features/Improvements

Bug Fixes

Version 2.15.0 (November 2019)

New Features/Improvements

Bug Fixes

Version 2.14.1 (October 2019)

Version 2.14.0 (October 2019)

Contributions

New Features/Improvements


Bug Fixes

Version 2.13.1 (August 2019)

Version 2.13.0 (July 2019)

Please note: For this release, the minimum required version of cmake is 3.6.0

Contributions

New Features/Improvements

Bug Fixes

Version 2.12.5 (May 2019)

Version 2.12.0 (February 2019)

Contributions

Thanks to Daniel Tipping from OldReliableTech for the Windows support and conda setup

New Features/Improvements

Bug Fixes

Version 2.10.0 (December 2018)

Contributions

New Features/Improvements

Bug fixes

Version 2.9.2 (November 2018)

Version 2.9.0 (September 2018)

New Features/Improvements

Performance enhancements

Bug Fixes

Version 2.8.2 (August 2018)

Version 2.8.0 (June 2018)

New Features/Improvements

Performance enhancements

Bug Fixes

Version 2.7.3 (April 2018)

Version 2.7.0 (February 2018)

Contributions

New Features/Improvements

Bug Fixes

Version 2.6.0 (December 2017)

New Features/Improvements

Bug Fixes

Version 2.5.0 (October 2017)

Contributions

New Features/Improvements

Bug Fixes

Version 2.4.1 (August 2017)

Version 2.4.0 (July 2017)

New Features/Improvements

Bug Fixes

Version 2.3.0 (May 2017)

Contributions

New Features/Improvements

Bug Fixes

Version 2.2.0 (March 2017)

New Features/Improvements

Bug Fixes

Version 2.1.0 (January 2017)

Contributions

New Features/Improvements

Bug Fixes

Version 2.0.2 (November 2016)

Version 2.0.0 (October 2016)

This is the first full (Production-ready) release of ecCodes.
This means that the application has gone through a thorough internal testing process and that all known technical issues have been resolved.  It is now fully functional and ready to be released for general use.

GRIB encoding and decoding has been particularly well tested within the IFS and ecCodes replaces GRIB-API in the next operational cycle update.
BUFR encoding and decoding has been tested and work has started to replace BUFRDC with ecCodes in ECMWF operational software.

Contributions

New Features/Improvements


Bug Fixes


Previous changes