This page contains a few rules on the S2S parameters. A complete list of all the parameters and sample GRIB2 encoding is given here.
General rules
Units
- All fields shall use units as defined in GRIB Edition 2
Accumulations
- All accumulations shall start from the beginning of the forecast
- The initial state (forecast step zero) shall be a part of all forecasts, all members, etc ... except for daily mean fields .
- The values of accumulated fields shall be set to zero for t=0
Accumulations are archived once a day, valid at 00Z,Accumulations are archived once a day, valid at 00Z, except for total precipitation which are archived 4 times a day (decided at the 14/02/2014 S2S steering group meeting)
Instantaneous fields
- Instantaneous fields shall be archived with a frequency of once a day, valid at 00Z.
Daily mean/max/min
- Daily means are average of 00, 06, 12 and 18 UTC (universal time).
- Surface air maximum temperature and surface air minimum temperature have the same hour-boundaries as daily means and are defined as respectively the maximum and minimum temperature over the past 6 hours.
Re-forecasts
- The re-forecasts are archived with a reference date to distinguish between real-time data and re-forecast data,
Fluxes
- The flux sign convention will be positive downwards.
Missing values
- Bitmaps shall be used to indicate missing values (i.e. Soil moisture (sm) shall be coded using a bitmap, because there is no model output over the sea)
Grid and resolution
- Each partner will provide their eps data on a 1.5/1.5 regular lat-lon grid for both ocean and atmosphere. First grid point is 90N 0E. The data will be archived first from west to east (OE to 358.5), and then from north to south (90N to 90S). The related GRIB 2 meta data called scanning mode should equal to 0.
Scanning mode 0
- i scans positively (west to east)
- i points are consecutive
- j scans negatively (north to south)
- i scans positively (west to east)
- Grids are defined in GRIB2 using an accuracy of 1/1000000 (one millionth) of a degree. If this accuracy is not sufficient to describe your grid (latitude/longitude of first and last points, as well as grid increments) without loss of information, you can use a GRIB2 feature that provides a way to describe any regular grid. See the page on encoding global latitude/longitude grid for more details.
Ocean parameters
- follow the same rules but the data is on a 1.0/1.0 regular lat-lon grid
Number of forecasts
- The Control Forecast must be number 0,
- The number of members is identical to the number of all EPS members plus the Control Forecast.
GRIB2 encoding
ECMWF encoding/decoding Software
ECMWF makes available a GRIB decoding library (ecCodes) for the benefit of the WMO community. ecCodes can be freely downloaded from here and the documentation can be found here.
ecCodes provides a simplified access to GRIB2 headers through a set of virtual keys documented here.
S2S GRIB2 checking tool
The so called tigge_check tool is a part of ecCodes package. It should be used to validate all GRIB2 files prepared for S2S (the option "-s" for the real-time outputs and option "-s -r" for S2S reforecast files). The tool is checking all encoding details so that only fully compliant S2S files following exactly required definitions would pass. Find more information about the tool in the page Data encoding checking tools
Encoding
1) S2S Production status of processed data
Octet 36 of section 1 of a GRIB2 message contains the Production status of processed data. The WMO has added two values to table 1.3 Production status of data:
- 6: S2S operational products
- 7: S2S test products
S2S extension (Section 2)
It is proposed that the section 2 for S2S fields be the same for all partners. A GRIB2 decoder must decode the section 2 as a TIGGE extension based on the octet 36 of section 1 (Production status of processed data) being 6 or 7.
The format of the S2S extension is not yet defined. The section 2 should either be missing or empty.
2) Control and perturbed forecasts
Control and perturbed forecasts are identified in section 1 and 4. The following tables explains how to code them in GRIB2:
Section 1 | |||
---|---|---|---|
Octets | Example perturbed | Example control | |
21 | type of processed data | 4 | 3 |
Ensemble (section 4, template 4.61) | |||
---|---|---|---|
Octets | Example perturbed | Example control | |
8-9 | product definition template number | 1/11* (real-time) 60/61* (reforecast) | 1/11* (real-time) 60/61* (reforecast) |
35 | type of ensemble forecast | 255 (missing) | 255 (missing) |
36 | perturbation number | 7 | 0 |
37 | number of forecasts in ensemble | 51 | 51 |
- statistically processed (typeOfStatisticalProcessing is set up)
3) Time component and reforecasts
4) Examples of GRIB2 files
real-time | re-forecast | |
Daily average | Control Perturbed | Control Perturbed |
Accumulations | Control Perturbed | Control Perturbed |
Instantaneous | Control Perturbed | Control Perturbed |
Maximum over the last 6 hours | Control Perturbed | Control Perturbed |
Minimum over the last 6 hours | Control Perturbed | Control Perturbed |
Example of a new ocean parameter *
(*) ecCodes version>= 2.13.0 is needed to see correct MARS meta data