Skip Navigation Links www.nws.noaa.gov 
NOAA logo - Click to go to the NOAA home page National Weather Service   NWS logo - Click to go to the NWS home page
Climate Prediction Center
 
 

 
About Us
   Our Mission
   Who We Are

Contact Us
   CPC Information
   CPC Web Team

 
HOME > Monitoring_and_Data > Oceanic and Atmospheric Data > Reanalysis: Atmospheric Data > grb1to2.pl
 

WARNING: beta code - comments wanted

grb1to2.pl - grib1 to grib2 converter

grb1to2.pl does not work with wgrib2 v2.0.0. Please use wgrib2 v1.9.9 or v2.0.1+.

Grb1to2.pl converts grib1 files to grib2. This perl script uses wgrib, wgrib2 and a few minor programs that are included with the wgrib2 package (gmerge, smallest_grib2). Here are some of the advantages of grb1to2.pl,

  • Easier than some other solutions to compile.
    Many repositories include wgrib2 executables
    wgrib, gmerge and smallest_grib2 are very easy to compile C programs
  • More fields converted than some other solutions. Easy to modify code for new fields.
  • Does c0 packing, the smallest of 3 different complex packings
  • Complex packing algorithms produce fast-to-read grib2 files which are comparable to jpeg2000 packing.
  • Fast packing option (-fast, optimized for 4-core CPUs)
Disadvanges are
  • Ensemble metadata are not supported (ensemble metadata are locally defined)
  • POSIX2 required, no Windows support
  • limited to lat-lon, polar stereographic, Lambert conformal, Mercator, and Gaussian grids
  • cannot handle other grids unless a pre-existing grib2 file is supplied.
  • Doesn't convert from grib2 to grib1.
  • Quits when finds a problem grid. You need to alter perl script to handle grid before continuing.
Requirements are
  • wgrib2 with IPOLATES enabled (-new_grid option)
  • wgrib
  • gmerge and smallest_grib2, only needed by -fast and -packing c0 (default)
  • perl
  • POSIX2 environment

History

Grb1to2.pl is based on code that was written in 12/2009 at CPC and versions of the code are being used at CPC. Variants of the code were written for (1) speed, (2) large files, (3) ease of updating and (4) potential operational usage. The latest version (4/2014) had a name change (grib1to2 has been used others), large file support was dropped (not needed with 64-bit OS) and most importantly installion was made easier by eliminating the need for cnvgrib. This version retains radius of the earth from the grib1 file unlink the previous versions.

How it works

grb1to2.gs works by

  1. interpolating sample file to the same grid as the grib1 file and making a grib2 template
  2. adding metadata (center, subcenter, process, shape of earth) to the template
  3. converting grib1 file to binary
  4. making a simple inventory of grib1 file (inv1)
  5. making a long inventory of grib1 file (inv2)
  6. grib1to2_metadata.pl combines inv1 and inv2 to make a metadata file (wgrib2 inv + extra fields)
  7. wgrib2 converts binary data + metadata + template into a grib2 file

Usage

grb1to2.pl [list of options] INPUT_GRIB1_FILE

Runtime Options:
   -fast                         converts the file faster by running 3 streams of processing
                                 harder to debug
   -packing [c0|c1|c2|c3|j|s]    set packing format for grib2 files
                                 s = simple packing
                                 j = jpeg2000 packing
                                 c1 = complex packing of values
                                 c2 = complex packing of increments
                                 c3 = complex packing of increments of increments
                                 c0 = best packing of c1, c2 and c3 (packing for each field is independent)
   -ncep_uv                      U and V are in same grib message (typical of NCEP operations)
   -o OUTPUT_GRIB2_FILE          output file, default is INPUT_GRIB1_FILE.grb2
   -grid_template filename       location of specific grib2 file (correct grid and metadata)

Configuration Options:
   -gmerge filename              set location of gmerge executable
   -smallest_grib2 filename      set location of smallest_grib2 executable
   -wgrib filename               set location of wgrib
   -wgrib2 filename              set location of wgrib2
   -template filename            set location of sample grib2 file

Note: if grb1to2.pl has been configured, the configuration options should have the
appropriate default values.  To see the default values, type grb1to2.pl.

Installation

The basic installation consists of wgrib, wgrib2+aux_progs and 3 new files. (See)
  1. $HOME/bin/wgrib
  2. $HOME/bin/wgrib2
  3. $HOME/bin/gmerge (included with wgrib2)
  4. $HOME/bin/small_grib2 (included with wgrib2)
  5. $HOME/bin/grb1to2.pl
  6. $HOME/bin/grib1to2_metadata.pl
  7. $HOME/bin_data/global_template.g2
If you want change the default locations of these files, you have to modify grb1to2.pl. This is the section to customized the stock version.
# This section needs to be customized
require ("$ENV{'HOME'}/bin/grib1to2_metadata.pl");
$g2_template="$ENV{'HOME'}/bin_data/global_template.g2";
$wgrib="$ENV{'HOME'}/bin/wgrib";
$wgrib2="$ENV{'HOME'}/bin/wgrib2";
$smallest_grib2="$ENV{'HOME'}/bin/smallest_grib2";
$gmerge="$ENV{'HOME'}/bin/gmerge";
# end of customization
You can also modify global_template.g2 to add site specific metadata.

Changes

5/2014: v1.1 fixed Mercator conversion, dx, dy now in m instead of km

Comments: Wesley.Ebisuzaki@noaa.gov, updated 5/12/2014


NOAA/ National Weather Service
National Centers for Environmental Prediction
Climate Prediction Center
5830 University Research Court
College Park, Maryland 20740
Climate Prediction Center Web Team
Page last modified: May 15, 2005
Disclaimer Privacy Policy