static int[] readRasterBandasIntArray(Raster raster, int bandIndex) { if (raster == null || bandIndex < 0 || bandIndex >= raster.getNumBands()) { throw new IllegalArgumentException("Raster not of int type or invalid band index"); } int width = raster.getWidth(); int height = raster.getHeight(); //IntBuffer buffer = IntBuffer.allocate(width * height); SampleModel sampleModel = raster.getSampleModel(); DataBuffer dataBuffer = raster.getDataBuffer(); /*for (int y = 0; y < height; y++) { buffer.put(sampleModel.getSamples(0, y, width, 1, bandIndex, (int[])null, dataBuffer)); } return buffer.array();*/ return sampleModel.getSamples(0, 0, width, height, bandIndex, (int[])null, dataBuffer); }
if (dest instanceof int[] && (dataBufferType == DataBuffer.TYPE_USHORT || dataBufferType == DataBuffer.TYPE_SHORT || dataBufferType == DataBuffer.TYPE_INT)) { sampleModel.getSamples(0, 0, destWidth, destHeight, sampleOffset, (int[]) dest, dataBuffer); } else if (dataBufferType == DataBuffer.TYPE_FLOAT && dest instanceof float[]) { sampleModel.getSamples(0, 0, destWidth, destHeight, sampleOffset, (float[]) dest, dataBuffer); } else if (dataBufferType == DataBuffer.TYPE_DOUBLE && dest instanceof double[]) { sampleModel.getSamples(0, 0, destWidth, destHeight, sampleOffset, (double[]) dest, dataBuffer); } else { final double[] dArray = new double[destWidth * destHeight]; sampleModel.getSamples(0, 0, data.getWidth(), data.getHeight(), sampleOffset, dArray, dataBuffer); try { final double[] dArray = new double[destWidth * destHeight]; sampleModel.getSamples(0, 0, data.getWidth(), data.getHeight(), sampleOffset, dArray, dataBuffer);
public void readRasterBand(final int sourceOffsetX, final int sourceOffsetY, final int sourceStepX, final int sourceStepY, final ProductData destBuffer, final int destOffsetX, final int destOffsetY, final int destWidth, final int destHeight, final int imageID, final ImageIOFile img, final int bandSampleOffset) throws IOException { final Raster data; synchronized (dataDir) { final ImageReader reader = img.getReader(); final ImageReadParam param = reader.getDefaultReadParam(); param.setSourceSubsampling(sourceStepX, sourceStepY, sourceOffsetX % sourceStepX, sourceOffsetY % sourceStepY); final RenderedImage image = reader.readAsRenderedImage(0, param); data = image.getData(new Rectangle(destOffsetX, destOffsetY, destWidth, destHeight)); } final int w = data.getWidth(); final int h = data.getHeight(); final DataBuffer dataBuffer = data.getDataBuffer(); final SampleModel sampleModel = data.getSampleModel(); final int sampleOffset = imageID + bandSampleOffset; sampleModel.getSamples(0, 0, w, h, sampleOffset, (float[]) destBuffer.getElems(), dataBuffer); } }
if (flipToSARGeometry && isAntennaPointingRight) { // flip the image left to right final float[] dArray = new float[dataBuffer.getSize()]; sampleModel.getSamples(0, 0, w, h, sampleOffset, dArray, dataBuffer); sampleModel.getSamples(0, 0, w, h, sampleOffset, (float[]) destBuffer.getElems(), dataBuffer); sampleModel.getSamples(0, 0, w, h, sampleOffset, dArray, dataBuffer); sampleModel.getSamples(0, 0, w, h, sampleOffset, (int[]) destBuffer.getElems(), dataBuffer);
boolean isIntegerTarget = destBuffer.getElems() instanceof int[]; if (isInteger && isIntegerTarget) { sampleModel.getSamples(0, 0, data.getWidth(), data.getHeight(), bandIdx, (int[]) destBuffer.getElems(), dataBuffer); } else if (dataBufferType == DataBuffer.TYPE_FLOAT && destBuffer.getElems() instanceof float[]) { sampleModel.getSamples(0, 0, data.getWidth(), data.getHeight(), bandIdx, (float[]) destBuffer.getElems(), dataBuffer); } else { final double[] dArray = new double[destSize]; sampleModel.getSamples(0, 0, data.getWidth(), data.getHeight(), bandIdx, dArray, dataBuffer);
boolean isIntegerTarget = destBuffer.getElems() instanceof int[]; if (isInteger && isIntegerTarget) { sampleModel.getSamples(0, 0, data.getWidth(), data.getHeight(), bandIdx, (int[]) destBuffer.getElems(), dataBuffer); } else if (dataBufferType == DataBuffer.TYPE_FLOAT && destBuffer.getElems() instanceof float[]) { sampleModel.getSamples(0, 0, data.getWidth(), data.getHeight(), bandIdx, (float[]) destBuffer.getElems(), dataBuffer); } else { final double[] dArray = new double[destSize]; sampleModel.getSamples(0, 0, data.getWidth(), data.getHeight(), bandIdx, dArray, dataBuffer);
if (flipToSARGeometry && isAntennaPointingRight) { // flip the image left to right final float[] dArray = new float[dataBuffer.getSize()]; sampleModel.getSamples(0, 0, w, h, sampleOffset, dArray, dataBuffer); sampleModel.getSamples(0, 0, w, h, sampleOffset, (float[]) destBuffer.getElems(), dataBuffer); sampleModel.getSamples(0, 0, w, h, sampleOffset, dArray, dataBuffer); sampleModel.getSamples(0, 0, w, h, sampleOffset, (int[]) destBuffer.getElems(), dataBuffer);
sampleModel.getSamples(0, 0, w, h, sampleOffset, dArray, dataBuffer);
final SampleModel sampleModelLeft = dataLeft.getSampleModel(); final SampleModel sampleModelRight = dataRight.getSampleModel(); sampleModelLeft.getSamples(0, 0, dataLeft.getWidth(), dataLeft.getHeight(), bandIdx, dArrayLeft, dataBufferLeft); sampleModelRight.getSamples(0, 0, dataRight.getWidth(), dataRight.getHeight(), bandIdx, dArrayRight, dataBufferRight); pm.worked(1);
final SampleModel sampleModelLeft = dataLeft.getSampleModel(); final SampleModel sampleModelRight = dataRight.getSampleModel(); sampleModelLeft.getSamples(0, 0, dataLeft.getWidth(), dataLeft.getHeight(), bandIdx, dArrayLeft, dataBufferLeft); sampleModelRight.getSamples(0, 0, dataRight.getWidth(), dataRight.getHeight(), bandIdx, dArrayRight, dataBufferRight); pm.worked(1);
sampleModel.getSamples(0, 0, w, h, sampleOffset, dArray, dataBuffer);
sampleModel.getSamples(0, 0, destWidth, destHeight, bandInfo.bandSampleOffset, srcArray, data.getDataBuffer());
sampleModel.getSamples(0, 0, w, h, imageID + bandSampleOffset, dArray, dataBuffer); sampleModel.getSamples(0, 0, w, h, sampleOffset, (int[]) destBuffer.getElems(), dataBuffer);
sampleModel.getSamples(0, 0, w, h, imageID + bandSampleOffset, dArray, dataBuffer); sampleModel.getSamples(0, 0, w, h, sampleOffset, (int[]) destBuffer.getElems(), dataBuffer);