Find out how to access ECMWF real-time open data 


Latest Updates to ECMWF Open Data

November 12, 2024:  Introduction of Cycle 49r1, including:

  • replacement of parameters STL1/STL2/STL3/STL4 by sot with 4 levels to indicate temperature of soil layers below ground
  • replacement of parameters  SWVL1/SWVL2/SWVL3/SWVL4 by vsw with 4 levels to indicate volumetric moisture of soil layers below ground
  • introduction of parameters: tprate, ptype, 10fg, and missing open data parameters from February 2024.
  • Removal of 0p4 degree data for IFS. 

The existing 0.4-degree data will be deprecated on 27th November 2024 with the introduction of cycle 49r1. 

We encourage all users to transition to the new 0.25-degree resolution data as soon as possible. All python packages have been updated, accordingly. 

See important licence and attribution information regarding open data on our datasets page.

Where to find the real-time open data

This page documents the access to ECMWF IFS open data and the AIFS Machine Learning Data

You can use the ECMWF link to browse the list of files.

Currently, ECMWF open real-time data are available from these locations:

See file-naming convention below for an explanation of ROOT.

If you are interested in hosting our open data, please contact us via the support portal.

Sign up for an open data mailing list, a joint project with EUMETSAT, Met Norway and DWD to share new and updated open datasets, and relevant resources, conferences and articles.

Subscribe

File format

The files are in GRIB edition 2 format, except for trajectories which are in BUFR edition 4 format. We recommend using ecCodes version 2.38.0 or newer to manipulate the GRIB and BUFR files. 

File-naming convention

The files are provided with the following naming convention: 

[ROOT]/[yyyymmdd]/[HH]z/[model]/[resol]/[stream]/[yyyymmdd][HH]0000-[step][U]-[stream]-[type].[format]

where: 

  • [ROOT]  is the top-level URL of one of the sites hosting the data. See the above for possible values. 
  • [yyyymmdd] is the reference date of the forecasts (base date).
  • [HH] is the reference time of the forecasts. Values are 00, 06 , 12  and 18
  • [model] is the production model (IFS or AIFS).  Note: IFS and AIFS have different options, so please be review dataset pages to see what is available. 
  • [resol]  is the horizontal resolution of the data. Options include: 0p25
  • [stream] is the forecasting system that produces the data.  Values are:
    • oper - high-resolution forecast, atmospheric fields 
    • enfo - ensemble forecast, atmospheric fields (not applicable for AIFS model)
    • waef - ensemble forecast, ocean wave fields, (not applicable for AIFS model)
    • wave - wave model, (not applicable for AIFS model)
    • scda  - short cut-off high-resolution forecast, atmospheric fields (also known as "high-frequency products") (not applicable for AIFS model)
    • scwv  - short cut-off high-resolution forecast, ocean wave fields (also known as "high-frequency products") (not applicable for AIFS model) and 
    • mmsf  - multi-model seasonal forecasts fields from the ECMWF model only (not applicable for AIFS model).  
  • [step] is the forecast time step expressed in units U  
  • [U] is the unit used for the time step. Values are h for hours and m for month. The latter is only valid for seasonal forecasts (mmsf). 
  • [type] is once of fc (forecast), ef (ensemble forecast), ep (ensemble probabilities) or tf (trajectory forecast for tropical cyclone tracks). 
  • [format] is grib2 for all fields, and bufr for the trajectories. 


The valid combinations of the above are:

format=bufr, type=tf 
   HH=00/12 
  	  stream=enfo/oper, step=240h 
   HH=06/18 
      stream=enfo, step=144h 
      stream=scda, step=90h 
format=grib2 
   HH=00/12 
      stream=enfo/waef 
        type=ef, step=0h to 144h by 3h, 144h to 360h by 6h 
        type=ep, step=240h/360h 
      stream=oper, wave 
        type=fc, step=0h to 144h by 3h, 144h to 240h by 6h 
   HH=06/18 
      stream=enfo/waef 
        type=ef, step=0h to 144h by 3h 
      stream= scda /scwv 
        type=fc, step=0h to 90h by 3h 
   HH=00 
   	  stream=mmsf, type=fc, u=m, step=1m to 7m 

Access real-time open data with Python package ecmwf-opendata

A Python package called  ecmwf-opendata is available from PyPi that greatly facilitates the access to this dataset. In addition, a series of Jupyter Notebooks have been developed to demonstrate the use of this package.

Examples of how to access real-time open data with wget or curl

In the following examples, [ROOT] should be replaced by one of the locations specified above.

Although all of the examples provided here use wget, curl can similarly be used to download the products.

Examples using wget for products based on the Atmospheric Model high-resolution (HRES) forecasts

In the following examples, [ROOT] should be replaced by one of the locations specified above.

Although all of the examples provided here use wget, curl can similarly be used to download the products.

HRES direct model output

For direct model output from the Atmospheric model high-resolution (HRES) forecast time 00 and 12 UTC, stream=oper and type=fc should be used. 

The steps available are 0h to 144h by 3h and 150h to 240h by 6h. The file format is grib2.

The example shows how to download the file containing all of the parameters available at step=24h from the 00UTC HRES forecast run on 25 January 2022:

wget [ROOT]/20240301/00z/ifs/0p25/oper/20240301060000-24h-oper-fc.grib2

For direct model output from the Atmospheric model high-resolution (HRES) forecast time 06 and 18 UTC, stream=scda and type=fc should be used. 

The steps available are 0h to 90h by 3h only.  The file format is grib2.

The example shows how to download the file containing all of the parameters available at step=24h from the 06 UTC HRES forecast run on 25 January 2022:

wget [ROOT]/20240301/06z/ifs/0p25/scda/20240301060000-24h-scda-fc.grib2

HRES Tropical Cyclone track products

Tropical cyclone tracks products are only available when there are tropical cyclones observed or forecast.

For the Tropical Cyclone track products from the Atmospheric model high-resolution (HRES) forecast time 00 and 12 UTC, stream=oper and type=tf should be used. 

Products are provided only at step=240.  The file format is bufr.

The example shows how to download the file containing all of the TC Track products from the 00 UTC HRES forecast run on 25 January 2022:

wget [ROOT]/20240301/00z/ifs/0p25/oper/20240301060000-240h-oper-tf.bufr

For the Tropical Cyclone track products from the Atmospheric model high-resolution (HRES) forecast time 06 and 18 UTC, stream=scda and type=tf should be used. 

Products are provided only at step=90.  The file format is bufr.

The example shows how to download the file containing all of theTC Track products from the 18 UTC HRES forecast run on 25 January 2022:

wget [ROOT]/20240301/18z/ifs/0p25/scda/20240301060000-90h-scda-tf.bufr

Examples using wget for products based on the Wave Model high-resolution (HRES-WAM) forecasts

HRES-WAM direct model output

For direct model output from the Wave model high-resolution (HRES-WAM) forecast at time time 00 and 12 UTC, stream=wave and type=fc should be used. 

The steps available are 0h to 144h by 3h and 150h to 240h by 6h. The file format is grib2.

The example shows how to download the file containing all of the parameters available at step=06h from the 12 UTC HRES-WAM forecast run on 25 January 2022:

wget [ROOT]/20240301/12z/ifs/0p25/wave/20240301060000-12h-wave-fc.grib2

For direct model output from the Wave model high-resolution (HRES-WAM) forecast at time time 06 and 18 UTC, stream=scwv and type=fc should be used. 

The steps available are 0h to 90h by 3h only. The file format is grib2.

The example shows how to download the file containing all of the parameters available at step=18h from the 06 UTC HRES-WAM forecast run on 25 January 2022:

wget [ROOT]/20240301/06z/ifs/0p25/scwv/20240301060000-18h-scwv-fc.grib2

Examples using wget for products based on the Atmospheric Model ensemble (ENS) forecasts

ENS direct model output products

For direct model output from the Atmospheric model ensemble  (ENS) forecast at all times 00, 06, 12 and 18 UTC, stream=enfo and type=ef should be used. 

  • At time=00 and time=12, the steps available are 0h to 144h by 3h and 150h to 360h by 6h.
  • At time=06 and time=18, the steps available are 0h to 144h by 3h only

The file format is grib2.

The example shows how to download the file containing all of the parameters available at step=24h for all 50+1 ensemble members from the 00UTC ENS forecast run on 25 January 2022:

wget [ROOT]/20240301/00z/ifs/0p25/enfo/20240301060000-24h-enfo-ef.grib2

ENS Tropical Cyclone track products

Tropical cyclone tracks products are only available when there are tropical cyclones observed or forecast.

For the Tropical Cyclone track products from the Atmospheric model ensemble (ENS) forecast time 00 and 12 UTC, stream=enfo and type=tf should be used. 

Products are provided only at step=240.  The file format is bufr.

The example shows how to download the file containing all of the TC Track products from the 00 UTC HRES forecast run on 25 January 2022:

wget [ROOT]/20240301/00z/ifs/0p25/enfo/20240301060000-240h-enfo-tf.bufr

For the Tropical Cyclone track products from the Atmospheric model ensemble (ENS) forecast time 06 and 18 UTC, stream=enfo and type=tf should be used. 

Products are provided only at step=144.  The file format is bufr.

The example shows how to download the file containing all of theTC Track products from the 06 UTC ENS forecast run on 25 January 2022:

wget [ROOT]/20240301/06z/ifs/0p25/enfo/20240301060000-144h-enfo-tf.bufr

ENS Probability products

For the probability products from the Atmospheric model ensemble  (ENS) forecast at all times 00, 06, 12 and 18 UTC, stream=enfo and type=ep should be used.

Products are available at time=00 and time=12 only. 

There are no ENS probability products for time=06 or time=18.

The steps available are 0h to 144h by 3h and 150h to 360h by 6h. The file format is grib2.

The name of the file to be downloaded depends on the step.  Use:

  • step=240h in the file name for products at forecast steps 0h to 144h by 3h and 150h to 240h by 6h
  • step=360h in the file name for products at forecast steps 246h to 360h by 6h

For probability products from the time=00 and time=12 ENS forecasts for for steps 0h to 144h by 3h and steps 150h to 240h by 6h, use step=240.  The example is for the 00 UTC ENS forecast run on 25 January 2022:

wget [ROOT]/20240301/00z/ifs/0p25/enfo/20240301060000-240h-enfo-ep.grib2

For probability products from the time=00 and time=12  ENS forecasts for steps 246h to 360h by 6h, use step=360.  The example is for the 12 UTC ENS forecast run on 25 January 2022:

wget [ROOT]/20240301/12z/ifs/0p25/enfo/20240301060000-360h-enfo-ep.grib2

Examples using wget for products based on the Wave Model ensemble (ENS-WAM) forecasts

For direct model output from the Wave model ensemble  (ENS) forecast at all times 00, 06, 12 and 18 UTC, stream=waef and type=ef should be used. 

  • At time=00 and time=12, the steps available are 0h to 144h by 3h and 150h to 360h by 6h.
  • At time=06 and time=18, the steps available are 0h to 144h by 3h only

The file format is grib2.

The example shows how to download the file containing all of the parameters available at step=24h for all 50+1 ensemble members from the 00UTC ENS-WAM forecast:

wget [ROOT]/20240301/00z/ifs/0p25/waef/20240301000000-24h-waef-ef.grib2

ENS-WAM Probability products

For the probability products from the wave model ensemble  (ENS) forecast at all times 00, 06, 12 and 18 UTC, stream=waef and type=ep should be used.

Products are available at time=00 and time=12 only. 

There are no ENS-WAM probability products for time=06 or time=18.

The steps available are 0h to 144h by 3h and 150h to 360h by 6. The file format is grib2.

The name of the file to be downloaded depends on the step.  Use:

  • step=240h in the file name for products at forecast steps 0h to 144h by 3h and 150h to 240h by 6h
  • step=360h in the file name for products at forecast steps 246h to 360h by 6

For probability products from the time=00 and time=12 ENS-WAM forecasts for for steps 0h to 144h by 3h and steps 150h to 240h by 6h, use step=240.  The example is for the 00 UTC ENS-WAM forecast run on 25 January 2022:

wget [ROOT]/20240301/00z/0p4-beta/waef/20240301000000-240h-waef-ep.grib2

For probability products from the time=00 and time=12  ENS forecasts for steps 246h to 360h by 6h, use step=360.  The example is for the 12 UTC ENS-WAMforecast run on 25 January 2022:

wget [ROOT]/20240301/12z/0p4-beta/waef/20240301120000-360h-waef-ep.grib2

Download a single field with wget

All of the examples above download a single file containing all of the parameters for that dataset at the specific forecast step or steps.

It is also possible to download of a single field using the HTTP Byte-Range request feature.

To download only the 2m temperature at step=24h from the 00 UTC HRES forecast on 25 January 2022, first download the associated index file by substituting the '.grib2' extension with '.index' in the URL:

wget [ROOT]/20240301/00z/ifs/0p25/oper/20240301000000-24h-oper-fc.index

Inspect the index file and look for the entry for 2m temperature ('param' : '2t')

...
{"domain": "g", "date": "20240301", "time": "0000", "expver": "0001", "class": "od", "type": "fc", "stream": "oper", "step": "24", "levtype": "sfc", "param": "2t", "_offset": 17459800, "_length": 609046}
...

Use the values of _offset  and _length keys for this record  to construct the start_bytes and end_bytes:

start_bytes = _offset = 17459800
end_bytes = _offset + _length - 1 = 17459800 + 609046 - 1 = 18068845

The "_offset" and "_length" values of a specific field will change from forecast run to forecast run.  It is necessary to redo this computation for each download.

Use the start_bytes and end_bytes values calculated to pass the range of bytes to be downloaded to wget, this time for the .grib2 file:

wget [ROOT]/20240301/00z/ifs/0p25/oper/20240301000000-24h-oper-fc.grib2 --header="Range: bytes=17459800-18068845"

Alternatively, curl can be used:

curl --range  17459800-18068845 [ROOT]/20240301/00z/ifs/0p25/oper/20240301000000-24h-oper-fc.grib2 --output 2t.grib2

Multipart byte ranges of the form:

wget ... --header="Range: bytes=17459800-18068845, 18168021-1819654"

are not supported by all servers.

Index files

Each GRIB file is associated with a corresponding index file, accessible by substituting the '.grib2' extension with '.index' in the URL. Index files are text files where each line is a JSON record (JSON details here). Each record represents a GRIB field in the corresponding GRIB file, described using the MARS query language, for example:

{"domain": "g", "date": "20240301", "time": "1200", "expver": "0001", "class": "od", "type": "fc", "stream": "oper", "step": "6", "levelist": "1000", "levtype": "pl", "param": "q", "_offset": 3857250, "_length": 609046} 

In addition, the keys _offset  and _length represent the byte offset and length of the corresponding field. This allows the download of a single field using the HTTP Byte-Range request.  An example is provided in Download a single field with wget above.

Differences between MARS language and file naming convention  

There are some minor differences between the normal MARS request language and the open data file naming. 

These are summarised in the table for information. 


MARS 

File names 

Stream 

Type 

Step 

Stream 

Type 

Step 

oper/wave 

fc 

nnn 

oper/wave 

fc 

nnn 

enfo/waef 

cf 

nnn 

enfo/waef 

ef 

nnn 

enfo/waef 

pf

nnn 

enfo/waef 

ef 

nnn 

enfo/waef 

em 

nnn 

enfo/waef 

ep 

240 if nnn <= 240 else 360 

enfo/waef 

es 

nnn 

enfo/waef 

ep 

240 if nnn <= 240 else 360 

enfo/waef 

ep 

nnn 

enfo/waef 

ep 

240 if nnn <= 240 else 360 

msmm 

fcmean/em

nnn 

mmsf 

fc 

nnn 


Contents of this page

Get help

Support level for these datasets

Both datasets are provided as a 'self-serve' dataset - documentation is provided, but no support service. 

However, if the data seems broken or corrupt, please report it via our support portal and we will respond during normal office hours. 

Report a problem

Contents of this space