public GeoReferencedArray readData(CoverageDataResponse dataResponse, GeoArrayResponse arrayResponse, InputStream is) throws IOException { int sizeIn = NcStream.readVInt(is); // not used ? if (arrayResponse.deflate) { is = new InflaterInputStream(is); float ratio = (sizeIn == 0) ? 0.0f : ((float) arrayResponse.uncompressedSize) / sizeIn; if (showCompression) System.out.printf(" readData data message compress= %d decompress=%d compress=%f%n", sizeIn, arrayResponse.uncompressedSize, ratio); } byte[] datab = new byte[(int) arrayResponse.uncompressedSize]; NcStream.readFully(is, datab); Array data = Array.factory(arrayResponse.dataType, arrayResponse.shape, ByteBuffer.wrap(datab)); CoverageCoordSys csys = dataResponse.findCoordSys( arrayResponse.coordSysName); if (csys == null) throw new IOException("Misformed response - no coordsys"); return new GeoReferencedArray(arrayResponse.coverageName, arrayResponse.dataType, data, csys); }
public GeoReferencedArray decodeGeoReferencedArray(CoverageDataResponse dataResponse, CdmrFeatureProto.GeoReferencedArray parray) { DataType dataType = NcStream.convertDataType(parray.getDataType()); ByteOrder byteOrder = parray.getBigend() ? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN; boolean deflate = parray.getCompress() == NcStreamProto.Compress.DEFLATE; long uncompressedSize = parray.getUncompressedSize(); int[] shape = new int[parray.getShapeCount()]; for (int i=0; i< parray.getShapeCount(); i++) shape[i] = parray.getShape(i); ByteBuffer bb = parray.getPrimdata().asReadOnlyByteBuffer(); bb.order(byteOrder); Array data = Array.factory(dataType, shape, bb); CoverageCoordSys csys = dataResponse.findCoordSys( parray.getCoordSysName()); if (csys == null) throw new IllegalStateException("Misformed response - no coordsys"); return new GeoReferencedArray(parray.getCoverageName(), dataType, data, csys); }
Array data = dataReader.readData2(coordIter, yxRange.get(0), yxRange.get(1)); return new GeoReferencedArray(coverage.getName(), coverage.getDataType(), data, subsetCoordSys);
return new GeoReferencedArray(coverage.getName(), coverage.getDataType(), data, subsetCoordSys); return new GeoReferencedArray(coverage.getName(), coverage.getDataType(), result, subsetCoordSys);