private void writeCoordinateData(CoverageCollection subsetDataset, NetcdfFileWriter writer) throws IOException, InvalidRangeException { for (CoverageCoordAxis axis : subsetDataset.getCoordAxes()) { Variable v = writer.findVariable(axis.getName()); if (v != null) { if (show) System.out.printf("CFGridCoverageWriter2 write axis %s%n", v.getNameAndDimensions()); writer.write(v, axis.getCoordsAsArray()); } else { logger.error("CFGridCoverageWriter2 No variable for %s%n", axis.getName()); } if (axis.isInterval()) { Variable vb = writer.findVariable(axis.getName() + BOUNDS); writer.write(vb, axis.getCoordBoundsAsArray()); } } }
Array array = axis.getCoordsAsArray(); boolean isRealType = (array.getDataType() == DataType.DOUBLE) || (array.getDataType() == DataType.FLOAT); IndexIterator iter = array.getIndexIterator();
Assert.assertNotNull("time axis", time); double[] expect = new double[]{0., 6.0, 12.0, 18.0}; double[] have = (double []) time.getCoordsAsArray().get1DJavaArray(DataType.DOUBLE); Assert.assertArrayEquals(expect, have, Misc.defaultMaxRelativeDiffDouble);
Array data = time.getCoordsAsArray(); for (int i = 0; i < expect.length; i++) Assert2.assertNearlyEquals(expect[i], data.getDouble(i));
double[] runtimeValues = new double[]{0.}; CompareNetcdf2 cn = new CompareNetcdf2(); assert cn.compareData("time", reftime.getCoordsAsArray(), Array.makeFromJavaArray(runtimeValues), false); Assert.assertEquals(4, time.getNcoords()); double[] timeValues = new double[]{102.,126.,150,174}; // midpoints assert cn.compareData("time", time.getCoordsAsArray(), Array.makeFromJavaArray(timeValues), false);
double[] want = new double[]{0., 12., 24., 36.}; CompareNetcdf2 cn = new CompareNetcdf2(); assert cn.compareData("time", reftime.getCoordsAsArray(), Array.makeFromJavaArray(want), false);
double[] want = new double[]{3.0, 6.0, 9.0, 12.0, 15.0, 18.0, 21.0, 24.0}; CompareNetcdf2 cn = new CompareNetcdf2(); assert cn.compareData("time", time.getCoordsAsArray(), Array.makeFromJavaArray(want), false);
double[] want = new double[]{0., 12., 24., 36.}; CompareNetcdf2 cn = new CompareNetcdf2(); assert cn.compareData("time", reftime.getCoordsAsArray(), Array.makeFromJavaArray(want), false);
Array data = time.getCoordsAsArray(); for (int i = 0; i < expect.length; i++) Assert2.assertNearlyEquals(expect[i], data.getDouble(i)); data = runtime.getCoordsAsArray(); for (int i = 0; i < expect.length; i++) Assert2.assertNearlyEquals(expect[i], data.getDouble(i));
double[] want = new double[]{3.0, 6.0, 9.0, 12.0, 15.0, 18.0, 21.0, 24.0}; CompareNetcdf2 cn = new CompareNetcdf2(); assert cn.compareData("time", time.getCoordsAsArray(), Array.makeFromJavaArray(want), false);