Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Warning

WARNING: This page has been moved to Access ECMWF Public Datasets.

Include Page
Access ECMWF Public Datasets
Access ECMWF Public Datasets

WARNING: This page has been moved to Access MARS.

Info

Please see Troubleshooting for any issues you may encountered.

Installing the client library

Python

You can install the ecmwfapi python library by running:

Code Block
languagebash
sudo pip install https://software.ecmwf.int/wiki/download/attachments/23694554/ecmwf-api-client-python.tgz

If you cannot run the sudo or pip commands, just download the ecmwf-api-client-python.tgz, extract its content and copy the module ecmwfapi to a directory pointed by the environment variable PYTHONPATH.

Perl

You need to download ecmwf-api-client-perl.tgz, extract its content and to a directory pointed by the environment variable PERL5LIB. This code relies on the JSON perl module, as well as libwww-perl and Crypt::SSLeay.

Installing your API key

To access ECMWF you will need an  API key. For that you first need to login at https://apps.ecmwf.int/auth/login/ and then retrieve you key at https://api.ecmwf.int/v1/key/. For this, you will need to have an account on ECMWF web site. Copy the information in this page and paste it in the file $HOME/.ecmwfapirc.

Code Block
languagejavascript
titleContent $HOME/.ecmwfapirc
{
    "url"   : "https://api.ecmwf.int/v1",
    "key"   : "XXXXXXXXXXXXXXXXXXXXXX",
    "email" : "john.smith@example.com"
}

Sample scripts

Python

Below is a simple Python script making use of the ecmwfapi library:

Code Block
languagepython
titlePython client
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer

server = ECMWFDataServer()

server.retrieve({
    'dataset' : "tigge",
    'step'    : "24/to/120/by/24",
    'number'  : "all",
    'levtype' : "sl",
    'date'    : "20071001/to/20071003",
    'time'    : "00/12",
    'origin'  : "all",
    'type'    : "pf",
    'param'   : "tp",
    'area'    : "70/-130/30/-60",
    'grid'    : "2/2",
    'target'  : "data.grib"
    })

 Perl

 Below is a simple Perl script making use of the ECMWF::DataServer module:

Code Block
languageperl
titlePerl client
#!/usr/bin/env perl
use ECMWF::DataServer;

my $server = ECMWF::DataServer->new();

$server.retrieve({
    'dataset' : "tigge",
    'step'    : "24/to/120/by/24",
    'number'  : "all",
    'levtype' : "sl",
    'date'    : "20071001/to/20071003",
    'time'    : "00/12",
    'origin'  : "all",
    'type'    : "pf",
    'param'   : "tp",
    'area'    : "70/-130/30/-60",
    'grid'    : "2/2",
    'target'  : "data.grib"
    })

 Choosing a dataset

The "dataset" parameter is one of:

HTML
<table id="datasets_table"></table>
<script src="https://api.ecmwf.int/static/api/build_dataset_table.js"></script>
<script>
build_dataset_table($("#datasets_table"));
</script>

To access these dataset, you need to agree on the  the corresponding terms and conditions that can be found under the "Licence" link in the table above. See http://apps.ecmwf.int/datasets/ for the content of the datasets. The other parameters are described at: http://www.ecmwf.int/publications/manuals/mars/guide/index.html

Proxies

This Perl and Python tools iare will use the http_proxy and https_proxy environment variables if they are set. You should set these variables in your Unix shell if your organisation runs an outgoing proxy.