ecCodes superseding GRIB API
ecCodes replaces GRIB API as the default GRIB decoder at ECMWF. The grib_api module will no longer be loaded by default. ecCodes will be loaded instead. This change could affect your scripts or user setup. See below for details.
ECMWF will change the default versions of its software packages and libraries used across all user platforms at the centre (ecgate, desktops, lxc, cca and ccb) between 10:00 and 10:30 UTC on Wednesday 10 May 2017.
Version changes
This table summarises the changes in the version of the different packages:
Package | Default version | Release notes | Download page | |
---|---|---|---|---|
Before 10/05/2017 | After 10/05/2017 | |||
ecCodes | 2.0.0 | 2.1.0 | ecCodes Releases | |
EMOSLIB | 4.4.3 | 4.4.7 | History of EMOSLIB changes | EMOSLIB Releases |
Magics | 2.29.5 | 2.31.0 | Latest News | Magics Releases |
Metview | 4.7.1 | 4.8.3 | Metview Releases Metview Bundle | |
GRIB-API | 1.17.0 | 1.20.0 | GRIB API version 1.20.0 released GRIB API version 1.19.0 released | GRIB-API Releases |
ODB API | 0.11.4 | 0.16.1 | Change history | ODB API Releases |
ECFLOW | 4.1.0 | 4.5.0 | ecFlow Releases |
Please see the Release notes for full details of the changes implemented in each package.
The next defaults are tagged as "may17" in modules. After the session the previous defaults will be tagged as "old"
IMPORTANT: ecCodes replaces GRIB API as the default GRIB decoder
As part of this change in the default ECMWF software stack, ecCodes will become the default GRIB decoder at the centre superseding GRIB API. ecCodes provides a set of equivalent command line tools and compatible libraries. All the variables defined by the grib_api module for the compilation of programs and the python bindings are also provided for backwards compatibility. See the GRIB-API migration page for details on the differences between GRIB API and ecCodes.
The grib_api module, which used to be part of the default shell environment, will no longer be automatically loaded after the change. Instead, the eccodes module will be automatically loaded.
Anyone loading or switching to a particular version of the grib_api module in their scripts or user setup must make sure that it can work after the change and make the necessary amendments otherwise.
Example
The following commands will fail after the change on a default environment, because it is assumed that the grib_api module is loaded, and that eccodes is not:
module swap grib_api/old # or module unload grib_api module load grib_api/old
First of all, the recommendation is to use ecCodes instead, so no swap would be required. However, if you have a good reason to continue using a particular version of GRIB API, then the more robust way to make sure it works in all cases would be:
module unload grib_api eccodes module load grib_api/old
Please let ECMWF know if you need to revert to grib_api after the update of 10 May 2017.
How to use the new versions for testing BEFORE the update
The new versions of the software packages can be selected by using the may17 tag in modules. For example:
module swap metview/may17 module load Magics/may17 module swap emos/may17 module swap grib_api eccodes/may17
How to revert to the old versions in case of problems AFTER the update
Users that experience problems with the new default software packages after the update of 10 May will be able to revert to the old default versions. These can be selected with the commands:
module swap metview/old module load Magics/old module swap emos/old module swap eccodes grib_api/old
1 Comment
Martin Janousek
Please note the change of eccodes becoming a default GRIB decoder will enable to upgrade also the default version of Metpy to 6.0.2.