Versions Compared

Key

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

...

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
Section 5
Octets

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
Output
packing type 
(with keyword grid=... )
GRIB1/GRIB2 griddedinherited from inputinherited from input
GRIB1
/
SHsimplesimple
GRIB2 SHsimple
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: 

...