ucar.nc2.dods.DODSNetcdfFile Java Examples

The following examples show how to use ucar.nc2.dods.DODSNetcdfFile. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: TestMisc.java    From netcdf-java with BSD 3-Clause "New" or "Revised" License 6 votes vote down vote up
boolean process1(Testcase testcase) throws Exception {
  DODSNetcdfFile ncfile = new DODSNetcdfFile(testcase.url);
  if (ncfile == null)
    throw new Exception("Cannot read: " + testcase.url);
  StringWriter ow = new StringWriter();
  PrintWriter pw = new PrintWriter(ow);
  CDLWriter.writeCDL(ncfile, pw, false);
  pw.close();
  ow.close();
  String captured = ow.toString();
  boolean pass = true;
  visual(testcase.title, captured);
  if (System.getProperty("baseline") != null) {
    baseline(testcase, captured);
  } else
    pass = diff(testcase, captured);
  return pass;
}
 
Example #2
Source File: TimeCdmRemote.java    From netcdf-java with BSD 3-Clause "New" or "Revised" License 6 votes vote down vote up
public static void main(String args[]) throws IOException, InvalidRangeException {
  Stat stat1 = new Stat("CDM4", false);
  Stat stat2 = new Stat("DODS", false);

  CdmRemote.setAllowCompression(true);
  DODSNetcdfFile.setAllowCompression(true);

  doOne("scanCdmUnitTests/formats/grib1/Mercator.grib1", stat1, stat2);
  doOne("scanCdmUnitTests/formats/grib2/ds.pop12.bin", stat1, stat2);
  doOne("scanCdmUnitTests/formats/grib2/AVOR_000.grb", stat1, stat2);
  doOne("scanCdmUnitTests/conventions/cf/bora_feb_001.nc", stat1, stat2);
  doOne("scanCdmUnitTests/conventions/cf/ccsm2.nc", stat1, stat2);

  System.out.printf("%n %s MB/sec%n", stat1);
  // System.out.printf(" %s MB/sec%n", stat2);
}
 
Example #3
Source File: OpendapServlet.java    From tds with BSD 3-Clause "New" or "Revised" License 6 votes vote down vote up
long computeArraySize(SDArray da) throws Exception {
  assert (da.getContainerVar() instanceof DPrimitive);
  BaseType base = da.getPrimitiveVector().getTemplate();
  DataType dtype = DODSNetcdfFile.convertToNCType(base, false);
  int elemSize = dtype.getSize();
  int n = da.numDimensions();
  List<Range> ranges = new ArrayList<>(n);
  long size = 0;
  for (int i = 0; i < n; i++) {
    ranges.add(new Range(da.getStart(i), da.getStop(i), da.getStride(i)));
  }
  Section s = new Section(ranges);
  size += s.computeSize() * elemSize;

  return size;
}
 
Example #4
Source File: TestGroups.java    From netcdf-java with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
boolean process1(Testcase testcase) throws Exception {
  DODSNetcdfFile ncfile = new DODSNetcdfFile(testcase.url);
  if (ncfile == null)
    throw new Exception("Cannot read: " + testcase.url);
  StringWriter ow = new StringWriter();
  PrintWriter pw = new PrintWriter(ow);
  CDLWriter.writeCDL(ncfile, pw, false);
  try {
    pw.close();
    ow.close();
  } catch (IOException ioe) {
  } ;
  String captured = ow.toString();
  visual(testcase.title, captured);

  // See if the cdl is in a file or a string.
  Reader baserdr = null;
  if (testcase.cdl.startsWith("file://")) {
    File f = new File(testcase.cdl.substring("file://".length(), testcase.cdl.length()));
    try {
      baserdr = new FileReader(f);
    } catch (Exception e) {
      return false;
    }
  } else
    baserdr = new StringReader(testcase.cdl);
  StringReader resultrdr = new StringReader(captured);
  // Diff the two files
  Diff diff = new Diff("Testing " + testcase.title);
  boolean pass = !diff.doDiff(baserdr, resultrdr);
  baserdr.close();
  resultrdr.close();
  return pass;
}
 
Example #5
Source File: TimeCdmRemote.java    From netcdf-java with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
static void testDodsCompress(String url, Stat statCompress, Stat statNone, int n, boolean readData)
    throws IOException, InvalidRangeException {
  for (int i = 0; i < n; i++) {
    DODSNetcdfFile.setAllowCompression(false);
    testRead("dods:" + server + "/dodsC/" + url, statNone, readData);
    DODSNetcdfFile.setAllowCompression(true);
    testRead("dods:" + server + "/dodsC/" + url, statCompress, readData);
  }
}
 
Example #6
Source File: ToolsUI.java    From netcdf-java with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
public void setDebugFlags() {
  log.debug("setDebugFlags");

  NetcdfFile.setDebugFlags(debugFlags);
  H5iosp.setDebugFlags(debugFlags);
  ucar.nc2.ncml.NcMLReader.setDebugFlags(debugFlags);
  DODSNetcdfFile.setDebugFlags(debugFlags);
  CdmRemote.setDebugFlags(debugFlags);
  Nc4Iosp.setDebugFlags(debugFlags);
  DataFactory.setDebugFlags(debugFlags);

  NetcdfCopier.setDebugFlags(debugFlags);
  ucar.nc2.ft.point.standard.PointDatasetStandardFactory.setDebugFlags(debugFlags);
  ucar.nc2.grib.collection.Grib.setDebugFlags(debugFlags);
}
 
Example #7
Source File: OpendapServlet.java    From tds with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
long computeFieldSize(BaseType bt, boolean isAscii) throws Exception {
  long fieldsize = 0;
  // Figure out what this field is (e.g. primitive or not)
  // Somewhat convoluted.
  if (bt instanceof DConstructor) {
    // simple struct, seq, or grid => recurse
    fieldsize = computeSize((DConstructor) bt, isAscii);
  } else if (bt instanceof DArray) {
    SDArray da = (SDArray) bt;
    // Separate structure arrays from primitive arrays
    if (da.getContainerVar() instanceof DPrimitive) {
      fieldsize = computeArraySize(da);
    } else if (da.getContainerVar() instanceof DStructure) {
      fieldsize = computeSize((DStructure) da.getContainerVar(), isAscii); // recurse
    } else { // Some kind of problem
      throw new NoSuchTypeException("Computesize: unexpected type for " + bt.getLongName());
    }
  } else if (bt instanceof DPrimitive) {
    DPrimitive dp = (DPrimitive) bt;
    if (dp instanceof DString) {
      String v = ((DString) dp).getValue();
      fieldsize = (v == null ? 0 : v.length());
    } else {
      DataType dtype = DODSNetcdfFile.convertToNCType(bt, false);
      fieldsize = dtype.getSize();
    }
  } else { // Some kind of problem
    throw new NoSuchTypeException("Computesize: unknown type for " + bt.getLongName());
  }
  return fieldsize;
}
 
Example #8
Source File: DAPDownloader.java    From snap-desktop with GNU General Public License v3.0 5 votes vote down vote up
private void downloadDapFile(File targetDir, String dapURI, boolean isLargeFile) throws IOException {
    String[] uriComponents = dapURI.split("\\?");
    String constraintExpression = "";
    String fileName = dapURI.substring(uriComponents[0].lastIndexOf("/") + 1);
    if (uriComponents.length > 1) {
        constraintExpression = uriComponents[1];
    }
    updateProgressBar(fileName, 0);
    DODSNetcdfFile netcdfFile = new DODSNetcdfFile(dapURI);
    writeNetcdfFile(targetDir, fileName, constraintExpression, netcdfFile, isLargeFile);
}
 
Example #9
Source File: DAPDownloaderTest.java    From snap-desktop with GNU General Public License v3.0 5 votes vote down vote up
@Ignore
@Test
public void testActualWriting() throws Exception {
    final DAPDownloader dapDownloader = new DAPDownloader(null, null, new NullDownloadContext(), new NullLabelledProgressBarPM());
    final DODSNetcdfFile sourceNetcdfFile = new DODSNetcdfFile(
            "http://test.opendap.org:80/opendap/data/nc/coads_climatology.nc");
    dapDownloader.writeNetcdfFile(TESTDATA_DIR, "deleteme.nc", "", sourceNetcdfFile, false);

    final File testFile = getTestFile("deleteme.nc");
    assertTrue(testFile.exists());
    assertTrue(NetcdfFile.canOpen(testFile.getAbsolutePath()));
    final NetcdfFile netcdfFile = NetcdfFileOpener.open(testFile.getAbsolutePath());
    assertNotNull(netcdfFile.findVariable("SST"));
}
 
Example #10
Source File: DAPDownloaderTest.java    From snap-desktop with GNU General Public License v3.0 5 votes vote down vote up
@Ignore
@Test
public void testActualWriting_WithConstraint() throws Exception {
    final DAPDownloader dapDownloader = new DAPDownloader(null, null, new NullDownloadContext(), new NullLabelledProgressBarPM());
    final DODSNetcdfFile sourceNetcdfFile = new DODSNetcdfFile(
            "http://test.opendap.org:80/opendap/data/nc/coads_climatology.nc");
    dapDownloader.writeNetcdfFile(TESTDATA_DIR, "deleteme.nc", "COADSX[0:1:4]", sourceNetcdfFile, false);

    final File testFile = getTestFile("deleteme.nc");
    assertTrue(testFile.exists());
    assertTrue(NetcdfFile.canOpen(testFile.getAbsolutePath()));
    final NetcdfFile netcdfFile = NetcdfFileOpener.open(testFile.getAbsolutePath());
    assertNull(netcdfFile.findVariable("SST"));
    assertNotNull(netcdfFile.findVariable("COADSX"));
}
 
Example #11
Source File: TestDuplicates.java    From netcdf-java with BSD 3-Clause "New" or "Revised" License 4 votes vote down vote up
@Test
public void testDuplicates() throws Exception {
  // Check if we are running against remote or localhost, or what.
  String testserver = TestDir.dap2TestServer;

  List<Result> results = new ArrayList<Result>();
  if (true) {
    results.add(new Result("Top and field vars have same names", "http://" + testserver + "/dts/structdupname",
        "netcdf dods://" + testserver + "/dts/structdupname {\n" + " variables:\n" + "   int time;\n"
            + "Structure {\n" + "   float time;\n" + "} record;\n" + "}"));
  }
  if (true) {
    results.add(new Result("TestFailure", "http://" + testserver + "/dts/simplestruct", "netcdf dods://" + testserver
        + "/dts/simplestruct {\n" + " variables:\n" + "Structure {\n" + "   int i32;\n" + "} types;\n" + "}"));
  }
  boolean pass = true;
  for (Result result : results) {
    System.out.println("TestDuplicates: " + result.url);
    boolean localpass = true;
    try {
      DODSNetcdfFile ncfile = new DODSNetcdfFile(result.url);
      if (ncfile == null)
        throw new Exception("Cannot read: " + result.url);
      StringWriter ow = new StringWriter();
      PrintWriter pw = new PrintWriter(ow);
      CDLWriter.writeCDL(ncfile, pw, false);
      try {
        pw.close();
        ow.close();
      } catch (IOException ioe) {
      } ;
      StringReader baserdr = new StringReader(result.cdl);
      String captured = ow.toString();
      StringReader resultrdr = new StringReader(captured);
      // Diff the two files
      Diff diff = new Diff("Testing " + result.title);
      localpass = !diff.doDiff(baserdr, resultrdr);
      baserdr.close();
      resultrdr.close();
      // Dump the output for visual comparison
      if (System.getProperty("visual") != null) {
        System.out.println("Testing " + result.title + " visual:");
        System.out.println("---------------");
        System.out.print(captured);
        System.out.println("---------------");
      }
    } catch (IllegalArgumentException e) {
      localpass = false;
    }
    if (!localpass)
      pass = false;
  }
  System.out.flush();
  System.err.flush();
  Assert.assertTrue("Testing " + getTitle(), pass);
}