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 one field (10 meter U wind here) for all time steps and for the forecast starting on 1st January 2015:
Code Block | ||
---|---|---|
| ||
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
"class": "s2",
"dataset": "s2s",
"date": "2015-01-01",
"expver": "prod",
"levtype": "sfc",
"origin": "ecmf",
"param": "165",
"step": "0/to/768/by/24",
"stream": "enfo",
"target": "CHANGEME",
"time": "00",
"type": "cf",
}) |
Code Block | ||
---|---|---|
| ||
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
"class": "s2",
"dataset": "s2s",
"date": "2015-01-01",
"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",
}) |
Real-time forecasts: 1 param, series of dates
Retrieving 1 field (10m U wind) for all time steps and for the whole January 2015.
Code Block | ||
---|---|---|
| ||
#!/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 | ||
---|---|---|
| ||
#!/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 14 May 2014
Code Block | ||
---|---|---|
| ||
#!/usr/bin/env python from ecmwfapi import ECMWFDataServer server = ECMWFDataServer() server.retrieve({ "class": "s2", "dataset": "s2s", "hdate": "2014-0105-0114", "date": "2015-0105-0114", "expver": "prod", "levtype": "sfc", "origin": "ecmf", "param": "165", "step": "0/to/7681104/by/24", "stream": "enfh", "target": "CHANGEME", "time": "00", "type": "cf", }) |
...
Code Block | ||
---|---|---|
| ||
#!/usr/bin/env python from ecmwfapi import ECMWFDataServer server = ECMWFDataServer() server.retrieve({ "class": "s2", "dataset": "s2s", "hdate": "2014-0105-0114", "date": "2015-0105-0114", "expver": "prod", "levtype": "sfc", "origin": "ecmf", "param": "165", "step": "0/to/7681104/by/24", "stream": "enfh", "target": "CHANGEME", "time": "00", "number": "1/2to/3/410", "type": "pf", }) |
...
Re- forecasts used to calibrate
...
a 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 | ||
---|---|---|
| ||
#!/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:
...
14 May 2015 real-time forecast.
Code Block |
---|
Code Block | language | py
---|
#!/usr/bin/env python from ecmwfapi import ECMWFDataServer server = ECMWFDataServer() server.retrieve({ "class": "s2", "dataset": "s2s", "hdate": "1995-0105-0114/1996-0105-0114/1997-0105-0114/1998-0105-0114/1999-0105-0114/2000-0105-0114/2001-0105-0114/2002-0105-0114/2003-0105-0114/2004-0105-0114/2005-0105-0114/2006-0105-0114/2007-0105-0114/2008-0105-0114/2009-0105-0114/2010-0105-0114/2011-0105-0114/2012-0105-0114/2013-0105-0114/2014-0105-0114", "date": "2015-0105-0114", "expver": "prod", "levtype": "sfc", "origin": "ecmf", "param": "165", "step": "0/to/7681104/by/24", "stream": "enfh", "target": "CHANGEME", "time": "00", "type": "cf", }) |
Code Block | ||
---|---|---|
| ||
#!/usr/bin/env python from ecmwfapi import ECMWFDataServer server = ECMWFDataServer() server.retrieve({ "class": "s2", "dataset": "s2s", "hdate": "1995-0105-0114/1996-0105-0114/1997-0105-0114/1998-0105-0114/1999-0104-0114/2000-0105-0114/2001-0105-0114/2002-0105-0114/2003-0105-0114/2004-0105-0114/2005-0105-0114/2006-0105-0114/2007-0105-0114/2008-0105-0114/2009-0105-0114/2010-0105-0114/2011-0105-0114/2012-0105-0114/2013-0105-0114/2014-0105-0114", "date": "2015-0105-0114", "expver": "prod", "levtype": "sfc", "origin": "ecmf", "param": "165", "step": "0/to/7681104/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 | ||
---|---|---|
| ||
#!/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/4to/10", "time": "00", "type": "pf", }) |