Find out how to access ECMWF real-time open data
Note |
---|
ECMWF has recently deployed an updated version of the IFS Open Data at 0.25 degrees, with additional parameters to enable limited area model and machine-learning initialisation. Warning |
---|
The existing 0.4 degree data will be deprecated in 3 months time. 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. |
|
Note |
---|
See important licence and attribution information regarding open data on our datasets page. |
Where to find the real-time open 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.
Info |
---|
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. Button Hyperlink |
---|
title | Subscribe |
---|
type | standard |
---|
url | mailto:open-data-community-subscribe@lists.ecmwf.int |
---|
target | true |
---|
|
|
The files are in GRIB edition 2 format, except for trajectories which are in BUFR edition 4 format. We recommend using ecCodes version 2.24.2 or newer to manipulate the GRIB and BUFR files.
File-naming convention
The files are provided with the following naming convention:
No Format |
---|
[ROOT]/[yyyymmdd]/[HH]z/[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
. [resol]
is the horizontal resolution of the data. This is currently set to 0p4-beta
and will be changed to 0p4
when the beta-testing period is over. [stream]
is the forecasting system that produces the data. Values are:oper
- high-resolution forecast, atmospheric fields enfo
- ensemble forecast, atmospheric fields- waef - ensemble forecast, ocean wave fields,
wave
- wave model,scda
- short cut-off high-resolution forecast, atmospheric fields (also known as "high-frequency products")scwv
- short cut-off high-resolution forecast, ocean wave fields (also known as "high-frequency products") andmmsf
- multi-model seasonal forecasts fields from the ECMWF model only.
[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:
No Format |
---|
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.
Panel |
---|
borderColor | lightgrey |
---|
borderStyle | solid |
---|
|
Examples using wget for products based on the Atmospheric Model high-resolution (HRES) forecastsIn 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 Expand |
---|
title | Products at time=00 or time=12 |
---|
| 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: Code Block |
---|
wget [ROOT]/20220125/00z/0p4-beta/oper/20220125000000-24h-oper-fc.grib2 |
|
Expand |
---|
title | Products at time=06 or time=18 |
---|
| 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: Code Block |
---|
wget [ROOT]/20220125/06z/0p4-beta/scda/20220125060000-24h-scda-fc.grib2 |
|
HRES Tropical Cyclone track products Note |
---|
Tropical cyclone tracks products are only available when there are tropical cyclones observed or forecast. |
Expand |
---|
title | HRES TC-Tracks at time=00 or time=12 |
---|
| 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: Code Block |
---|
wget [ROOT]/20220125/00z/0p4-beta/oper/20220125000000-240h-oper-tf.bufr |
|
Expand |
---|
title | HRES TC-track products at time=06 or time=18 |
---|
| 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: Code Block |
---|
wget [ROOT]/20220125/18z/0p4-beta/scda/20220125180000-90h-scda-tf.bufr |
|
|
Panel |
---|
|
Examples using wget for products based on the Wave Model high-resolution (HRES-WAM) forecastsHRES-WAM direct model output Expand |
---|
title | Products at time=00 or time=12 |
---|
| 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: Code Block |
---|
wget [ROOT]/20220125/12z/0p4-beta/wave/20220125120000-12h-wave-fc.grib2 |
|
Expand |
---|
title | Products at time=06 or time=18 |
---|
| 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: Code Block |
---|
wget [ROOT]/20220125/06z/0p4-beta/scwv/20220125120000-18h-scwv-fc.grib2 |
|
|
Panel |
---|
borderColor | lightgrey |
---|
borderStyle | solid |
---|
|
Examples using wget for products based on the Atmospheric Model ensemble (ENS) forecastsENS direct model output products Expand |
---|
title | For all ENS direct model runs |
---|
| 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: Code Block |
---|
wget [ROOT]/20220125/00z/0p4-beta/enfo/20220125000000-24h-enfo-ef.grib2 |
|
ENS Tropical Cyclone track products Note |
---|
Tropical cyclone tracks products are only available when there are tropical cyclones observed or forecast. |
Expand |
---|
title | ENS TC-Tracks at time=00 or time=12 |
---|
| 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: Code Block |
---|
wget [ROOT]/20220125/00z/0p4-beta/enfo/20220125000000-240h-enfo-tf.bufr |
|
Expand |
---|
title | ENS TC-track products at time=06 or time=18 |
---|
| 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: Code Block |
---|
wget [ROOT]/20220125/06z/0p4-beta/enfo/20220125060000-144h-enfo-tf.bufr |
|
ENS Probability productsFor 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. Warning |
---|
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. Tip |
---|
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
|
Expand |
---|
title | ENS probability products at 00 and 12 UTC for steps 0h to 144h by 3h and steps 150h to 240h 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: Code Block |
---|
wget [ROOT]/20220125/00z/0p4-beta/enfo/20220125000000-240h-enfo-ep.grib2 |
|
Expand |
---|
title | ENS probability products at 00 and 12 UTC for steps 246h to 360h by 6h |
---|
| 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: Code Block |
---|
wget [ROOT]/20220125/12z/0p4-beta/enfo/20220125120000-360h-enfo-ep.grib2 |
|
|
Panel |
---|
|
Examples using wget for products based on the Wave Model ensemble (ENS-WAM) forecasts Expand |
---|
title | ENS-WAM direct model output products |
---|
| 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: Code Block |
---|
wget [ROOT]/20220125/00z/0p4-beta/waef/20220125000000-24h-waef-ef.grib2 |
|
ENS-WAM Probability productsFor 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. Warning |
---|
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. Tip |
---|
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
|
Expand |
---|
title | ENS-WAM probability products at 00 and 12 UTC for steps 0h to 144h by 3h and steps 150h to 240h by 6h |
---|
| 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: Code Block |
---|
wget [ROOT]/20220125/00z/0p4-beta/waef/20220125000000-240h-waef-ep.grib2 |
|
Expand |
---|
title | ENS probability products at 00 and 12 UTC for steps 246h to 360h by 6h |
---|
| 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: Code Block |
---|
wget [ROOT]/20220125/12z/0p4-beta/waef/20220125120000-360h-waef-ep.grib2 |
|
|
Panel |
---|
|
Anchor |
---|
| DownloadASingleFieldWithWget |
---|
| DownloadASingleFieldWithWget |
---|
| Download a single field with wgetAll 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. Expand |
---|
title | Example: download temperature at 2m at step=24h from the 00 UTC HRES forecast |
---|
| 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: Code Block |
---|
wget [ROOT]/20220125/00z/0p4-beta/oper/20220125000000-24h-oper-fc.index |
Inspect the index file and look for the entry for 2m temperature ('param' : '2t') No Format |
---|
...
{"domain": "g", "date": "20220125", "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: No Format |
---|
start_bytes = _offset = 17459800
end_bytes = _offset + _length - 1 = 17459800 + 609046 - 1 = 18068845 |
Note |
---|
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: Code Block |
---|
wget [ROOT]/20220125/00z/0p4-beta/oper/20220125000000-24h-oper-fc.grib2 --header="Range: bytes=17459800-18068845" |
Alternatively, curl can be used: Code Block |
---|
curl --range 17459800-18068845 [ROOT]/20220125/00z/0p4-beta/oper/20220125000000-24h-oper-fc.grib2 --output 2t.grib2 |
Warning |
---|
Multipart byte ranges of the form: Code Block |
---|
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:
No Format |
---|
{"domain": "g", "date": "20220104", "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 |