...
GRIB 1 Section 1 Octets | GRIB 2 Section 4 Octets | ecCodes key | Model identifier | |
---|---|---|---|---|
47r3 | 48r1 | |||
6 | 14 | generatingProcessIdentifier | 153 | 154 |
Warning |
---|
By While by default all gridded 48r1 direct model output in GRIB 2 48r1 gridded GRIB2 data will be encoded disseminated using a CCSDS defined compression method (Data representation template 5.42) and any , MARS will by default write gridded GRIB2 data in CCSDS only if derived from such fields will inherit the CCSDS compression. This affects e.g. fields produced on Gaussian grids, like specific humidity on model levels, or surface fields like most-unstable CAPE. See below on (gridded) CCSDS-packed GRIB2 fields. See below how to override the default behaviour. ecCodes, our encoding/decoding package, uses libaec (Adaptive Entropy Coding Library) which implements a Golomb-Rice coding as defined in the CCSDS recommended standard 121.0-B-3. Users are strongly advised to test that their software applications and data processing chain can handle this new compression method. To handle CCSDS compressed fields from 48r1 with ecCodes, version 2.2830.0 or newer is recommended. For a discussion of available GRIB packing methods and the use of compression algorithms see the Technical Memo Impact of GRIB compression on weather forecast data and data-handling applications. |
...
GRIB 2 | ecCodes key | 47r3 | 48r1 |
---|---|---|---|
10-11 | dataRepresentationTemplateNumber (GRIB2 only) | 0 (simple packing) | 42 (CCSDS compression) |
packingType (edition independent) | grid_simple | grid_ccsds |
Default packing types for data from Dissemination and MARS
With the introduction of the 48r1 all gridded GRIB2 "raw" data will use the new CCSDS packing type the . The default behaviour in for data from dissemination and MARS (from 14 March) 00 UTC run 21/3/2023) and MARS will be as follows:
Input field |
---|
MARS output packing type (with keyword grid=... ) | Dissemination output |
---|
packing type (with keyword grid=... ) | ||
---|---|---|
GRIB1/GRIB2 gridded | inherited from input | inherited from input |
GRIB1 |
SH | simple | simple |
GRIB2 SH | simple |
CCSDS |
While by default all 48r1 gridded GRIB2 data will be disseminated in CCSDS packing, MARS will by default only write gridded GRIB2 data in CCSDS if derived from (gridded) CCSDS-packed GRIB2 fields.
This implies that by default only fields derived from gridded GRIB2 fields from 48r1 onwards will use packing type CCSDS. The default behaviour can be overridden by specifying the packing explicitly, e.g.
grid = 0.1/0.1,
packing = CCSDS
will deliver fields with CCSDS packing for any GRIB2 input field. It will however not be possible to get CCSDS packed fields from GRIB1 input fields. Similarly, if CCSDS compression is not desired when retrieving gridded GRIB 2 fields from MARS or dissemination, simple packing can be requested with keyword
...
Using ecCodes, already retrieved CCSDS compressed fields can be converted to other packing types. This is how to convert all messages in file ccsds.grib with grid_ccsds as their packingType, and only those, to use simple packing, i.e. what we used before 48r1:
...