@Override protected RenderedImage createImage(int level) { return ImageManager.createColoredMaskImage(mask.getSourceImage().getImage(level), mask.getImageColor(), 1.0 - mask.getImageTransparency()); }
variable.addAttribute(COLOR, Array.factory(colorValues)); final double transparency = mask.getImageTransparency(); variable.addAttribute(TRANSPARENCY, transparency); } else if (Mask.RangeType.INSTANCE == mask.getImageType()) {
static Mask createSubset(Mask sourceMask, Scene targetScene, ProductSubsetDef subsetDef) { final Mask targetMask = Mask.BandMathsType.create(sourceMask.getName(), sourceMask.getDescription(), targetScene.getRasterWidth(), targetScene.getRasterHeight(), Mask.BandMathsType.getExpression(sourceMask), sourceMask.getImageColor(), sourceMask.getImageTransparency()); targetMask.setSourceImage(getSourceImage(subsetDef, sourceMask)); return targetMask; }
@Override public Mask transferMask(Mask mask, Product product) { if (canTransferMask(mask, product)) { String expression = getExpression(mask); final Map<Mask, Mask> translationMap = transferReferredMasks(expression, mask.getProduct(), product); expression = translateExpression(translationMap, expression); final String originalMaskName = mask.getName(); final String maskName = getAvailableMaskName(originalMaskName, product.getMaskGroup()); return product.addMask(maskName, expression, mask.getDescription(), mask.getImageColor(), mask.getImageTransparency()); } return null; }
@Test public void testMaskCreation() throws IOException, JDOMException { final DimapPersistable persistable = new BandMathsMaskPersistable(); final InputStream resourceStream = getClass().getResourceAsStream("BandMathMask.xml"); final Document document = new SAXBuilder().build(resourceStream); final Product product = new Product("P", "T", 10, 10); final Mask maskFromXml = (Mask) persistable.createObjectFromXml(document.getRootElement(), product); assertNotNull(maskFromXml); assertEquals(Mask.BandMathsType.class, maskFromXml.getImageType().getClass()); assertEquals("Bibo", maskFromXml.getName()); assertEquals("A big yellow bird is in the pixel.", maskFromXml.getDescription()); assertEquals(0.7, maskFromXml.getImageTransparency(), 0.0); assertEquals(new Color(17, 11, 67), maskFromXml.getImageColor()); assertEquals("false", maskFromXml.getImageConfig().getValue(Mask.BandMathsType.PROPERTY_NAME_EXPRESSION)); }
private static Band createBandCopy(Product targetProduct, Mask mask) { String bandName = getAvaliableBandName("mask_" + mask.getName(), targetProduct); String maskName = getAvailableMaskName(mask.getName(), targetProduct.getMaskGroup()); int dataType = mask.getDataType(); Band band = targetProduct.addBand(bandName, dataType); String description = mask.getDescription() + " (from " + mask.getProduct().getDisplayName() + ")"; targetProduct.addMask(maskName, bandName, description, mask.getImageColor(), mask.getImageTransparency()); return band; }
@Override public Object getValueAt(int rowIndex, int columnIndex) { final ProductNodeGroup<Mask> maskGroup = getMaskGroup(); Mask mask = maskGroup.get(rowIndex); int column = modeIdxs[columnIndex]; if (column == IDX_VISIBILITY) { if (visibleBand.getOverlayMaskGroup().contains(mask)) { return Boolean.TRUE; } else { return Boolean.FALSE; } } else if (column == IDX_NAME) { return mask.getName(); } else if (column == IDX_TYPE) { return mask.getImageType().getName(); } else if (column == IDX_COLOR) { return mask.getImageColor(); } else if (column == IDX_TRANSPARENCY) { return mask.getImageTransparency(); } else if (column == IDX_DESCRIPTION) { return mask.getDescription(); } return null; }
@Test public void testMaskCreation() throws IOException, JDOMException { final DimapPersistable persistable = new TestMaskPersistable(); final InputStream resourceStream = getClass().getResourceAsStream("TestMask.xml"); final Document document = new SAXBuilder().build(resourceStream); final Product product = new Product("P", "T", 10, 10); final Mask maskFromXml = (Mask) persistable.createObjectFromXml(document.getRootElement(), product); assertNotNull(maskFromXml); assertEquals(TestImageType.class, maskFromXml.getImageType().getClass()); assertEquals(10, maskFromXml.getSceneRasterWidth()); assertEquals(10, maskFromXml.getSceneRasterHeight()); assertEquals("Bibo", maskFromXml.getName()); assertEquals("A big yellow bird is in the pixel.", maskFromXml.getDescription()); assertEquals(0.7, maskFromXml.getImageTransparency(), 0.0); assertEquals(new Color(17, 11, 67), maskFromXml.getImageColor()); }
@Test public void createMaskFromXml() throws IOException, JDOMException { final DimapPersistable persistable = new RangeTypeMaskPersistable(); final InputStream resourceStream = getClass().getResourceAsStream("RangeMask.xml"); final Document document = new SAXBuilder().build(resourceStream); final Product product = new Product("P", "T", 10, 10); final Mask maskFromXml = (Mask) persistable.createObjectFromXml(document.getRootElement(), product); assertNotNull(maskFromXml); assertEquals(Mask.RangeType.class, maskFromXml.getImageType().getClass()); assertEquals("myRange", maskFromXml.getName()); assertEquals("Carefully defined range", maskFromXml.getDescription()); assertEquals(0.78, maskFromXml.getImageTransparency(), 0.0); assertEquals(new Color(0, 255, 0, 128), maskFromXml.getImageColor()); assertEquals(0.35, (double)maskFromXml.getImageConfig().getValue(Mask.RangeType.PROPERTY_NAME_MINIMUM), 1.0e-6); assertEquals(0.76, (double)maskFromXml.getImageConfig().getValue(Mask.RangeType.PROPERTY_NAME_MAXIMUM), 1.0e-6); assertEquals("reflectance_13", maskFromXml.getImageConfig().getValue(Mask.RangeType.PROPERTY_NAME_RASTER)); }
@Override public Mask transferMask(Mask mask, Product product) { if (canTransferMask(mask, product)) { final String originalMaskName = mask.getName(); final String maskName = getAvailableMaskName(originalMaskName, product.getMaskGroup()); final int w = product.getSceneRasterWidth(); final int h = product.getSceneRasterHeight(); final Mask newMask = new Mask(maskName, w, h, this); newMask.setDescription(mask.getDescription()); setImageStyle(newMask.getImageConfig(), mask.getImageColor(), mask.getImageTransparency()); setRasterName(newMask, getRasterName(mask)); setMinimum(newMask, getMinimum(mask)); setMaximum(newMask, getMaximum(mask)); product.getMaskGroup().add(newMask); return newMask; } return null; }