public static void setVectorData(Mask mask, VectorDataNode vectorDataNode) { mask.getImageConfig().setValue(PROPERTY_NAME_VECTOR_DATA, vectorDataNode); } }
public static void setMinimum(Mask mask, double minimum) { mask.getImageConfig().setValue(PROPERTY_NAME_MINIMUM, minimum); }
public static void setRasterName(Mask mask, String rasterName) { mask.getImageConfig().setValue(PROPERTY_NAME_RASTER, rasterName); }
public static Double getMinimum(Mask mask) { return (Double) mask.getImageConfig().getValue(PROPERTY_NAME_MINIMUM); }
public static Double getMaximum(Mask mask) { return (Double) mask.getImageConfig().getValue(PROPERTY_NAME_MAXIMUM); }
public static void setExpression(Mask mask, String expression) { mask.getImageConfig().setValue(PROPERTY_NAME_EXPRESSION, expression); }
public static void setMaximum(Mask mask, double maximum) { mask.getImageConfig().setValue(PROPERTY_NAME_MAXIMUM, maximum); }
public static VectorDataNode getVectorData(Mask mask) { return (VectorDataNode) mask.getImageConfig().getValue(PROPERTY_NAME_VECTOR_DATA); }
public static String getRasterName(Mask mask) { return (String) mask.getImageConfig().getValue(PROPERTY_NAME_RASTER); }
public static String getExpression(Mask mask) { return (String) mask.getImageConfig().getValue(PROPERTY_NAME_EXPRESSION); }
@Override protected void configureElement(Element root, Mask mask) { root.addContent(createElement(TAG_EXPRESSION, mask.getImageConfig().getValue( Mask.BandMathsType.PROPERTY_NAME_EXPRESSION).toString())); }
@Override protected void configureMask(Mask mask, Element element) { final PropertyContainer imageConfig = mask.getImageConfig(); final String expression = getChildAttributeValue(element, TAG_EXPRESSION, ATTRIB_VALUE); imageConfig.setValue(Mask.BandMathsType.PROPERTY_NAME_EXPRESSION, expression); }
@Override protected void configureElement(Element root, Mask mask) { final PropertyContainer config = mask.getImageConfig(); Object minValue = config.getValue(PROPERTY_NAME_MINIMUM); Object maxValue = config.getValue(PROPERTY_NAME_MAXIMUM); Object rasterValue = config.getValue(PROPERTY_NAME_RASTER); root.addContent(createElement(TAG_MINIMUM, String.valueOf(minValue))); root.addContent(createElement(TAG_MAXIMUM, String.valueOf(maxValue))); root.addContent(createElement(TAG_RASTER, String.valueOf(rasterValue))); } }
@Override public void handleRename(Mask mask, String oldExternalName, String newExternalName) { final Property rasterProperty = mask.getImageConfig().getProperty(PROPERTY_NAME_RASTER); if (rasterProperty.getValue().equals(oldExternalName)) { try { rasterProperty.setValue(newExternalName); } catch (ValidationException e) { throw new IllegalStateException(e); } } super.handleRename(mask, oldExternalName, newExternalName); }
@Override protected void configureMask(Mask mask, Element element) { final PropertyContainer imageConfig = mask.getImageConfig(); final String minimum = getChildAttributeValue(element, TAG_MINIMUM, ATTRIB_VALUE); final String maximum = getChildAttributeValue(element, TAG_MAXIMUM, ATTRIB_VALUE); final String raster = getChildAttributeValue(element, TAG_RASTER, ATTRIB_VALUE); imageConfig.setValue(Mask.RangeType.PROPERTY_NAME_MINIMUM, Double.parseDouble(minimum)); imageConfig.setValue(Mask.RangeType.PROPERTY_NAME_MAXIMUM, Double.parseDouble(maximum)); imageConfig.setValue(Mask.RangeType.PROPERTY_NAME_RASTER, raster); }
private Mask createDummyMask() { Mask mask = new Product("dummy", "type", 10, 10).addMask("maskName", Mask.BandMathsType.INSTANCE); mask.getImageConfig().setValue(Mask.BandMathsType.PROPERTY_NAME_EXPRESSION, "Y <= 1.5"); return mask; }
@Override public void actionPerformed(ActionEvent e) { Mask selectedMask = getMaskForm().getSelectedMask(); final Mask mask = createNewMask(selectedMask.getImageType()); mask.setName("Copy_of_" + selectedMask.getName()); mask.setDescription(selectedMask.getDescription()); PropertyContainer selectedConfig = selectedMask.getImageConfig(); Property[] models = selectedConfig.getProperties(); for (Property model : models) { mask.getImageConfig().setValue(model.getDescriptor().getName(), model.getValue()); } getMaskForm().addMask(mask); }
@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)); }
@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)); }
@Test public void testMask() { Mask.ImageType imageType = new BufferedImageType(); Mask mask = new Mask("WATER", 256, 128, imageType); assertEquals("WATER", mask.getName()); assertEquals(256, mask.getRasterWidth()); assertEquals(128, mask.getRasterHeight()); assertSame(imageType, mask.getImageType()); PropertyContainer imageConfig = mask.getImageConfig(); assertNotNull(imageConfig); assertEquals(Color.RED, mask.getImageConfig().getValue("color")); assertEquals(0.5, (double)mask.getImageConfig().getValue("transparency"), 1.0e-6); MultiLevelImage image = mask.getSourceImage(); assertNotNull(image); assertSame(image, mask.getGeophysicalImage()); assertSame(null, mask.getValidMaskImage()); }