#!/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
"""
hindcastYearStart = 1981
hindcastYearEnd = 2013
hindcastMonthStart = 1
hindcastMonthEnd = 12
hindcastDays = list(range(1, 27, 5)) # hindcastDays available are: 1, 6, 11, 21. 26
for hindcastYear in list(range(hindcastYearStart, hindcastYearEnd + 1)):
for hindcastMonth in list(range(hindcastMonthStart, hindcastMonthEnd + 1)):
hindcastDates = []
for hindcastDay in hindcastDays:
hindcastDate = '%04d%02d%02d' % (
hindcastYear, hindcastMonth, hindcastDay)
hindcastDates.append(hindcastDate)
ee
target = "data_s2s_ammc_%04d%02d.grb" % (hindcastYear, hindcastMonth)
BoM_reforecast_request("/".join(hindcastDates), target)
def BoM_reforecast_request(hindcastDate, target):
"""
A BoM reforecast requests. Change the keywords below to adapt it to your needs.
"""
modelVersionDate = "2014-01-01"
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/to32/2by/31",
"type": "pf",
})
if __name__ == '__main__':
retrieve_BoM_reforecast() |