NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

Re: FW: Re: NCEP North American Reanalysis (fwd)

NOTE: The decoders mailing list is no longer active. The list archives are made available for historical reasons.

hiya,

i downloaded the file from the last message, created a cdl, and decoded
the grb file. there might be something wrong with Dan's  decoders build or
it could be a platform issue. this was done on a solaris box 5.9  The
narr.cdl file is attached and the files narr.cdl, narr.grb, and narr.nc are
in the Unidata's ftp dir at

ftp unidata.ucar.edu

% cd pub/contrib
% mget narr*

robb....

cdl:

netcdf narr{


dimensions:
       record = UNLIMITED ;   // (reference time, forecast time)
       x = 349 ;
       y = 277 ;
       time_len = 21 ;        // string length for datetime strings
       valtime_offset = 1 ;   // number of offset times
       nmodels = 1 ;          // number of models
       ngrids = 1 ;           // number of grids
       nav = 1 ;              // for navigation
       nav_len = 100 ;        // max string length for navigation strings

variables:

       double reftime(record) ; // reference time of the model
              reftime:long_name = "reference time" ;
              reftime:units = "hours since 1992-1-1" ;

       double valtime(record) ; // forecast time ("valid" time)
              valtime:long_name = "valid time" ;
              valtime:units = "hours since 1992-1-1" ;

       :record = "reftime, valtime" ; // "dimension attribute" -- means
                                       // (reftime, valtime) uniquely
                                       // determine record

       char   datetime(record, time_len) ; // derived from reftime
              datetime:long_name = "reference date and time" ;
              // units YYYY-MM-DD hh:mm:ssZ  (ISO 8601)

       double valtime_offset(valtime_offset) ; // valtime - reftime
              valtime_offset:long_name = "hours from reference time" ;
              valtime_offset:units = "hours" ;

       char   forecasttime(record, time_len) ; // derived from valtime
              forecasttime:long_name = "forecast date and time" ;
              // units YYYY-MM-DD hh:mm:ssZ  (ISO 8601)


       long   model_id(nmodels) ;
              model_id:long_name = "generating process ID number" ;

       // navigation variables all use nav dimension

       char   nav_model(nav, nav_len) ;        // navigation parameterization
              nav_model:long_name = "navigation model name" ;

       int    grid_type_code(nav) ;
              grid_type_code:long_name = "GRIB-1 GDS data representation type" ;

       char   grid_type(nav, nav_len) ;
              grid_type:long_name = "GRIB-1 grid type" ;

       char   grid_name(nav, nav_len) ;
              grid_name:long_name = "grid name" ;

       int    grid_center(nav) ;
              grid_center:long_name = "GRIB-1 originating center ID" ;

       int    grid_number(nav, ngrids) ;
              grid_number:long_name = "GRIB-1 catalogued grid numbers" ;
              grid_number:_FillValue = -9999 ;

       char   x_dim(nav, nav_len) ;
              x_dim:long_name = "x dimension name" ;

       char   y_dim(nav, nav_len) ;
              y_dim:long_name = "y dimension name" ;

       long   Nx(nav) ;
              Nx:long_name = "number of points along x-axis" ;

       long   Ny(nav) ;
              Ny:long_name =  "number of points along y-axis" ;

       float  La1(nav) ;
              La1:long_name = "latitude of first grid point" ;
              La1:units = "degrees_north" ;

       float  Lo1(nav) ;
              Lo1:long_name = "longitude of first grid point" ;
              Lo1:units = "degrees_east" ;

       float  Lov(nav) ;
              Lov:long_name = "orientation of the grid" ;
              Lov:units = "degrees_east" ;

       float  Dx(nav) ;
              Dx:long_name = "x-direction grid length" ;
              Dx:units = "km" ;

       float  Dy(nav) ;
              Dy:long_name = "y-direction grid length" ;
              Dy:units = "km" ;

       byte   ProjFlag(nav) ;
              ProjFlag:long_name = "projection center flag" ;

       float  Latin1(nav) ;
              Latin1:long_name = "first intersecting latitude" ;
              Latin1:units = "degrees_north" ;

       float  Latin2(nav) ;
              Latin2:long_name = "second intersecting latitude" ;
              Latin2:units = "degrees_north" ;

       float  SpLat(nav) ;
              SpLat:long_name = "latitude of the southern pole" ;
              SpLat:units = "degrees_north" ;

       float  SpLon(nav) ;
              SpLon:long_name = "longitude of the southern pole" ;
              SpLon:units = "degrees_east" ;

       byte   ResCompFlag(nav) ;
              ResCompFlag:long_name = "resolution and component flags" ;

       // end of navigation variables

       float  snow_wat(record,y,x) ;
              snow_wat:long_name = "Water equivalent of accumulated snow depth at 
surface of the earth" ;
              snow_wat:GRIB_parameter_number = 65 ;
              snow_wat:GRIB_level_flag = 1 ;
              snow_wat:units = "kg/m2" ;
              snow_wat:_FillValue = -9999.f ;
              snow_wat:navigation = "nav" ;

       float  sen_ht_sfc(record,y,x) ;
              sen_ht_sfc:long_name = "Sensible heat flux at surface of the 
earth" ;
              sen_ht_sfc:GRIB_parameter_number = 122 ;
              sen_ht_sfc:GRIB_level_flag = 1 ;
              sen_ht_sfc:units = "W/m2" ;
              sen_ht_sfc:_FillValue = -9999.f ;
              sen_ht_sfc:navigation = "nav" ;

       float  lat_ht_sfc(record,y,x) ;
              lat_ht_sfc:long_name = "Latent heat flux at surface of the earth" 
;
              lat_ht_sfc:GRIB_parameter_number = 121 ;
              lat_ht_sfc:GRIB_level_flag = 1 ;
              lat_ht_sfc:units = "W/m2" ;
              lat_ht_sfc:_FillValue = -9999.f ;
              lat_ht_sfc:navigation = "nav" ;

       float  gflux(record,y,x) ;
              gflux:long_name = "Ground heat flux at surface of the earth" ;
              gflux:GRIB_parameter_number = 155 ;
              gflux:GRIB_level_flag = 1 ;
              gflux:units = "W/m2" ;
              gflux:_FillValue = -9999.f ;
              gflux:navigation = "nav" ;

       float  pr_water_atm(record,y,x) ;
              pr_water_atm:long_name = "Precipitable water at entire atmosphere 
considered as a single layer" ;
              pr_water_atm:GRIB_parameter_number = 54 ;
              pr_water_atm:GRIB_level_flag = 200 ;
              pr_water_atm:units = "kg/m2" ;
              pr_water_atm:_FillValue = -9999.f ;
              pr_water_atm:navigation = "nav" ;

       float  dswrf_sfc(record,y,x) ;
              dswrf_sfc:long_name = "Downward short wave rad. flux at surface of the 
earth" ;
              dswrf_sfc:GRIB_parameter_number = 204 ;
              dswrf_sfc:GRIB_level_flag = 1 ;
              dswrf_sfc:units = "W/m2" ;
              dswrf_sfc:_FillValue = -9999.f ;
              dswrf_sfc:navigation = "nav" ;

       float  dlwrf_sfc(record,y,x) ;
              dlwrf_sfc:long_name = "Downward long wave rad. flux at surface of the 
earth" ;
              dlwrf_sfc:GRIB_parameter_number = 205 ;
              dlwrf_sfc:GRIB_level_flag = 1 ;
              dlwrf_sfc:units = "W/m2" ;
              dlwrf_sfc:_FillValue = -9999.f ;
              dlwrf_sfc:navigation = "nav" ;

       float  uswrf_sfc(record,y,x) ;
              uswrf_sfc:long_name = "Upward short wave rad. flux at surface of the 
earth" ;
              uswrf_sfc:GRIB_parameter_number = 211 ;
              uswrf_sfc:GRIB_level_flag = 1 ;
              uswrf_sfc:units = "W/m2" ;
              uswrf_sfc:_FillValue = -9999.f ;
              uswrf_sfc:navigation = "nav" ;

       float  ulwrf_sfc(record,y,x) ;
              ulwrf_sfc:long_name = "Upward long wave rad. flux at surface of the 
earth" ;
              ulwrf_sfc:GRIB_parameter_number = 212 ;
              ulwrf_sfc:GRIB_level_flag = 1 ;
              ulwrf_sfc:units = "W/m2" ;
              ulwrf_sfc:_FillValue = -9999.f ;
              ulwrf_sfc:navigation = "nav" ;


// global attributes
              :history = "2004-10-19 13:25:56 - created by gribtocdl" ;
              :title = "Enter model definition here" ;
              :Conventions = "NUWG" ;
              :GRIB_reference = "Office Note 388 GRIB" ;
              :GRIB_URL = "http://www.nco.ncep.noaa.gov/pmb/docs/on388/"; ;
              :version = 0.0 ;

data:

model_id = 140 ;
valtime_offset = 3 ;


// Navigation
nav_model = "GRIB1" ;
grid_type_code = 3 ;
grid_type = "Lambert conformal projection" ;
grid_name = " " ;
grid_center = 7 ;
grid_number = 221 ;
x_dim = "x" ;
y_dim = "y" ;
Nx = 349 ;
Ny = 277 ;
La1 = 1.000000 ;
Lo1 = -145.500000 ;
Lov = -107.000000 ;
Dx = 32463.000000 ;
Dy = 32463.000000 ;
Latin1 = 50.000000 ;
Latin2 = 50.000000 ;
SpLat = 0.000000 ;
SpLon = 0.000000 ;
// Pole in proj. plane = North ;
ProjFlag = 0 ;
ResCompFlag = 0 ;

}




Date:    Tue, 19 Oct 2004 12:29:26 -0400
From:    "Dan Swank" <Dan.Swank@xxxxxxxx>
To:      Glenn Rutledge <Glenn.Rutledge@xxxxxxxx>
cc:      Russ Rew <russ@xxxxxxxxxxxxxxxx>, ben@xxxxxxxxxxxxxxxx
Subject: Re: FW: Re: NCEP North American Reanalysis (fwd)

More info,
gribtocdl continuously appends a never ending stream of the number
-16777216.00
To the end of the file!  Any ideas?
To see what i mean you can download the cdl file (227 mb)  i killed
gribtocdl process before the file got any larger, which it would have
http://nomads.ncdc.noaa.gov/tmp/narr-b_221_20010101_0000_000.cdl

And the source NARR file (1.5Mb)
http://nomads.ncdc.noaa.gov/tmp/narr-b_221_20010101_0000_000.grb

-Dan


Glenn Rutledge wrote:

> Dan-
> Please provide some background on our conversion of the grib to NetCDF
> files and the intermediate file that was generated from a meg to a
> gig. See Russ' note below.  Thanks.  Glenn
>
> Russ Rew wrote:
>
>>Jon,
>>
>>
>>
>>>We are working with the NCDC to convert NARR reanalysis data from Grib to
>>>netCDF.  They reported that initial attempts to convert a 1mb NARR file in
>>>grib resulted in a 1gb NetCDF file.  Dr. Madment wanted me check with you to
>>>see if this sounds right.  I'm sure it depends on the specifics of the
>>>conversion routine, which Glenn Rutledge would know.  We want to use netCDF
>>>to store the NARR data, but can not justify a factor of 1,000 storage
>>>increase.
>>>
>>>
>>
>>No, that sounds like there's a bug in the conversion or the structure
>>for the netCDF file is wrong.  We have never seen more than a 4-fold
>>increase in size from GRIB to netCDF, and if proper use is made of
>>packing conventions, a netCDF file need not be much bigger than the
>>corresponding GRIB file.
>>
>>I can't even imagine how you could increase the size by a factor of
>>10, let alone 1,000.  If you used double precision arrays in netCDF to
>>hold 8-bit GRIB values, that still only increases the size by a factor
>>of 8.  There is very little overhead in netCDF data storage for most
>>kinds of scientific data.
>>
>>I would like to see the CDL of the 1 GByte netCDF file to determine
>>how the data is being structured to account for this huge size
>>inflation ...
>>
>>--Russ
>>
>>
>>

--
Dan Swank <dan.swank@xxxxxxxx>
NOMADS programmer
STG, Incorporated - Government Contractor
151 Patton Avenue, Room 514
Asheville, NC 28801
Phone: 828-271-4007


------- End of Forwarded Message


==============================================================================
Robb Kambic                                Unidata Program Center
Software Engineer III                      Univ. Corp for Atmospheric Research
rkambic@xxxxxxxxxxxxxxxx                   WWW: http://www.unidata.ucar.edu/
==============================================================================
  • 2004 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the decoders archives: