Downloadable from our Releases page.

Changes for Version 2.18.0:

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


The Python 2 interface is no longer being developed and will be discontinued. Users are strongly advised to migrate to Python 3

New Features/Improvements

  • [ECC-1114] - Lat/Lon iterator: Support for the Mercator grid
  • [ECC-1115] - GRIB: Add new keys to get the proj strings for a grid
  • [ECC-1103] - Update GRIB2 definitions with the latest WMO V25.0.0 code tables/templates
  • [ECC-1104] - Update BUFR tables with the latest WMO v34.0.0
  • [ECC-1111] - Performance: Lock overhead when threads process different files
  • [ECC-1116] - MARS Streams: Add new streams for EFAS and GLOFAS
  • [ECC-1090] - Create a new MARS type "eme" for ensemble data assimilation model errors
  • [ECC-1053] - Add key to get the forecast step in human-readable format
  • [ECC-1088] - Definitions path: Core extensions added to end of path implicitly
  • [ECC-1092] - Rename key 'is_rotated_grid'
  • [ECC-1094] - Fortran API: Implement a way to check if an instance of ecCodes has been compiled with thread support (either POSIX or OpenMP)
  • [ECC-1098] - CMake: define version in the project declaration (in CMakeLists.txt)
  • [ECC-1109] - Upgrade versions of flex and bison
  • [ECC-1110] - Python3 bindings: Remove obsolete function codes_close_file()
  • [ECC-1117] - Python3 bindings: Add codes_grib_multi_support_reset_file()
  • [ECC-917] - eccodes_memfs is a compilation bottleneck
  • [ECC-1068] - tigge_check update (resolution checking for S2S)
  • [ECC-1091] - Change shortname of paramId 171055 to mean2t24a
  • [ECC-1093] - GRIB1: Local definition 192: mars keys should be of type 'string'

Bug Fixes

  • [ECC-1055] - Shape of the earth not taken into account for Lambert Conformal Conic
  • [ECC-1085] - grib_dump: should not fail if a local definition file does not exist
  • [ECC-1096] - bufr_dump shows '2147483647' instead of 'null'
  • [ECC-1086] - grib_copy/bufr_copy: does not fail in the presence of an invalid message
  • [ECC-1097] - Memory leak: bufr_count on an invalid BUFR
  • [ECC-1099] - grib_file_open: errno from fopen overwritten by call to strdup
  • [ECC-1100] - Function grib_context_log(): errno value can potentially be overwritten
  • [ECC-1101] - BUFR decoding: error message issued if numberOfSubsets==0 and empty data section
  • [ECC-1107] - bufr_dump -E: should set the 'messageLength' ECMF local section key
  • [ECC-1108] - Python3 bindings under Windows: use of GRIB/BUFR handle causes crash
  • [ECC-1113] - Python3 bindings under Windows: codes_get_long_array returns incorrect values
  • [ECC-1118] - Crash: substr function called with invalid indexes
  • [ECC-1119] - Testing: Mac OS: tests fail due to json_xs problem
  • [ECC-1121] - Python bindings: Segfault when closing GribFile if messages are closed manually