Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


grib_copy [options] grib_file grib_file ... output_grib_file



Force. Force the execution not to fail on error.


Repack data. Sometimes after setting some keys involving properties of the packing algorithm a repacking of data is needed. This repacking is performed setting this -r option.

-p key[:{s|d|i}],key[:{s|d|i}],...

Declaration of keys to print. For each key a string (key:s), a double (key:d) or an integer (key:i) type can be requested. Default type is string.

-P key[:{s|d|i}],key[:{s|d|i}],...

As -p adding the declared keys to the default list.

-w key[:{s|d|i}]{=|!=}value,key[:{s|d|i}]=value,...

Where clause. Only GRIB messages matching the key/value constraints are copied to the output_grib_file. A valid constraint is of type key=value or key!=value. For each key a string (key:s), a double (key:d) or an integer (key:i) type can be defined.
Default type is string. In the value you can also use the forward-slash character '/' to specify an OR condition (i.e. a logical disjunction)
Note: only one -w clause is allowed.

-B order by directive

Order by. The output will be ordered according to the order by directive. Order by example
Example: "step:i asc, centre desc" (step numeric ascending and centre descending)
Default sort mode is 'asc' 



-W width

Minimum width of each column in output. Default is 10.


Multi-field support off. Turn off support for multiple fields in single GRIB message.

-T T | B | M | A

Message type. T->GTS, B->BUFR, M->METAR (Experimental),A->Any (Experimental). The input file is interpreted according to the message type.


Copy GTS header.


GRIBEX compatibility mode.


Does not fail when the message has wrong length

-X offset

Input file offset in bytes. Processing of the input file will start from "offset".



grib_copy examples

  1. To copy only the pressure levels from a file

    Code Block
    >  grib_copy -w levtype=pl ../data/tigge_pf_ecmwf.grib2 out.grib

  2. To copy only the fields that are not on pressure levels from a file

    Code Block
    >  grib_copy -w levtype!=pl ../data/tigge_pf_ecmwf.grib2 out.grib

  3. To copy only the first three fields from a file

    Code Block
    >  grib_copy -w count=1/2/3 ../data/tigge_pf_ecmwf.grib2 out.grib

  4. A grib_file with multi field messages can be converted in single field messages with a simple grib_copy.

    Code Block
    >  grib_copy multi.grib simple.grib

  5. Use the square brackets to insert the value of a key in the name of the output file (This is a good way to split a large GRIB file)

    Code Block
    >  grib_copy in.grib 'out_[shortName].grib'

    Note: we need to quote the name of the output so the shell does not interpret the square brackets

  6. To copy fields whose typeOfLevel is either 'surface' or 'meanSea'

    Code Block
    >  grib_copy -w typeOfLevel=surface/meanSea orig.grib out.grib

  7. To copy selected fields and apply sorting (sorted by level in ascending order)

    Code Block
    >  grib_copy -w typeOfLevel=heightAboveGround -B'level:i asc' tigge_af_ecmwf.grib2 out.grib

    Note: we need to specify the ':i' to get a numerical sort. By default values are sorted as strings so a level of 100 would come before 20!