Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
package gov.noaa.eds.threddsutilities.util; import static org.junit.Assert.assertTrue; import java.util.List; import org.junit.Test; import ucar.ma2.Array; import ucar.nc2.Variable; import ucar.nc2.constants.AxisType; import ucar.nc2.dataset.CoordinateAxis; import ucar.nc2.dataset.CoordinateAxis1D; import ucar.nc2.dataset.NetcdfDataset; public class ThreddsExtentUtilTest { @Test public void getExtentTest() { // String urlStr = // "http://oos.soest.hawaii.edu/thredds/dodsC/pacioos/ncom/global/NCOM_Global_Ocean_Model_best.ncd"; // String urlStr = // "http://localhost:8080/thredds/dodsC/test/ncom_glb_sfc_2011050100.nc"; // String urlStr = // "dods://dods.ndbc.noaa.gov/thredds/dodsC/data/oceansites/DATA/MBARI/OS_MBARI-M0_20100614_R_M.nc"; // String urlStr = // "dods://dods.ndbc.noaa.gov/thredds/dodsC/data/oceansites/DATA/ANTARES/OS_ANTARES-1_200509_D_CTD.nc"; String urlStr = "dods://testbedapps.sura.org/threddsdev/dodsC/inundation/FVCOM/ike/2Dvrwoww"; try { NetcdfDataset ncd = NetcdfDataset.openDataset(urlStr); List<CoordinateAxis> coordAxes = ncd.getCoordinateAxes(); try { double maxLon = -9999.999; double minLon = 9999.999; double maxLat = -9999.999; double minLat = 9999.999; for (CoordinateAxis coordAxis : coordAxes) { if (coordAxis.getAxisType() == AxisType.Lat) { minLat = coordAxis.getMinValue(); maxLat = coordAxis.getMaxValue(); } if (coordAxis.getAxisType() == AxisType.Lon) { minLon = coordAxis.getMinValue(); maxLon = coordAxis.getMaxValue(); } } System.out .println("Using coordAxis.getMinValue() method -----"); System.out.println("minLon=" + minLon); System.out.println("maxLon=" + maxLon); System.out.println("minLat=" + minLat); System.out.println("maxLat=" + maxLat); assertTrue(maxLon > -180.0); } catch (Exception e) { System.out .println("Warning CF Axis problem: " + e.getMessage()); } } catch (Exception e) { System.err.println(e); } } @Test public void getExtentUsing1DCoordTest() { // String urlStr = // "dods://dods.ndbc.noaa.gov/thredds/dodsC/data/oceansites/DATA/ANTARES/OS_ANTARES-1_200509_D_CTD.nc"; // String varName = "LONGITUDE"; String urlStr = "dods://testbedapps.sura.org/threddsdev/dodsC/inundation/FVCOM/ike/2Dvrwoww"; String lonName = "lon"; String latName = "lat"; try { NetcdfDataset ncd = NetcdfDataset.openDataset(urlStr); CoordinateAxis1D coordLon = (CoordinateAxis1D) ncd .findVariable(lonName); double maxLon = -9999.999; double minLon = 9999.999; double[] vals = coordLon.getCoordValues(); for (int i = 0; i < vals.length; i++) { double lon = vals[i]; // System.out.println("lon=" + lon); if (lon > maxLon) { maxLon = lon; } if (lon < minLon) { minLon = lon; } } CoordinateAxis1D coordLat = (CoordinateAxis1D) ncd .findVariable(latName); double maxLat = -9999.999; double minLat = 9999.999; vals = coordLat.getCoordValues(); for (int i = 0; i < vals.length; i++) { double lat = vals[i]; // System.out.println("lat=" + lat); if (lat > maxLat) { maxLat = lat; } if (lat < minLat) { minLat = lat; } } System.out.println(""); System.out.println("Using CoordinateAxis1D method -----"); System.out.println("minLon=" + minLon); System.out.println("maxLon=" + maxLon); System.out.println("minLat=" + minLat); System.out.println("maxLat=" + maxLat); assertTrue(maxLon > -180.0); } catch (Exception e) { System.err.println(e); } } @Test public void getExtentUsingReadTest() { // String urlStr = // "dods://dods.ndbc.noaa.gov/thredds/dodsC/data/oceansites/DATA/ANTARES/OS_ANTARES-1_200509_D_CTD.nc"; // String varName = "LONGITUDE"; String urlStr = "dods://testbedapps.sura.org/threddsdev/dodsC/inundation/FVCOM/ike/2Dvrwoww"; String lonName = "lon"; String latName = "lat"; try { NetcdfDataset ncd = NetcdfDataset.openDataset(urlStr); Variable varLon = ncd.findVariable(lonName); double maxLon = -9999.999; double minLon = 9999.999; Array vals = varLon.read(); for (int i = 0; i < vals.getSize(); i++) { double lon = vals.getDouble(i); // System.out.println("lon=" + lon); if (lon > maxLon) { maxLon = lon; } if (lon < minLon) { minLon = lon; } } Variable varLat = ncd.findVariable(latName); double maxLat = -9999.999; double minLat = 9999.999; vals = varLat.read(); for (int i = 0; i < vals.getSize(); i++) { double lat = vals.getDouble(i); // System.out.println("lat=" + lat); if (lat > maxLat) { maxLat = lat; } if (lat < minLat) { minLat = lat; } } System.out.println(""); System.out.println("Using read method -----"); System.out.println("minLon=" + minLon); System.out.println("maxLon=" + maxLon); System.out.println("minLat=" + minLat); System.out.println("maxLat=" + maxLat); assertTrue(maxLon > -180.0); } catch (Exception e) { System.err.println(e); } } } On Tue, Feb 7, 2012 at 5:21 PM, Ethan Davis <edavis@xxxxxxxxxxxxxxxx> wrote: > Hi Dave, > > What do you mean by "unstructured grid dataset"? Can you send me a > sample dataset? > > Thanks, > > Ethan > > On 1/23/2012 10:11 AM, Dave Neufeld wrote: >> Hello, >> >> In the attached test case, inconsistent coordinate results are returned >> depending on which methods of the NetCDF Java API are called (tested >> against v4.2.26). >> >> Sample output: >> >> Using coordAxis.getMinValue() method ----- >> minLon=-86.76239013671875 >> maxLon=268.2677307128906 >> minLat=21.105741500854492 >> maxLat=31.007230758666992 >> >> Using CoordinateAxis1D method ----- >> minLon=-86.76998901367188 >> maxLon=280.256103515625 >> minLat=18.15138816833496 >> maxLat=31.010635375976562 >> >> Using read method ----- >> minLon=-97.85687255859375 >> maxLon=-79.7386474609375 >> minLat=18.15138816833496 >> maxLat=31.010635375976562 >> >> -Dave >> >> >> _______________________________________________ >> netcdf-java mailing list >> netcdf-java@xxxxxxxxxxxxxxxx >> For list information or to unsubscribe, visit: >> http://www.unidata.ucar.edu/mailing_lists/ > > -- > Ethan Davis UCAR Unidata Program > edavis@xxxxxxxxxxxxxxxx http://www.unidata.ucar.edu > > _______________________________________________ > netcdf-java mailing list > netcdf-java@xxxxxxxxxxxxxxxx > For list information or to unsubscribe, visit: > http://www.unidata.ucar.edu/mailing_lists/ -- Dr. Richard P. Signell (508) 457-2229 USGS, 384 Woods Hole Rd. Woods Hole, MA 02543-1598
netcdf-java
archives: