Contents of the sample static dataset

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 post-processed products (ensemble mean, maximum, etc, EFI and Sot), 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 the data which will be produced by IFS cy51r1 are currently expected to be encoded.  All fields provided are global and interpolated to a 1.0° x1.0° regular latitude-longitude grid.

Where to obtain the static sample dataset

Directory structure of static sample dataset

Data are ordered in a MARS-like folder structure under <root_dir>/<class>/<stream>/<type>/<levtype>.  Shown below is a diagrammatic layout of the 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/waef
└── pf
    └── sfc

<root_dir>/od/wave
├── an
│   └── sfc
└── fc
    └── sfc

Structure of file names

Each directory at the end of a branch of the tree contains one file per parameter with 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. 

Who should use the initial static sample dataset ?

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.

What can be tested using the static sample dataset ?

The static sample dataset can be used for making some basic tests using your GRIB decoder to ensure the data can be read correctly.  In particular, 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 ecCodes version 2.42.0 should be used  - see ecCodes version 2.42.0 released.  This is available for download from our ecCodes Releases page.

Note that ecCodes version 2.42.0 comes with a significant reworking of the concepts and lookup related to the paramIds/shortNames/names as well as the keys in the MARS namespace in preparation for the migration to GRIB2.  This mechanism is predominantly handled by the WMO tables version, with tablesVersion 33 imposing the pre or post migration behaviour.  All data using the MARS namespace will default to this switching behaviour, but some exceptions have been implemented to, for example, preserve ECMWF operations until IFS CY51R1.  See the ecCodes version 2.42.0 release notes for further details.

In particular, ecCodes version 2.42.0 should be used with care and not introduced into any operational processing chain unless it has been fully tested beforehand to ensure that none of the changes impact your production.

The static sample dataset can be decoded by versions of ecCodes older than 2.42.0 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).

Other sources of ECMWF GRIB2 data that can be used for testing

Along with the static sample dataset, users can also use the ECMWF Open Data to test their processing of GRIB2 data.  All of the open data are encoded in GRIB2.  For more information about these data and how to obtain them, see ECMWF open data: real-time forecasts from IFS and AIFS.

Changes to encoding of parameter paramId, shortName, name and units

The encoding of the ecCodes paramId, shortName, name and units have changed for some surface parameters from the analysis and forecast.  Users may need to adapt their workflows in order to process these parameters successfully.  The main changes affecting parameters provided in the static sample dataset are summarised below.  For a list of all changes to parameter encoding, see

Soil temperature, volumetric soil moisture and sea-ice temperature

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. 

Old paramIdOld shortNameOld nameOld unitsNew paramIdNew shortNameNew nameNew unitslevel
139stl1Soil temperature level 1K260360sotSoil temperatureK1
170stl2Soil temperature level 2K260360sotSoil temperatureK2
183stl3Soil temperature level 3K260360sotSoil temperatureK3
236stl4Soil temperature level 4K260360sotSoil temperatureK4
39swvl1Volumetric soil water layer 1m**3 m**-3260199vswVolumetric soil moisturem**3 m**-31
40swvl2Volumetric soil water layer 2m**3 m**-3260199vswVolumetric soil moisturem**3 m**-32
41swvl3Volumetric soil water layer 3m**3 m**-3260199vswVolumetric soil moisturem**3 m**-33
42swvl4Volumetric soil water layer 4m**3 m**-3260199vswVolumetric soil moisturem**3 m**-34
35istl1Ice temperature layer 1K262024sitSea ice temperature K1
36istl2Ice temperature layer 2K262024sitSea ice temperature K2
37istl3Ice temperature layer 3K262024sitSea ice temperature K3
38istl4Ice temperature layer 4K262024sitSea ice temperature K4

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.

Parameters statistically processed over a time window

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 - timespan - that is to be introduced. 

Maximum 10m wind gust

Old paramIdOld shortNameOld nameNew ParamIdNew shortNamenameunitstimespanstepType
4910fgMaximum 10 metre wind gust since previous post-processing237318max_i10fgTime-maximum 10 metre wind gustm s**-11h/3h/6hmax
22802810fg3Maximum 10 metre wind gust in the last 3 hours237318max_i10fgTime-maximum 10 metre wind gust m s**-13hmax
12310fg6Maximum 10 metre wind gust in the last 6 hours237318max_i10fgTime-maximum 10 metre wind gust m s**-16hmax

Maximum and minimum 2m temperature

Old paramIdOld shortNameOld nameNew ParamIdNew shortNamenameunitstimespanstepType
201mx2tMaximum temperature at 2 metres since previous post-processing237167max_2tTime-maximum 2 metre temperature K1h/3h/6hmax
202mn2tMinimum temperature at 2 metres since previous post-processing238167min_2tTime-minimum 2 metre temperatureK1h/3h/6hmin
228026mx2t3Maximum temperature at 2 metres in the last 3 hours237167max_2tTime-maximum 2 metre temperature K3hmax
228027mn2t3Minimum temperature at 2 metres in the last 3 hours238167min_2tTime-minimum 2 metre temperatureK3hmin
121mx2t6Maximum temperature at 2 metres in the last 6 hours 237167max_2tTime-maximum 2 metre temperature K6hmax
122mn2t6Minimum temperature at 2 metres in the last 6 hours238167min_2tTime-minimum 2 metre temperature K6hmin

Maximum and minimum total precipitation rate

Old paramIdOld shortNameOld nameOld unitsNew paramIdNew shortNameNew nameNew unitstimespanstepType
228226mxtprMaximum total precipitation rate since previous post-processingkg m**-2 s**-1 237055max_tprateTime-maximum total precipitation ratekg m**-2 s**-1 1h/3h/6hmax
228227mntprMinimum total precipitation rate since previous post-processingkg m**-2 s**-1 238055min_tprateTime-minimum total precipitation ratekg m**-2 s**-1 1h/3h/6hmin
228222mxtpr3Maximum total precipitation rate in the last 3 hourskg m**-2 s**-1 237055max_tprateTime-maximum total precipitation ratekg m**-2 s**-13hmax
228223mntpr3Minimum total precipitation rate in the last 3 hourskg m**-2 s**-1 238055min_tprateTime-minimum total precipitation ratekg m**-2 s**-13hmin
228224mxtpr6Maximum total precipitation rate in the last 6 hourskg m**-2 s**-1 237055max_tprateTime-maximum total precipitation ratekg m**-2 s**-16hmax
228225mntpr6Minimum total precipitation rate in the last 6 hourskg m**-2 s**-1 238055min_tprateTime-minimum total precipitation ratekg m**-2 s**-16hmin

Maximum CAPE and CAPE Shear

Old paramIdOld shortNameOld nameOld unitsNew paramIdNew shortNameNew nameNew unitstimespanstepType
228035mxcape6Maximum CAPE in the last 6 hoursJ kg**-1237287max_capeTime-maximum convective available potential energy J kg**-16hmax
228036mxcapes6Maximum CAPES in the last 6 hoursm**2 s**-2237321max_capesTime-maximum convective available potential energy shearm**2 s**-26hmax

Mean total lightning flash density

Old paramIdOld shortNameOld nameOld unitsNew paramIdNew shortNameNew nameunitstimespanstepType
228051litota1Averaged total lightning flash density in the last hourkm**-2 day**-1235326avg_litotiTime-mean total lightning flash density km**-2 day**-11h/3h/6havg
228057litota3Averaged total lightning flash density in the last 3 hourskm**-2 day**-1235326avg_litotiTime-mean total lightning flash density km**-2 day**-13havg
228058litota6Averaged total lightning flash density in the last 6 hourskm**-2 day**-1235326avg_litotiTime-mean total lightning flash density km**-2 day**-16havg

Most severe and most frequent precipitation type

Old paramIdOld shortNameOld nameNew paramIdNew shortNameNew nametimespanstepType
260318ptype_sev1hPrecipitation type (most severe) in the last 1 hours260682sev_ptypeTime-severity precipitation type1hseverity
260319ptype_sev3hPrecipitation type (most severe) in the last 3 hours260682sev_ptypeTime-severity precipitation type3hseverity
260338ptype_sev6hPrecipitation type (most severe) in the last 6 hours260682sev_ptypeTime-severity precipitation type6hseverity
260320ptype_freq1hPrecipitation type (most frequent) in the last 1 hours260683freq_ptypeTime-mode precipitation type1hmode
260321ptype_freq3hPrecipitation type (most frequent) in the last 3 hours260683freq_ptypeTime-mode precipitation type3hmode
260339ptype_freq6hPrecipitation type (most frequent) in the last 6 hours260683freq_ptypeTime-mode precipitation type6hmode

Ocean model output

The paramId's and shortNames for the following output from the ocean model have changed.  In addition:

Old paramIdOld shortNameOld nameOld unitsNew paramIdNew shortNameNew nameNew units
151130soSea water practical salinitypsu262100sosSea surface practical salinityg kg**-1
151131ocuEastward surface sea water velocitym s**-1262140sveEastward surface sea water velocitym s**-1
151132ocvNorthward surface sea water velocitym s**-1262139svnNorthward surface sea water velocitym s**-1
151145zosSea surface heightm262124zosSea surface heightm
151148mldMixed layer depthm3067mldMixed layer depthm
151163t20dDepth of 20C isothermm262104t20dDepth of 20 C isothermm
151164tav300Average potential temperature in the upper 300mdegrees C262144pt300mAverage sea water potential temperature in the upper 300mK
151175sav300Average sea water practical salinity in the upper 300mpsu262118sc300mAverage sea water practical salinity in the upper 300 mg kg**-1
174098sithickSea-ice thicknessm262000sithickSea ice thicknessm

Fluxes of chemical species

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.

Old paramIdOld shortNameOld nameOld unitsNew paramIdNew shortNameNew nameNew unitschemShortNamestepType
228080aco2nee
kg m**-2435002aneefAccumulated net ecosystem exchange fluxkg m**-2CO2accum
228081aco2gpp
kg m**-2436002agppfAccumulated gross primary production fluxkg m**-2CO2accum
228082aco2rec
kg m**-2437002aerfAccumulated ecosystem respiration fluxkg m**-2CO2accum
228083fco2nee
kg m**-2435000neefNet ecosystem exchange fluxkg m**-2 s**-1CO2instant
228084fco2gpp
kg m**-2436000gppfGross primary production fluxkg m**-2 s**-1CO2instant
228085fco2rec
kg m**-2437000erfEcosystem respiration fluxkg m**-2 s**-1CO2instant

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.