BUFR messages are composed of sections. The sections encode the metadata as well as the data itself.
A BUFR message is composed of six sections, numbered zero through five.
- Sections 0, 1 and 5 contain static metadata, mostly for message identification.
- Section 2 is optional; if used, it may contain arbitrary data in any form wished for by the creator of the message (this is only advisable for local use).
- Section 3 contains a sequence of so-called descriptors that define the form and contents of the BUFR data product.
- Section 4 is a bit-stream containing the message's core data and meta-data values as laid out by Section 3
The metadata (the headers) which describe the structure of the data are always available. Therefore the keys in these sections are available as soon as you get a message handle.
To access the data section, you need a special directive which instructs ecCodes to do the actual unpacking and decoding of all the data elements. This is done by setting the special key "unpack" to 1.