...
*************** This page is under construction! *****************
...
What is the objective of this page?
...
| Info |
|---|
To help users to improve S2S CMA MARS requests performance via the WebAPI.
|
How is the S2S reforecast data organised in MARS?
...
What would be the natural way to group requests?
| Info |
|---|
The idea is to request as much data as possible from the same tape file. The natural way to group requests would be:
|
...
Best practise to iterate over all hindcastDates of several hindcastYears for CMA
...
| Info |
|---|
|
...
| Info |
|---|
for hindcastYear in hindcastYears |
Web-API examples:
A CMA reforecast request for one hindcastDate
| Info |
|---|
The request below is for all members of the perturbed forecast, 10 meter U and V wind components, for all time-steps and for model version 2014-05-01 |
...
| Code Block | ||
|---|---|---|
| ||
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
modelVersionDate = "2014-05-01" # This is the first model version for CMA (babj)
hindcastDate = "2014-04-01" # The selected hindcast date
server = ECMWFDataServer()
server.retrieve({
"class": "s2",
"dataset": "s2s",
"date": modelVersionDate,
"expver": "prod",
"hdate": hindcastDate,
"levtype": "sfc",
"origin": "babj",
"param": "165/166",
"step": "24/to/1440/by/24",
"stream": "enfh",
"target": "data.pf.sfc",
"time": "00",
"number": "1/2/3",
"type": "pf",
}) |
...
A CMA reforecast request for several hindcastDates
| Info |
|---|
|
v1.0
| Code Block | ||
|---|---|---|
| ||
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
origin = "babj"
modelVersionDate = "2014-05-01"
def retrieve_data(hindcastDate,modelVersionDate,centre):
target = "target_s2s_%s_%s.grb" % centre % hindcastDate
server.retrieve({
"class": "s2",
"dataset": "s2s",
"date": modelVersionDate,
"expver": "prod",
"hdate": hindcastDate,
"levtype": "sfc",
"origin": centre,
"param": "165",
"step": "0",
"stream": "enfh",
"target": target,
"time": "00",
"type": "cf",
})
hindcastYearList = ["2012", "2013"]
hindcastMonthList = ["08", "09"]
hindcastDayList = ["01", "02"]
for hindcastYear in hindcastYearList:
for hindcastMonth in hindcastMonthList:
for hindcastDay in hindcastDayList:
hindcastDate = hindcastYear + hindcastMonth + hindcastDay
retrieve_data(hindcastDate) |
| Code Block | ||||
|---|---|---|---|---|
| ||||
for hindcastYear in ["2012", "2013"]:
for hindcastMonth in ["08", "09"]:
if hindcastMonth in ["01", "03", "05", "07", "08", "10", "12"]: hindcastDateEnd = "31"
if hindcastMonth in [ "04", "06", "09", "11"]: hindcastDateEnd = "30"
for hindcastDay in ["01" ... hindcastDateEnd ]:
hindcastDate = hindcastYear+hindcastMonth+hindcastDay
retrieve_data(hindcastDate,"2014-05-01","babj") |
BoM example
...
Some further help for setting BoM hindcast dates
| Code Block | ||||
|---|---|---|---|---|
| ||||
for hindcastYear in ["2012", "2013"]:
for hindcastMonth in ["08", "09"]:
for hindcastDay in ["01" "06" "11" "16" "21" "26"]:
hindcastDate = hindcastYear+hindcastMonth+hindcastDay
retrieve_data(hindcastDate,"2014-01-01","ammc") |
Useful links
| Info |
|---|
...