Downloadable from our Releases page.

From ecCodes 2.39 new parameters will be 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 will follow 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)

To see how these changes will affect your workflow, please try using the prototype version encompassing these changes which can be found here:

https://github.com/ecmwf/eccodes/tree/feature/grib_time_processing_generalisation
or as a tarball here:
https://confluence.ecmwf.int/display/ECC/Development+Snapshots
with installation instructions here:
https://confluence.ecmwf.int/display/ECC/ecCodes+installation

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

  • Performance enhancements
    • [ECC-1905] - Performance: Speed up getting shortName and paramId
    • [ECC-1517] - Performance: tools -w option using multiple values
    • [ECC-1881] - Performance: Computation of distinctLatitudes/distinctLongitudes

  • [ECC-1848] - Tools: Deprecate grib_merge, gg_sub_area_check and big2gribex
  • [ECC-1808] - GRIB2: Update tables with the latest WMO V33.0.0
  • [ECC-1809] - BUFR: Update tables with the latest WMO V42.0.0
  • [ECC-1868] - CMake: Add option for enabling the Geoiterator and Nearest Neighbour functionality
  • [ECC-1878] - grib_filter/bufr_filter: Add a '=' specifier for the print statement
  • [ECC-1899] - API function to allow setting debug level
  • [ECC-1908] - GRIB1: Add new MARS levtype 'abstract levels'
  • [ECC-1912] - GRIB2: Generalise stepType and typeOfTimeIncrement implementation
  • [ECC-1915] - GRIB: CMCC origin for class=ci
  • [ECC-1760] - GRIB2: remove is_chemical_srcsink key from chemistry related paramIds
  • [ECC-1850] - GRIB2: Extension of EERIE (European Eddy RIch Earth System Models) metadata keys
  • [ECC-1851] - GRIB2: Time-processed parameters for Most-Unstable CAPE
  • [ECC-1856] - GRIB2: Add volumetric soil moisture top 20cm/100cm parameters
  • [ECC-1857] - GRIB2: Update WMO encoding in soil moisture parameters and add time-mean variant
  • [ECC-1861] - GRIB2: Emission parameters with additional srcs/sinks
  • [ECC-1862] - GRIB2: Add parameter for water vapour increment
  • [ECC-1863] - GRIB2: Update WMO encoding in base soil moisture parameter
  • [ECC-1864] - GRIB2: Update WMO encoding in soil temperature parameters and add time-mean variant
  • [ECC-1865] - GRIB: Resolve duplicate shortName of ucq
  • [ECC-1876] - GRIB: Resolve duplicate shortName of vo and avg_vo
  • [ECC-1880] - GRIB2: Additions & modifications of instantaneous parameters for generalised time processing approach
  • [ECC-1882] - GRIB2: Adapt recently added On-Demand DT encodings to fit generalised approach
  • [ECC-1889] - GRIB: Add new MARS type MPP
  • [ECC-1894] - GRIB2: Transfer encoding from 240016 to 26
  • [ECC-1895] - GRIB2: Time processed equivalents for total column integrated graupel
  • [ECC-1901] - GRIB2: remove is_chemical from ERA6 pseudo-centre parameters
  • [ECC-1902] - GRIB2: Parameter cleanup in preparation for the addition of statistically processed parameters
  • [ECC-1918] - GRIB2: Modify tile template in preparation for use by On-Demand DT
  • [ECC-1919] - GRIB2: Additional parameters for On-Demand DT

  • [ECC-1866] - GRIB: Setting step on interval-based message with dataDate=0
  • [ECC-1870] - Tools: Improve error message when printing array keys via grib_get, grib_ls
  • [ECC-1883] - Better error message when accessor not found
  • [ECC-1884] - GRIB1 regular grids: The geography namespace should include Ni and Nj
  • [ECC-1885] - GRIB: The 'dirty_statistics' key is always 1
  • [ECC-1886] - Definitions: cfVarName key should be based on the shortName (with a few exceptions)
  • [ECC-1897] - GRIB2: Print a warning if the packing type template is experimental or deprecated
  • [ECC-1907] - GRIB Wave fields: Conversion to GRIB2 loses direction and frequency data
  • [ECC-1860] - Definition language: Add 'isnot' operator for strings

Bug Fixes

  • [ECC-1228] - Error when changing productDefinitionTemplateNumber for forecastTime in seconds
  • [ECC-1847] - GRIB: Setting invalid value for 'typeOfLevel' does not fail
  • [ECC-1853] - GRIB: Lambert conformal longitudes greater than 360
  • [ECC-1855] - GRIB2: Unit not found if typeOfTimeIncrement=2 and numberOfTimeRange=2
  • [ECC-1858] - GRIB: Automatic bitsPerValue repacking of grid_complex files may cause significant loss of precision
  • [ECC-1859] - Compile error: grib_accessor_class_data_g2bifourier_packing.cc: namespace "std" has no member "max"
  • [ECC-1867] - GRIB: Unexpected PDT change for GRIB2 wave template for ensemble DA streams
  • [ECC-1873] - GRIB: Incorrect mapping of flag bits to keys (resolutionAndComponentFlags)
  • [ECC-1874] - GRIB: Sample files for regular Gaussian grids should have jDirectionIncrementGiven=0
  • [ECC-1875] - GRIB2: Unwanted PDT change if setting localDefinitionNumber
  • [ECC-1879] - Cannot build with ENABLE_ECCODES_OMP_THREADS=ON: multiple definition of `thread_init()'
  • [ECC-1887] - GRIB: The mars keys 'date' and 'time' for OSTIA data (using local def 11) are wrong
  • [ECC-1906] - GRIB2: Templates for wave spectra with direction/frequency array don't set section 4 length correctly if adapting the array size
  • [ECC-1914] - GRIB: MARS levtype for isothermal atmospheric parameters