1) bufrresolve.pl <descriptor(s)> [--partial] [--simple] [--noexpand] [--bufrtable <name of BUFR table] [--tableformat <BUFRDC|ECCODES>] [--tablepath <path to BUFR tables>] [--verbose n] [--help] 2) bufrresolve.pl --code <code or flag table> [--bufrtable <name of BUFR table>] [--tableformat <BUFRDC|ECCODES>] [--tablepath <path to BUFR tables>] [--verbose n] 3) bufrresolve.pl --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 https://wiki.met.no/bufr.pm/start for examples of use.
The tables used can be selected by the user with options
--tableformat. Default tableformat in Geo::BUFR is BUFRDC, while default tablepath in bufrresolve.pl will be overridden if the environment variable BUFR_TABLES is set. You should consider edit the source code of bufrresolve.pl if you are not satisfied with the defaults chosen for tablepath and bufrtable (search for 'DEFAULT').
For tableformat ECCODES, see http://search.cpan.org/dist/Geo-BUFR/lib/Geo/BUFR.pm#BUFR-TABLE-FILES for more info on how to set
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
--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 bufrresolve.pl
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.
--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, bufrresolve.pl uses a default table (adding option
--verbose 1 will tell you which table, unless you use
--bufrtable to set the table explicitely). 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 definitely should use
--bufrtable with the appropriate table.
n > 1 in
--verbose n does not provide any more output than n=1, so demanding an argument to
--verbose looks funny. But if not, sooner or later someone would type
bufrresolve.pl 307080 --verbose 1 which by Perl would be interpreted as if the arguments were
307080 000001 --verbose, which probably is not what you intended.
Pål Sannes <firstname.lastname@example.org>
Copyright (C) 2010-2019 MET Norway