NOAA logo-Select to go to the NOAA homepage
NOAA / NWS's Meteorological Development Laboratory   
  Select to go to the NWS homepage
GRIB1 logo Degrib (NDFD GRIB2 Decoder) GRIB2 logo
Local forecast by
"City, St"

Degrib: To Do

  1. Web Services:
    • Enable one to give a lat/lon and it knows which OConus sector to probe.
    • XML (DWML) support straight from degrib.
    • Enhance the Datacube to GRIB2 option to work with non-NDFD datasets.

  2. Generate images (possible "drawshp + degrib" coupling.
    • Scriptable from the command line in MS-Window.
    • For "custom" sectors.
    • For "ozone" images.
    • For efficient image generations on web site.
    • For images on unix system.

  3. Update Documentation.
    • Update "man pages".
    • Update "FAQ pages".
    • Update usage error message.
    • Update comments in code.

  4. Extracted versions of "degrib"
    • Break off a: "datacube_probe" and a "datacube_create", and maybe a "datacube2grib", for faster processing of requests.
    • Create "degrib-lite" which has no NCEP support, so it doesn't require extra libraries.
    • Create an apache module?

  5. Improvements to "degrib"
    • Check on decision of subcenter = 65535 for NDFD and NDGD.
    • Check on lower limit of pop12 (should be missing instead of (-1,-1) => -10)
    • Check on correction to for section 4 octet 43 PoP12 (-3 should be 3).
    • For NCEP data, be nice to call a different routine... because of memswp issues and because of subgrid issues... Faster.
    • smooth contours?
    • step level to big polygons?
    • Use DSF and min/max to auto determine if cube should be Float4, sInt2 uInt2 sChar uChar...
    • Change -Database option to use GRIB2 units... This affects -DP as well. Disadvantage (slower -DP) Advantage: Potential for smaller data cubes
    • -DC option read file (by strips)
    • New Probe option. (level) (Re-sort?)
    • TimeZone output ... -TimeZone option for -P and other options? (Internal clock)
    • Test: "c:\>degrib -in maxt.bin -P -pnt 35,35 -WxParse 1 -Separator "**" -out" In addition: -Separator "**" appears to cause a bug. I shall investigate that.
    • Add Over-ride to cat/subCat/param/discipline?
    • "-msg" with "-DC" option?
    • "-nLabel 1" round to nearest grid cell, "-nLabel 2" use all decimals. "-nLabel" do "-nLabel 1".
    • Add a -warn level option
    • Add a sparse grid (every other cell) option?
    • Add a "%dv" option to "NameStyle".
    • Enable degrib to do what "tcldegrib web.tcl" currently does
    • JPEG2000 GRIB2 encoding capability.
    • More Selection filters. (select by time)(variable filter? level filter?)
    • along with more options for stdout. Maybe - for stdin / stdout?
    • Add a -Calc option which would join together several grids? Example Max (3 hr WindSpeed) to create 12 hr MaxWindSpeed for Hurricane Problem.
    • Add interpolate to a given grid (instead of just to a coverage grid).
    • Add some method for weather icon support.
    • option to compute a given lat/lon to grid and vice versa.
    • Merge newshp.exe capability: Create empty grids based on user supplied parameters.
    • Merge gtopo.exe capability: Create topo grids based on gtopo data set.
    • Add a --help, -help or -h option
    • Incorporate "degrib.txt" in degrib so -man gives degrib.txt?
    • Use clock.c instead of for double clock values.
    • Switch to float (from double) for grid
    • Split routine to break up a grib2 file into component message files?
    • Consider using p 78 in K&R C for getch and ungetch.
    • Bug if write to .txt file that is opened using "more"
    • Crashes if the destination directory does not exist.
    • Make the makefiles depend on the header files.
    • May want to move trivial checks in tendian.c behind a #DEBUG. May speed things up.
    • Is Dx and Dy required by Polar stereographic projections?
    • Add support for GS3_ORTHOGRAPHIC = 90, GS3_EQUATOR_EQUIDIST = 110, GS3_AZIMUTH_RANGE = 120
    • Add support for GS4_RADAR = 20
    • Efficiency checks... ++i not i++?
    • Efficiency checks... check header include sets.
    • Efficiency checks... check for y loop then x loop... not reverse.
    • Add a test suite for -Interp option (both probe and flt).
    • Detect Duplicate versions of cygwin1.dll

  6. Code Review improvements
    • CR1: use a Global timeZone variable (InventoryParseTime())
    • CR2:-MSB option: Need a "native version of it"?
    • CR: Look up "address" in dbf definition.
    • CR1:degrib2.h: Make clear who is responsible for filling the is structure.
    • CR1:inventory.c GRIB2SectToBuffer: comment on the 5-5 issue.
    • CR1:inventory.c GRIB2Inventory: We don't skip sect 3, but don't use it... either skip it or use it.
    • CR1:cstart.c DegribIt: Remove metaparse from ReadGrib2Record call? Efficiency particularly for probe.
    • CR1:cstart.c DegribIt: Move some of this code to degrib2.h so it isn't repeated in tclstart.c
    • CR1:cstart.c DegribIt: Deal with redundent error handling code... Either goto, or procedure.
    • CR2:myerror.c AllocSprintf: Investigate arbitrarily long format strings.
    • CR2:endian.c revfread/revfwrite: Investigate timing of fgetc vs fread..
    • CR2:write.c checkFileSize: better comments for "errno"
    • CR2:write.c gribWriteFloat: Investigate if scan flag is unclear
    • CR2:write.c CreateShpPnt: Emphasize the endian switch in file writes.
    • CR2:write.c GridCompute: In comment, compute 5 decimals degrees in meters.
    • CR2:write.c CreateDBF: Explain index manipulation because we are being consistant with the .flt files.

  7. Improvements to "tkdegrib"
    • Right Click for more details option?
    • Add hour glass during inventory in GUI
    • Lock selections when in GUI download... particularly for custom.
    • UpDirectory in GIS tab doesn't go up a directory if a file is selected.
    • Add a probe tab in the GUI
    • Add a better metaData viewer.
    • Double click on GRIB2 message gives pop-up with all the meta data specific to that GRIB2 message.
    • Add Image Support.
    • Check on "Restart" capability if error occurs in middle of image gen
    • Double click does not function properly in list mode file browse in tkdegrib
    • Bug if create .mosaic and then delete too fast
    • Bug: Percentage with multiple Sector Image Generation.
    • Make Tcl interface independent of order with regards to SubCommand first. Currently it is Cmd ... Degrib is Cmd
    • Create a configure Cmd for tcldegrib so we can send the -reset option in just after downloading the file..
    • f_validInv may be a really bad idea...
    • Check into -nameStyle vs -outName with GUI issue. Make sure that tcldegrib can use -nameStyle if once used -out.
    • Compile against Tcl/Tk compiled in Ming?
    • tkdegrib: Double click on item meta data browser (display meta button)
    • Add better viewing support for meta data
    • tkdegrib: Add -revFlt option to gui
    • Pass back seconds since epoch to Tcl/Tk (rather than formatted string) (line 211 in tcldegrib (inventory part)).
    • Look into the use of mktclapp (
    • Browse interface for buttons replace with my own browser.
    • GMT clock on GIS Page?
    • Permission issue with regards to folders during download. (configure option / pop up warning if permission denied?
    • timeout issue on ftp lines?
    • Search for imageGen.exe or imageGen
    • Icon as part of tkdegrib
    • Clean up files: Cause refresh.

  8. Improvements to "Inventory" option.
    • Enhanced inventory capability
    • terse inventory listing?
    • Code Review 1:inventory.h: May want location / grid information too (Nx,Ny, lower left).
    • inventory.c GRIB2Inventory: Figure out how to give a "warning"?
    • Add to inventory (GDS info lower left lat/lon NxNy)

  9. Improvements to "probe" option.
    • Add a output file column to the pntFile (see Kim Waggoner's email 11/18/2004 12:03).
    • Add a probe option for the nearest non-missing grid value.
    • Probe with time filters.
    • Test for probe file labels of "GOOBER and friends" (ie spaces)
    • Switch to required , and ignored space in ?probe.c -pntFile option?

  10. Gridded "Tdlpack" support.
    • validate decoder
    • create an encoder?

  11. GrADS / NetCDF support.
    • Add scale factor / offset to netcdf
    • Add short int / byte for various NDFD weather types.
    • Better checks for "../../bin/degrib test_maxt_111500.grb -C -NetCDF -msg 1"
    • Install "ncdump" and "ncgen" to /degrib/bin
    • f_interp option for NetCDF
    • Multiple messages in one file: (NetCDF / GrADS / shapefile) (depending on map projection being identical)
    • Output formats: Fortran headers for .flt files.
    • Formalize a fltUtil. (Probe set of lat/lon, switch endian, switch scan)

  12. ESRI support.
    • ASCII Grids
    • More columns in .dbf file based on tdl2shp answers
    • .flt (or .asc) to .shp file capability?
    • Generate .prj files for ArcGIS 8.0/9.0
    • Better tutorial
    • Update the "legend" files used in ArcView to be continuous.
    • 3d shapefiles?
    • Contour capability?
    • Man pages about how to bring WX into ArcGIS

  13. General support.
    • Check code for reliance on 32bit operating system. Fortran code is safe, but some of the C-code driver has problems.
    • Use most recent versions of all libraries.
    • Enhance the test suites.
    • Uninstall temp dirs
    • Keep up with the meta data changes
    • Add FGDC compliant meta data
    • See if you can get .tar.gz file to work properly with IE
    • Distribute grib2unpacker as a .dll (Test with MS VisC Compile)
    • Create a Tcl/Tk degrib .dll "package"

    US Dept of Commerce
    National Oceanic and Atmospheric Administration
    National Weather Service
    Meteorological Development Laboratory
    1325 East West Highway
    Silver Spring, MD 20910
    Page last Modified: May 11, 2006.
Degrib Questions? Arthur Taylor
NDFD Questions?
XML Questions? Paul Hershberg & John Schattel
Information Quality
Privacy Policy
Freedom of Information Act (FOIA)
About Us
Career Opportunities