-------------------------------------------------------------------------------- DRAFT ---------------------------------------------------------------------------------
This article applies to the ERA5 sub-daily datasets:
- ERA5 high resolution (HRES), sub-daily data (streams oper/wave)
- ERA5 ensemble (EDA), sub-daily data (streams enda/ewda).
This article does not apply to other ERA5 streams, for example monthly data. See what streams are available(ERA5 data documentation, section 'Data organisation').
See also: What is ERA5 and How to download ERA5 data via the ECMWF Web API
Analysis and forecast
In the ERA5 data archive two types of data are available, 'analysis' (an) and 'forecast' (fc):
- An analysis, of the atmospheric conditions, is a blend of observations with a previous forecast. An analysis can only provide instantaneous parameters (parameters valid at a specific time, e.g temperature at 12:00), but not accumulated parameters, mean rates or min/max parameters.
- A forecast starts with an analysis at a specific time (the 'initialization time'), and a model computes the atmospheric conditions for a number of 'forecast steps', at increasing 'validity times', into the future. A forecast can provide instantaneous parameters, accumulated parameters, mean rates, and min/max parameters.
To see which parameters are available as analysis (an) and/or forecasts (fc) see the ERA5 documentation, section 'Parameter listings'
Instantaneous, accumulated, mean rate and min/max parameters
Each parameter is classed as either 'instantaneous', 'accumulated', 'mean rate' or 'min/max', depending on the temporal properties of the parameter:
- Instantaneous parameters refer to a specific point in time , for example temperature at 12:00. For a list of available surface and single level instantaneous parameters see the ERA5 documentation, Table 2.
- Accumulated parameters are accumulations during a particular time period, for example precipitation between 17:00 and 18:00. For a list of available accumulated parameters see the ERA5 documentation, Table 3.
- Mean rate parameters are accumulated vales averaged over a particular time period, for example mean snowfall rate, per second, between 17:00 and 18:00. For a list of available mean rate parameters see the ERA5 documentation, Table 4.
- Min/max parameters are the minimum or maximum 'instantaneous' value within a particular time period, for example minimum temperature between 17:00 and 18:00. For a list of available min/max parameters see the ERA5 documentation, Table 5.
Time and Step
'time' in analyses
Each analysis has a validity time, i.e. the time the data values refer to (not the time when the analysis was computed).
All validity times are in hours UTC.
Depending on the selected stream, ERA5 daily analysis data is available hourly (i.e. with validity time 00:00, 01:00, 02:00, ... , 23:00) or 3-hourly (i.e. with validity time 00:00, 03:00, 06:00, ... , 21:00). See also ERA5 data documentation, 'Temporal resolution' and the ERA5 Catalogue, streams.
The concept of 'step' does not apply to analyses.
'time' in forecasts
ERA5 is largely a series of weather forecasts. Each forecast starts with the atmospheric conditions at a specific 'initialization time'. In ERA5 a new forecast is computed twice a day, with initialization time 06:00 and 18:00 UTC.
In the ERA5 data archive, for forecasts, 'time' specifies the initialization time.
'step' in forecasts
Each forecast computes the future atmospheric conditions, and at certain points during this computation a snapshot of the computed data is taken, post-processed, and stored in the ERA5 data archive. These snapshots are called 'steps'. In ERA5 there is a step every 1 hour or 3 hours, depending on the selected stream.
Steps are referenced in hours from the forecast initialization time. This is regardless of the step interval. For example, for time=06:00, step 3 is always at 09:00 (06:00+3h).
The step interval in ERA5 is:
- Every 1 hour in the HRES atmospheric (stream=oper), HRES wave (stream=wave) and EDA wave (stream=ewda) forecasts. Hence data is available with validity times 06:00 (step 0, initialization), 07:00 (step 1, i.e. initialization + 1h), 08:00 (step 2, i.e. initialization + 2h), and so on, and equivalent for the 18:00 initialization.
- Every 3 hours in the EDA atmospheric (stream=enda) forecasts. Hence data is available with validity times 06:00 (step 0, initialization), 09:00 (step 3, i.e. initialization +3h), 12:00 (step 6, i.e. initialization + 6h), and so on, and equivalent for the 18:00 initialization.
'step' and instantaneous, accumulated and min/max parameters
The interpretation of 'step' also depends on the parameter:
- Instantaneous parameters are valid at the time indicated by time+step. For example, temperature from the forecast at time=06:00, step=3, represents the temperature at 06:00 + 3h, i.e. at 09:00.
- Accumulated parameters are aggregated up to a Step Y, starting at the previous Step X:
Note that the interval between Step X and Step Y is 1 hour or 3 hours, depending on the selected stream. At Step 0 all accumulated values and mean rates are zero, because there is no previous data to accumulate from. | For example:
|
- Mean rate parameters are similar to accumulated parameters, except that the quantities are averaged, instead of accumulated, up to a Step Y , from the previous Step X, so the units include "per second". For example:
- In HRES atmospheric (hourly steps), mean rate precipitation at time=06:00, step=3 represents average precipitation up to [06:00 + 3h], starting from the previous step (Step 2), i.e. average precipitation in the 1-hour period 08:00 to 09:00, per second.
- In EDA atmospheric (3-hourly steps), mean rate precipitation at time=06:00, step=3 represents average precipitation up to [06:00 + 3h], starting from the previous step (Step 0), i.e. average precipitation in the 3-hour period 06:00 to 09:00, per second.
- Min/max parameters (parameters named 'Minimum/Maximum ... since previous post-processing' ) are similar to accumulated parameters, except that instead of accumulating, only the min/max value of the period from Step X to Step Y is archived.
Summary
The following table summarizes the different parameter types available in ERA5 from analysis and forecast:
Instantaneous parameters, e.g. 2m temperature | Accumulated parameters, | Mean rate parameters | Minimum/maximum parameters named 'Minimum/Maximum ... since previous post-processing' | |
---|---|---|---|---|
Analysis Calculated from observations and previous forecasts 'time' indicate a specific point in time for which a data analysis is carried out 'time' is hourly, HH:00 'step' does not apply | For example '2 metre temperature'. Values are valid at 'time' | n.a. | n.a. | n.a. |
Forecast Calculated from analysis and the forecast model 'time' indicate a specific point in time at which a forecast starts (initialization time) 'time' can be 06:00 or 18:00 'step' indicates hours after the initialization time. At each 'step' a snapshot of the forecast output is available | For example '2 metre temperature'. Values are valid at 'time'+'step' 'step' can be 0 (effectively giving analysis), or in the range 1 to 18 (hours after initialization) | For example 'Total precipitation'. Values represent the accumulation up to 'time'+'step', up from the previous 'step' 'step' is in the range 0 to 18 (hours after initialization) At 'step' 0 all data is zero though. | For example 'Mean total precipitation rate'. Values represent the average up to 'time'+'step', up from the previous 'step', and normalized to per-second units 'step' is in the range 0 to 18 (hours after initialization) At 'step' 0 all data is zero though. | For example 'Maximum temperature at 2 metres since previous post-processing'. Values represent the Min/Max in the period up to 'time'+'step', starting from the previous 'step' 'step' is in the range 0 to 18 (hours after initialization) At 'step' 0 all data is zero though. |
Examples
See also How to download ERA5 data via the ECMWF Web API
Example 1: total precipitation (tp), as hourly values, for one month
From the ERA5 data catalogue | In a WebAPI Python script | ||
---|---|---|---|
1 | You are interested in HRES data, not in the ensemble | Deterministic forecast > Atmospheric model | 'stream':'oper' |
2 | Precipitation is accumulated, not instantaneous | Select Forecast | 'type':'fc' |
3 | Month | Select a month, e.g. 2015, January | |
4 | Total Precipitation is a 2-dimensional field ('surface field') | Select Surface | 'levtype':'sfc' |
5 | Dates | You select all dates in January | 'date':' 2015-01-01/to/2015-01-31' |
6 | ERA5 forecasts are initialized at 06:00 and 18:00, and in HRES the interval between forecast steps is one hour. Hence so you need forecast steps 1 to 12, from each forecast | Select time 06:00 and 18:00 Select steps 1 to 12 | 'time':'06:00/18:00' 'step':'1/2/3/4/5/6/7/8/9/10/11/12' |
7 | You need data for total precipitation | Select parameter 'Total precipitation' | param:tp |
8 | Click 'View the MARS request' |
The resulting MARS request:
#!/usr/bin/env python from ecmwfapi import ECMWFDataServer server = ECMWFDataServer() server.retrieve({ "class": "ea", "dataset": "era5", "date": "2015-01-01/to/2015-01-31", "expver": "1", "levtype": "sfc", "param": "228.128", # 'Total precipitation' "time": "06:00/18:00", # 2 forecasts per day, starting at 06:00 and 12:00 "step": "1/2/3/4/5/6/7/8/9/10/11/12", # From each forecast 18 steps are available. Here we use only steps 1 to 12. "stream": "oper", "type": "fc", "target": "output", # change this to your output file name })
These specifications give you hourly 'total precipitation' data from 2015-01-01, 06:00 to 2015-02-01, 06:00.
Discard the last 6 hours (2015-02-01, 00:01 to 06:00).
The specification above give you data starting at 06:00 on the first day, but you want it to start at 00:00. Get the missing 6 hours from the last forecast of the previous day ('date':'2014-12-31', 'time':'18:00', 'step':'7/8/9/10/11/12')
Merge the two downloaded files
Example 2: 2 metre temperature (2t), as daily average, for one month
-------------------------------------------------------------------------------- Continue review here ---------------------------------------------------------------------------------
You need 2 metre temperature (2t) as daily average for January 2015.
2t is an instantaneous parameter, available from analysis and forecasts. Since both are available, analysis is recommended.
ERA5 analysis is available at each full hour, so you need:
- type : an
- date : 2015-01-01/to/2015-01-31
- time : 00:00/01:00/02:00/03:00/04:00/05:00/06:00/07:00/08:00/09:00/10:00/11:00/12:00/13:00/14:00/15:00/16:00/17:00/18:00/19:00/20:00/21:00/22:00/23:00
This results in hourly data for 2t. Then calculate the daily average.
Example 3: daily minimum and maximum of 2m temperature, for one month
You could obtain the hourly 2m temperature (see Example 3), and then identify the daily maximum and minimum of the hourly values.
Alternatively you can use the parameters Maximum temperature at 2 metres since previous post-processing' (mx2t) and Minimum temperature at 2 metres since previous post-processing (mn2t):
The parameters named 'min/max since previous post-processing' are available from forecasts.
Is this a valid use case? Why not simply use analysis?
ERA5 forecasts are initialized at 06:00 and 18:00. Each forecast step is one hour, so you need from each 06:00 forecast and from each 18:00 forecast, mx2t and mn2t for first the first 12 forecast steps:
- type : fc
- date : 2015-01-01/to/2015-01-31
- time : 06:00/18:00
- step : 1/2/3/4/5/6/7/8/9/10/11/12
This results in hourly data from January 01, 06:00 to February 01, 06:00 (discard the last 6 hours).
You still need the first six hours of the first day, get these from the last forecast of the previous day:
- type : fc
- date : 2014-12-31
- time : 18:00
- step : 7/8/9/10/11/12
Sample Python script for the ECMWF WebAPI:
#!/usr/bin/env python from ecmwfapi import ECMWFDataServer server = ECMWFDataServer() server.retrieve({ "class": "ea", "dataset": "era5", "stream": "oper", "expver": "1", "date": "2015-01-01/to/2015-01-31", "type": "fc", "levtype": "sfc", "param": "201.128/202.128", # 'Maximum temperature at 2 metres since previous post-processing' and 'Minimum temperature at 2 metres since previous post-processing' "time": "06:00:00/18:00:00", # 2 forecasts per day, starting at 06:00 and 12:00 "step": "1/2/3/4/5/6/7/8/9/10/11/12", # For each forecast 18 one-hour steps are available. Here we use only steps 1 to 12. "grid": "0.30/0.30", "area": "60/-10/20/50", "target": "output", # change this to your output file name })
The above script retrieves Min and Max 2m temperature since previous post-processing, from 2015-01-01 06:00 to 2015-02-01 06:00, as one-hour periods. To identify the daily max/min, find the the max/min of these one-hour maxima/minima.
See also
How to download ERA5 data via the ECMWF Web API