General requirements

Encoding format

  • WMO GRIB2 data format.

Missing values

  • Bitmaps shall be used to indicate missing values.

Grid and resolution

  • Each partner will provide their eps data on a 0.25/0.25 regular lat-lon grid (1440x721 grid points, including poles).
  • First grid point is 90N 0E. The data will be archived first from west to east (OE to 359.75), and then from north to south (90N to 90S).
  • The related GRIB 2 meta data called scanning mode  should equal to 0.
    • Scanning mode 0

      • i scans positively (west to east)
        • i points are consecutive
      • j scans negatively (north to south)

  • Grids are defined in GRIB2 using an accuracy of 1/1000000 (one millionth) of a degree.

Data compression

CCSDS compression should be used

GRIB2 encoding

All data must be encoded following the required rules described below to achieve fully compliant WPMIP format from all centres.

Encoding software

ECMWF makes available a GRIB decoding library (ecCodes) for the benefit of the WMO community. ecCodes can be freely downloaded from here and the documentation can be found here.

For more general information about GRIB2 format please refer to WMO Manual on Codes .

Encoding details

General encoding

Specific details which should be encoded in GRIB2 sections 1 and 4:

Section 1
Octets Key nameValueDescriptionComments
6-7centre323*3WMO Centre's codenewly proposed WMO code
8-9subCentreXWMO Sub-Centre's codesee subCentre codes below
10tablesVersion36The latest WMO table*1
11localTablesVersion0Local tables not used
20productionStatusOfProcessedData16

Weather Prediction Model Intercomparison Project*2

use during production phase



17Weather Prediction Model Intercomparison Project test *2use during testing phase
21typeOfProcessedData0Analysis products


1Forecast products

*1 New WMO tables version 36 (containing also new WPMIP keys) will be officialy released by WMO later in 2025 (November)

*2 New codes for the WPMIP (part of GRIB 2 tables version 36) to be approved by WMO by August 2025 (Manual on Codes (WMO-No. 306), Volume I.2, GRIB code table 1.3)

*3 New code for the WPMIP  to be approved by WMO in Q4 2025

Section 4
Octets
Value 
8-9productDefinitionTemplateNumber

0/8*1

13backgroundProcess

X*2

14generatingProcessIdentifier

X*2

*1 statistically processed (typeOfStatisticalProcessing is set up)

*2 centre/model version dependent (see table with Centre codes below)

Section 5
Octets
ValueDescription
10-11dataRepresentationTemplateNumber

42

[Grid point data - CCSDS recommended lossless compression (grib2/tables/29/5.0.table) ]


Centre codes and model versions

WMO Centre key for WPMIP together with subCentre defined for each organization is used to identified each data provider

  • it was agreed that a new WMO centre code for WPMIP will be needed 
    • the current deadline for WMO proposals is 3rd October 2025. Proposals made at this meeting will be approved (and new GRIB2/BUFR4 codes available) in May 2026. 
    • it is assumed that centre=323 which is currently free, could be assigned for the project and thus could be used in advance
      • if it changes,  we would have to update the centre code accordingly
        • such changes would be handled by WP-MIP project leads (in the already existing data)

Model name (e.g. ECMWF-AIFS-v1_oic) is identified in ecCodes for given centre, model and model version from following keys:

  • centre=323 (WPMIP)
  • subCentre (unique for each provider)
  • backgroundProcess (unique for each model)
  • generatingProcessIdentifier  (unique for each model version)

For example model=ECMWF-AIFS-v1_oic would be encoded using:

  • centre=323
  • subCentre=98
  • backgroundProcess=1
  • generatingProcessIdentifier=1

Initial conditions

  • own initial conditions (OIC)
  • same initial conditions (SIC)


WMO centre=323 (expected code for WPMIP project in next WMO tables release)


OrganisationsubCentrebackground Processgenerating Process Identifier  modelNamemodelVersionmodelremark
1BoM1141BoM-AccessGv1_oicBoM-AccessG-v1_oic
2
1142BoM-AccessGv1_sicBoM-AccessG-v1_sic
3
151BoM-AIFS_init_AccessGv1_oicBoM-AIFS_init_AccessG-v1_sicAIFS Initialized with Access-G
4
152BoM-AIFS_init_AccessGv1_sicBoM-AIFS_init_AccessG-v1_sic
5CMA38251CMA-Fengshunv1_oicCMA-Fengshun-v1_oic
6
38252CMA-Fengshunv1_sicCMA-Fengshun-v1_sic
7CPTEC4661CPTEC-GMv1_oicCPTEC-GM-v1_oic
8
4662CPTEC-GMv1_sicCPTEC-GM-v1_sic
9
4663CPTEC-GMv2_oicCPTEC-GM-v2_oic
10CSIR13771CSIR-GMv1_oicCSIR-GM-v1_oic
11
13772CSIR-GMv1_sicCSIR-GM-v1_sic
12DWD7831DWD-ICONv1_oicDWD-ICON-v1_oic
13
7832DWD-ICONv1_sicDWD-ICON-v1_sic
14
7841DWD-AICONv1_oicDWD-AICON-v1_oic
15
7842DWD-AICONv1_sicDWD-AICON-v1_sic
16
7843DWD-AICONv2_oicDWD-AICON-v2_oic
17ECCC53

8

1

ECCC-GDPS

v1_oic

ECCC-GDPS-v1_oic


18
53

8

2

ECCC-GDPS

v1_sic

ECCC-GDPS-v1_sic


19
53

8

3

ECCC-GDPS

v2_oic

ECCC-GDPS-v2_oic


20
53

9

1

ECCC-GDPS_nudge

v1_oic

ECCC-GDPS_nudge-v1_oic

GDPS spectral nudging

21
53

9

2

ECCC-GDPS_nudge

v1_sic

ECCC-GDPS_nudge-v1_sic


22
53

9

3

ECCC-GDPS_nudge

v2_oic

ECCC-GDPS_nudge-v2_oic


23
53

10

1

ECCC-GEML

v1_oic

ECCC-GEML-v1_oic

GEML experimantal

24
53

10

2

ECCC-GEML

v1_sic

ECCC-GEML-v1_sic


25
53

10

3

ECCC-GEML

v2_oic

ECCC-GEML-v2_oic


26ECMWF98

255

1

ECMWF-IFS

v1_49r1

ECMWF-IFS-v1_49r1

operational IFS, version cy49r1

27
98

1

1

ECMWF-AIFS

v1_oic

ECMWF-AIFS-v1_oic

operational AIFS version 1.0

28
98

1

2

ECMWF-AIFS

v1_sic

ECMWF-AIFS-v1_sic

operational AIFS version 1.0

29
98

2

1

ECMWF-IFS_nudge_AIFS

v1_49r1

ECMWF-IFS_nudge_AIFS-v1_49r1

spectral nudging to AIFS

30
98

2

2

ECMWF-IFS_nudge_AIFS

v2_49r1

ECMWF-IFS_nudge_AIFS-v2_49r1

spectral nudging to AIFS

31GFDL138111GFDL-SHiELDv1_oicGFDL-SHiELD-v1_oicphysical-model
32
138112GFDL-SHiELDv1_sicGFDL-SHiELD-v1_sicphysical-model
33
138261GFDL-AI_SHiELDv1_oicGFDL-AI_SHiELD-v1_oicAI version
34
138262GFDL-AI_SHiELDv1_sicGFDL-AI_SHiELD-v1_sicAI version
35IMD28121IMD-GFSv1_oicIMD-GFS-v1_oic
36
28122IMD-GFSv1_sicIMD-GFS-v1_sic
37
28131IMD-NCUMv1_oicIMD-NCUM-v1_oic
38
28132IMD-NCUMv1_sicIMD-NCUM-v1_sic
39JMA34151JMA-GSMv1_oicJMA-GSM-v1_oicOperational Global Spectral Model (GSM)
40
34161JMA-GraphCast_init_GSMv1_oicJMA-GraphCast_init_GSM-v1_oicGraphCast initialized and fine-tuned by GSM initial conditions
41KIAPS/KMA40241KIAPS_KMA-KIMv1_oicKIAPS_KMA-KIM-v1_oic
42
40242KIAPS_KMA-KIMv1_sicKIAPS_KMA-KIM-v1_sic
43
40243KIAPS_KMA-KIMv2_oicKIAPS_KMA-KIM-v2_oic
44
40244KIAPS_KMA-KIMv2_sicKIAPS_KMA-KIM-v2_sic
45UKMO74171UKMO-UMv1_oicUKMO-UM-v1_oic
46
74172UKMO-UMv1_sicUKMO-UM-v1_sic
47
74173UKMO-UMv2_oicUKMO-UM-v2_oic
48
74271UKMO-FASTNETv1_oicUKMO-FASTNET-v1_oicUKMO used backgroundProcess=17 at ECCC
49
74281UKMO-UM_nudgev1_oicUKMO-UM_nudge-v1_oicUKMO used backgroundProcess=17 at ECCC
50METNO88181METNO-AIWPv1_oicMETNO-AIWP-v1_oic
51
88182METNO-AIWPv1_sicMETNO-AIWP-v1_sic
52NOAA9191NOAA-GFSv1_oicNOAA-GFS-v1_oic
53
9192NOAA-GFSv1_sicNOAA-GFS-v1_sic
54
9201NOAA-MLGFSv1_oicNOAA-MLGFS-v1_oic
55
9202NOAA-MLGFSv1_sicNOAA-MLGFS-v1_sic
56NRL139211NRL-NOGAPSv1_oicNRL-NOGAPS-v1_oic
57
139212NRL-NOGAPSv1_sicNRL-NOGAPS-v1_sic
58RAS4221RAS-SL_AVv1_oicRAS-SL_AV-v1_oic
59
4222RAS-SL_AVv1_sicRAS-SL_AV-v1_sic
60
4223RAS-SL_AVv2_oicRAS-SL_AV-v2_oic
61SAWS149231SAWS-GMv1_oicSAWS-GM-v1_oic
62
149232SAWS-GMv1_sicSAWS-GM-v1_sic

*max backgroundProcess=28 as per   (i.e. current different WPMIP models)

Examples of  the required GRIB2 files

  • all examples are encoded as the output from ECMWF-IFS-v1_49r1 (test data, steps 0-240h) 
    • productionStatusOfProcessedData=17 (WPMIP test data)
    • centre=323 (WPMIP)
    • subCentre=98 (ECMWF)
    • backgroundProcess=255 (v1_49r1)
    • generatingProcessIdentifier=1 (IFS)
  • the data section is removed from the sample data to reduce the file size (thus only meta data matter here)

parameter

Sample file


GRIB metadata dump*1

mslp (analysis, surface, instantaneous parameter)an.sfc.mslp.grib2an.sfc.mslp.dump
total precipitation (forecast, accumulated parameter)fc.sfc.tp.grib2fc.sfc.tp.dump
temperature (forecast, pressure levels, instantaneous parameter)fc.pl.t.grib2fc.pl.t.dump

*1 using "grib_dump -O" command from ecCodes package