...
| Code Block | ||
|---|---|---|
| ||
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
def retrieve_BoM_reforecast():
"""
A function to demonstrate how to iterate efficiently over all hincastYears, hincastMonths etc
All the YouhindcastDates needof toa sethindcastMonth themwill accordingbe towritten youron requirementsthe same target file
"""
hindcastYearStart = 1981
hindcastYearEnd = 2013
hindcastMonthStart = 1
hindcastMonthEnd = 12
hincastDatesListhincastDaysList = ["01", "06", "11", "21", "26"]
for hindcastYear in list(range(hindcastYearStart, hindcastYearEnd + 1)):
for hindcastMonth in list(range(hindcastMonthStart, hindcastMonthEnd + 1)):
hindcastDatesList = []
for hindcastDay in hincastDatesListhincastDaysList:
hindcastDate = '%04d%02d%s' % (
hindcastYear, hindcastMonth, hindcastDay)
hindcastDatesList.append(hindcastDate)
target = "data_s2s_ammc_%04d%02d.grb" % (hindcastYear, hindcastMonth)
BoM_reforecast_request(hindcastDate"/".join(hindcastDatesList), target)
def BoM_reforecast_request(hindcastDate, target):
"""
A BoM reforecast requestrequests. SetChange the keywords below to adapt it to your needs.
"""
modelVersionDate = "2014-0501-01"
target = "data_s2s_%s.grb" % (hindcastDate)
server.retrieve({
"class": "s2",
"dataset": "s2s",
"date": modelVersionDate,
"expver": "prod",
"hdate": hindcastDate,
"levtype": "pl",
"levelist": "500/700/850/925/1000",
"origin": "ammc",
"param": "130/156",
"step": "24/to/720/by/24",
"stream": "enfh",
"target": target,
"time": "00",
"number": "1/2/3",
"type": "pf",
})
if __name__ == '__main__':
retrieve_BoM_reforecast() |
...