Downloadable from our Releases page.

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)

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

Changes for Version 2.31.0:

New Features/Improvements

  • Performance enhancements
    • [ECC-1602] - GRIB: CCSDS performance improvement (both decoding and encoding)
    • [ECC-1614] - Performance: Faster grib_count and bufr_count

  • [ECC-743] - Fully implement GRIB encoding with complex spatial differencing packing
  • [ECC-788] - Problem with the scale factor of Potential vorticity surface
  • [ECC-793] - Provide mechanism to reject EXPERIMENTAL parameters
  • [ECC-1312] - ecCodes does not support writing of grid_complex_spatial_differencing
  • [ECC-1552] - GRIB: return non empty proj string for unprojected gridded fields
  • [ECC-1568] - Update C++ standard from C++11 to C++17
  • [ECC-1607] - Move the version info from CMakeLists.txt to the VERSION file
  • [ECC-1600] - sourceSinkChemicalPhysicalProcess key for paramId 403000 Emission mass flux
  • [ECC-1580] - Make codes_get_native_type available in Fortran
  • [ECC-1585] - GRIB2: Update tables/templates with the latest WMO V31.0.0
  • [ECC-1599] - BUFR: Update tables with the latest WMO V40.0.0
  • [ECC-1584] - grib_dump: indicate which keys are 'read-only'
  • [ECC-1611] - C API: Add function to determine if a BUFR key is a coordinate descriptor
  • [ECC-1615] - Fortran API: Ability to read an array of double-precision integers
  • [ECC-1630] - Python3 bindings: Get API version as an integer
  • [ECC-1622] - Python3 bindings: Drop Python version 3.7
  • [ECC-1601] - Python3 bindings: Support GRIB data values array decoded in single-precision
  • [ECC-1610] - MARS: configure keywords mapping for ocda/tpa and oper/fc for ocean levtype o2d/o3d
  • [ECC-1569] - GRIB2: Add missing ocean parameter typeOfLevelConcept
  • [ECC-1577] - GRIB2: Add support for stepType when typeOfTimeIncrement=255
  • [ECC-1504] - GRIB2: Make deprecated WMO parameters legacy
  • [ECC-1564] - GRIB2: Support local product definition templates for different centres
  • [ECC-1625] - GRIB2: ERA6 parameters with constituentType regarding DGOV-357
  • [ECC-1626] - GRIB2: Mass and water budget parameters for ERA6
  • [ECC-1628] - GRIB2: Energy budget parameters for ERA6
  • [ECC-1629] - GRIB2: CAMS emission parameters for additional sink and sources
  • [ECC-1563] - GRIB2: Introduce new local section 4 templates for extra-large ensembles
  • [ECC-1570] - GRIB2: Accumulated mass emission of methane from Wetlands
  • [ECC-1571] - GRIB2: Allow new expver=0002 for class=ur and origin=lfpw
  • [ECC-1574] - GRIB2: Modifications to parameter long names (WMO conforming) for Destination Earth
  • [ECC-1575] - GRIB2: Modification of convective precipitation GRIB2 deprecated encoding
  • [ECC-1581] - GRIB2: Modification of total snowfall GRIB2 deprecated encoding
  • [ECC-1582] - GRIB2: Modification of snow melt GRIB2 deprecated encoding
  • [ECC-1583] - GRIB2: Modification of top net short-wave (solar) radiation GRIB2 deprecated encoding
  • [ECC-1587] - GRIB2: Updating climatological discipline 192 parameter encodings
  • [ECC-1588] - GRIB2: Modification of albedo parameters
  • [ECC-1589] - GRIB2: Change unit of 152; logarithm of surface pressure parameter
  • [ECC-1590] - GRIB2: Add correct GRIB2 definition to discipline 192 parameter 244; fsr
  • [ECC-1591] - GRIB2: New parameter encodings from WMO FT2023-1
  • [ECC-1592] - GRIB2: Add correct GRIB2 definitions to discipline 192 definitions from WMO FT2023-1
  • [ECC-1593] - GRIB2: Add GRIB2 encodings to current GRIB1-only parameters from WMO FT2023-1
  • [ECC-1594] - GRIB: Deletion of unused parameter definitions
  • [ECC-1596] - GRIB2: Deletion of unused parameter definitions
  • [ECC-1597] - GRIB2: Make several GRIB2 encodings legacy
  • [ECC-1598] - GRIB2: Modifications to sea-ice parameter long names
  • [ECC-1603] - GRIB2: New parameter encodings for ocean parameters
  • [ECC-1604] - GRIB2: Modification of sea water practical salinity units
  • [ECC-1616] - GRIB2: Modification of parameter encodings for ocean parameters
  • [ECC-1617] - GRIB2: Merging of GRIB2 encodings into pre-existing GRIB1 parameters
  • [ECC-1618] - GRIB: Fix minor typos in parameter names for consistency
  • [ECC-1619] - GRIB2: Remove trailing spaces from parameter names
  • [ECC-1627] - GRIB2: Add new pseudo-centre for ERA6
  • [ECC-1565] - Add centre abbreviation 'birk' for Reykjavik

Bug Fixes

  • [ECC-803] - Problem with encoding grid_complex_spatial_differencing packing
  • [ECC-1081] - "level" is not edition-independent for potential vorticity levels
  • [ECC-1433] - GRIB2 CCSDS: Very small values are not encoded correctly
  • [ECC-1472] - Complex packing: Incorrect missing values handling
  • [ECC-1560] - GRIB2: Changing from PDTN=8 to 11 changes the level from 1.5 to 2
  • [ECC-1572] - Fortran codes_get/grib_get fails to get array of 32-bit real numbers
  • [ECC-1573] - GRIB spectral_simple: Assertion failed: `ref == *val'
  • [ECC-1578] - codes_handle_new_from_index does not initialise its 'err' argument
  • [ECC-1586] - grib_get_data: Invalid latitude values printed
  • [ECC-1605] - GRIB: Overflow for key forecastTime
  • [ECC-1606] - GRIB2 CCSDS: Corrupted data after changing bitsPerValue
  • [ECC-1608] - GRIB: Increasing bitsPerValue produces different results (in some cases)
  • [ECC-1623] - BUFR: Assigning a single-element array to a string key fails with FunctionNotImplementedError