Please see Troubleshooting if you are facing any issues. |
You can install the ecmwfapi
python library by running:
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
.
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.
You need to download ecmwf-api-client-java.tgz. You will also need the Java JSON package.
The keys from the old data server are not valid for this new service. |
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.
{ "url" : "https://api.ecmwf.int/v1", "key" : "XXXXXXXXXXXXXXXXXXXXXX", "email" : "john.smith@example.com" } |
More examples are available at Example data server scripts. |
Below is a simple Python script making use of the ecmwfapi
library:
#!/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" }) |
Below is a simple Perl script making use of the ECMWF::DataServer module
:
#!/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" }) |
import org.ecmwf.DataServer; import org.json.JSONObject; public class DataServerExample { public static void main(String[] args) throws Exception { DataServer server = new DataServer(); JSONObject request = new JSONObject(); request.put("dataset" , "tigge"); request.put("step" , "24/to/120/by/24"); request.put("number" , "all"); request.put("levtype" , "sl"); request.put("date" , "20071001/to/20071003"); request.put("time" , "00/12"); request.put("origin" , "all"); request.put("type" , "pf"); request.put("param" , "tp"); request.put("area" , "70/-130/30/-60"); request.put("grid" , "2/2"); request.put("target" , "data.grib"); server.retrieve(request); } } |
The "dataset
" parameter is one of:
<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
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. Some older versions also expect HTTP_PROXY
and HTTPS_PROXY
to be set.