[gradsusr] units on vertical coordinate causing problems

Jennifer Adams jma at cola.iges.org
Tue Jan 10 18:32:57 EST 2012


Hi, Jim -- 
A vertical coordinate that has units of "1" will not be recognized as a Z axis by the sdfopen code. You need a more meaningful unit, something the udunits library utility utScan can make sense of, or one of the following: hybrid_sigma_pressure, mb, millibar, sigma_level, level, layer, layers, degreesk, or degrees_k. If all those fail, sdfopen will look for an attribute named "axis" with a value of Z or z. Otherwise, you have to use xdfopen to nominate 'lev' as your Z dimension. 
--Jennifer

On Jan 10, 2012, at 2:32 PM, James T. Potemra wrote:

> 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 ;
> 
> 
> 
> ,
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org
> http://gradsusr.org/mailman/listinfo/gradsusr

--
Jennifer M. Adams
IGES/COLA
4041 Powder Mill Road, Suite 302
Calverton, MD 20705
jma at cola.iges.org



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20120110/960252af/attachment-0003.html 


More information about the gradsusr mailing list