Re: [netcdf-java] Reading an OPeNDAP URL using a constraint expression.

Hi John,

Thanks for getting back to me.
>  
> You cant open a dataset with a constraint expression in netcdf-Java.
Interestingly, that's not exactly true. Apparently one can, it's just not 
*really* constrained. Or I should say, everything is constrained *except* the 
data in the variable. Here's a dump of part of the CDL using a constraint in 
NetCDF-Java:

netcdf 
dods://geoport.whoi.edu/thredds/dodsC/examples/OS_M1_20081008_TS.nc?PSAL[0:1:100][0:1:0][0:1:0][0:1:0]
 {
 dimensions:
   TIME = UNLIMITED;   // (101 currently)
   DEPTH = 1;
   LATITUDE = 1;
   LONGITUDE = 1;
 variables:
   float PSAL(TIME=101, DEPTH=1, LATITUDE=1, LONGITUDE=1);
     :_CoordinateAxes = "TIME DEPTH LATITUDE LONGITUDE ";
     :missing_value = -1.0E34f; // float
     :_FillValue = -1.0E34f; // float
     :long_name = "Hourly sea_water_salinity";
     :units = " ";
     :standard_name = "sea_water_salinity";
     :uncertainty = "0.02";
     :valid_min = "30";
     :valid_max = "36";
     :cell_methods = "time: mean";
     :history = "From m1_ctd0001_20081008_original";
   double TIME(TIME=101);
   double DEPTH(DEPTH=1);
   double LATITUDE(LATITUDE=1);
   double LONGITUDE(LONGITUDE=1);




…
}


And without a constraint expression:

netcdf dods://geoport.whoi.edu/thredds/dodsC/examples/OS_M1_20081008_TS.nc {
 dimensions:
   DEPTH = 11;
   bnds = 2;
   LATITUDE = 1;
   LONGITUDE = 1;
   TIME = UNLIMITED;   // (9043 currently)
 variables:
   float DEPTH_QC(DEPTH=11);
     :missing_value = -1.0E34f; // float
     :_FillValue = -1.0E34f; // float
     :long_name = "Quality flag for depth axis, 1: Good data";
   double DEPTH_bnds(DEPTH=11, bnds=2);
   float POSITION_QC(LONGITUDE=1);
     :missing_value = -1.0E34f; // float
     :_FillValue = -1.0E34f; // float
     :long_name = "Quality flag for Latitude and Longitude axes, 1: Good data";
   float TIME_QC(TIME=9043);
     :missing_value = -1.0E34f; // float
     :_FillValue = -1.0E34f; // float
     :long_name = "Quality flag for time axis, 1: Good data";
   float PSAL(TIME=9043, DEPTH=11, LATITUDE=1, LONGITUDE=1);
     :_CoordinateAxes = "TIME DEPTH LATITUDE LONGITUDE ";
     :missing_value = -1.0E34f; // float
     :_FillValue = -1.0E34f; // float
     :long_name = "Hourly sea_water_salinity";
     :units = " ";
     :standard_name = "sea_water_salinity";
     :uncertainty = "0.02";
     :valid_min = "30";
     :valid_max = "36";
     :cell_methods = "time: mean";
     :history = "From m1_ctd0001_20081008_original";
   float PSAL_QC(TIME=9043, DEPTH=11, LATITUDE=1, LONGITUDE=1);
     :_CoordinateAxes = "TIME DEPTH LATITUDE LONGITUDE ";
     :missing_value = -1.0E34f; // float
     :_FillValue = -1.0E34f; // float
     :long_name = "quality flag";
     :units = " ";
     :conventions = "OceanSITES reference table 2";
     :history = "From m1_ctd0001_20081008_original";
   float TEMP(TIME=9043, DEPTH=11, LATITUDE=1, LONGITUDE=1);
     :_CoordinateAxes = "TIME DEPTH LATITUDE LONGITUDE ";
     :missing_value = -1.0E34f; // float
     :_FillValue = -1.0E34f; // float
     :long_name = "Hourly sea_water_temperature";
     :units = "celsius";
     :standard_name = "sea_water_temperature";
     :uncertainty = "0.002";
     :valid_min = "0";
     :valid_max = "35";
     :cell_methods = "time: mean";
     :history = "From m1_ctd0001_20081008_original";
   float TEMP_QC(TIME=9043, DEPTH=11, LATITUDE=1, LONGITUDE=1);
     :_CoordinateAxes = "TIME DEPTH LATITUDE LONGITUDE ";
     :missing_value = -1.0E34f; // float
     :_FillValue = -1.0E34f; // float
     :long_name = "quality flag";
     :units = " ";
     :conventions = "OceanSITES reference table 2";
     :history = "From m1_ctd0001_20081008_original";
   double DEPTH(DEPTH=11);
     :units = "METERS";
     :point_spacing = "uneven";
     :axis = "Z";
     :bounds = "DEPTH_bnds";
     :positive = "down";
     :long_name = "Depth";
     :standard_name = "depth";
     :QC_procedure = "5";
     :uncertainty = "0.1";
     :valid_min = "0";
     :valid_max = "5000";
     :_CoordinateAxisType = "Height";
     :_CoordinateZisPositive = "down";
   double LATITUDE(LATITUDE=1);
     :point_spacing = "even";
     :axis = "Y";
     :units = "degrees_north";
     :long_name = "Latitude";
     :standard_name = "latitude";
     :QC_procedure = "5";
     :uncertainty = "0.0001";
     :valid_min = "-90";
     :valid_max = "90";
     :_CoordinateAxisType = "Lat";
   double LONGITUDE(LONGITUDE=1);
     :point_spacing = "even";
     :axis = "X";
     :units = "degrees_east";
     :long_name = "Longitude";
     :standard_name = "longitude";
     :QC_procedure = "5";
     :uncertainty = "0.0001";
     :valid_min = "-180";
     :valid_max = "180";
     :modulo = " ";
     :_CoordinateAxisType = "Lon";
   double TIME(TIME=9043);
     :units = "DAYS since 1950-01-01 00:00:00";
     :axis = "T";
     :time_origin = "01-JAN-1950 00:00:00";
     :long_name = "Time";
     :standard_name = "time";
     :QC_procedure = "1";
     :uncertainty = "0.5";
     :valid_min = "1223496115";
     :valid_max = "1256054123";
     :_CoordinateAxisType = "Time";


…
}


>  
> open the dataset without a constraint expression, and constrain the read.
>  
OK, got it.

Cheers,  

--  
Brian Schlining  

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