Page tree
Skip to end of metadata
Go to start of metadata

This is a recipe for first time users of CAMS Reanalysis data and ECMWF's data server.

1. Learn about CAMS Reanalysis data

  1. Read the CAMS Reanalysis data documentation and take note of the parameters (fields) you want to use, and of the corresponding values for data type, stream, level type (surface, pressure levels, model levels, etc) base time and forecast steps.
  2. Browse the CAMS Reanalysis catalogue and make sure the data you are interested in is available in CAMS Reanalysis catalogue.

2. User account and License agreement

  1. The CAMS Reanalysis data is hosted at ECMWF. To access the CAMS Reanalysis data you need a user account with ECMWF, so if you do not have a account, register a ECMWF account now.
  2. Read the Copernicus license agreement and accept the agreement at the bottom the page. This is necessary so we have a record of you accepting the license agreement.

3. Technical prerequisites

You need:

  • A computer with a *nix operating system is highly recommended. Microsoft Windows is known to work too, but is unsupported, see here for details.
  • The Python programming language. If you do not have it installed yet, install Python now.

4. Set up your computer

This is to configure your computer to programmatically retrieve data from ECMWF. You only need to do this once, and only if you have never retrieved ECMWF data using Python before. For more information refer to Access ECMWF Public Datasets of ECMWF WebAPI.

1. Install the ECMWF WebAPI client library by running:

 

sudo pip install https://software.ecmwf.int/wiki/download/attachments/56664858/ecmwf-api-client-python.tgz


If you cannot use the sudo pip command above (e.g. no admin rights on your machine), use the --user option of pip to install it in $HOME/.local/lib :


pip install --user https://software.ecmwf.int/wiki/download/attachments/56664858/ecmwf-api-client-python.tgz


2.Get and install an ECMWF API key:

  1. Go to https://apps.ecmwf.int/auth/login/ to verify you are logged in. If you are not, log in with your ECMWF account details (as registered in step 2).

  2. Go to https://api.ecmwf.int/v1/key/ . You will see something like below:

 

{
    "url"   : "https://api.ecmwf.int/v1",
    "key"   : "XXXXXXXXXXXXXXXXXXXXXX",
    "email" : "john.smith@example.com"
}

3. Copy the bit with the curly brackets as shown above into a text file and save the file as $HOME/.ecmwfapirc (on Unix/Linux) or %USERPROFILE%\.ecmwfapirc (on Windows)

5. Run a test

This is to verify that your computer is set up correctly.

1. Copy the following Python script to a text file and save it, for example as 'my_CAMS-Reanalysis_test_script.py'

#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
 
server = ECMWFDataServer()
server.retrieve({
    "class": "mc",
    "dataset": "cams_reanalysis",
    "expver": "eac4",
    "stream": "oper",
    "type": "an",
    "levtype": "sfc",
    "param": "167.128",
    "date": "2003-12-01",
    "time": "00:00:00/03:00:00",
    "grid": "0.7/0.7",					
    "area": "75/-20/10/60",				
    "format": "netcdf",					
    "target": "my_CAMS-Reanalysis_test_file.nc",
 })

2. Run the script. On most computers you would do this by opening a command prompt and typing

python my_CAMS-Reanalysis_test_script.py

The test request will download data from ECMWF and save as file 'my_CAMS-Reanalysis_test_file.nc' in the directory you issued the command from.

Note that the data retrieval is not designed to be instant. The test request above usually takes a few minutes to complete, but depending on demand can take longer.

3. With your favourite NetCDF file reader verify that you can read the file. If you are not familiar with NetCDF please see What are NetCDF files and how can I read them

If you get an error message or the output is not as specified in to the Python script, most likely your computer setup is wrong, or you did not accept the Copernicus license, so please go back to the previous steps.

6. Create your data retrieval script

  1. Browse the CAMS Reanalysis catalogue for the data you are interested in, and in the last step make a selection in all boxes and click 'View the MARS request'. This shows a template Python script with your selected options.
  2. Copy the Python script to a text file and save it, for example as 'my_CAMS-Reanalysis_script_v1.py'.
    1. If you specify "format" as "netcdf", then you will need to set "grid". Otherwise, GRIB to netCDF conversion will fail.
  3. Adapt the Python script to your requirements,e.g. change date, time and grid. Here is some guidance:

#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer

server = ECMWFDataServer()
server.retrieve({
    "class": "mc",						    # Do not change
    "dataset": "cams_reanalysis",		    # Do not change
    "expver": "eac4",					    # Do not change
    "stream": "oper",					    # can be stream, wave, moda or mnth
    "type": "an",						    # can be an (Analysis) or fc (forecast) 
    "levtype": "sfc",					    # can be "sfc", "pl", "ml", etcetera; 
    "param": "2t/sp",				        # Parameters you want to retrieve. For available parameters see the CAMS Reanalysis documentation. Specify here using shortName or paramID, 
 	 									    # and separated by '/'. 
	"date": "2003-01-01/to/2003-01-10",	    # Set a single date as "YYYY-MM-DD" or a range as "YYYY-MM-DD/to/YYYY-MM-DD".
    "time": "00:00:00/03:00:00/06:00:00",	# If above you set "type":"an", "time" is the time of analysis. If above you set "type":"fc", "time" is the initialisation time of the forecast. 
#    "step": "0/1",						    # The forecast step to be set if above you set "type":"fc".
    "grid": "0.7/0.7",					    # Optional. The horizontal resolution in decimal degrees. If not set, the archived grid as specified in the data documentation is used.
    "area": "75/-20/10/60",				    # Optional. Subset (clip) to an area. Specify as N/W/S/E in Geographic lat/long degrees. Southern latitudes and western longitudes must be
                                            # given as negative numbers. Requires "grid" to be set to a regular grid, e.g. "0.7/0.7".
    "format": "netcdf",					    # Optional. Output in NetCDF format. Requires that you also specify 'grid'. If not set, data is delivered in GRIB format, as archived.
    "target": "CHANGEME",				    # Change this to the desired output path and file name, e.g. "data1.nc" or "./data/data1.grib". The default path is the current working directory.
})

For available "keyword":"value" combinations please browse the CAMS Reanalysis catalogue for the data you are interested in, and in the last step make a selection in all boxes and click 'View the MARS request'. This shows a template Python script with your selected options.

Limitations:

  • You can have a maximum of three active requests at a time.
  • The maximum data volume is 20GB per request.
  • The maximum number of fields to be retrieved is 600,000 fields per request.

Note that the data retrieval is not designed to be instant. A larger request can take hours and even days to complete.

To retrieve data efficiently (and get your data quicker!) you should retrieve all the data you need from one tape, then from the next tape, and so on. In most cases this means retrieving all the data you need for one month, then for the next month, and so on. See CAMS Reanalysis retrieval efficiency.

Also before attempting to retrieve CAMS Reanalysis forecast data in NetCDF format, to avoid disappointment, please be aware of this potential issue.

7. Run your data retrieval script

On most computers you would do this by opening a command prompt and typing

python my_CAMS-Reanalysis_retrieve_script_v1.py

This will retrieve the data as specified and download it as a single file to your computer into the current directory (or whichever "target" directory you specified).

For long running processes you can check the progress of your request in your job list.

8. Check results

Check that the data you downloaded meets your requirements.

To report an issue or bug please contact Copernicus Support at ECMWF