NOAA / NWS's Meteorological Development Laboratory
Degrib (NDFD GRIB2 Decoder)
Subject: Degrib 1.44
Date: Tue, 17 Feb 2004 11:38:16 -0500
From: Arthur Taylor
You all have the unique distinction of being registered on my degrib
(aka NDFD_GRIB2Decoder) mailing list (all 326 of us) (I'd like to
welcome: heinzman00, tepnol, hlectra, jomara, david, tmurray,
steve_colbert, nasir, forrest.systems, james.mcmullen, rod_zerla,
cwoodlief, jdowell, therainboxes, bione, brad.green, chet.johnson,
drice57, doustt, steves, jacole, jeffrey.lorens, Russll31, andy,
george-r-paterson, seggins, willi.dennerlohr, paul.iniguez, chrism)
Please let me know (email me) if you want to unregister. The latest
version of the program is on: www.nws.noaa.gov/mdl/NDFD_GRIB2Decoder/
----------- General News.
1) Thanks to Tim Boyer, the official NDFD specifications has been
updated (mainly to take care of some typos). Of particular note is the
update to the "Weather Type Codes" in section 2. See
----------- News about this release:
I have just finished putting together version "1.44" (last one that I
announced was "1.42" on 1/23/2003).
This release is mainly focused on being able to convert a subgrid of the
original grid to GRIB2. Also on being able to interact with
stdin/stdout. The combination could allow someone to develop web
services based on degrib and GRIB2.
1a) Created the ability to read a GRIB2 message, and write the same
message out in GRIB2 form.
1b) Created the ability to read from the "Data Cube", and write that out
to GRIB2. This only works for NDFD Data Cubes, as the Data Cube Index
did not hold onto enough information to be able to reverse the process
(in particular the surface level), hence some hardwiring of options was
2) Created the ability to select a subregion of a GRIB2 or Data Cube
that one was interested in. This is done by using the new options:
-lwlf, and -uprt. They require a lat/lon for the lower left corner and
upper right corner.
3a) Started writing to stdout. (Note: to do binary writes to stdout,
the code is no longer "ANSI" C. I did find and implement the system
specific code to make it work on MS-Windows, and it works fine on Linux,
but I haven't tried it on a Mac (should be similar to the linux solution).
3b) Started reading from stdin. A while ago, some people from Unidata
suggested that degrib should read from stdin. I had rearranged the code
to be able to do this, but hadn't completed the effort partly because I
wasn't sure how to turn the stdin stream from ASCII to Binary. It only
appears to matter on MS-Windows machines, but ANSI C specifies that
stdin and stdout are ASCII, not binary, so the code is no longer "ANSI
C". Hopefully my delay in solving the problem hasn't affected Unidata's
4a) Removed all dependence (I think) on Automatic arrays in the FORTRAN
77 unpacker library. This was mainly because someone was having issues
compiling on Debian Linux. I think it should work now, but I haven't
had it confirmed (I don't have access to a Debian Linux machine).
4b) Reduced some of the extra memory allocation (and non-usage).
Hopefully this will make it work faster.
5) Learned about HTTP Proxy servers. There is now an option in
"tkdegrib" to allow one to configure it to use an HTTP Proxy server.
"File->Configure", "Extra Tab" (thanks to thealy for helping me
6) Bug fixes...
a) For GRIB2 messages that have multiple grids in the same GRIB2
message, the inventory had been seg-faulting (because I tried optimizing
a fread, and didn't do a memswap).
b) Did not properly anticipate locally defined surface level tables...
c) For submessages when using NCEP's library, I did too many memswaps,
and got the data stream confused.
d) Although I handled non-meteo / non-ocean products, the logic in
metaparse restricted one to just meteo / ocean products (ie I can now
handle soil forecasts)
e) "-msg all". If a message contained a subgrid (see u/v components of
wind in NCEP's ETA GRIB2 messages), then -msg all only converted the
first grid (ie u component of wind).
7) Created the ability to output to CSV format. This is a comma /
column delimited ASCII format which may be easier to work with in Excel
and FORTRAN, then the .dbf files.
8) Created a primitive ability to go from a simple ASCII .ini file to a
Data Cube index file. This is was originally used for working with
constant geographic fields such as timezone, but could have future uses.
Please let me know if you have problems.
(Art in MDT (Mountain Daylight Time) :-) )
("Big A" for Glasgow's WCM :-) )