...
Info |
---|
|
Code Block | ||
---|---|---|
| ||
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
origin = "ecmf"
modelVersionDate = "2015-12-03"
hindcastDates = ["1995-12-03", "1996-12-03", "1997-12-03", "1998-12-03", "1999-12-03", "2000-12-03",
"2001-12-03", "2002-12-03", "2003-12-03", "2004-12-03", "2005-12-03", "2006-12-03", "2007-12-03",
"2008-12-03", "2009-12-03", "2010-12-03", "2011-12-03", "2012-12-03", "2013-12-03", "2014-12-03"]
def retrieve_ECMWF_reforecast():
"""
A function to demonstrate how to iterate efficiently over all hindcastDays
for a particular ECMWF reforecast model version.
Change the variables below to adapt the iteration to your needs
"""
#Please note: the steps 4 and 5 below could run in parallel
#Step 4: Get all the available perturbed forecast, pressure level data
pfplTarget = "%s_%s_%_%s.grb" % (origin, "pfpl", modelVersionDate)
ECMWF_reforecast_pf_pl_request("/".join(hindcastDates), pfplTarget)
#Step 5: Get all the available perturbed forecast, surface data
pfsfcTarget = "%s_%s_%_%s.grb" % (origin, "pfsfc", modelVersionDate)
ECMWF_reforecast_pf_sfc_request("/".join(hindcastDates), pfsfcTarget)
def ECMWF_reforecast_pf_pl_request(hindcastDate, target):
"""
A ECMWF reforecast, perturbed forecast, pressure level, request.
The cost of this request is fields and Gbytes
Change the keywords below to adapt it to your needs.
"""
server.retrieve({
"class": "s2",
"dataset": "s2s",
"date": modelVersionDate,
"expver": "prod",
"hdate": hindcastDates,
"levtype": "pl",
"levelist": "10/50/100/200/300/500/700/850/925/1000",
"origin": origin,
"param": "130/131/132/133/135/156",
"step": "24/to/768/by/24",
"stream": "enfh",
"target": target,
"time": "00",
"number": "1/2/3/4",
"type": "pf",
})
def ECMWF_reforecast_pf_sfc_request(hindcastDate, target):
"""
A ECMWFreforecast, perturbed forecast, sfc request.
The cost of this request is 383,040 fields and 7.1 GB
Change the keywords below to adapt it to your needs.
"""
server.retrieve({
"class": "s2",
"dataset": "s2s",
"date": modelVersionDate,
"expver": "prod",
"hdate": hindcastDate,
"levtype": "sfc",
"origin": origin,
"param": "1/33/34/59/121/122/134/136/146/147/151/165/166/167/168/169/175/176/177/179/180/181/235",
"step": "24/to/744/by/24",
"stream": "enfh",
"target": target,
"time": "00",
"number": "1/2/3/4",
"type": "pf",
})
if __name__ == '__main__':
retrieve_ECMWF_reforecast()
|
...