@Override boolean isDirectChild(ProductNode productNode) { return group.contains(productNode); }
public static String findUniqueVectorDataNodeName(String suggestedName, ProductNodeGroup<VectorDataNode> vectorDataGroup) { String name = suggestedName; int index = 1; while (vectorDataGroup.contains(name)) { name = suggestedName + "_" + index; index++; } return name; }
private static void deleteMaskFromGroup(ProductNodeGroup<Mask> group, Mask mask) { if (group.contains(mask)) { group.remove(mask); } }
private DialogData(ProductNodeGroup<VectorDataNode> vectorGroup) { String defaultPrefix = getDefaultVectorDataNodeName() + "_"; name = defaultPrefix + (numItems++); while (vectorGroup.contains(name)) { name = defaultPrefix + (numItems++); } description = ""; } }
@Override public void validateValue(Property property, Object value) throws ValidationException { String name = (String) value; if (product.getVectorDataGroup().contains(name)) { final String pattern = "A vector data container with name ''{0}'' already exists.\n" + "Please choose another one."; throw new ValidationException(MessageFormat.format(pattern, name)); } } }
private String getNewMaskName(ProductNodeGroup<Mask> maskGroup) { String possibleName = DEFAULT_MASK_NAME_PREFIX + maskGroup.getNodeCount(); for (int i = 0; i <= maskGroup.getNodeCount(); i++) { possibleName = DEFAULT_MASK_NAME_PREFIX + (maskGroup.getNodeCount() + i + 1); if (!maskGroup.contains(possibleName)) { break; } } return possibleName; }
private void addMasks(Product target, ImageMetadata metadata) { ProductNodeGroup<Mask> maskGroup = target.getMaskGroup(); if (!maskGroup.contains(Spot6Constants.NODATA)) { int noDataValue = metadata.getNoDataValue(); maskGroup.add(Mask.BandMathsType.create(Spot6Constants.NODATA, Spot6Constants.NODATA, target.getSceneRasterWidth(), target.getSceneRasterHeight(), String.valueOf(noDataValue), Color.BLACK, 0.5)); } if (!maskGroup.contains(Spot6Constants.SATURATED)) { int saturatedValue = metadata.getSaturatedValue(); maskGroup.add(Mask.BandMathsType.create(Spot6Constants.SATURATED, Spot6Constants.SATURATED, target.getSceneRasterWidth(), target.getSceneRasterHeight(), String.valueOf(saturatedValue), Color.ORANGE, 0.5)); } }
private void addMasks(Product target, ImageMetadata metadata) { ProductNodeGroup<Mask> maskGroup = target.getMaskGroup(); if (!maskGroup.contains(Constants.NODATA)) { int noDataValue = metadata.getNoDataValue(); maskGroup.add(Mask.BandMathsType.create(Constants.NODATA, Constants.NODATA, target.getSceneRasterWidth(), target.getSceneRasterHeight(), String.valueOf(noDataValue), Color.BLACK, 0.5)); } if (!maskGroup.contains(Constants.SATURATED)) { int saturatedValue = metadata.getSaturatedValue(); maskGroup.add(Mask.BandMathsType.create(Constants.SATURATED, Constants.SATURATED, target.getSceneRasterWidth(), target.getSceneRasterHeight(), String.valueOf(saturatedValue), Color.ORANGE, 0.5)); } }
private boolean makePlacemarkNameUnique0(Placemark placemark, Product targetProduct) { ProductNodeGroup<Placemark> placemarkGroup = getPlacemarkGroup(targetProduct); if (placemarkGroup.get(placemark.getName()) == placemark) { return false; } String name0 = placemark.getName(); String name = name0; String label0 = placemark.getLabel(); String label = label0; int id = 1; while (placemarkGroup.contains(name)) { if (placemarkGroup.get(name).getLabel().equals(label)) { label = label0 + "_" + id; } name = name0 + "_" + id; id++; } if (!name0.equals(name)) { placemark.setName(name); if (!label0.equals(label)) { placemark.setLabel(label); } return true; } return false; }
private void addMasks(Product product, SpotDimapMetadata componentMetadata) { logger.info("Create masks"); int noDataValue,saturatedValue; if ((noDataValue = componentMetadata.getNoDataValue()) >= 0 && !product.getMaskGroup().contains(SpotConstants.NODATA_VALUE)) { product.getMaskGroup().add(Mask.BandMathsType.create(SpotConstants.NODATA_VALUE, SpotConstants.NODATA_VALUE, product.getSceneRasterWidth(), product.getSceneRasterHeight(), String.valueOf(noDataValue), componentMetadata.getNoDataColor(), 0.5)); } if ((saturatedValue = componentMetadata.getSaturatedPixelValue()) >= 0 && !product.getMaskGroup().contains(SpotConstants.SATURATED_VALUE)) { product.getMaskGroup().add(Mask.BandMathsType.create(SpotConstants.SATURATED_VALUE, SpotConstants.SATURATED_VALUE, product.getSceneRasterWidth(), product.getSceneRasterHeight(), String.valueOf(saturatedValue), componentMetadata.getSaturatedColor(), 0.5)); } } }
@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; }
private void copyMasks(Product sourceProduct, Product targetProduct, String...bandNames) { if (isSentinelProduct(sourceProduct)) { final ProductNodeGroup<Mask> sourceMaskGroup = sourceProduct.getMaskGroup(); int nodeCount = sourceMaskGroup.getNodeCount(); for (int i = 0; i < nodeCount; i++) { final Mask mask = sourceMaskGroup.get(i); String maskName = mask.getName(); if (!targetProduct.getMaskGroup().contains(maskName) && StringHelper.endsWithIgnoreCase(maskName, bandNames)) { if (mask.getImageType().transferMask(mask, targetProduct) == null) { Mask targetMask = new Mask(maskName, mask.getRasterWidth(), mask.getRasterHeight(), mask.getImageType()); ProductUtils.copyRasterDataNodeProperties(mask, targetMask); targetMask.setSourceImage(mask.getSourceImage()); targetProduct.getMaskGroup().add(targetMask); } } } } else { final ProductNodeGroup<Mask> sourceMaskGroup = sourceProduct.getMaskGroup(); for (int i = 0; i < sourceMaskGroup.getNodeCount(); i++) { final Mask mask = sourceMaskGroup.get(i); if (!targetProduct.getMaskGroup().contains(mask.getName())) { mask.getImageType().transferMask(mask, targetProduct); } } } }
private void copyBands(Product sourceProduct, Product targetProduct) { Guardian.assertNotNull("source", sourceProduct); Guardian.assertNotNull("target", targetProduct); ProductNodeGroup<FlagCoding> targetFCG = targetProduct.getFlagCodingGroup(); for (int iBand = 0; iBand < sourceProduct.getNumBands(); iBand++) { Band sourceBand = sourceProduct.getBandAt(iBand); if (!targetProduct.containsBand(sourceBand.getName())) { Band targetBand = copyBandScl(sourceBand.getName(), sourceProduct, sourceBand.getName(), targetProduct); if (sourceBand.isFlagBand()) { FlagCoding flgCoding = sourceBand.getFlagCoding(); if (!targetFCG.contains(flgCoding.getName())) { ProductUtils.copyFlagCoding(flgCoding, targetProduct); } if (targetBand != null) { targetBand.setSampleCoding(targetFCG.get(flgCoding.getName())); } } } } }
@Override public void areaSelected(PlotAreaSelectionTool.AreaType areaType, Shape shape) { Product product = pagePanel.getProduct(); final RasterDataNode raster = pagePanel.getRaster(); if (product == null || raster == null) { return; } String expression = createMaskExpression(areaType, shape); Mask mask = product.getMaskGroup().get(maskName); if (mask != null) { if (!mask.getRasterSize().equals(raster.getRasterSize())) { // if sizes are different we need to remove the mask first and add it as new one product.getMaskGroup().remove(mask); mask = addMask(product, raster, expression); } else { mask.getImageConfig().setValue("expression", expression); } } else { mask = addMask(product, raster, expression); } ProductNodeGroup<Mask> overlayMaskGroup = raster.getOverlayMaskGroup(); if (!overlayMaskGroup.contains(mask)) { overlayMaskGroup.add(mask); } }
final ProductNodeGroup<Mask> overlayMaskGroup = visibleBand.getOverlayMaskGroup(); if (visible) { if (!overlayMaskGroup.contains(mask)) { overlayMaskGroup.add(mask);