ACCESS GRIB2 Data File Notes

GRIB2 is a WMO standard format for transmission of gridded meteorological data. ACCESS GRIB2 data files have been optimised to be as compatible with the WMO standard as possible and to reduce file-sizes.

To achieve improved compression two steps are performed:

  1. Conservative rounding of fields (e.g. screen-level temperature is rounded to the nearest 2 decimal places).
  2. Compression using lossless JPEG-2000 or PNG methods (both are part of the GRIB2 standard).

If you will be accessing the GRIB2 files multiple times, it is recommended to uncompress the files before using them. This will reduce your CPU load and execution times. This can be done with the ecCodes command "grib_set -s packingType=simple in.grb2 out.grb2".

Conventions and Metadata

Where possible the standard WMO encodings have been used. Local tables have only been used where there is no obvious WMO equivalent. The following GRIB2 references were consulted to arrive at a suitable metadata encoding:

Currently all GRIB2 fields can be uniquely identified by looking at a combination of the GRIB2 metadata fields: 'discipline', 'parameterCategory', 'parameterNumber', 'typeOfStatisticalProcessing', 'typeOfFirstFixedSurface', 'scaleFactorOfFirstFixedSurface', 'scaledValueOfFirstFixedSurface', 'scaleFactorOfLowerLimit', & 'scaledValueOfLowerLimit'. Note that some of these fields are not defined for all GRIB messages; for example 'scaleFactorOfLowerLimit', & 'scaledValueOfLowerLimit' relate only to probabilistic quantities.

ECMWF GRIB_API key WGRIB2 key GRIB2 section information Relevant GRIB2 code table
discipline discipline (code_table_0.0) Section 0, Octet 7 Code Table 0
parameterCategory parmcat Section 4, Octet 10 Code Tables 4.1
parameterNumber parm Section 4, Octet 11 Code Tables 4.2
typeOfStatisticalProcessing code_table_4.10 Section 4, Octet 47 † Code Table 4.10
typeOfFirstFixedSurface code_table_4.5a Section 4, Octet 23 Code Table 4.5
scaleFactorOfFirstFixedSurface "-lev option" Section 4, Octet 24 N/A
scaledValueOfFirstFixedSurface "-lev option" Section 4, Octet 25-28 § N/A
scaleFactorOfLowerLimit "-prob option" Section 4, Octet 38 ‡ N/A
scaledValueOfLowerLimit "-prob option" Section 4, Octet 39-42 ‡ N/A
Where applicable. Most fields do not have this key defined. All ACCESS fields where this is relevant have "productDefinitionTemplateNumber = 8 and numberOfTimeRange = 1".
§ Where applicable. For certain "typeOfFirstFixedSurface" values these keys are not defined and hence missing.
Where applicable. Most fields do not have this key defined. All ACCESS fields where this is relevant have "productDefinitionTemplateNumber = 9".

Note also that some software packages designed to query GRIB metadata return the "value" of a level (e.g. "valueOfFirstFixedSurface"). This value can be calculated from "scaledValueOfFirstFixedSurface" & "scaleFactorOfFirstFixedSurface" via the relation:

"valueOfFirstFixedSurface" = "scaledValueOfFirstFixedSurface"*pow(10, -"scaleFactorOfFirstFixedSurface").

The following two tables list relevant identifying metadata attribute values for each ACCESS field. Here "d.c.n." is an abbreviation of 'discipline'.'parameterCategory'.'parameterNumber'. "NC var" is the NetCDF variable name used for the corresponding field. Note also that parameters with a parameterNumber 192 to 254 exist only in BoM local GRIB2 tables. All other parameters are defined as existing fields in the WMO GRIB2 specification.

Single-level Field Identifying Metadata

G2 d.c.n Statistical Process Level 1 Type Level 1 Value Prob Threshold Value NC var Description (units)
0.0.0 0 sfc 1.5 N/A av_temp_scrn average screen level air temperature (K)
0.0.0 N/A sfc 1.5 N/A temp_scrn screen level temperature (K)
0.0.0 N/A sfc 0.0 N/A sfc_temp surface temperature (K)
0.0.4 2 sfc 1.5 N/A tmax_scrn screen level max temperature (K)
0.0.5 3 sfc 1.5 N/A tmin_scrn screen level min temperature (K)
0.0.6 N/A sfc 1.5 N/A dewpt_scrn screen level dewpoint temperature (K)
0.0.10 0 sfc 0.0 N/A av_lat_hflx average surface latent heat flux (W m-2)
0.0.10 N/A sfc 0.0 N/A lat_hflx surface latent heat flux (W m-2)
0.0.11 0 sfc 0.0 N/A av_sens_hflx average surface sensible heat flux (W m-2)
0.0.11 N/A sfc 0.0 N/A sens_hflx surface sensible heat flux (W m-2)
0.1.0 0 sfc 1.5 N/A av_qsair_scrn average screen level specific humidity (kg kg-1)
0.1.0 N/A sfc 1.5 N/A qsair_scrn screen level specific humidity (kg kg-1)
0.1.1 N/A sfc 1.5 N/A rh2m screen level relative humidity w.r.t. water (%)
0.1.3 N/A sfc 0.0 N/A precwtr precipitable water (kg m-2)
0.1.6 1 sfc 0.0 N/A accum_evap accumulated evaporation from land soil surface (kg m-2)
0.1.8 1 sfc 0.0 N/A accum_prcp accumulated precipitation (kg m-2)
0.1.14 1 sfc 0.0 N/A accum_conv_snow accumulated convective snowfall (kg m-2)
0.1.15 1 sfc 0.0 N/A accum_ls_snow accumulated large scale snowfall (kg m-2)
0.1.47 1 sfc 0.0 N/A accum_ls_rain accumulated large scale rainfall (kg m-2)
0.1.48 1 sfc 0.0 N/A accum_conv_rain accumulated convective rainfall (kg m-2)
0.1.49 1 sfc 0.0 N/A accum_rain accumulated rainfall (kg m-2)
0.1.50 1 sfc 0.0 N/A accum_snow accumulated snowfall (kg m-2)
0.1.206 0 sfc 0.0 N/A av_evap_sea average rate of evaporation over open sea (kg m-2 s-1)
0.1.207 0 sfc 0.0 N/A av_sfc_mois_flx average total surface moisture flux (kg m-2 s-1)
0.2.2 N/A sfc 10.0 N/A u10 10m wind u component (m s-1)
0.2.2 0 sfc 10.0 N/A av10u average zonal wind at 10m (m s-1)
0.2.2 N/A sfc 50.0 N/A u50r zonal wind at the 50m rho level (m s-1)
0.2.3 N/A sfc 10.0 N/A v10 10m wind v component (m s-1)
0.2.3 0 sfc 10.0 N/A av10v average meridional wind at 10m (m s-1)
0.2.3 N/A sfc 50.0 N/A v50r meridional wind at the 50m rho level (m s-1)
0.2.17 0 sfc 0.0 N/A av_uwnd_strs average surface zonal wind stress (N m-2)
0.2.17 N/A sfc 0.0 N/A uwnd_strs surface zonal wind stress (N m-2)
0.2.18 0 sfc 0.0 N/A av_vwnd_strs average surface meridional wind stress (N m-2)
0.2.18 N/A sfc 0.0 N/A vwnd_strs surface meridional wind stress (N m-2)
0.2.22 N/A sfc 10.0 N/A wndgust10m 10m wind gust (m s-1)
0.3.0 N/A sfc 0.0 N/A conv_cldbse_pres convective cloud-base pressure (Pa)
0.3.0 N/A sfc 0.0 N/A conv_cldtop_pres convective cloud-top pressure (Pa)
0.3.0 N/A sfc 0.0 N/A sfc_pres surface pressure (Pa)
0.3.1 0 sfc 0.0 N/A av_mslp average mean sea level pressure (Pa)
0.3.1 N/A sfc 0.0 N/A mslp mean sea level pressure (Pa)
0.3.5 N/A sfc 0.0 N/A topog topography height above MSL (gpm)
0.3.18 N/A sfc 0.0 N/A abl_ht planetary boundary layer height (m)
0.4.7 0 sfc 0.0 N/A av_swsfcdown average downwards shortwave radiation at the surface (W m-2)
0.4.7 0 sfc 0.0 N/A av_swirrtop average incoming shortwave radiation flux (W m-2)
0.4.9 0 sfc 0.0 N/A av_netswsfc average net shortwave radiation at surface (W m-2)
0.4.202 0 sfc 0.0 N/A av_sfc_sw_dif average surface shortwave diffuse radiation flux (W m-2)
0.4.203 0 sfc 0.0 N/A av_sfc_sw_dir average surface shortwave direct radiation flux (W m-2)
0.5.3 0 sfc 0.0 N/A av_lwsfcdown average downwards longwave radiation at the surface (W m-2)
0.5.4 0 sfc 0.0 N/A av_olr average outgoing longwave radiation (W m-2)
0.5.5 0 sfc 0.0 N/A av_netlwsfc average net longwave radiation at surface (W m-2)
0.5.7 N/A N/A N/A N/A syn_ir_tbb synthetic infrared satellite brightness temperature (K)
0.5.7 N/A N/A N/A N/A syn_wv_tbb synthetic water vapour satellite brightness temperature (K)
0.6.1 0 sfc 0.0 N/A av_ttl_cld average total cloud coverage (%)
0.6.1 N/A sfc 0.0 N/A ttl_cld total cloud cover (%)
0.6.3 N/A sfc 111.0 N/A low_cld low cloud cover (%)
0.6.4 N/A sfc 1949.0 N/A mid_cld middle cloud cover (%)
0.6.5 N/A sfc 5574.0 N/A hi_cld high cloud cover (%)
0.6.32 N/A sfc 1.5 N/A fog_fraction fog fraction (Numeric)
0.7.15 2 sfc 2000.0 N/A max_updraft_helicity maximum updraft helicity (m2 s-2)
0.7.15 3 sfc 2000.0 N/A min_updraft_helicity minimum updraft helicity (m2 s-2)
0.16.4 2 sfc 1000.0 N/A max_radar_refl_1km maxmium derived radar reflectivity at 1km AGL (dB)
0.16.5 2 sfc 0.0 N/A max_maxcol_refl maximum derived composite radar reflectivity (dB)
0.19.0 N/A sfc 1.5 N/A vis_precip horizontal visibility (incl precip) (m)
0.19.0 N/A sfc 1.5 5000.0 prob_vis_5km_ppt probability of horizontal visibility less than 5 km (incl precip) (1)
2.0.0 N/A sfc 0.0 N/A lnd_mask land mask (1)
2.0.1 N/A sfc 0.0 N/A sfc_rough_len surface roughness length for momentum (m)
2.0.3 N/A sfc 0.0 N/A soil_mois soil moisture content in a layer (kg m-2)
2.0.3 N/A sfc 0.1 N/A soil_mois soil moisture content layer 2 (kg m-2)
2.0.3 N/A sfc 0.35 N/A soil_mois soil moisture content layer 3 (kg m-2)
2.0.3 N/A sfc 1.0 N/A soil_mois soil moisture content layer 4 (kg m-2)
2.0.13 N/A sfc 0.0 N/A canopy_wtr_cont canopy water content (kg m-2)
2.0.206 N/A sfc 0.0 N/A soil_mois_cont soil moisture available for transpiration (kg m-2)
2.3.18 N/A sfc 0.0 N/A soil_temp soil temperature in a layer (K)
2.3.18 N/A sfc 0.1 N/A soil_temp soil temperature layer 2 (K)
2.3.18 N/A sfc 0.35 N/A soil_temp soil temperature layer 3 (K)
2.3.18 N/A sfc 1.0 N/A soil_temp soil temperature layer 4 (K)

Multi-level (Model and Pressure) Field Identifying Metadata

G2 d.c.n Statistical Process Level 1 Type Level 1 Value Prob Threshold Value NC var Description (units)
0.0.0 N/A ml 1.0 N/A air_temp temperature (K)
0.0.6 N/A ml 1.0 N/A dewpt dew point (K)
0.1.0 N/A ml 1.0 N/A spec_hum specific humidity (kg kg-1)
0.1.1 N/A ml 1.0 N/A relhum relative humidity w.r.t. water (%)
0.1.83 N/A ml 1.0 N/A clwc cloud specific liquid water content (kg kg-1)
0.1.84 N/A ml 1.0 N/A ciwc cloud specific ice water content (kg kg-1)
0.2.2 N/A ml 1.0 N/A zonal_wnd zonal wind (m s-1)
0.2.3 N/A ml 1.0 N/A merid_wnd meridional wind (m s-1)
0.2.9 N/A ml 1.0 N/A vertical_wnd vertical velocity (m s-1)
0.3.0 N/A ml 1.0 N/A pressure pressure (T/q or theta surface) (Pa)
0.3.5 N/A ml 1.0 N/A geop_ht geopotential height above MSL (gpm)

GRIB2 Local Tables

Not all ACCESS fields maps to predefined WMO GRIB2 fields. In these cases a local table entry has been created.

The Bureau's local table is currently at version "1". It includes the following entries:

G2 d.c.n Units G2 tablesVersion Description
0.1.206 kg m-2 s-1 9 Average rate of evaporation over open sea
0.1.207 kg m-2 s-1 9 Average total surface moisture flux
0.4.202 W m-2 9 Average surface shortwave diffuse radiation flux
0.4.203 W m-2 9 Average surface shortwave direct radiation flux
2.0.206 kg m-2 9 Soil moisture available for transpiration

Zonal and meridional winds at the 50m rho level have a locally defined surface type ("typeOfFirstFixedSurface"):

Fixed surface type Description
201 Nominal height above ground (m)

In addition APS3 ACCESS data can take on the following "generatingProcessIdentifier" metadata values:

Model name generatingProcessIdentifier (ID of model)

Field changes introduced in APS3

  • The APS2 fields "accumulated convective precipitation (kg m-2)" (d.c.n: 0.1.10) and "accumulated large scale precipitation (kg m-2)" (d.c.n: 0.1.9) were labelled incorrectly. These fields actually represent accumulated rainfall (i.e. water precipitation) quantities and now have d.c.n codes of 0.1.48 and 0.1.47 respectively.
  • The field "summed evaporation over open sea" (d.c.n 0.1.206) from APS2 has been replaced by "average rate of evaporation over open sea (kg m-2 s-1)", assigned to the same d.c.n code but with a different "typeOfStatisticalProcessing" value (0 "Average" instead of "1" Accumulation).
  • In APS2 the ACCESS-R "roughness length" field (d.c.n 2.0.1) was found to represent a roughness length quantity valid only over the ocean and this variant is now deprecated, replaced with the ACCESS-G "surface roughness length for momentum (m)" valid over both land and sea. No field metadata changes were made however.
  • The new synthetic satellite fields with D.C.N 0.5.7 have "master" tablesVersion set to 16 (as opposed to tablesVersion of 9 for all other fields). These make use of the WMO "productDefinitionTemplate" number 32 introduced in this master tables version. This template is specifically for fields constituting an "analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data".
  • Subsurface layer depth metadata values for soil temperature and soil moisture content fields were found to be incorrect in APS2 and have been corrected in APS3 as per the following:
Layer APS2 listed depth APS3 (corrected) depth
layer 2 10 to 25 cm 10 to 35 cm
layer 3 25 to 65 cm 35 to 100 cm
layer 4 65 to 200 cm 100 to 300 cm

Known Issues and Troubleshooting

Accumulated Field Metadata

There is a known issue with a GRIB2 metadata attribute that affects all ACCESS fields representing accumulated quantities. This attribute describes the start of the accumulation time interval and is set incorrectly. This can cause some software that parses GRIB2 to misrepresent the length of time over which a quantity was accumulated. Fortunately this piece of metadata in the GRIB2 header is redundant and other metadata attributes (which are set correctly) can be used to deduce the start of the accumulation time interval (and indeed many software packages that read GRIB will get the accumulation periods correct because of this, so not all software is affected by this issue).

The metadata in question is the so-called "forecastTime" key present in section 4 of the GRIB2 header. For accumulated quantities this metadata attribute should represent a "time delta" relative to the "reference time". A choice was made for ACCESS data to set the reference time to the nominal analysis date-time of the model (i.e. the base date/time of the model). As such the correct value of this "forecastTime" attribute should be -3 hours for ACCESS models, or -30 minutes for ACCESS-C models. However current GRIB software can't encode/represent negative values for this attribute (although the current GRIB2 standard does not explicitly disallow negative values in this case). As such "forecastTime" attributes have been set arbitrarily to "0". To calculate the length of the accumulation time period it is recommended that the "lengthOfTimeRange" attribute be used which is also present in the GRIB2 header (section 4) and is set correctly.

To check if you are affected you should keep in mind that all accumulated fields in ACCESS actually represent a quantity accumulated from the start of a so called "4DVAR assimilation window". For ACCESS models this window currently starts 3 hours before the nominal base-time/analysis-time of the model run, except for the ACCESS-C models whose assimilation window starts 30 minutes before the nominal base-time/analysis-time of the model run. Hence the +24 hour forecast of accumulated precipitation, for example, actually represents an accumulation of all analysed/forecast precipitation from -3 hours to +24 hours (where these hours are of course relative to the nominal base-time/analysis-time of the model run). If your GRIB software suggests such a field is accumulated from +0 to +24 hours then it is affected by this metadata issue.

Compressed Bitmap Messages

Currently bitmap messages are compressed using JPEG-2000 or PNG methods to reduce file sizes. Some GRIB software is not able to interpret these fields as it is not advised by the WMO to compress bitmap messages. If you have this problem, you can decompress the file, e.g. with the ecCodes grib_set utility: "grib_set -s packingType=grid_simple in.grb2 out.grb2".

Older GRIB Software

Currently ACCESS GRIB2 data is based on a GRIB2 "tablesVersion" ("master_table") version = 9 (except for the new synthetic satellite fields as noted above). These versions may be too recent for some GRIB2 parsing libraries with the effect that such software can not automatically interpret the meaning of GRIB2 metadata with these version numbers. For WGRIB2 a flag can be passed to attempt to interpret the data with an older master table version. For example the flag "-set master_table 8" can be passed in to allow the software to use master_table version 8 to interpret the metadata (e.g. "wgrib2 IDY25300.APS1.wind.10m.2013031618.024.surface.grb2 -d 1 -v -set master_table 8"). For ACCESS data, with some exceptions, version 9 can be regarded as backward compatible with 8 and possibly earlier revisions. For ecCodes (which replaces GRIB_API) it is best to download the latest stable version which can handle recent tablesVersion editions. Alternatively the ecCodes utility grib_set can be used to reset the tablesVersion to an earlier version, e.g. "grib_set -s tablesVersion=8 in.grb2 out.grb2". This may allow earlier versions of ecCodes/GRIB_API to display the meaning of various key code values with commands like "grib_dump -O out.grb2".

Other Notes

For native (hybrid-height) level data, a GRIB-2 message will include a list of vertical coordinate parameters ("PV") values corresponding to "A" and "B" values for either "rho" or "theta" levels. Level parameters 1..70 (for ACCESS-G) and 1..80 (for ACCESS-C) are the A(k) values and level parameters 71..140 (for ACCESS-G) and 81-160 (for ACCESS-C) are the B(k) values listed in the Hybrid Height Levels table (Appendix B) of the relevant product's documentation.