[netcdf-java] Problems reading data in polar stereographic projection

Hi all,

I'm trying to use the Java NetCDF libraries (2.2.22) to read Arctic
ocean data over OPeNDAP.  The data are in polar stereographic
projection.  However, the following short program (which works fine
for many other datasets) returns zero Grids:

    NetcdfDataset nc = NetcdfDataset.openDataset(url, true, null);
    GridDataset gd =
(GridDataset)TypedDatasetFactory.open(DataType.GRID, nc, null, null);
    System.out.println(gd.getGrids().size()); // prints out "0"

The URL to the OPeNDAP site is
http://topaz.nersc.no/thredds/dodsC/topaz/mersea-ipv2/arctic/tmipv2a-class1-be.
 The results of performing an ncdump on this URL (using toolsUI) are
attached.  toolsUI also fails to recognize any Grids in this dataset.

Can anyone advise on what might be the problem here?  Is the metadata
of the dataset incorrectly specified?

Thanks in advance,
Jon

-- 
--------------------------------------------------------------
Dr Jon Blower              Tel: +44 118 378 5213 (direct line)
Technical Director         Tel: +44 118 378 8741 (ESSC)
Reading e-Science Centre   Fax: +44 118 378 6413
ESSC                       Email: jdb@xxxxxxxxxxxxxxxxxxxx
University of Reading
3 Earley Gate
Reading RG6 6AL, UK
--------------------------------------------------------------
netcdf 
dods://topaz.nersc.no/thredds/dodsC/topaz/mersea-ipv2/arctic/tmipv2a-class1-be {
 dimensions:
   x = 609;   // (has coord.var)
   y = 881;   // (has coord.var)
   depth = 12;   // (has coord.var)
   time = 220;   // (has coord.var)
 variables:
   int polar_stereographic;
     :grid_mapping_name = "polar_stereographic";
     :latitude_of_projection_origin = 90.0; // double
     :longitude_of_projection_origin = 45.0; // double
     :scale_factor_at_projection_origin = 1.0; // double
     :false_easting = 0.0; // double
     :false_northing = 0.0; // double
   float x(x=609);
     :axis = "X";
     :standard_name = "projection_x_coordinate";
     :units = "100  km";
   float y(y=881);
     :standard_name = "projection_y_coordinate";
     :axis = "Y";
   float depth(depth=12);
     :long_name = "depth";
     :units = "m";
     :valid_range = 0.0, 3001.0; // double
     :standard_name = "depth";
     :positive = "down";
     :axis = "Z";
   int time(time=220);
     :units = "secs since 1970-01-01 00:00:00";
     :_CoordinateAxisType = "time";
   float longitude(y=881, x=609);
     :_CoordinateAxes = "y x ";
     :units = "degrees";
     :valid_range = -180.0, 180.0; // double
     :long_name = "longitude";
     :missing_value = -1.0E14; // double
   float latitude(y=881, x=609);
     :_CoordinateAxes = "y x ";
     :units = "degrees";
     :valid_range = -90.0, 90.0; // double
     :standard_name = "latitude";
     :long_name = "latitude";
     :missing_value = -1.0E14; // double
   float model_depth(y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :units = "meters";
     :valid_range = 0.0, 9000.0; // double
     :long_name = "model_depth";
     :missing_value = -1.0E14; // double
     :standard_name = "sea_floor_depth_below_sea_level";
     :coordinates = "longitude latitude";
   short temperature(time=220, depth=12, y=881, x=609);
     :_CoordinateAxes = "longitude latitude depth y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 21.0; // double
     :scale_factor = 7.32533650764582E-4; // double
     :long_name = "Potential temperature of sea water";
     :units = "degrees_celsius";
     :standard_name = "sea_water_potential_temperature";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short salinity(time=220, depth=12, y=881, x=609);
     :_CoordinateAxes = "longitude latitude depth y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 25.0; // double
     :scale_factor = 7.630558862131063E-4; // double
     :long_name = "Salinity of sea water";
     :units = "psu";
     :standard_name = "sea_water_salinity";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short u(time=220, depth=12, y=881, x=609);
     :_CoordinateAxes = "longitude latitude depth y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 0.0; // double
     :scale_factor = 3.052223544852425E-4; // double
     :long_name = "X velocity component of sea water";
     :units = "m s-1";
     :standard_name = "x_sea_water_velocity";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short v(time=220, depth=12, y=881, x=609);
     :_CoordinateAxes = "longitude latitude depth y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 0.0; // double
     :scale_factor = 3.052223544852425E-4; // double
     :long_name = "Y velocity component of sea water";
     :units = "m s-1";
     :standard_name = "x_sea_water_velocity";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short ssh(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 0.0; // double
     :scale_factor = 3.052223544852425E-4; // double
     :long_name = "Sea Surface height";
     :units = "m";
     :standard_name = "sea_surface_elevation";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short bsfd(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 0.0; // double
     :scale_factor = 305222.3544852425; // double
     :long_name = "Barotropic Streamfunction of the ocean";
     :units = "m3 s-1";
     :standard_name = "ocean_barotropic_streamfunction";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short mlp(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 3000.0; // double
     :scale_factor = 0.09156670634557275; // double
     :long_name = "Density Defined Mixed Layer Depth";
     :units = "m";
     :standard_name = "ocean_mixed_layer_thickness";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short taux(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 0.0; // double
     :scale_factor = 6.10444708970485E-5; // double
     :long_name = "Area averaged x-component of atmospheric stress";
     :units = "pascal";
     :standard_name = "surface_downward_x_stress";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short tauy(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 0.0; // double
     :scale_factor = 6.10444708970485E-5; // double
     :long_name = "Area averaged y-component of atmospheric stress";
     :units = "pascal";
     :standard_name = "surface_downward_y_stress";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short tauxice(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 0.0; // double
     :scale_factor = 6.10444708970485E-5; // double
     :long_name = "Area averaged x-component of ice stress on ocean";
     :units = "pascal";
     :standard_name = "downward_x_stress_at_sea_ice_base";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short tauyice(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 0.0; // double
     :scale_factor = 6.10444708970485E-5; // double
     :long_name = "Area averaged y-component of ice stress on ocean";
     :units = "pascal";
     :standard_name = "downward_y_stress_at_sea_ice_base";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short qtot(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 0.0; // double
     :scale_factor = 0.09156670634557275; // double
     :long_name = "Net heat flux into ocean";
     :units = "w m-2";
     :standard_name = "surface_downward_heat_flux_in_sea_water";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short qtotair(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 0.0; // double
     :scale_factor = 0.09156670634557275; // double
     :long_name = "Net surface atmospheric heat flux";
     :units = "w m-2";
     :standard_name = "surface_downward_heat_flux_in_air";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short qsw(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 1000.0; // double
     :scale_factor = 0.03052223544852425; // double
     :long_name = "Net surface shortwave heat flux";
     :units = "w m-2";
     :standard_name = "net_downward_shortwave_flux_in_air";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short fwflux(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 0.0; // double
     :scale_factor = 3.0522235448524254E-8; // double
     :long_name = "Freshwater flux into ocean";
     :units = "kg m-2 s-1";
     :standard_name = "water_flux_into_ocean";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short fice(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 0.5; // double
     :scale_factor = 1.556634007874737E-5; // double
     :long_name = "Sea Ice Concentration";
     :units = "";
     :standard_name = "sea_ice_area_fraction";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short hice(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 7.495; // double
     :scale_factor = 2.290693770411745E-4; // double
     :long_name = "Sea Ice Thickness (area average)";
     :units = "m";
     :standard_name = "sea_ice_thickness";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short hsnow(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 7.495; // double
     :scale_factor = 2.290693770411745E-4; // double
     :long_name = "Thickness of snow on top of sea ice (area average)";
     :units = "m";
     :standard_name = "surface_snow_thickness";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short uice(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 0.0; // double
     :scale_factor = 6.10444708970485E-5; // double
     :long_name = "X velocity component of sea ice (area average)";
     :units = "m s-1";
     :standard_name = "x_sea_ice_velocity";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";
   short vice(time=220, y=881, x=609);
     :_CoordinateAxes = "longitude latitude y x ";
     :missing_value = -32767s; // short
     :_FillValue = -32767s; // short
     :add_offset = 0.0; // double
     :scale_factor = 6.10444708970485E-5; // double
     :long_name = "y velocity component of sea ice (area average)";
     :units = "m s-1";
     :standard_name = "y_sea_ice_velocity";
     :grid_mapping = "polar_stereographic";
     :coordinates = "longitude latitude";
     :cell_methods = "lat: lon: time: mean";

 :title = "TOPAZ model results";
 :comment = "Daily Averaged fields";
 :institution = "NERSC, Thormoehlens gate 47, N-5006 Bergen, Norway";
 :history = "20071201:Created by program hyc2proj, version V0.1";
 :source = "NERSC-HYCOM model fields";
 :references = "http://topaz.nersc.no";;
 :field_type = "Daily average fields";
 :Conventions = "CF-1.0";
 :field_date = "2007-11-27";
 :bulletin_date = "2007-11-28";
 :bulletin_type = "Hindcast";
}

  • 2008 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdf-java archives: