private void prepareTargetBand(int rgbIndex, Band sourceBand, String bandName, int width, int height) { Band targetBand = new Band(bandName, sourceBand.getDataType(), width, height); targetProduct.addBand(targetBand); bandMap.put(targetBand, sourceBand); ProductData data = targetBand.createCompatibleRasterData(); dataMap.put(targetBand, data); targetBand.setRasterData(data); rgbChannelNodes[rgbIndex] = targetBand; }
@Before public void beforeTest() { band = new Band("n", ProductData.TYPE_UINT32, 1, 1); band.setRasterData(band.createCompatibleRasterData()); maxRawValue = Math.pow(2, 32) - 1; minRawValue = 0; }
@Before public void beforeTest() { band = new Band("n", ProductData.TYPE_UINT16, 1, 1); band.setRasterData(band.createCompatibleRasterData()); maxRawValue = Math.pow(2, 16) - 1; minRawValue = 0; }
@Before public void beforeTest() { band = new Band("n", ProductData.TYPE_INT16, 1, 1); band.setRasterData(band.createCompatibleRasterData()); }
@Before public void beforeTest() { band = new Band("n", ProductData.TYPE_FLOAT64, 1, 1); band.setRasterData(band.createCompatibleRasterData()); maxRawValue = Double.MAX_VALUE; minRawValue = -Double.MAX_VALUE; }
@Before public void beforeTest() { band = new Band("n", ProductData.TYPE_INT8, 1, 1); band.setRasterData(band.createCompatibleRasterData()); }
@Before public void beforeTest() { band = new Band("n", ProductData.TYPE_FLOAT32, 1, 1); band.setRasterData(band.createCompatibleRasterData()); maxRawValue = Float.MAX_VALUE; minRawValue = -Float.MAX_VALUE; }
@Before public void beforeTest() { band = new Band("n", ProductData.TYPE_UINT8, 1, 1); band.setRasterData(band.createCompatibleRasterData()); }
@Before public void beforeTest() { band = new Band("n", ProductData.TYPE_INT32, 1, 1); band.setRasterData(band.createCompatibleRasterData()); maxRawValue = Integer.MAX_VALUE; minRawValue = Integer.MIN_VALUE; }
/** * {@inheritDoc} */ @Override public void readRasterDataFully(ProgressMonitor pm) throws IOException { final ProductData rasterData; if (hasRasterData()) { rasterData = getRasterData(); } else { rasterData = createCompatibleRasterData(getRasterWidth(), getRasterHeight()); } readRasterData(0, 0, getSceneRasterWidth(), getSceneRasterHeight(), rasterData, pm); setRasterData(rasterData); }
private Product createSourceProduct() { Product product = new Product("source", "source", 100, 100); Band bandA = product.addBand("a", ProductData.TYPE_INT8); bandA.setRasterData(createDataFor(bandA)); bandA.setSynthetic(true); return product; }
@Test public void testManyTilesTwoBands_ColumnBandOrder() { Product sourceProduct = createSourceProduct(); Band bandB = sourceProduct.addBand("b", ProductData.TYPE_INT8); bandB.setRasterData(createDataFor(bandB)); bandB.setSynthetic(true); sourceProduct.setPreferredTileSize(50, 50); Operator op = new TestOP(sourceProduct); OperatorExecutor operatorExecutor = OperatorExecutor.create(op); operatorExecutor.execute(OperatorExecutor.ExecutionOrder.SCHEDULE_ROW_COLUMN_BAND, ProgressMonitor.NULL); assertEquals(13, recordingTileScheduler.recordedCalls.size()); assertEquals(4, recordingTileScheduler.requestedTileIndices.size()); assertEquals(new Point(0, 0), recordingTileScheduler.requestedTileIndices.get(0)); assertEquals(new Point(1, 0), recordingTileScheduler.requestedTileIndices.get(1)); assertEquals(new Point(0, 1), recordingTileScheduler.requestedTileIndices.get(2)); assertEquals(new Point(1, 1), recordingTileScheduler.requestedTileIndices.get(3)); }
private static Band _createIntegerBand(int type, int i0, double scalingFactor) { Product product = new Product("n", "t", W, H); Band band = product.addBand("x", type); band.setScalingFactor(scalingFactor); ProductData rasterData = band.createCompatibleRasterData(); for (int i = 0; i < N; i++) { rasterData.setElemDoubleAt(i, i0 + i); } band.setRasterData(rasterData); return band; } }
private static Band _createFloatingPointBand(int type, double scalingFactor, boolean dataValueUsed, double noDataValue) { Product product = new Product("n", "t", W, H); Band band = product.addBand("x", type); band.setScalingFactor(scalingFactor); band.setGeophysicalNoDataValue(noDataValue); band.setNoDataValueUsed(dataValueUsed); ProductData rasterData = band.createCompatibleRasterData(); for (int i = 0; i < N; i++) { rasterData.setElemDoubleAt(i, (i + 1) + 0.1); } band.setRasterData(rasterData); return band; }
private void copyBandTo(Product destP, Band sourceBand) { final Band destBand = new Band(sourceBand.getName(), sourceBand.getDataType(), sourceBand.getRasterWidth(), sourceBand.getRasterHeight()); destBand.setRasterData(sourceBand.getData().createDeepClone()); destP.addBand(destBand); }
private Product createProduct() { Product product = new Product("test", "test", PW, PH); TiePointGrid latGrid = new TiePointGrid("latGrid", GW, GH, 0.5f, 0.5f, S, S, createLatGridData()); TiePointGrid lonGrid = new TiePointGrid("lonGrid", GW, GH, 0.5f, 0.5f, S, S, createLonGridData()); product.addTiePointGrid(latGrid); product.addTiePointGrid(lonGrid); Band latBand = product.addBand("latBand", ProductData.TYPE_FLOAT32); Band lonBand = product.addBand("lonBand", ProductData.TYPE_FLOAT32); latBand.setRasterData(ProductData.createInstance(createBandData(latGrid))); lonBand.setRasterData(ProductData.createInstance(createBandData(lonGrid))); product.setGeoCoding(new TiePointGeoCoding(latGrid, lonGrid, Datum.WGS_84)); return product; }
private Product createProduct() { Product product = new Product("test", "test", PW, PH); TiePointGrid latGrid = new TiePointGrid("latGrid", GW, GH, 0.5f, 0.5f, S, S, createLatGridData()); TiePointGrid lonGrid = new TiePointGrid("lonGrid", GW, GH, 0.5f, 0.5f, S, S, createLonGridData()); product.addTiePointGrid(latGrid); product.addTiePointGrid(lonGrid); Band latBand = product.addBand("latBand", ProductData.TYPE_FLOAT32); Band lonBand = product.addBand("lonBand", ProductData.TYPE_FLOAT32); latBand.setRasterData(ProductData.createInstance(createBandData(latGrid))); lonBand.setRasterData(ProductData.createInstance(createBandData(lonGrid))); final FlagCoding flagCoding = new FlagCoding("flags"); flagCoding.addFlag("valid", 0, "valid pixel"); product.getFlagCodingGroup().add(flagCoding); Band flagomatBand = product.addBand("flagomat", ProductData.TYPE_UINT8); flagomatBand.setRasterData(ProductData.createInstance(ProductData.TYPE_UINT8, PW * PH)); flagomatBand.setSampleCoding(flagCoding); product.setGeoCoding(new TiePointGeoCoding(latGrid, lonGrid, Datum.WGS_84)); return product; }
private void createSourceProduct() throws Exception { sourceProduct = new Product("source", "t", 50, 50); final TiePointGrid latGrid = new TiePointGrid("latGrid", 2, 2, 0.5f, 0.5f, 49, 49, LATS); final TiePointGrid lonGrid = new TiePointGrid("lonGrid", 2, 2, 0.5f, 0.5f, 49, 49, LONS); sourceProduct.addTiePointGrid(latGrid); sourceProduct.addTiePointGrid(lonGrid); sourceProduct.setGeoCoding(new TiePointGeoCoding(latGrid, lonGrid)); sourceProduct.setStartTime(ProductData.UTC.parse("02-Jan-2008 10:15:10")); sourceProduct.setEndTime(ProductData.UTC.parse("02-Jan-2008 10:45:50")); Band floatDataBand = sourceProduct.addBand(FLOAT_BAND_NAME, ProductData.TYPE_FLOAT32); floatDataBand.setRasterData(createDataFor(floatDataBand)); floatDataBand.setSynthetic(true); Band intDataBand = sourceProduct.addBand(INT_BAND_NAME, ProductData.TYPE_INT16); intDataBand.setRasterData(createDataFor(intDataBand)); intDataBand.setSynthetic(true); }
@Ignore public void testSetSamplePreventsOverflow() { Product product = new Product("n", "t", 1, 1); Band band = product.addBand("x", ProductData.TYPE_INT8); band.setRasterData(band.createCompatibleRasterData()); double scalingFactor = 2.5; band.setScalingFactor(scalingFactor); Tile scaledTile = createTile(band); int maxRawValue = Byte.MAX_VALUE; double geoPhysicalValueOutOfRawRange = (maxRawValue + 1) * scalingFactor; scaledTile.setSample(0, 0, geoPhysicalValueOutOfRawRange); assertEquals(maxRawValue * scalingFactor, scaledTile.getSampleDouble(0, 0), 1.0e-6); int minRawValue = Byte.MIN_VALUE; geoPhysicalValueOutOfRawRange = (minRawValue - 1) * scalingFactor; scaledTile.setSample(0, 0, geoPhysicalValueOutOfRawRange); assertEquals(minRawValue * scalingFactor, scaledTile.getSampleDouble(0, 0), 1.0e-6); }
public void testDataFromLevelZeroImage() { int[] testData = new int[1024 * 1024]; for (int i = 0; i < testData.length; i++) { testData[i] = i; } ProductData rasterData = ProductData.createInstance(testData); final Band band = new Band("band1", ProductData.TYPE_INT32, 1024, 1024); band.setRasterData(rasterData); final MultiLevelImage sourceImage = band.getSourceImage(); assertEquals(4, sourceImage.getModel().getLevelCount()); final RenderedImage image = sourceImage.getImage(2); assertEquals(256, image.getWidth()); assertEquals(256, image.getHeight()); final Raster dataL2 = image.getData(); final Raster dataL0 = sourceImage.getImage(0).getData(); assertEquals(2050, dataL0.getSample(2, 2, 0)); // (0,0) is (2,2) at level zero assertEquals(2050, dataL2.getSample(0, 0, 0)); // (0,0) is (2,2) at level zero assertEquals(3070, dataL0.getSample(1022, 2, 0)); assertEquals(3070, dataL2.getSample(255, 0, 0)); assertEquals(1047550, dataL0.getSample(1022, 1022, 0)); assertEquals(1047550, dataL2.getSample(255, 255, 0)); }