Downloadable from our Releases page.

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

Important announcements for version 2.28.0

Deletion of unused parameters

[ECC-1478, ECC-1480, ECC-1486, ECC-1499] Please note that the following parameters have been deleted in favour of updating parameter definitions which adhere more closely to WMO encodings. In each case, MARS has been investigated to ensure that the encoding has not been previously used to archive data. The deleted parameters are:

paramId

shortName

name

units

discipline

category

number

260003

shtfl

Sensible heat net flux

W m**-2

0

0

11

260258

evarate

Evaporation rate

kg m**-2 s**-1

0

1

79

260083

hpbl

Planetary boundary layer height

m

0

3

18

228033

fspc

Fraction of stratiform precipitation cover

Proportion

0

6

36

260075

dist

Geometric height

m

0

3

6

260179

land

Land cover (1=land, 0=sea)

Proportion

2

0

0

3102 (GRIB2 only)

shww

Significant height of wind waves

m

10

0

5

3103 (GRIB2 only)

mpww

Mean period of wind waves

s

10

0

6

The parameters to use in place of these parameters are:

260003 --> 231
260258 --> 232
260083 --> 159
228033 --> 228217
260075 --> 3008
260179 --> 172
3102 --> 140234
3103 --> 140236

Modifications to existing parameter encodings
[ECC-1469] Please note that several parameters have had their encodings modified to better match WMO encodings, as well as to better match encodings that are used as standard practice to archive these parameters within MARS. In each case, this was confirmed by crawling the MARS archive. Please see [ECC-1469] for the affected parameters.

Modifications to existing parameter long names
[ECC-1470] Please note that several parameters have had their names changed to better match WMO names whilst also keeping the existing ECMWF naming scheme. This results in replacing "solar" with "short-wave (solar)" and "thermal" with "long-wave (thermal)" in several parameters. Please see [ECC-1470] for details.

Addition of GRIB2 parameters and GRIB2 encodings

[ECC-1464, ECC-1465, ECC-1466, ECC-1479, ECC-1481] Please note that several new parameters have been added with GRIB2 only encodings, and several parameters have been updated with their correct GRIB2 encodings, which either replaces a previous discipline=192 encoding or is new entirely. Please see the related tickets for more information


Changes for Version 2.28.0:

New Features/Improvements

  • [ECC-1449] - GRIB2: New urban and wetland/vegetation parameters
  • [ECC-1450] - GRIB2: Add entries for wetland/vegetation in WMO tables version 30
  • [ECC-1452] - GRIB2: Update tables/templates with the latest WMO V30.0.0
  • [ECC-1461] - GRIB2: Update Fire Variable names in paramDB
  • [ECC-1464] - GRIB2: WMO conforming water equivalent parameters for DestinationEarth
  • [ECC-1465] - GRIB2: Add GRIB2 encodings to current GRIB1-only parameters for DestinationEarth
  • [ECC-1466] - GRIB2: Add correct GRIB2 definitions to discipline 192 definitions for DestinationEarth
  • [ECC-1469] - GRIB2: Modifications to parameter encodings to reflect standard practice for Destination Earth
  • [ECC-1470] - GRIB2: Modifications to parameter long names (WMO conforming) for Destination Earth
  • [ECC-1479] - GRIB2: Add correct GRIB2 definitions to discipline 192 definitions for DestinationEarth
  • [ECC-1481] - GRIB2: Add GRIB2 encodings to current GRIB1-only parameters for DestinationEarth
  • [ECC-1493] - GRIB2: Setting paramId 131074-131077 changes keys not part of the definition
  • [ECC-1495] - GRIB2: Discipline 192 to legacy for parameters with valid WMO definitions
  • [ECC-1506] - GRIB2: Add soil moisture parameter
  • [ECC-1478] - GRIB2: Deletion of unused parameter definitions (part 1)
  • [ECC-1480] - GRIB2: Deletion of unused parameter definitions (part 2)
  • [ECC-1486] - GRIB2: Deletion of unused parameter definitions (part 3)
  • [ECC-1499] - GRIB2: Deletion of unused parameter definitions (part 4)
  • [ECC-1501] - GRIB2: Add missing local code for source / sink table 4.238
  • [ECC-1503] - Set scaleFactor/scaleValue keys to MISSING for params 228007, 228011, 228014
  • [ECC-1474] - GRIB: local encoding for SPP random field parameters - extension
  • [ECC-1492] - GRIB: Add key jScansNegatively
  • [ECC-1456] - MARS: Create 2 new classes EF (for EFAS) and GF (for GLOFAS)
  • [ECC-1484] - MARS: New class for Greenhouse Gases dataset
  • [ECC-1462] - MARS: Ocean layer correct mapping for mars 'levelist'
  • [ECC-1512] - MARS: New type for time processed analysis
  • [ECC-1513] - MARS: New type for interim forecast
  • [ECC-1514] - MARS: New stream for GFAS reanalysis
  • [ECC-1483] - BUFR: Update tables with the latest WMO V39.0.0
  • [ECC-1497] - bufr_dump -D/-E python: Drop support for Python2
  • [ECC-1457] - Fortran: Interface functions should use 'void*' instead of 'char*'
  • [ECC-1458] - Thread safety: Use 'strtok_r' instead of 'strtok'
  • [ECC-1468] - Replace all instances of the deprecated function 'sprintf' with 'snprintf'
  • [ECC-1482] - grib_dump: Hide keys containing "ECMF" in their names
  • [ECC-1485] - Definitions: Split the statistics from missing-values templates
  • [ECC-1500] - Tools: Print the online help page URL
  • [ECC-1473] - C API: Add the codes_context functions to set logging/printing/etc procedure hooks
  • [ECC-1269] - grib_util_set_spec: Remove obsolete option GRIB_UTIL_SET_SPEC_FLAGS_ONLY_PACKING
  • [ECC-1505] - Python3 bindings: High-level Message.set function should allow dictionary and check result


Bug Fixes

  • [ECC-1172] - BUFR encoding: Memory leaks
  • [ECC-1498] - BUFR subset extraction by area: Memory leaks
  • [ECC-1476] - BUFR: Memory leaked during encoding of test data files
  • [ECC-1477] - Compilation fails with libjasper v4.x.x
  • [ECC-523] - GRIB2: numberOfMissingValues incorrect with grid_complex_spatial_differencing
  • [ECC-726] - grib_get -l reports wrong values with reduced_ll grid (subarea)
  • [ECC-802] - GRIB: Problem with various packing types
  • [ECC-804] - Extraction of point values in regular Gaussian grid when scanning with '+i' and '+j'
  • [ECC-1446] - Python3 bindings: Data file era5-levels-members.grib not included in released tar file
  • [ECC-1460] - Python3 bindings: Cannot import eccodes on M1 MacBook Pro
  • [ECC-1448] - MARS ORIGIN keyword is wrongly overwritten for class = gw, stream = mmsf
  • [ECC-1451] - GRIB: key 'level' not equal to 'mars.levelist' for soil levels
  • [ECC-1459] - UndefinedBehaviorSanitizer: applying zero offset to null pointer
  • [ECC-1475] - Check return size of md5 keys
  • [ECC-1488] - Fortran: Bug in grib_f_get_error_string
  • [ECC-1489] - Crash on MacOS (release build): printing the tool man page
  • [ECC-1491] - Pseudo GRIB: The offset and count keys are incorrect
  • [ECC-1494] - Segmentation fault: 'grib_ls -p values' on several test GRIBs
  • [ECC-1496] - GRIB1: Nearest neighbour value incorrect for grid_second_order_constant_width
  • [ECC-1507] - Errors from cppcheck: Using argument that points at uninitialized variable [ctuuninitvar]