Versions Compared

Key

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

...

Info
for date in dates
for time in times
TIGGE-request(date, time, origin)
(Here you must add everything you need)

Web-API examples:

A TIGGE request for some dates for

...

the same "origin"

Info
  • The objective of this example is to demonstrate how to iterate efficiently over some dates (eg '2014-10-01' and '2014-11-01')  a request  for 'perturbed forecast', 'pressure' and 'sfc' level, for TIGGE, ECMWF Center.
  • It can be used as a starting point, however you need to keep in mind that you have to adapt it to your needseg to set the keyword values according to your requirements ('param', 'levtype', 'step' etc).
  • In this way you can extend this request to download a longer period of TIGGE.

(thumbs up) Keep in mind that the most efficient way to organise your requests is per dates and times

ie select a set of dates and times and add,  the 'steps', 'origins', 'levels' and 'parameters' that you need.

(thumbs down)   It is not efficient to organise your requests per parameter, per  origin  or per step. (eg to submit a different request per parameter for a list of dates)

Code Block
languagepy
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
   
def retrieve_tigge_data():
    dates = ['2014-10-01', '2014-11-01']
    times = ['00', '12']
    for date in dates:
         for time in times:
             target = 'ecmwf_sfc_%s_%s.grb' % (date, time)
             tigge_pf_sfc_request(date, time, target)
             target = 'ecmwf_pl_%s_%s.grb' % (date, time)
             tigge_pf_pl_request(date, time, target)

def tigge_pf_pl_request(date, time, target):
    '''
       A TIGGE request for perturbed forecast, pressure level, ECMWF Center.
       Please note that a subset of the available data is requested below.
       The cost of this request is xxx fields and xxx GB
       Change the keywords below to adapt it to your needs. (ie to add more parameters, or numbers etc)
    '''
    server.retrieve({
        'class': 'ti',
        'dataset': 'tigge',
        'date': date,
        'expver': 'prod',
        'grid': '0.5/0.5',
        'levelist': '200/250/300/500/',
        'levtype': 'pl',
        'number': '1/TO/10',
        'origin': 'ecmf',
        'param': '130/131/132/133',
        'step': '0/TO/96/BY/12',
        'target': target,
        'time': time,
        'type': 'pf',
    })

def tigge_pf_sfc_request(date, time, target):
    '''
       A TIGGE request for perturbed forecast, sfc, ECMWF Center.
       Please note that a subset of the available data is requested below.
       The cost of this request is xxx fields and xxx GB
       Change the keywords below to adapt it to your needs. (ie to add more parameters, or numbers etc)
    '''
    server.retrieve({
         'class': 'ti',
         'dataset': 'tigge',
         'date': date,
         'expver': 'prod',
         'grid': '0.5/0.5',
         'levtype': 'sfc',
         'number': '1/TO/10',
         'origin': 'ecmf',
         'param': '146/147/151/165/166/167/168/176/177',
         'step': '0/TO/96/BY/12',
         'target': target,
         'time': time,
         'type': 'pf',
       })

if __name__ == '__main__':
    retrieve_tigge_data()
                                          

A TIGGE request for some dates for

...

several "origins"

Info
  • If you wish to download the same data for more than one origins it is more efficient to request all of them in one go.
  • The objective of this example is to demonstrate how you can  get the same data for two several origins in one request. Remember: if you wish to download the same data for two origins it is more efficient to request both origins in one go:
  • Before you start writing your request you need to check that the requested data are available on all the selected "origins"
Code Block
languagepy
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
   
def retrieve_tigge_data():
    dates = ['2014-12-01', '2014-12-02']
    times = ['00', '12']
    for date in dates:
         for time in times:
             target = 'tigge_cf_sfc_%s_%s.grb' % (date, time)
             tigge_cf_sfc_request(date, time, target)
         

def tigge_cf_sfc_request(date, time, target):
    '''
       A TIGGE request for control forecast, sfc, for 3 Centers : ECMWF, JMA and KMA.
       You can change the keywords below to adapt it to your needs, (ie to add more parameters, or steps etc),
       however you need to check the availability of requested Centers.
    '''
    server.retrieve({
         'class': 'ti',
         'dataset': 'tigge',
         'date': date,
         'expver': 'prod',
         'grid': '0.5/0.5',
         'levtype': 'sfc',
         'origin': 'ecmf/rjtd/rksl',
         'param': '167/168',
         'step': '0/96/168',
         'target': target,
         'time': time,
         'type': 'cf',
       })

if __name__ == '__main__':
    retrieve_tigge_data()
                                          

...