public void testEnhanceDefer() throws IOException { NetcdfDataset ncd = NetcdfDataset.openDataset( filename, EnumSet.of(NetcdfDataset.Enhance.ScaleMissing), -1, null, null); VariableDS enhancedVar = (VariableDS) ncd.findVariable("t1"); NetcdfDataset ncdefer = NetcdfDataset.openDataset( filename, EnumSet.of(NetcdfDataset.Enhance.ScaleMissingDefer), -1, null, null); VariableDS deferVar = (VariableDS) ncdefer.findVariable("t1"); Array data = enhancedVar.read(); Array dataDefer = deferVar.read(); System.out.printf("Enhanced="); NCdumpW.printArray(data); System.out.printf("%nDeferred="); NCdumpW.printArray(dataDefer); System.out.printf("%nProcessed="); CompareNetcdf2 nc = new CompareNetcdf2(new Formatter(System.out), false, false, true); assert !nc.compareData(enhancedVar.getShortName(), data, dataDefer, false); IndexIterator ii = dataDefer.getIndexIterator(); while (ii.hasNext()) { double val = deferVar.convertScaleOffsetMissing(ii.getDoubleNext()); ii.setDoubleCurrent(val); } NCdumpW.printArray(dataDefer); assert nc.compareData(enhancedVar.getShortName(), data, dataDefer, false); ncd.close(); ncdefer.close(); }
public void testReadStandardVar() throws Exception { ncfileRead = NetcdfFile.open(filename); dsRead = NetcdfDataset.openDataset(filename); readDouble(); readByte2Short(); readByte(); readShortMissing(); readShort2FloatMissing(); readDoubleMissing(); ncfileRead.close(); dsRead.close(); }
private Projection test(String filename, String ctvName, String varName, Class projClass) throws IOException, InvalidRangeException { System.out.printf("Open= %s%n", filename); NetcdfDataset ncd = ucar.nc2.dataset.NetcdfDataset.openDataset(filename); Variable ctv = null; if (ctvName != null) { ctv = ncd.findVariable(ctvName); assert ctv != null; System.out.println(" dump of ctv = \n" + ctv); } VariableDS v = (VariableDS) ncd.findVariable(varName); assert v != null; List<CoordinateSystem> cList = v.getCoordinateSystems(); assert cList != null; assert cList.size() == 1; CoordinateSystem csys = cList.get(0); List<CoordinateTransform> pList = new ArrayList<CoordinateTransform>(); List<CoordinateTransform> tList = csys.getCoordinateTransforms(); assert tList != null; for (int i = 0; i < tList.size(); i++) { CoordinateTransform ct = tList.get(i); if (ct.getTransformType() == TransformType.Projection) pList.add(ct); } assert pList.size() == 1; CoordinateTransform ct = pList.get(0); assert ct.getTransformType() == TransformType.Projection; assert ct instanceof ProjectionCT; ProjectionCT vct = (ProjectionCT) ct; Projection proj = vct.getProjection(); assert proj != null; assert projClass.isInstance(proj) : proj.getClass().getName(); VariableDS ctvSyn = CoordTransBuilder.makeDummyTransformVariable(ncd, ct); System.out.println(" dump of equivilent ctv = \n" + ctvSyn); if (ctv != null) { Formatter f = new Formatter(System.out); CompareNetcdf.checkContains(ctv.getAttributes(), ctvSyn.getAttributes(), f); } ncd.close(); return proj; }