Versions Compared

Key

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

Table of Contents

Real-Time Forecasts

ECMWF real-time forecasts are produced twice a week, every Monday and Thursday.  The S2S database contains all the ECMWF real-time forecasts since 1st January 2015.

Real-time forecasts: 1 param, 1 date

...

Retrieving  1 field (10m U wind) for all time steps and for the whole January 2015.


Code Block
languagepy
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
    "class": "s2",
    "dataset": "s2s",
    "date": "2015-01-01/2015-01-05/2015-01-08/2015-01-12/2015-01-15/2015-01-19/2015-01-22/2015-01-26/2015-01-29",
    "expver": "prod",
    "levtype": "sfc",
    "origin": "ecmf",
    "param": "165",
    "step": "0/to/768/by/24",
    "stream": "enfo",
    "target": "CHANGEME",
    "time": "00",
    "type": "cf",
})

 


Code Block
languagepy
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
    "class": "s2",
    "dataset": "s2s",
    "date": "2015-01-01/2015-01-05/2015-01-08/2015-01-12/2015-01-15/2015-01-19/2015-01-22/2015-01-26/2015-01-29",
    "expver": "prod",
    "levtype": "sfc",
    "origin": "ecmf",
    "param": "165",
    "step": "0/to/768/by/24",
    "stream": "enfo",
    "target": "CHANGEME",
    "time": "00", 

...


     "number": "1/to/50",

...


    "type": "pf",

...


 })

 

Re-forecasts

ECMWF re-forecasts are produced on the fly. This means that every week a new set of re-forecasts is produce to calibrate the real-time ensemble forecast of the following week. The ensemble re-forecasts consist of a 5-member ensemble

starting the same day and month as a Thursday real-time forecast, but covering the past 20 years. For instance the first re-forecast set archived in the S2S database was the re-forecast used to calibrate the real-time forecast of 1st January 2015 (a Thursday).  This set consisted of a 5-member ensemble starting on 1st January 1995, 1st January 1996, ... 1st January 2014 (20 years, 5 member ensemble = 100-member climate ensemble). The re-forecast dataset is therefore updated every week in the S2S archive, and re-forecasts covering all the 4 seasons will only be available at the end of 2015.

The ECMWF re-forecasts are archived in the S2S database using two dates: "date" and "hdate" (see examples below): hdate is the actual date of the re-forecast (e.g. 19950101) while date is the date of the real-time forecast (=ModelversionDate in grib2) associated to the re-forecast (20150101). The reason we need 2 dates is because the ECMWF re-forecasts are produced on the fly and we need to avoid the re-forecasts produced in the future years to overwrite the re-forecasts currently produced. Therefore ModelversionDate  allows us to distinguish the re-forecasts produced in 2015 from those produced in 2016, 2017...  More details on the ECMWF model and re-forecast configuration can be found here.

Re- forecasts: : 1 param, 1 date

Retrieving  1 field (10m U wind) for all time steps and for the 1st January 2014


Code Block
languagepy
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
    "class": "s2",
    "dataset": "s2s",
    "hdate": "2014-01-01",

...


    "date": "2015-01-01",
    "expver": "prod",
    "levtype": "sfc",
    "origin": "ecmf",
    "param": "165",
    "step": "0/to/768/by/24",
    "stream": "enfh",
    "target": "CHANGEME",
    "time": "00",
    "type": "cf",
})

 


Code Block
languagepy
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
    "class": "s2",
    "dataset": "s2s",
    "hdate": "2014-01-01",

...


    "date": "2015-01-01",
    "expver": "prod",
    "levtype": "sfc",
    "origin": "ecmf",
    "param": "165",
    "step": "0/to/768/by/24",
    "stream": "enfh",
    "target": "CHANGEME",
    "time": "00", 

...


     "number": "1/2/3/4",

...


    "type": "pf",

...


 })

 

Re- forecasts used to calibrate a Thursday real-time forecast:

Retrieving  1 param (10m U wind) for all time steps and used to calibrate the 1st January 2015 real-time forecast (Thursday).


Code Block
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
    "class": "s2",
    "dataset": "s2s",
    "hdate": "1995-01-01/1996-01-01/1997-

...

01-01/1998-

...

01-01/1999-

...

01-01/2000-

...

01-01/2001-

...

01-01/2002-

...

01-01/2003-

...

01-01/2004-

...

01-01/2005-

...

01-01/2006-

...

01-01/2007-

...

01-01/2008-

...

01-01/2009-

...

01-01/2010-

...

01-01/2011-

...

01-01/2012-

...

01-01/2013-

...

01-01/2014-

...

01-01",

...


    "date": "2015-01-01",
    "expver": "prod",
    "levtype": "sfc",
    "origin": "ecmf",
    "param": "165",
    "step": "0/to/768/by/24",
    "stream": "enfh",
    "target": "CHANGEME",
    "time": "00",
    "type": "cf",
})

 


Code Block
languagepy
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
    "class": "s2",
    "dataset": "s2s",
    "hdate": "1995-01-01/1996-01-01/1997-

...

01-01/1998-

...

01-01/1999-

...

01-01/2000-

...

01-01/2001-

...

01-01/2002-

...

01-01/2003-

...

01-01/2004-

...

01-01/2005-

...

01-01/2006-

...

01-01/2007-

...

01-01/2008-

...

01-01/2009-

...

01-01/2010-

...

01-01/2011-

...

01-01/2012-

...

01-01/2013-

...

01-01/2014-

...

01-01",

...


    "date": "2015-01-01",
    "expver": "prod",
    "levtype": "sfc",
    "origin": "ecmf",
    "param": "165",
    "step": "0/to/768/by/24",
    "stream": "enfh",
    "target": "CHANGEME",

...


    "number": "1/2/3/4",

...


    

...

"time": "00",

...


    

...

"type": "pf",
})

 

Re- forecasts used to calibrate a Monday real-time forecast:

Retrieving  1 param (10m U wind) for all time steps and used to calibrate the 5th January 2015 real-time forecast (mondayMonday). It takes the re-forecast for thursday Thursday 1st January and thursday Thursday 8th January

 

Code Block
languagepy
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
    "class": "s2",
    "dataset": "s2s",
    "hdate": "1995-01-01/1996-01-01/1997-

...

01-01/1998-

...

01-01/1999-

...

01-01/2000-

...

01-01/2001-

...

01-01/2002-

...

01-01/2003-

...

01-01/2004-

...

01-01/2005-

...

01-01/2006-

...

01-01/2007-

...

01-01/2008-

...

01-01/2009-

...

01-01/2010-

...

01-01/2011-

...

01-01/2012-

...

01-01/2013-

...

01-01/2014-

...

01-01",

...


    "date": "2015-01-01",
    "expver": "prod",
    "levtype": "sfc",
    "origin": "ecmf",
    "param": "165",
    "step": "0/to/768/by/24",
    "stream": "enfh",
    "target": "CHANGEME",
    "time": "00",
    "type": "cf",
})

 


Code Block
languagepy
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
    "class": "s2",
    "dataset": "s2s",
    "hdate": "1995-01-01/1996-01-01/1997-

...

01-01/1998-

...

01-01/1999-

...

01-01/2000-

...

01-01/2001-

...

01-01/2002-

...

01-01/2003-

...

01-01/2004-

...

01-01/2005-

...

01-01/2006-

...

01-01/2007-

...

01-01/2008-

...

01-01/2009-

...

01-01/2010-

...

01-01/2011-

...

01-01/2012-

...

01-01/2013-

...

01-01/2014-

...

01-01",

...


    "date": "2015-01-01",
    "expver": "prod",
    "levtype": "sfc",
    "origin": "ecmf",
    "param": "165",
    "step": "0/to/768/by/24",
    "stream": "enfh",
    "target": "CHANGEME",

...


    "number": "1/2/3/4",

...


    

...

"time": "00",

...


    

...

"type": "pf",
})

 

 

Code Block
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
    "class": "s2",
    "dataset": "s2s",
    "hdate": "1995-01-08/1996-01-08/1997-

...

01-08/1998-

...

01-08/1999-

...

01-08/2000-

...

01-08/2001-

...

01-08/2002-

...

01-08/2003-

...

01-08/2004-

...

01-08/2005-

...

01-08/2006-

...

01-08/2007-

...

01-08/2008-

...

01-08/2009-

...

01-08/2010-

...

01-08/2011-

...

01-08/2012-

...

01-08/2013-

...

01-08/2014-

...

01-08",

...


    "date": "2015-01-08",
    "expver": "prod",
    "levtype": "sfc",
    "origin": "ecmf",
    "param": "165",
    "step": "0/to/768/by/24",
    "stream": "enfh",
    "target": "CHANGEME",
    "time": "00",
    "type": "cf",
})

 

 

Code Block
languagepy
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
    "class": "s2",
    "dataset": "s2s",
    "hdate": "1995-01-08/1996-01-08/1997-

...

01-08/1998-

...

01-08/1999-

...

01-08/2000-

...

01-08/2001-

...

01-08/2002-

...

01-08/2003-

...

01-08/2004-

...

01-08/2005-

...

01-08/2006-

...

01-08/2007-

...

01-08/2008-

...

01-08/2009-

...

01-08/2010-

...

01-08/2011-

...

01-08/2012-

...

01-08/2013-

...

01-08/2014-

...

01-08",

...


    "date": "2015-01-08",
    "expver": "prod",
    "levtype": "sfc",
    "origin": "ecmf",
    "param": "165",
    "step": "0/to/768/by/24",
    "stream": "enfh",
    "target": "CHANGEME",

...


    "number": "1/2/3/4",

...


    

...

"time": "00",

...


    

...

"type": "pf",
})

...

 

...