...
Section | |||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
CDO supports GRIB-2 but needs either the grib_api or ecCodes library from ECMWF to be included. This is necessary in order to work correctly with OpenIFS model output.
Code Block | ||||
---|---|---|---|---|
| ||||
cdo --version Climate Data Operators version 1.79.26 (http://mpimet.mpg.de/cdo) ........... Libraries: HDF5/1.10.4 proj/5.2 xml2/2.9.4 Filetypes: srv CDIext libraryieg versiongrb1 : 1.7.2 of Aug 10 2016 09:22:26 CGRIBEXgrb2 nc1 nc2 nc4 nc4c nc5 CDI library version : 1.79.56 ofcgribex Junlibrary version 3 2016 14:44:00 GRIB_API: 1.9.2 ecCodes library version : 12.1512.05 NetCDF library version : 4.46.12 of AugFeb 14 32019 2016 1110:1013:4927 $ hdf5 library version : 1.10.4 threadsafe exse library version : 1.4.1 FILE library version : 1.8.3 ......... |
If you find the CDO commands below do not work, you can either build CDO yourself, making sure a recent version of grib_api or ecCodes is used, or you can use the workaround below.
...
Info |
---|
If you have files with a mix of GRIB-1 and GRIB-2, then either split the file first or compile cdo with "--disable-cgribex --with-grib_apieccodes=yes" If variable names are lost, add the "-t ecmwf" option. |
...
Another way to split the file would be using the grib_copy command from the ecCodes (or grib_api) software as shown above:
Code Block |
---|
grib_copy ICMSHg4a4+000000.grb ICMSHg4a4+000000_[typeOfLevel].grb |
...
There are various commands for inspecting the contents of a GRIB file. The GRIB_API installation as part of ecCodes software installation required for OpenIFS has useful commands like grib_ls
and grib_dump
.
...
Note |
---|
cdo commands can be combined into a single command for greater efficiency. |
Using EMOSLIB to interpolate to regular grid
The ECMWF interpolation software library EMOSLIB also provides the capability to interpolate spectral data to regular gaussian grids or regular lat-lon grids, and interpolate regular gaussian grids to regular lat-lon grids.
...
The grid specified for the --regular
option follows the grid naming convention for EMOSLIB here: Reduced Gaussian Grids.
Another command can be found in the 'tools'
directory. This allows the interpolation function to be specified and is more flexible:
...
Possible problems and solutions
...
cdo -R option does not work with GRIB-2 fields to convert to regular grid
...
However, if this does not work for any reason, a workaround is to temporarily change the edition number to 1 of the GRIB file. Use the grib_set
command (from ecCodes or grib_api) to change the GRIB edition number for all messages:
...
Code Block |
---|
cdo vct in.grb > pv.txt |
...
Parameter names are lost for GRIB-1 fields
ECMWF GRIB-1 use keys which may not be recognised by CDO because they are locally defined (e.g. the shortName
key) and not defined in the WMO GRIB tables that CDO uses. This can cause parameter names to be lost or not recognised when using the CDO commands..
A workaround is to use the -t ecmwf
option. This will make CDO use ECMWF parameter table 128 for the definitions of variables but 128 is only for GRIB 1. This will work for the surface fields which are encoded by IFS as GRIB 1, but not for the multi-level fields which are encoded in GRIB 2. Variable names become 'unknown' if -t ecmwf is used with the multi-level fields. It is best to omit it completely, even for surface fields, and only use it for GRIB 1 data if you get missing variable names after CDO has converted the data A workaround is to use the -t ecmwf
option. The -t option
tells CDO to use the predefined ECMWF parameter tables (see CDO documentation for more details).
...
Warning |
---|
Do not use this option for GRIB-2 fields. It sets the GRIB table default to be specific to the GRIB-1 ECMWF tables. If problems persist, we recommend using grib_to_netcdf to convert to netCDF. |
...
Acknowledgements
Thanks to Paul Dando of User Support for help with the contents of this page.
HTML |
---|
<script type="text/javascript" src="https://softwarejira.ecmwf.int/issues/s/en_UKet2vtj/787/12/1.2.5/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?collectorId=5fd84ec6"></script> |
...