Versions Compared

Key

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

Table of Contents

General requirements

Encoding format

  • WMO GRIB2 data format.

This page contains a few rules on the UERRA parameters. A complete list of all the parameters and GRIB2 encoding is given here.

Table of Contents

UERRA parameter rules

Units

  • All fields shall use units as defined in GRIB Edition 2. The exact definition for each parameter is linked in Parameter page

Output frequency, levels for an/fc

Accumulations

  • All accumulations shall start from the beginning of the forecast
  • The initial state (forecast step zero) must not be included (as it should be 0 value field by definition)

Parameters archived since previous post-processing

  • Some parameters (2m tmin/tmax, 10m wind gust) shall be archived with varying length of time range intervals:
    0-1/1-2/2-3/4-5/5-6/6-9/9-12/../27-30
    Find further in this page GRIB2 files examples including header outputs etc

Fluxes

  • The flux sign convention is positive downwards.
  • Positive evaporation represents condensation.

Missing values

  • Bitmaps shall be used to indicate missing values (i.e. Soil temperature (st) shall be coded using a bitmap, because there is no model output over the sea)

Grid and resolution

  • Each partner provide data on their native gridThe fields have to be provided on a  regular latitude‐longitude grid at the resolution that is best matching the native resolution of the direct  model output.
  • Grids are defined in GRIB2 using an accuracy of 1/1000000 (one millionth) of a degree.

Ensemble type of outputs

  • Ensemble member numbering must start from 1

Model levels

  • Model level numbering must start from 1

GRIB2 encoding

ECMWF encoding/decoding Software

  • If several limited areas will be provided  they should be merged into one larger area on a regular lat-lon grid, with a missing value indicator in the grid-points not covered.

GRIB2 encoding

All data must be encoded following the required rules described below to achieve fully compliant LC-WFV format from all centres.

Encoding software

ECMWF ECMWF makes available a GRIB decoding library (GRIB-APIecCodes) for the benefit of the WMO community. GRIB-API ecCodes can be freely downloaded from here and the documentation can be found here. The GRIB-API provides a simplified access to GRIB2 headers through a set of virtual keys documented here

Info

The new GRIB-API version 1.19.0 which can recognise all UERRA parameters is already available on all ECMWF's premises (e.g. ecgate). Its official public release will follow soon in following weeks.

UERRA-GRIB2 checking tool

The so called tigge_check tool is a part of GRIB-API package. It should be used to validate all GRIB2 files prepared for UERRA (the option -u). The tool is checking all encoding details so that only fully compliant UERRA files following exactly required definitions would pass. It can check also allowed value ranges for each parameter if used with the option -v. These ranges have not been fully defined for all UERRA parameters yet e.g. for radiation fluxes. Sometimes warnings about values exceeding expected limits do not mean error in the checked data but only model specific correct values.

Warning
titleTemporary tigge_check version

During the development phase there will be always the latest version of tigge_check tuned on the latest full sample data from providers available on ecgate:

ecgate: ~marm/uerra/bin/tigge_check

After the end of the development phase (when full samples for more days/weeks are available from all expected models) that last version of tigge_check will be added to the next closest official GRIB-API release.

Examples of tigge_check usage:

Code Block
> module load grib_api/1.17.0
> load grib_api 1.17.0 Library (GRIB_API_MODE, GRIB_API_VERSION, GRIB_API_INCLUDE, GRIB_API_LIB, GRIB_API_INCLUDE_DIR, GRIB_API_LIB_DIR, EC_FFLAGS, EC_CFLAGS, EC_CXXFLAGS, EC_FLDFLAGS, EC_CLDFLAGS, EC_CXXLDFLAGS)
> 
# example with one data value ranges warning and one encoding error
> tigge_check -u -w -v *.grib2
> warning: an.enda.tcw.sfc.0.fp.grib2, field 1 [total_column_water_sfc]: total_column_water_sfc maximum value 31.5638 is not in [50,150]
  => [31.5638,150]
> fc.oper.2t.sfc.2.grib2 , field 1 [temperature_hl]: invalid height level 3

 

GRIB2 encoding details

The complete WMO compliant GRIB2 definitions of all UERRA parameters are linked here.

For more general information about GRIB2 format please refer to WMO Manual on Codes .

Encoding details

Parameters

General encoding

Specific details which should be encoded in GRIB2 sections 1 and 4The additional generally required encoding UERRA details are listed below:

Section 1
Octets Key nameValueDescription
6-7centre78COSMO products (code Offenbach edzw)
  84Meteo-France products (code Toulouse lfpw )
  82HARMONIE products (code Sweden eswi)
XWMO Centre's code (table below)
8-9subCentreXWMO Sub-Centre's code if needed (table below  74MO products (code UK Meteorological Office Exeter egrr)
10tablesVersion1719The latest WMO table with some new definitions for UERRA 
20productionStatusOfProcessedData

8

operational UERRA products

  9test UERRA products
0

Production data



1Test data
21typeOfProcessedData0Analysis products


  1Forecast products

...


Section 4
OctetsKey name

Value

Description

8-9productDefinitionTemplateNumber

0

Analysis and Forecast products (instantaneous)

(Analysis or forecast at a horizontal level or in a horizontal layer at a point in time (grib2/tables/17/4.0.table))

  8

Analysis and Forecast products (statistically processed = accumulated/min/max values)

(Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval (grib2/tables/17/4.0.table))

Ensemble DA system (both analysis and forecast products)

...

Value

...

Description

...

1

 

...

Analysis and Forecast products (instantaneous)

(Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time  (grib2/tables/17/4.0.table))

...

Analysis and Forecast products (statistically processed = accumulated/min/max values)

(Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval (grib2/tables/17/4.0.table))

...

WMO Centre codes

The codes below are based on WMO Manual 306 - WMO Codes. Each organization must be uniquely identified by its WMO code. If necessary to distinguish between two organizations using the same WMO code the Sub-Centre one which differs must be provided.

OrganisationAcronymWMO Centre codeWMO subCentre codeCentre acronym*1

European Centre for  Medium-Range Weather, UK

ECMWF98 N/Aecmf
Met office, UKUKMO74 N/Aegrr
Fleet Numerical Meteorology and Oceanography Center, USAFNMOC58 N/Afnmo
Environment and Climate Change Canada, CanadaECCC54 N/Acwao
National Centres for Environmental Prediction, USANCEP7 N/Akwbc
Météo France, FranceMETFR84 N/Alfpw
Deutscher Wetterdienst, GermanyDWD78 N/Aedzw
Bureau of Meteorology, AustraliaBoM1 N/Aammc
Laboratoire D'Océanographie Physique et Spatiale, FranceLOPS84202lops
Japan Meteorological Agency, JapanJMA34 N/Arjtd
Korea Meteorological Administration, Republic of KoreaKMA40 N/Arksl
Puertos del Estado, SpainPRTOS214 N/Alemm
Danmarks Meteorologiske Institut, DenmarkDMI94 N/Aekmi

National Institute of Water and Atmospheric Research, New Zealand

NIWA204 N/Aniwa

Det Norske Meteorologiske Institutt, Norway

METNO88 N/Aenmi

Servicio de Hidrografía Naval, Servicio Meteorológico, Argentina

SHNSM41 N/Asabm

New Zealand MetService

NZMS69 N/Anzkl
Servizio Meteorologico dell'Aeronautica Militare, ItalyMETEOAM80 N/Acnmc

Remarks:

*1 in ECMWF's eCcodes


Example of the validity type encoding

Examples of UERRA compliant GRIB2 files

...

Accumulations

(Evaporation)

...

grib

dump

...

grib

dump

...

Instantaneous on surface level

(Surface air temperature)

...

grib

dump

...

grib

dump

...

grib

dump

...

grib

dump

...

Instantaneous on model level

(Specific humidity on model level 1)

...

grib

dump

...

grib

dump

...

grib

dump

...

grib

dump

...

Maximum since previous post-processing

(Surface air maximum temperature since previous post-processing)

...

grib*

dump

...

grib*

dump

...

Minimum since previous post-processing

(Surface air minimum temperature since previous post-processing)

...

grib*

dump

...

grib*

dump

...

Parameter on soil level

(Soil temperature on soil level 1)

...

grib

dump

...

grib

dump

...

*disregard data values in this grib (some step/level values were created artificially as real data has not been available yet) 

...

Instantaneous

This example describes an instantaneous field  valid on 20120103 00Z from a forecast starting on 20120101 00Z (time step=48 hours) .

...

  
Time ( instantaneous )
Start of forecast ( section 1 )

Octets

 

 values

Meaning of valuesGrib_api values
12Significance of Reference Time1Start of forecast
13-14Year (four digits)2012year of start of forecast


 

dataDate=20120101 

dataTime=0

 

15Month01month of start of forecast
16Day01day of start of forecast
17Hour00hour of start of forecast
 section 4 e.g. template 4.1
18Indicator of unit of time range 1Hour
19-22Forecast time48Forecast stepstepType=instant, step=48
Accumulations

This example represents a  54 hour accumulation of a field produced by a forecast started on 20120101 00Z.

  • In bold, the values are fixed. They are meant to be used by all partners
  • In green, these are the values for the example.

...

Octets

...

Values

...

Examples of  the required GRIB2 files

parameter

Sample file

10 metre U wind component 

wave.10u.grib2

10 metre V wind component 

wave.10v.grib2
Mean wave period based on second momentwave.mp2.grib2
Mean wave directionwave.mwd.grib2
Peak wave periodwave.pp1d.grib2

Significant height of combined wind waves and swell

wave.swh.grib2

dataDate=20120101

dataTime=0

...

 

End of accumulated period, 20120103 06Z

...

   

 

endStep=54

 

 

...

Statistical process used to calculate the processed

field from the field at each time increment during the time range

...

stepType=accum

...

Type of time increment between successive fields used in the statistical processing

...

Successive times processed have same start time of forecast,

forecast time is incremented

...

Indicator of unit of time for time range over which statistical processing is done

...

Length of the time range over which statistical processing is done,

in units defined by the previous octet

...

 

...

Indicator of unit of time for the increment between the successive fields used

...

Time increment between successive fields, in units defined by the previous octet

...

 

Maximum since the previous post-processing

This example represents a  maximum since the previous post-processing of a field valid on 20120103 00Z produced by a forecast started on 20120101 00Z . In this example, the maximum is the 6-hourly maximum in the time interval: steps 42 to 48.

  • In bold, the values are fixed. They are meant to be used by all partners
  • In green, these are the values for the example.

...

Octets

...

 values

...

 

dataDate=20120101

dataTime=0

...

 

End of maximum period

...

 

endStep=48

...

Statistical process used to calculate the processed field

from the field at each time increment during the time range

...

Type of time increment between successive fields

used in the statistical processing

...

Successive times processed have

same start time of forecast, forecast time is incremented

...

Indicator of unit of time for time range

over which statistical processing is done

...

Length of the time range over which statistical

processing is done, in units defined by the previous octet

...

Indicator of unit of time for the increment between

the successive fields used

...

indicatorOfUnitForTimeIncrement=1

...

Time increment between successive fields,

in units defined by the previous octet

...

 

Minimum since the previous post-processing

This example represents a  minimum since the previous post-processing of a field valid on 20120103 00Z produced by a forecast started on 20120101 00Z . In this example, the minimum is the 6-hourly minimum in the time interval: steps 42 to 48.

  • In bold, the values are fixed. They are meant to be used by all partners
  • In green, these are the values for the example.
Time (Minimum over the last 6 hours )Start of re-forecast ( section 1 )

Octets

 

Fixed

 Meaning of  valuesGrib_api keys12Significance of Reference Time1Start of forecast 13-14Year (four digits)2012year of start of forecast

 

dataDate=20120101

dataTime=0

15Month 01month of start of forecast16Day 01day of start of forecast17Hour 00hour of start of forecastMinimum ( section 4 e.g. Template 4.11)18Indicator of unit of time range 1Hour 19-22Forecast time 42Step at the beginning of the 6-hourly intervalstartStep=4245-46year of end of overall time interval 2012

 

End of minimum period

 

endStep=48

47month of end of overall time interval 0148day of end of overall time interval 0349hour of end of overall time interval 0052number of time ranges 1Only one time statistics applied (minimum) 53-56total number of data values missing in statistical process 0  57

Statistical process used to calculate the processed field

from the field at each time increment during the time range

 3MinimumstepType=min58

Type of time increment between successive fields

used in the statistical processing

2

Successive times processed have same start time of forecast, forecast time is incremented

 59

Indicator of unit of time for time range

over which statistical processing is done

 1HourindicatorOfUnitForTimeRange=160-63

Length of the time range over which statistical

processing is done, in units defined by the previous octet

 66-hourly minimumlengthOfTimeRange=664

Indicator of unit of time for the increment between

the successive fields used

 1HourindicatorOfUnitForTimeIncrement=165-68

Time increment between successive fields,

in units defined by the previous octet

 0Minimum computed continuously in the 6 hourly intervaltimeIncrement=0