public static ByteString copyArrayToByteString(Array data) { int nbytes = (int) data.getSizeBytes(); if (nbytes < 0) { System.out.printf("copyArrayToByteString neg byte size %d dataType = %d data size %d shape = %s%n", nbytes, data.getDataType().getSize(), data.getSize(), Misc.showInts(data.getShape())); } ByteBuffer bb = ByteBuffer.allocate(nbytes); bb.order(ByteOrder.nativeOrder()); copyArrayToBB(data, false, bb); bb.flip(); return ByteString.copyFrom(bb); }
private void dumpVariableValues(final Variable variable, final String bandName) { try { Array arr = variable.read(); for (int i = 0; i < arr.getSize(); i++) { System.out.println("Sentinel1OCNReader: " + variable.getFullName() + "[" + i + "] = " + arr.getFloat(i)); } } catch (IOException e) { System.out.println("Sentinel1OCNReader: failed to read variable " + variable.getFullName() + " for band " + bandName); } } }
Array convertReference(Array refArray) throws java.io.IOException { int nelems = (int) refArray.getSize(); Index ima = refArray.getIndex(); String[] result = new String[nelems]; for (int i = 0; i < nelems; i++) { long reference = refArray.getLong(ima.set(i)); String name = headerParser.getDataObjectName(reference); result[i] = name != null ? name : Long.toString(reference); if (debugVlen) System.out.printf(" convertReference 0x%x to %s %n", reference, result[i]); } return Array.factory(DataType.STRING, new int[]{nelems}, result); }
Array convertReference(Array refArray) throws java.io.IOException { int nelems = (int) refArray.getSize(); Index ima = refArray.getIndex(); String[] result = new String[nelems]; for (int i = 0; i < nelems; i++) { long reference = refArray.getLong(ima.set(i)); String name = headerParser.getDataObjectName(reference); result[i] = name != null ? name : Long.toString(reference); if (debugVlen) System.out.printf(" convertReference 0x%x to %s %n", reference, result[i]); } return Array.factory(String.class, new int[]{nelems}, result); }
Array convertReference(Array refArray) throws java.io.IOException { int nelems = (int) refArray.getSize(); Index ima = refArray.getIndex(); String[] result = new String[nelems]; for (int i = 0; i < nelems; i++) { long reference = refArray.getLong(ima.set(i)); String name = headerParser.getDataObjectName(reference); result[i] = name != null ? name : Long.toString(reference); if (debugVlen) System.out.printf(" convertReference 0x%x to %s %n", reference, result[i]); } return Array.factory(String.class, new int[]{nelems}, result); }
private void compareVariableData(Variable var1, Variable var2, boolean showCompare, boolean justOne) throws IOException { Array data1 = var1.read(); Array data2 = var2.read(); if (showCompare) f.format(" compareArrays %s unlimited=%s size=%d%n", var1.getNameAndDimensions(), var1.isUnlimited(), data1.getSize()); compareData(var1.getFullName(), data1, data2, justOne); if (showCompare) f.format(" ok%n"); }
private boolean compareVariableData(Variable var1, Variable var2, boolean showCompare, boolean justOne) throws IOException { Array data1 = var1.read(); Array data2 = var2.read(); if (showCompare) f.format(" compareArrays %s unlimited=%s size=%d%n", var1.getNameAndDimensions(), var1.isUnlimited(), data1.getSize()); boolean ok = compareData(var1.getFullName(), data1, data2, justOne); if (showCompare) f.format(" ok=%s%n", ok); return ok; }
private void compareVariableData(Variable var1, Variable var2, boolean showCompare, boolean justOne) throws IOException { Array data1 = var1.read(); Array data2 = var2.read(); if (showCompare) f.format(" compareArrays %s unlimited=%s size=%d%n", var1.getNameAndDimensions(), var1.isUnlimited(), data1.getSize()); compareData(var1.getFullName(), data1, data2, justOne); if (showCompare) f.format(" ok%n"); }
@Override public Array convert(Array array) { final Array convertedArray = Array.factory(DataType.INT, array.getShape()); for (int i = 0; i < convertedArray.getSize(); i++) { convertedArray.setInt(i, (int) (array.getLong(i) >>> 32)); } return convertedArray; } };
private int countMissing(Array data) { int count = 0; while (data.hasNext()) { float val = data.nextFloat(); if (val == N3iosp.NC_FILL_FLOAT) { count++; } } logger.debug(" missing= {}/{}", count, data.getSize()); return count; }
void CheckLongValue( Array a) { assert a.getRank() == 0; assert a.getSize() == 1; assert a.getElementType() == long.class; assert a instanceof ArrayLong.D0; long vall = ((ArrayLong.D0)a).get(); assert (vall == 0); }
void CheckByteValue( Array a) { assert a.getRank() == 0; assert a.getSize() == 1; assert a.getElementType() == byte.class; assert a instanceof ArrayByte.D0; byte valb = ((ArrayByte.D0)a).get(); assert (valb == 0); }
void CheckUInt16Value( Array a) { assert a.getRank() == 0; assert a.getSize() == 1; assert a.getElementType() == short.class; assert a instanceof ArrayShort.D0; int vali = ((ArrayShort.D0)a).get(); assert (vali == 0); }
void CheckDValue( Array a) { assert a.getRank() == 0; assert a.getSize() == 1; assert a.getElementType() == double.class; assert a instanceof ArrayDouble.D0; double vald = ((ArrayDouble.D0)a).get(); assert (vald == 1000.0); }
void CheckInt32Value( Array a) { assert a.getRank() == 0; assert a.getSize() == 1; assert a.getElementType() == int.class; assert a instanceof ArrayInt.D0; int vali = ((ArrayInt.D0)a).get(); assert (vali == 1) : vali; }
void CheckFValue( Array a) { assert a.getRank() == 0; assert a.getSize() == 1; assert a.getElementType() == float.class; assert a instanceof ArrayFloat.D0; float valf = ((ArrayFloat.D0)a).get(); assert (valf == 0.0); }
void CheckByteValue( Array a) { assert a.getRank() == 0; assert a.getSize() == 1; assert a.getElementType() == byte.class; assert a instanceof ArrayByte.D0; byte valb = ((ArrayByte.D0)a).get(); assert (valb == 0); }
@Test public void testNestedAgg() throws IOException, InvalidRangeException, InterruptedException { String filename = "file:./" + TestDir.cdmLocalTestDataDir + "testNested.ncml"; try (NetcdfFile ncfile = NetcdfDataset.openFile(filename, null)) { TestDir.readAllData(ncfile); Variable v = ncfile.findVariable("time"); Array data = v.read(); assert data.getSize() == 59; logger.debug(NCdumpW.toString(data)); } }
@Test public void zeroLenData() throws IOException { try (NetcdfFile ncremote = new CdmRemote(TestOnLocalServer.withHttpPath(urlPath + "/netcdf3/longOffset.nc"))) { Variable v = ncremote.findVariable(null, "time_whole"); Array data = v.read(); assert data.getSize() == 0; } }
static public void testVarMatchesData( Variable v, boolean showStatus) throws IOException { Array data = v.read(); assert data.getSize() == v.getSize(); assert data.getElementType() == v.getDataType().getPrimitiveClassType(); assert data.getRank() == v.getRank(); int[] dataShape = data.getShape(); int[] varShape = v.getShape(); for (int i=0; i<data.getRank(); i++) assert dataShape[i] == varShape[i]; if (showStatus) logger.debug( "**** testReadData done on {}", v.getFullName()); } }