1) <descriptor(s)>
     [--bufrtable <name of BUFR table]
     [--tableformat <BUFRDC|ECCODES>]
     [--tablepath <path to BUFR tables>]
     [--verbose n]

  2) --code <code or flag table>
     [--bufrtable <name of BUFR table>]
     [--tableformat <BUFRDC|ECCODES>]
     [--tablepath <path to BUFR tables>]
     [--verbose n]

  3) --flag <value> --code <flag table>
     [--bufrtable <name of BUFR table]
     [--tableformat <BUFRDC|ECCODES>]
     [--tablepath <path to BUFR tables>]
     [--verbose n]


Utility program for fetching info from BUFR tables.

Execute without arguments for Usage, with option --help for some additional info. See also for examples of use.

The tables used can be selected by the user with options --bufrtable, --tablepath and --tableformat. Default tableformat in Geo::BUFR is BUFRDC, while default tablepath in will be overridden if the environment variable BUFR_TABLES is set. You should consider edit the source code of if you are not satisfied with the defaults chosen for tablepath and bufrtable (search for 'DEFAULT').

For tableformat ECCODES, see for more info on how to set --tablepath.

For the table name in --bufrtable in BUFRDC, use basename of B table, e.g. B0000000000098013001.TXT. Replacing B with D or C, or omitting this prefix altogether, or even omitting the trailing '.TXT' (i.e. 0000000000098013001) will also work.

For the table name in --bufrtable in ECCODES, use last significant part of table location, e.g. '0/wmo/29' for WMO master tables or '0/local/8/78/236' for local tables on Unix-like systems. For looking up local sequence descriptors, you might need to provide both a master and the local table to get the full expansion, e.g. '0/wmo/29,0/local/8/78/236'.

See also "CAVEAT" below for more about the --bufrtable option.


   --partial    Expand D descriptors only once, ignoring replication
   --simple     Like --partial, but displaying the resulting
                descriptors on one line
   --noexpand   Don't expand D descriptors at all
   --bufrtable <name of BUFR B or D table>  Set BUFR tables
   --tableformat Currently supported are BUFRDC and ECCODES (default is BUFRDC)
   --tablepath <path to BUFR tables>  Set BUFR table path
   --verbose n  Display path and tables used if n > 0
   --help       Display Usage and explain the options used. Almost
                the same as consulting perldoc

Usage 1): Resolves the given descriptor(s) fully into table B descriptors, with name, unit, scale, reference value and width (in bits) written on each line (except for --simple). --partial, --simple and --noexpand are mutually exclusive (full expansion is default).

Usage 2): Prints the contents of the requested code or flag table (named by the table B descriptor).

Usage 3): Displays the bits set when the data value for the requested flag table is <value>.

Options may be abbreviated, e.g. --h or -h for --help


The --bufrtable option could be considered mandatory, since there is no guarantee that the same BUFR descriptor resolves the same way for different BUFR tables. However, as soon as a new BUFR descriptor is introduced in a BUFR table, it is extremely rare that the descriptor is redefined in later versions. So for convenience, uses a default table (adding option --verbose 1 will show you the tables used). If this is the wrong table for your purpose (most common case will be if the descriptor was added in a higher version than that of the default table), you should definitely use --bufrtable with the appropriate table.


Pål Sannes <>


Copyright (C) 2010-2020 MET Norway