Versions Compared

Key

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

...

Info

First you need to understand how the S2S data is organised in MARS.

In general it is organised, as a huge tree, with the indentation below, showing different levels down that tree:

  • centre (ECMWF, NCEP, JMA, ...)
    • realtime or reforecast
      •  type of data (control forecast or perturbed forecast)
        • type of level (single level or pressure level or potential  temperature)
          • dates Hdates (2015-01-01 or 2015-01-05 or 2015-01-08, ...)
            •  time-steps
              • members (for perturbed forecast)
                • levels (for pl or pt)
                  • parameters


(lightbulb) The idea is to have in the same tape file, all time-steps, all members, all parameters for a type of level, a type, a dateHdate

What would be the natural way to group requests?

Info

Following the previous paragraph,  the natural way to group requests would be:
all parameters, all levels, all members, all time-steps for 1 dateHdate.

(warning) Note the following:

  1. 'all' means 'all' that the user wants. It doesn't have to be all parameters.
  2. If a user is interested only on z500,  he may request more dates Hdates in one go, since the overall request will not be so big.

 What is the best approach to loop over several

...

Hdates  for a CMA request?

Info
titleThe main idea in brief:
for dateHdate in dateHdate-list
     your-s2S-request (includes the levels, parameters, steps etc(Hdate)

An example to request Control forecast, pressure levels from 2010-03-01 to 2010-03-31

Info
titleThe main idea in brief:
for each yearHdate from 2010-03-01 to 2010-03-31
call your-s2s-request(Hdate)

An example of  "your-API-S2S-request"

Retrieving  1 field (10m U wind) for all time steps

What is the best approach to get all

...

Hdays for several

...

Hyears ?

Info
titleThe main idea in brief:
forThe yearbest inapproach yearsis (firstlyto iterate over years)
the Hyears you wish. forFor montheach in months (secondly Hyear iterate over monthsall ofHmonths theand year)
for each Hmonth iterate over all its Hdays.

for daysHyear in daysHyears (thirdly
iterate over the daysfor ofHmonth thein month)Hyear
for Hdays in Hmonth
your-request (includes the levels, parameters, steps etc)

An example to request Control forecast, sfc, for years 2010-2014 for 2 months (eg April and June)

Info
titleThe main idea in brief:
for each year from 2010Hdate to 2014= Hyear-Hmonth-Hday
    for months April, June
your-s2S-request (Hdate)

What is the best approach to get all

...

Hdays for several

...

Hyears and

...

Hmonths  and for several

...

hindcasts ?

Info
titleThe main idea in brief:
for yearHyear in years (firstly iterate over years)Hyears 
for monthHmonth in months (secondly iterate over months of the year)Hyear
for daysHdays in days (thirdly iterate over the days of the month)Hmonth
             forHdate = Hyear-Hmonth-Hday
hindcast in hindcasts                  your-S2S-request (includes the levels, parameters, steps etc)(Hdate)
 

An example to request Control forecast, sfc, for

...

Hyears 2010-2014 for 2

...

Hmonths  (eg April and June)

Info
titleThe main idea in brief:
for each yearHyear from 2010 to 2014
    for monthsHmonth in April, June
        for Hday in  your-request

An example to request Control forecast, pressure levels, for years 2010-2014 for 2 months (eg April and June)

Hmonth
        
Info
titleThe main idea in brief:
for each year from 2010 to 2014
    for monthsHdate April, June= Hyear-Hmonth-Hday
        for each hindcast date
your-request

 

your-S2S-request(Hdate)


old below:

---------------

Info
titleThe objective:


cf and pf are stored separately. 

For pf is not efficient to do:
        HDATE  HHdate = 20040101/20040106/20040111/20040116/20040121/20040126/20040201/20040206/20040211/20040216/20040221/20040226/20040301/20040306/20040311/20040316/20040321/20040326/20040401/20040406/20040411/20040416/20040421/20040426/20040501/20040506/20040511/20040516/20040521/20040526/20040601/20040606/20040611/20040616/20040621/20040626/20040701/20040706/20040711/20040716/20040721/20040726/20040801/20040806/20040811/20040816/20040821/20040826/20040901/20040906/20040911/20040916/20040921/20040926/20041001/20041006/20041011/20041016/20041021/20041026/20041101/20041106/20041111/20041116/20041121/20041126/20041201/20041206/20041211/20041216/20041221/20041226,
        NUMBER = 1,

but it is more efficient to group all members in one go for fewer datesHdates:
        HDATE  HHdate = 20040101/20040106/20040111/20040116/20040121/20040126,
        NUMBER = 1/to/50
This implies less positioning and more contiguous reads.

We could look at increasing the 10GB limit. We have more hardware and are in a better position to handle bigger chunks.


For the 3 allowed streams, I would extract different type/levtype in different streams. For instance:
a) 1 stream: pf/sfc
b) 1 stream: pf/pl
c) 1 stream: cf/sfc and when it finishes,cf/pl
and I would put 2 requests for each stream above. Once a request finishes and starts the downloading, the next request will kick in, and it will find in many cases that the tape volume is still in the tape drive, which will save in avg 2 minutes for a tape mount.




 


 

 



An example to request Control forecast, pressure levels, for

...

Hyears 2010-2014 for 2

...

Hmonths (eg April and June)

Info
titleThe main idea in brief:
for each yearHyear from 2010 to 2014
    for monthsHmonths April, June
for each hindcast dateHdate
your-request

 

old below:

---------------

...

titleThe objective:

...

 

...