[gradsusr] units on vertical coordinate causing problems

James T. Potemra jimp at hawaii.edu
Tue Jan 10 14:32:59 EST 2012


Probably for the developers...

I've noticed that GrADS seems to care about the units attributed to the 
vertical co-ordinate in netCDF files.  In particular, I am having 
problems accessing a file via OPeNDAP that has a vertical co-ordinate of 
"lev" with units of "1".  I believe this is ok with respect to CF 
compliance (this is for model output on non-z vertical levels), however 
GrADS will not show variables that have such a unit on the vertical 
dimension.

As an example, I've created two netCDF files with dimensions lat, lon, 
time and lev; and three variables ssh(time,lat,lon), u(time,lev,lat,lon) 
and v(time,lev,lat,lon).  In one file the units of "lev" are "1", and 
using sdfopen to read this file gives only one variable, ssh, which is 
not dependent on the vertical co-ordinate.  In the other file, with 
units of "meters", I can see all three variables.  The particulars are 
included below.  My question is whether this can be overcome without use 
of a control file and xdfopen?  Thanks,

Jim

----------------------------------------------------
Config: v2.0.a9 little-endian readline printim grib2 netcdf hdf4-sds 
hdf5 opendap-grids,stn geotiff shapefile
(running on Linux lii 2.6.18-274.3.1.el5 #1 SMP Fri Aug 26 18:49:02 EDT 
2011 x86_64 x86_64 x86_64 GNU/Linux)
same issue using
Config: v2.0.a9.oga.1 little-endian readline printim grib2 netcdf 
hdf4-sds hdf5 opendap-grids,stn athena geotiff shapefile
----------------------------------------------------

sample file 1 with dimensions of "1" on vertical co-ordinate:

ga-> sdfopen sample_tide1.nc
Scanning self-describing file:  sample_tide1.nc
SDF file sample_tide1.nc is open as file 1
LON set to 118 290
LAT set to -66 66
LEV set to 0 0
Time values set: 2012:1:1:0 2012:1:1:0
E set to 1 1
ga-> q file
File 1 :
   Descriptor: sample_tide1.nc
   Binary: sample_tide1.nc
   Type = Gridded
   Xsize = 87  Ysize = 67  Zsize = 1  Tsize = 24  Esize = 1
   Number of Variables = 1
      ssh  0  t,y,x  tidal elevation
ga->

----------------------------------------------------

sample file 2 with dimensions of "meters" on vertical co-ordinate:

ga-> sdfopen sample_tide2.nc
Scanning self-describing file:  sample_tide2.nc
SDF file sample_tide2.nc is open as file 1
LON set to 118 290
LAT set to -66 66
LEV set to 0 0
Time values set: 2012:1:1:0 2012:1:1:0
E set to 1 1
ga-> q file
File 1 :
   Descriptor: sample_tide2.nc
   Binary: sample_tide2.nc
   Type = Gridded
   Xsize = 87  Ysize = 67  Zsize = 1  Tsize = 24  Esize = 1
   Number of Variables = 3
      ssh  0  t,y,x  tidal elevation
      u  1  t,z,y,x  u-velocity component
      v  1  t,z,y,x  v-velocity component
ga->

----------------------------------------------------

ncdump on file 1:

netcdf sample_tide1 {
dimensions:
     lon = 87 ;
     lat = 67 ;
     time = 24 ;
     lev = 1 ;
variables:
     double lon(lon) ;
         lon:units = "degrees_east" ;
         lon:long_name = "Longitude" ;
         lon:standard_name = "longitude" ;
     double lat(lat) ;
         lat:units = "degrees_north" ;
         lat:long_name = "Latitude" ;
         lat:standard_name = "latitude" ;
     double time(time) ;
         time:long_name = "Time" ;
         time:units = "minutes since 2012-01-01 00:00" ;
     double ssh(time, lat, lon) ;
         ssh:_FillValue = -999.99 ;
         ssh:units = "meters" ;
         ssh:long_name = "tidal elevation" ;
         ssh:standard_name = "sea_surface_height" ;
         ssh:missing_value = -999.99f ;
     double lev(lev) ;
         lev:units = "1" ;
         lev:long_name = "Level" ;
         lev:positive = "down" ;
     double u(time, lev, lat, lon) ;
         u:_FillValue = -999.99 ;
         u:units = "meter second-1" ;
         u:long_name = "u-velocity component" ;
         u:standard_name = "eastward_sea_water_velocity" ;
         u:missing_value = -999.99f ;
     double v(time, lev, lat, lon) ;
         v:_FillValue = -999.99 ;
         v:units = "meter second-1" ;
         v:long_name = "v-velocity component" ;
         v:standard_name = "northward_sea_water_velocity" ;
         v:missing_value = -999.99f ;

----------------------------------------------------

ncdump on file 2:

netcdf sample_tide2 {
dimensions:
     lon = 87 ;
     lat = 67 ;
     time = 24 ;
     lev = 1 ;
variables:
     double lon(lon) ;
         lon:units = "degrees_east" ;
         lon:long_name = "Longitude" ;
         lon:standard_name = "longitude" ;
     double lat(lat) ;
         lat:units = "degrees_north" ;
         lat:long_name = "Latitude" ;
         lat:standard_name = "latitude" ;
     double time(time) ;
         time:long_name = "Time" ;
         time:units = "minutes since 2012-01-01 00:00" ;
     double ssh(time, lat, lon) ;
         ssh:_FillValue = -999.99 ;
         ssh:units = "meters" ;
         ssh:long_name = "tidal elevation" ;
         ssh:standard_name = "sea_surface_height" ;
         ssh:missing_value = -999.99f ;
     double lev(lev) ;
         lev:units = "meters" ;
         lev:long_name = "Level" ;
         lev:positive = "down" ;
         lev:standard_name = "model_level_number" ;
     double u(time, lev, lat, lon) ;
         u:_FillValue = -999.99 ;
         u:units = "meter second-1" ;
         u:long_name = "u-velocity component" ;
         u:standard_name = "eastward_sea_water_velocity" ;
         u:missing_value = -999.99f ;
     double v(time, lev, lat, lon) ;
         v:_FillValue = -999.99 ;
         v:units = "meter second-1" ;
         v:long_name = "v-velocity component" ;
         v:standard_name = "northward_sea_water_velocity" ;
         v:missing_value = -999.99f ;



,



More information about the gradsusr mailing list