Usage:
      bufrencode.pl --data <data file> --metadata <metadata file>
          [--outfile <file to print encoded BUFR message to>]
          [--strict_checking n]
          [--tableformat <BUFRDC|ECCODES>]
          [--tablepath <path to BUFR tables>]
          [--verbose n]
          [--help]

Options:
       --help               Display Usage and explain the options. Almost
                            the same as consulting perldoc bufrencode.pl
       --outfile <filename> Will print the encoded BUFR message to <filename>
                            instead of STDOUT
       --strict_checking n  n=0 Disable strict checking of BUFR format
                            n=1 Issue warning if (recoverable) error in
                                BUFR format
                            n=2 (default) Croak if (recoverable) error in BUFR format.
                                Nothing more in this message will be encoded.
       --tableformat        Currently supported are BUFRDC and ECCODES (default is BUFRDC)
       --tablepath <path to BUFR tables>
                            If used, will set path to BUFR tables. If not
                            set, will fetch tables from the environment
                            variable BUFR_TABLES, or if this is not set:
                            will use DEFAULT_TABLE_PATH_<tableformat>
                            hard coded in source code.
       --verbose n          Set verbose level to n, 0<=n<=6 (default 0).
                            Verbose output is sent to STDOUT, so ought to
                            be combined with option --outfile

  Required options:
   --metadata <metadata file>:
    For the metadata file, use this as a prototype and change the values as
    desired:

      BUFR_EDITION  4
      MASTER_TABLE  0
      CENTRE  88
      SUBCENTRE  0
      UPDATE_SEQUENCE_NUMBER  0
      OPTIONAL_SECTION  0
      DATA_CATEGORY  0
      INT_DATA_SUBCATEGORY  2
      LOC_DATA_SUBCATEGORY  255
      MASTER_TABLE_VERSION  14
      LOCAL_TABLE_VERSION  0
      YEAR  2008
      MONTH  9
      DAY  1
      HOUR  6
      MINUTE  0
      SECOND  0
      OBSERVED_DATA  1
      COMPRESSED_DATA  0
      DESCRIPTORS_UNEXPANDED  308004 012005 002002

    For BUFR edition < 4, replace the lines INT_DATA_SUBCATEGORY,
    LOC_DATA_SUBCATEGORY, YEAR and SECOND with new lines DATA_SUBCATEGORY
    and YEAR_OF_CENTURY (the order of lines doesn't matter).

   --data <data file>:
    For the data file, use the same format as would result if you did run on
    the generated BUFR message

        bufrread.pl <bufr file> --data_only | cut -c -31

    or if you use bufrread.pl with "--width n", replace 31 with n+16. For
    example, the file might begin with

         1  001195          Newport
         2  005002            51.55
         3  006002            -2.99
         4  004001             2008
    ...

    Every time a new line starting with the number 1 is met, a new subset
    will be generated in the BUFR message. Lines not starting with a number
    are ignored.

    For missing values, use 'missing' or stop the line after the BUFR
    descriptor.

    Associated values should use BUFR descriptor 999999, and operator
    descriptors 22[2345]000 and 23[2567]000 should not have a value, neither
    should this line be numbered, e.g.

       160  011002          missing
            222000
       161  031002              160
       162  031031                0
    ...

    To encode a NIL subset, all delayed replication factors should be
    nonzero, and all other values set to missing except for the descriptors
    defining the station.

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