final float[] factors = (float[]) factorData.getElems();
final short[] destArray = (short[]) destBuffer.getElems(); if (!bandInfo.isImaginary) { if (sourceStepX == 1) {
final float[] pattern = ((float[]) patternData.getElems()); if (pattern.length != 804) { throw new OperatorException("Incorret array length for " + patternName);
try { if (this.gdalDataType == gdalconstConstants.GDT_Byte) { byte[] data = (byte[])sourceBuffer.getElems(); result = gdalBand.WriteRaster(sourceOffsetX, sourceOffsetY, sourceWidth, sourceHeight, this.gdalDataType, data); } else if (this.gdalDataType == gdalconstConstants.GDT_Int16) { short[] data = (short[])sourceBuffer.getElems(); result = gdalBand.WriteRaster(sourceOffsetX, sourceOffsetY, sourceWidth, sourceHeight, this.gdalDataType, data); } else if (this.gdalDataType == gdalconstConstants.GDT_UInt16) { short[] data = (short[])sourceBuffer.getElems(); result = gdalBand.WriteRaster(sourceOffsetX, sourceOffsetY, sourceWidth, sourceHeight, this.gdalDataType, data); } else if (this.gdalDataType == gdalconstConstants.GDT_Int32) { int[] data = (int[])sourceBuffer.getElems(); result = gdalBand.WriteRaster(sourceOffsetX, sourceOffsetY, sourceWidth, sourceHeight, this.gdalDataType, data); } else if (this.gdalDataType == gdalconstConstants.GDT_UInt32) { int[] data = (int[])sourceBuffer.getElems(); result = gdalBand.WriteRaster(sourceOffsetX, sourceOffsetY, sourceWidth, sourceHeight, this.gdalDataType, data); } else if (this.gdalDataType == gdalconstConstants.GDT_Float32) { float[] data = (float[])sourceBuffer.getElems(); result = gdalBand.WriteRaster(sourceOffsetX, sourceOffsetY, sourceWidth, sourceHeight, this.gdalDataType, data); } else if (this.gdalDataType == gdalconstConstants.GDT_Float64) { double[] data = (double[])sourceBuffer.getElems(); result = gdalBand.WriteRaster(sourceOffsetX, sourceOffsetY, sourceWidth, sourceHeight, this.gdalDataType, data); } else {
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); } }
private void addShiftFile(final Product product, final String fileName) { try { final File level1ProductDir = getBaseDir(); final File shiftFile = new File(level1ProductDir, "COMMON_AUXRASTER" + File.separator + fileName); if (shiftFile.exists()) { final SunRasterReader sunRasterReader = new SunRasterReader(); final Product shiftProduct = sunRasterReader.readProductNodes(shiftFile, null); final Band band = shiftProduct.getBandAt(0); band.readRasterDataFully(ProgressMonitor.NULL); final int gridWidth = band.getRasterWidth(); final int gridHeight = band.getRasterHeight(); final float subSamplingX = product.getSceneRasterWidth() / (float) (gridWidth - 1); final float subSamplingY = product.getSceneRasterHeight() / (float) (gridHeight - 1); final TiePointGrid azShiftGrid = new TiePointGrid(fileName, gridWidth, gridHeight, 0.5f, 0.5f, subSamplingX, subSamplingY, (float[]) band.getData().getElems()); product.addTiePointGrid(azShiftGrid); } } catch (Exception e) { SystemUtils.LOG.severe("Unable to add " + fileName + " shift file " + e.getMessage()); } }
array = variable.read(origin, shape); System.arraycopy(array.getStorage(), 0, destBuffer.getElems(), y * destWidth, destWidth); pm.worked(1); if (pm.isCanceled()) {
final float[] pattern = ((float[]) patData.getElems());
sampleModel.getSamples(0, 0, w, h, sampleOffset, (int[]) destBuffer.getElems(), dataBuffer);
sampleModel.getSamples(0, 0, w, h, sampleOffset, (int[]) destBuffer.getElems(), dataBuffer);
System.arraycopy(array.getStorage(), 0, destBuffer.getElems(), y * destWidth, destWidth);
copyLine2Of2(srcLine, destLine, sourceStepX); System.arraycopy(destLine, 0, destBuffer.getElems(), currentLineIndex, destWidth);
array = variable.read(origin, shape); System.arraycopy(array.getStorage(), 0, destBuffer.getElems(), y * destWidth, destWidth); pm.worked(1); if (pm.isCanceled()) {
final int dataBufferType = dataBuffer.getDataType(); final int sampleOffset = imageID + bandSampleOffset; final Object dest = destBuffer.getElems();
/** * Get antenna pattern gain array from metadata. */ private void getLUT() { final MetadataElement origProdRoot = AbstractMetadata.getOriginalProductMetadata(sourceProduct); final MetadataElement lutSigmaElem = origProdRoot.getElement(lutsigma); if (lutSigmaElem != null) { offset = lutSigmaElem.getAttributeDouble("offset", 0); final MetadataAttribute gainsAttrib = lutSigmaElem.getAttribute("gains"); if (gainsAttrib != null) { gains = (double[]) gainsAttrib.getData().getElems(); } } else { throw new OperatorException(lutsigma + " not found. Please ensure the look up table " + lutsigma + ".xml is in the same folder as the original product"); } if (gains.length < sourceProduct.getSceneRasterWidth()) { throw new OperatorException("Calibration LUT is smaller than source product width"); } }