To help users begin planning for the migration, we have produced an initial static sample dataset which provides sample data encoded in GRIB edition 2 from:
Sample data encoded in GRIB2 from the ensemble hindcasts, sub-seasonal and sub-seasonal hindcasts will also be made available in due course.
The sample data are based on the output from the current IFS cy49r1 output for the 00 UTC cycle on 30 November 2024 but encoded in GRIB2 as we currently expect the data which will be produced by IFS cy51r1 to be encoded. All fields provided are global and interpolated to a 1.0° x1.0° regular latitude-longitude grid.
Data are ordered in a MARS-like folder structure under <root_dir>/<class>/<stream>/<type>/<levtype>. Shown below is a diagrammatic layout of the directory structure under <root_dir>=/ec/vol/mtg2_sample/:
<root_dir>/od/enfo └── pf ├── pl ├── pt ├── pv ├── sfc └── sol <root_dir>/od/oper ├── an │ ├── ml │ ├── pl │ ├── pt │ ├── pv │ ├── sfc │ └── sol └── fc ├── ml ├── pl ├── pt ├── pv ├── sfc └── sol <root_dir>/od/scda ├── an │ ├── ml │ ├── pl │ ├── pt │ ├── pv │ ├── sfc │ └── sol └── fc ├── ml ├── pl ├── pt ├── pv ├── sfc └── sol <root_dir>/od/scwv ├── an │ └── sfc └── fc └── sfc <root_dir>/od/waef └── pf └── sfc <root_dir>/od/wave ├── an │ └── sfc └── fc └── sfc |
Each directory at the end of the tree contains one file per parameter containing all forecast time steps. The files are named <paramId>_<class>_<stream>_<type>_<levtype>_<shortName>_<year>_<expver>_<gridType>.grib2 and are based on the ecCodes paramId, shortName and gridType and the MARS class, stream, type, levtype used for the current operational output at IFS cy49r1.
For example, the file named 151_od_oper_fc_sfc_msl_2024_0001_regular_ll.grib2 in the <root_dir>/od/oper/fc/sfc/ directory contains the GRIB2 encoding of mean sea-level pressure from the Control (ex-HRES) forecast at all available forecast steps.
The initial static sample dataset is aimed at GRIB encoding and decoding specialists that need early access to samples of ECMWF GRIB2 data to test and prepare any decoding software used that is not based on ECMWF ecCodes GRIB encoding and decoding software to handle the GRIB2 ECMWF data. The dataset is not suitable for the general users of ECMWF data that want to test their full processing chain.
Sample data for the general user will be made available in the coming months when it will be possible to download the data from the ECMWF MARS archive and process the data using versions of ECMWF software, such as ecCodes and Metview that fully support the new ECMWF GRIB2 encoding.
The static sample dataset can be used for making some basic tests using your GRIB decoder to ensure the data can be read correctly. This testing is encouraged if you use a third-party GRIB decoder, such as wgrib2, which is not based on ecCodes. If your decoder is based on ecCodes then it will need to use a new ecCodes version which will be made available soon.
The static sample dataset can be decoded with the current version of ecCodes but some keys, in particular the shortName and paramId, may not be set correctly. However, it is possible use the grib_dump tool to inspect the GRIB headers and here the keys are set to the correct values as far as we are aware.
In general, the static sample dataset is not suitable for initialising an NWP model. Although encoding examples of all parameters at all forecast steps are available, for those parameters on constant pressure levels, for example, only the 1hPa level is provided. However, users that initialise NWP models from ECMWF data should note the change in the way the parameters on soil levels are provided as this may require changes to your code. Instead of having four separate parameters at each soil layer, in GRIB2 there will be one parameter available at each of the four layers (levels).
In GRIB1, soil temperature, volumetric soil moisture and sea-ice temperature have different paramIds for each of the 4 soil layers. In GRIB2, only a single paramId is used with the layer indicated by the level key.
For example, in GRIB1, there is a paramId for Volumetric soil water layer 1 and a different paramId for Volumetric soil water layer 2, etc. In GRIB2, only a single paramId is used for Volumetric soil water, with the layer 1 having level=1 and layer 2 having level=2.
139 | stl1 | 260360 | sot | 1 | Soil temperature | K |
170 | stl2 | 260360 | sot | 2 | Soil temperature | K |
183 | stl3 | 260360 | sot | 3 | Soil temperature | K |
236 | stl4 | 260360 | sot | 4 | Soil temperature | K |
39 | swvl1 | 260199 | vsw | 1 | Volumetric soil moisture | m**3 m**-3 |
40 | swvl2 | 260199 | vsw | 2 | Volumetric soil moisture | m**3 m**-3 |
41 | swvl3 | 260199 | vsw | 3 | Volumetric soil moisture | m**3 m**-3 |
42 | swvl4 | 260199 | vsw | 4 | Volumetric soil moisture | m**3 m**-3 |
35 | istl1 | 262024 | sit | 1 | Sea ice temperature | K |
36 | istl2 | 262024 | sit | 2 | Sea ice temperature | K |
37 | istl3 | 262024 | sit | 3 | Sea ice temperature | K |
38 | istl4 | 262024 | sit | 4 | Sea ice temperature | K |
These parameters will be archived in MARS with levtype=sol
(surface other levels). To retrieve these parameters in GRIB2, users will need to change their MARS requests to specify levtype=sol,levelist=1/2/3/4
.
In GRIB1, parameters that are statistically processed over a time window, such and maximum, minimum and average values over the last 3 or 6 hours, have different paramIds for each time window available. In GRIB2, there is a unique paramId indicating the parameter and type of statistical processing, e.g., paramId=237167, shortName=max_2t for maximum temperature at 2 metres. A separate key, called statisticalwindow, is then used to specify the time window. For example, paramId=23167, statisticalwindow=3h identifies maximum temperature at 2 metres during the last 3 hours.
This change applies to:
To retrieve these parameters in GRIB2 from MARS, users will need to use the new paramId and also specify the statistical processing time window using a new MARS keyword that is to be introduced.
49 | 10fg | 237318 | max_i10fg | 1h/3h/6h | max | Time-maximum 10 metre wind gust | m s**-1 |
228028 | 10fg3 | 237318 | max_i10fg | 3h | max | Time-maximum 10 metre wind gust | m s**-1 |
123 | 10fg6 | 237318 | max_i10fg | 6h | max | Time-maximum 10 metre wind gust | m s**-1 |
201 | mx2t | 237167 | max_2t | 1h/3h/6h | max | Time-maximum 2 metre temperature | K |
202 | mn2t | 238167 | min_2t | 1h/3h/6h | min | Time-minimum 2 metre temperature | K |
228026 | mx2t3 | 237167 | max_2t | 3h | max | Time-maximum 2 metre temperature | K |
228027 | mn2t3 | 238167 | min_2t | 3h | min | Time-minimum 2 metre temperature | K |
121 | mx2t6 | 237167 | max_2t | 6h | max | Time-maximum 2 metre temperature | K |
122 | mn2t6 | 238167 | min_2t | 6h | min | Time-minimum 2 metre temperature | K |
228226 | mxtpr | kg m**-2 s**-1 | 237055 | max_tprate | 1h/3h/6h | max | Time-maximum total precipitation rate | kg m**-2 s**-1 |
228227 | mntpr | kg m**-2 s**-1 | 238055 | min_tprate | 1h/3h/6h | min | Time-minimum total precipitation rate | kg m**-2 s**-1 |
228222 | mxtpr3 | kg m**-2 s**-1 | 237055 | max_tprate | 3h | max | Time-maximum total precipitation rate | kg m**-2 s**-1 |
228223 | mntpr3 | kg m**-2 s**-1 | 238055 | min_tprate | 3h | min | Time-minimum total precipitation rate | kg m**-2 s**-1 |
228224 | mxtpr6 | kg m**-2 s**-1 | 237055 | max_tprate | 6h | max | Time-maximum total precipitation rate | kg m**-2 s**-1 |
228225 | mntpr6 | kg m**-2 s**-1 | 238055 | min_tprate | 6h | min | Time-minimum total precipitation rate | kg m**-2 s**-1 |
228035 | mxcape6 | J kg**-1 | 237287 | max_cape | 6h | max | Time-maximum convective available potential energy | J kg**-1 |
228036 | mxcapes6 | m**2 s**-2 | 237321 | max_capes | 6h | max | Time-maximum convective available potential energy shear | m**2 s**-2 |
228051 | litota1 | km**-2 day**-1 | 235326 | avg_litoti | 1h/3h/6h | avg | Time-mean total lightning flash density | km**-2 day**-1 |
228057 | litota3 | km**-2 day**-1 | 235326 | avg_litoti | 3h | avg | Time-mean total lightning flash density | km**-2 day**-1 |
228058 | litota6 | km**-2 day**-1 | 235326 | avg_litoti | 6h | avg | Time-mean total lightning flash density | km**-2 day**-1 |
260318 | ptype_sev1h | 260682 | sev_ptype | 1h | severity | Time-severity precipitation type |
260319 | ptype_sev3h | 260682 | sev_ptype | 3h | severity | Time-severity precipitation type |
260338 | ptype_sev6h | 260682 | sev_ptype | 6h | severity | Time-severity precipitation type |
260320 | ptype_freq1h | 260683 | freq_ptype | 1h | mode | Time-mode precipitation type |
260321 | ptype_freq3h | 260683 | freq_ptype | 3h | mode | Time-mode precipitation type |
260339 | ptype_freq6h | 260683 | freq_ptype | 6h | mode | Time-mode precipitation type |
The paramId's and shortNames for the following output from the ocean model have changed. In addition:
151130 | so | psu | 262100 | sos | Sea surface practical salinity | g kg**-1 |
151131 | ocu | m s**-1 | 262140 | sve | Eastward surface sea water velocity | m s**-1 |
151132 | ocv | m s**-1 | 262139 | svn | Northward surface sea water velocity | m s**-1 |
151145 | zos | m | 262124 | zos | Sea surface height | m |
151148 | mld | m | 3067 | mld | Mixed layer depth | m |
151163 | t20d | m | 262104 | t20d | Depth of 20 C isotherm | m |
151164 | tav300 | degrees C | 262144 | pt300m | Average sea water potential temperature in the upper 300m | K |
151175 | sav300 | psu | 262118 | sc300m | Average sea water practical salinity in the upper 300 m | g kg**-1 |
174098 | sithick | m | 262000 | sithick | Sea ice thickness | m |
In GRIB1, parameters that are fluxes of chemical species have different paramIds for each chemical species and type of flux. In GRIB2, a unique paramId indicates the type of flux and a new key called chemShortName identifies the chemical. For example, paramId=435000 refers to the Net ecosystem exchange flux and the chemShortName=CO2 identifies this as the Carbon dioxide net ecosystem exchange flux.
228080 | aco2nee | kg m**-2 | 435002 | aneef | CO2 | accum | Accumulated net ecosystem exchange flux | kg m**-2 |
228081 | aco2gpp | kg m**-2 | 436002 | agppf | CO2 | accum | Accumulated gross primary production flux | kg m**-2 |
228082 | aco2rec | kg m**-2 | 437002 | aerf | CO2 | accum | Accumulated ecosystem respiration flux | kg m**-2 |
228083 | fco2nee | kg m**-2 | 435000 | neef | CO2 | instant | Net ecosystem exchange flux | kg m**-2 s**-1 |
228084 | fco2gpp | kg m**-2 | 436000 | gppf | CO2 | instant | Gross primary production flux | kg m**-2 s**-1 |
228085 | fco2rec | kg m**-2 | 437000 | erf | CO2 | instant | Ecosystem respiration flux | kg m**-2 s**-1 |
To retrieve these parameters in GRIB2 from MARS, users will need to use the new paramId and also specify the chemical species using the MARS keyword, chem.