NetCDF file

Don Hooper hoop at COLORADO.EDU
Thu Jul 5 16:23:17 EDT 2007


Guilong Li,

As the ncdump output you included indicates, this data set is on a
Lambert Conformal Conic grid.  The sdfopen/xdfopen interfaces only
work for regular lat-lon grid data sets.  These files can be read
with GrADS 1.9 with the "open" command, by constructing a data
descriptor file (DDF) similar to:
DSET /Datasets/NARR/pressure/air.197901.nc
DTYPE netcdf
TITLE NARR 4D field lambert conformal projection
UNDEF -9999.0 missing_value
UNPACK scale_factor add_offset
PDEF 349 277 lcc 1 -145.5 1 1 50 50 -107 32463.41 32463.41
XDEF 205 linear 150 1
YDEF 85 linear 2 1
ZDEF 29 levels 1000, 975, 950, 925, 900, 875, 850, 825, 800, 775, 750, 725, 700, 650, 600, 550, 500, 450, 400, 350, 300, 275, 250, 225, 200, 175, 150, 125, 100
tdef 248 linear 00z1jan2004 3hr
vars 3
air 29 t,z,y,x  air_temp
lat=>glat 0 y,x Latitude
lon=>glon 0 y,x Longitude
endvars

See the GrADS website for details on these new features ("dtype netcdf")
in DDFs.

-Hoop
> From owner-gradsusr at LIST.CINECA.IT  Thu Jul  5 13:03:51 2007
> From: "Li,Guilong [Ontario]" <Guilong.Li at EC.GC.CA>
>
> Hi Everyone
>
> I am trying to read NCEP North American Regional Reanalysis data in
> NetCDF format. I tried to use sdfopen to open the file, but it gave me
> the following error message.
>
> SDF file has no discernable X coordinate.
>
> I checked the user group regarding this error message and it says
> "netcdf file was not constructed according to COARDS rules". I do not
> understand why sdfopen works for NCEP reanalysis data (2.5x2.5), but it
> doesn't work for NCEP NARR data. Anyway,I tried to use xdfopen to read
> NARR NetCDF data, it still doesn't work. The following is the "ncdump
> -c" output. Thanks.
>
> Guilong
>
> netcdf air.197901 {
> dimensions:
>         y = 277 ;
>         x = 349 ;
>         level = 29 ;
>         time = UNLIMITED ; // (248 currently)
> variables:
>         float level(level) ;
>                 level:units = "millibar" ;
>                 level:actual_range = 1000.f, 100.f ;
>                 level:long_name = "Level" ;
>                 level:positive = "down" ;
>                 level:GRIB_id = 100s ;
>                 level:GRIB_name = "hPa" ;
>                 level:axis = "Z" ;
>                 level:coordinate_defines = "point" ;
>         float lat(y, x) ;
>                 lat:long_name = "latitude coordinate" ;
>                 lat:units = "degrees_north" ;
>                 lat:standard_name = "latitude" ;
>                 lat:axis = "Y" ;
>                 lat:coordinate_defines = "point" ;
>         float lon(y, x) ;
>                 lon:units = "degrees_east" ;
>                 lon:long_name = "longitude coordinate" ;
>                 lon:standard_name = "longitude" ;
>                 lon:axis = "X" ;
>                 lon:coordinate_defines = "point" ;
>         double time(time) ;
>                 time:units = "hours since 1800-1-1 00:00:0.0" ;
>                 time:long_name = "time" ;
>                 time:actual_range = 1569072., 1569813. ;
>                 time:delta_t = "0000-00-00 03:00:00" ;
>                 time:standard_name = "time" ;
>                 time:axis = "T" ;
>                 time:coordinate_defines = "point" ;
>         float x(x) ;
>                 x:long_name = "eastward distance from southwest corner
> of domain in projection coordinates" ;
>                 x:units = "m" ;
>                 x:standard_name = "projection_x_coordinate" ;
>         float y(y) ;
>                 y:long_name = "northward distance from southwest corner
> of domain in projection coordinates" ;
>                 y:units = "m" ;
>                 y:standard_name = "projection_y_coordinate" ;
>         short air(time, level, y, x) ;
>                 air:long_name = "3-hourly Air Temperature on Pressure
> Levels" ;
>                 air:valid_range = -32765s, -10260s ;
>                 air:unpacked_valid_range = 137.5f, 362.5f ;
>                 air:actual_range = 189.3768f, 309.3121f ;
>                 air:units = "degK" ;
>                 air:add_offset = 465.15f ;
>                 air:scale_factor = 0.01f ;
>                 air:missing_value = 32766s ;
>                 air:_FillValue = -32767s ;
>                 air:precision = 2s ;
>                 air:least_significant_digit = 1s ;
>                 air:GRIB_id = 11s ;
>                 air:GRIB_name = "TMP" ;
>                 air:var_desc = "Air temperature" ;
>                 air:dataset = "NARR 3-hourly" ;
>                 air:level_desc = "Pressure Levels" ;
>                 air:statistic = "Individual Obs" ;
>                 air:parent_stat = "Other" ;
>                 air:standard_name = "air_temperature" ;
>                 air:grid_mapping = "Lambert_Conformal" ;
>                 air:coordinates = "lat lon" ;
>         int Lambert_Conformal ;
>                 Lambert_Conformal:grid_mapping_name =
> "lambert_conformal_conic" ;
>                 Lambert_Conformal:standard_parallel = 50., 50. ;
>                 Lambert_Conformal:longitude_of_central_meridian = -107.
> ;
>                 Lambert_Conformal:latitude_of_projection_origin = 50. ;
>                 Lambert_Conformal:false_easting = 5632642.22547 ;
>                 Lambert_Conformal:false_northing = 4612545.65137 ;
>
> // global attributes:
>                 :Conventions = "CF-1.0" ;
>                 :title = "8x Daily NARR" ;
>                 :history = "created 2005/07 by Hoop (netCDF2.3)" ;
>                 :comments = "Data is from North American Regional
> Reanalysis\n",
>     "(8x/day).  It consists of most variables interpolated to\n",
>     "pressure surfaces from model (sigma) surfaces." ;
>                 :institution = "National Centers for Environmental
> Prediction" ;
>                 :platform = "Model" ;
>                 :references =
> "http://wwwt.emc.ncep.noaa.gov/mmb/rreanl/index.html\n",
>     "http://www.cdc.noaa.gov/cdc/data.narr.html" ;
> }



More information about the gradsusr mailing list