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 > pywgrib2: write(..)
 

pywgrib2: write

Introduction

The routine pywgrib2_s.write(..) writes a grib message to a file or memory file. To write a grib message, you need a "template", a grib message with the correct grid and most of the metadata. Often these templates are created interactively using wgrib2. The procedure is to take an existing grib message, and then modify it to have the correct grid and metadata.

Once you have a template, pywgrib2_s writes grib files by modifying the template by adding grid point data, changing the date codes, and other metadata. Pywgrib2_s can not write a grib file from scratch, you always need a template. Templates are quite small when you replace the grib point values with zero, with a size often less than 200 bytes.

Example


Usage

     a=pywgrib2_s.write(file,template,msg_no [, optional arguments])

     file     = output file
     template = file containing template
     msg_no   = message number of the template, the template cannot be in a submessage

     Optional Arguments

     new_data = None (default)
                ndarray          use grid point data from numpy's ndarrray
     Append   = False            when opening file, make a new file
                True             when opening file, append to the end of the file
     metadata = ''
              = 'METADATA'       sets metadata to 'METADATA', format is given by
                                 https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/set_metadata.html
     sec0     = None (default)
                byte array       replace grib section 0 with byte array
     sec1     = None (default)
                byte array       replace grib section 1 with byte array
     sec2     = None (default)
                byte array       replace grib section 2 with byte array
     sec3     = None (default)
                byte array       replace grib section 3 with byte array
     sec4     = None (default)
                byte array       replace grib section 4 with byte array
     sec5     = None (default)
                byte array       replace grib section 5 with byte array
     sec6     = None (default)
                byte array       replace grib section 6 with byte array
     sec7     = None (default)
                byte array       replace grib section 7 with byte array
     sec8     = None (default)
                byte array       replace grib section 8 with byte array
                                 useless option, included for completeness
     var      = '' (default)
                'NAME'           set grib variable (ex, 'HGT')
                                   uses wgrib2 naming convention
     lev      = '' (default)
              = 'level'          set level to 'level', ex. '2 m above ground', or '500 mb'
                                   uses wgrib2 naming convention
     time0    = None (default)
              = YYYYMMDDHHmmSS   sets reference time to YYYYMMDDHHmmSS
              = YYYYMMDDHH       sets reference time to YYYYMMDDHH (mmSS=0)
     ftime    = '' (default)
              = 'FTIME'          sets the forecast time, ex '12 hour fcst'
                                   uses wgrib2 naming convention
     packing  = '' (default)     simple
                'same'           use same packing as template
                's'              simple
                'simple'         simple
                'c1'             complex type 1
                'complex1'       complex type 1
                'c2'             complex type 2
                'complex2'       complex type 2
                'c3'             complex type 3
                'complex3'       complex type 3
                'a'              AEC packing
                'aec'            AEC packing
                'j'              jpeg2000
                'jpeg'           jpeg2000
                                 Codes written using the NCEP's g2lib and g2clib do not understand AEC packing

     var      = '' (default)
                'NAME'           set grib variable (ex, 'HGT')
                                   uses wgrib2 naming convention
     lev      = '' (default)
              = 'level'          set level to 'level', ex. '2 m above ground', or '500 mb'
                                   uses wgrib2 naming convention
     time0    = None (default)
              = YYYYMMDDHHmmSS   sets reference time to YYYYMMDDHHmmSS
              = YYYYMMDDHH       sets reference time to YYYYMMDDHH (mmSS=0)
     ftime    = '' (default)
              = 'FTIME'          sets the forecast time, ex '12 hour fcst'
                                   uses wgrib2 naming convention
     packing  = '' (default)     simple
                'same'           use same packing as template
                's'              simple
                'simple'         simple
                'c1'             complex type 1
                'complex1'       complex type 1
                'c2'             complex type 2
                'complex2'       complex type 2
                'c3'             complex type 3
                'complex3'       complex type 3
                'a'              AEC packing
                'aec'            AEC packing
                'j'              jpeg2000
                'jpeg'           jpeg2000
                                 Codes written using the NCEP's g2lib and g2clib do not
                                   handle AEC packing.
                                 Codes written using the NCEP's g2lib and g2clib will have
                                   problems with complex packing if they haven't been 
                                   programmed to handle undefined grid points without a bitmap.
     pdt     = None (default)
               integer           Product Definition Template (code table 4.0) is set to integer
                                 see https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table4-0.shtml
     d_scale = None (default)    decimal scaling for packing
               'same'
               (integer)
     b_scale = None (default)    binary scaling for packing
               'same'
               (integer)
                                 if d_scale and b_scale are not defined, the wgrib2 default value is used
                                      12 bits of binary precision (ECMWF style)
                                 If d_scale or b_scale is set to 'same' then
                                      -set_scaling same same is done.
                                 If d_scale or b_scale are not None
                                      if d_scale is None then d_scale = 0
                                      if b_scale is None then b_scale = 0
                                      -set_scaling d_scale b_scale is done.
                                 If d_scale and b_scale are None, then default wgrib2 scaling is used
                                      This is 12 bits binary in ECMWF style precision.
                                 See https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/
                                          set_scaling.html
    Order of setting values
  1. template
  2. secN
  3. pdt
  4. metadata
  5. time0, var, lev, ftime, packing

overview back next


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: 2/2023
Disclaimer Privacy Policy