A C# library to decode BUFR version 3 and 4 files. It has been tested against radiosonde files. It can decode BUFR compression.
The library has 100% code coverage and sample files.
The BufrFile contains 1 or more BufrMessages. A file can contain multiple BUFR messages.
A BufrMessage contains 1 or more Subsets. This is analogous to multiple records in a spreadsheet. But this is not the only way multiple records can represented.
A Subset contains 1 or more IBufrElements. This is where the data is located. Both the data and metadata are included.
The BufrReplication IBufrElement can contain multiple records inside of it. This is the other way to encode multiple rows of data (as opposed to multiple subsets)
Implementation Note: The sequences are "flattened" into its component elements. Therefore you will not find Sequence elements in the result.
Included are two sample files in the src/OlieBufr.Cli/Samples folder. The file without an extension is a Version 3 file, while the one ending in .C is a Version 4 file.
This library only has the bare minimum sequences and elements to decode radiosonde files.
Add new sequences to the 'sequences.json' file inside the src/OlieBufr.Lib folder. The changes will take effect upon the next compile/build.
Add new elements to the 'elements.csv' file inside the src/OlieBufr.Lib folder. The changes will take effect upon the next compile/build.
A Primer on Writing BUFR templates (Yves Pelletier)
BUFR Reference Manual (Milan Dragosavac)
BUFR/PrepBUFR User's Guide (Developmental Testbed Center)
BUFR edition 3 and CREX edition 1
BUFR Table B (Element definitions)
BUFR Table D (Sequence definitions)
BUFR Table C (Operation definitions)
Delayed replication for a compressed file is not yet implemented. Decompression of string data is not yet implemented. Many sequences, elements, and operations are not implemented.