Downloadable from our Releases page.

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


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

New Features/Improvements

  • [ECC-2006] - Indexing: Performance degradation after reading thousands of files
  • [ECC-2012] - GRIB: Initialise binaryScaleFactor=0 when encoding constant fields

  • [ECC-1992] - GRIB2: Concept array mapping
  • [ECC-2004] - MARS: Add new class 'lr' for WMO Lead Centre for Global Climate Re-Analyses
  • [ECC-1952] - C API: Deprecate functions codes_context_set_memory_proc, codes_context_set_persistent_memory_proc and codes_context_set_buffer_memory_proc
  • [ECC-1963] - GRIB2: Replacement of product definition template 4.44 with 4.50
  • [ECC-1983] - GRIB2: chem parameters from FT2024-2
  • [ECC-1984] - GRIB2: Add ERA6 pseudocentre parameters to ERA pseudocentre
  • [ECC-1985] - GRIB2: Unify long names for 172XXX parameters
  • [ECC-1989] - GRIB2: New parameter encodings from WMO FT2024-2
  • [ECC-1990] - GRIB2: Additional CAMS paramIds
  • [ECC-1991] - GRIB2: stepType for typeOfStatisticalProcessing index processing
  • [ECC-1993] - GRIB2: Time-mean parameters for CERISE project
  • [ECC-1997] - GRIB2: Parameters for height of theta levels
  • [ECC-1998] - GRIB: correct aerosol sizes in long names
  • [ECC-2001] - GRIB2: New parameter encoding for sea water depth
  • [ECC-2003] - GRIB2: covariance parameters in ERA6
  • [ECC-2007] - GRIB2: abstract level for ERA6
  • [ECC-2010] - GRIB2: activate the use of model in the mars namespace for class=AI and ML
  • [ECC-2023] - GRIB2: Remove 235152 from pseudocentre ERA
  • [ECC-1995] - GRIB2: Remove rule re tablesVersion=255
  • [ECC-1982] - Expression hierarchy: Use C++ inheritance mechanism instead of hand-crafted virtual tables
  • [ECC-1996] - Dumper hierarchy: Use C++ inheritance mechanism instead of hand-crafted virtual tables
  • [ECC-2008] - Action hierarchy: Use C++ inheritance mechanism instead of hand-crafted virtual tables
  • [ECC-2018] - grib_set: Option "-p" does not print requested keys
  • [ECC-2021] - GRIB2: CCSDS packing should not be applied to spectral fields
  • [ECC-2027] - GRIB2: Rework the modelName/modelVersion concepts in the context of AIFS


Bug Fixes

  • [ECC-1986] - GRIB1: Setting field values in second order packing
  • [ECC-1994] - Crash: grib_compare combining -b and -r flag
  • [ECC-1999] - GRIB: Decoding validityDateTime as a string gives incorrect value
  • [ECC-2002] - GRIB: Setting paramId=228080 for ERA6 fails
  • [ECC-2011] - BUFR: Attributes of data section keys (mis)identified as header keys
  • [ECC-2017] - BUFR: DateTime extraction doesn't work for singleton intervals
  • [ECC-2019] - GRIB: Cannot set levelist after setting typeOfLevel=isobaricInhPa