@Override public boolean evaluate(BindingContext bindingContext) { return product != null && product.getMaskGroup().getNodeCount() > 0; }
private static boolean productContainsMasks(Product sourceProduct) { for(int k = 0; k < ForestCoverChangeConstants.SENTINEL_MASK_NAMES.length; k++) { Mask sourceMask = sourceProduct.getMaskGroup().get(ForestCoverChangeConstants.SENTINEL_MASK_NAMES[k]); if(sourceMask == null) { return false; } } return true; }
private static void addMaskNameRefs(Product product, String namePrefix, List<String> list) { for (int j = 0; j < product.getMaskGroup().getNodeCount(); j++) { Mask mask = product.getMaskGroup().get(j); list.add(namePrefix + mask.getName()); } }
@Override public boolean evaluate(BindingContext bindingContext) { Boolean propertyValue = bindingContext.getPropertySet().getValue(PROPERTY_NAME_USE_ROI_MASK); if (roiMaskComboBox.getItemCount() > 0 && roiMaskComboBox.getSelectedIndex() < 0) { roiMaskComboBox.setSelectedIndex(0); } return Boolean.TRUE.equals(propertyValue) && product != null && product.getMaskGroup().getNodeCount() > 0; }
private boolean checkGCPValidity(final PixelPos pixelPos) { boolean valid = (pixelPos.x - cHalfWindowWidth + 1 >= 0 && pixelPos.x + cHalfWindowWidth <= sourceImageWidth - 1) && (pixelPos.y - cHalfWindowHeight + 1 >= 0 && pixelPos.y + cHalfWindowHeight <= sourceImageHeight - 1); if (valid && roiVector != null && !roiVector.isEmpty()) { Mask mask = sourceProduct.getMaskGroup().get(roiVector); valid = mask.getSampleInt((int) pixelPos.x, (int) pixelPos.y) != 0; } return valid; }
@Override protected boolean isValidMaskPixel(int x, int y) { boolean isValidMaskPixel = false; for (int k=0; k<this.maskNamesToCombine.length && !isValidMaskPixel; k++) { Mask sourceMask = this.product.getMaskGroup().get(this.maskNamesToCombine[k]); if (sourceMask.getSampleInt(x, y) != ForestCoverChangeConstants.NO_DATA_VALUE) { isValidMaskPixel = true; } } return isValidMaskPixel; } }
@Override public void actionPerformed(ActionEvent e) { if (plotAreaSelectionTool != null) { plotAreaSelectionTool.removeAnnotation(); } Product product = pagePanel.getProduct(); if (product != null) { Mask mask = product.getMaskGroup().get(maskName); if (mask != null) { product.getMaskGroup().remove(mask); } } } });
void updateEnablement() { boolean hasMasks = (product != null && product.getMaskGroup().getNodeCount() > 0); boolean canSelectMasks = hasMasks && useRoiCheckBox.isSelected(); useRoiCheckBox.setEnabled(hasMasks); maskNameSearchField.setEnabled(canSelectMasks); maskNameList.setEnabled(canSelectMasks); selectAllCheckBox.setEnabled(canSelectMasks && maskNameList.getCheckBoxListSelectedIndices().length < maskNameList.getModel().getSize()); selectNoneCheckBox.setEnabled(canSelectMasks && maskNameList.getCheckBoxListSelectedIndices().length > 0); refreshButton.setEnabled(raster != null); }
private void addMaskToProductIfPossible(Mask mask, Product product) throws Exception { if (mask.getImageType().canTransferMask(mask, product)) { product.getMaskGroup().add(mask); } else { throw new Exception(String.format("Cannot add mask '%s' to selected product.", mask.getName())); } } }
private static void reprojectBandData(Mask[] selectedMasks, Product sourceProduct, Product targetProduct) { final Map<String, Object> projParameters = Collections.emptyMap(); Map<String, Product> projProducts = new HashMap<>(); projProducts.put("source", sourceProduct); projProducts.put("collocateWith", targetProduct); Product reprojectedProduct = GPF.createProduct("Reproject", projParameters, projProducts); for (Mask mask : selectedMasks) { Band band = createBandCopy(targetProduct, mask); MultiLevelImage image = reprojectedProduct.getMaskGroup().get(mask.getName()).getSourceImage(); band.setSourceImage(image); } }
private void handleMasklessProduct(Product product) { if (product != null && product.getMaskGroup().getNodeCount() == 0) { try { bindingContext.getPropertySet().getProperty("useRoiMask").setValue(Boolean.FALSE); } catch (ValidationException e) { throw new IllegalStateException("Cannot come here"); } } }
void removeMask(Mask mask) { getProduct().getMaskGroup().remove(mask); fireTableDataChanged(); }
@Override public boolean canResample(Product multiSizeProduct) { //check detector footprint String[] maskNames = multiSizeProduct.getMaskGroup().getNodeNames(); if (S2ResamplerUtils.countMatches(maskNames,"detector_footprint-.*-\\d{2}") <= 0) return false; //todo check metadata //todo check band names //String[] bandNames = multiSizeProduct.getBandNames(); //if ((S2ResamplerUtils.countMatches(bandNames,"view_azimuth_.*") <= 0) || (S2ResamplerUtils.countMatches(bandNames,"view_zenith_.*") <= 0)) // return false; //todo check referencebandName return multiSizeProduct.getProductReader() instanceof S2AnglesGeometry; }
public void addMask(Mask mask, int index) { getProduct().getMaskGroup().add(index, mask); makeMaskVisible(mask); fireTableDataChanged(); }
void addMask(Mask mask) { getProduct().getMaskGroup().add(mask); makeMaskVisible(mask); fireTableDataChanged(); }
@Override public void resultChanged(LookupEvent le) { ProductSceneView sceneView = SnapApp.getDefault().getSelectedProductSceneView(); boolean enabled = false; if (sceneView != null) { Product product = sceneView.getProduct(); enabled = product.getMaskGroup().getNodeCount() > 0; } setEnabled(enabled); }
@Override public void destroy() throws IOException { deleteProductNode(getProductNode().getProduct(), getProductNode().getProduct().getMaskGroup(), getProductNode()); }
private void ensureMaskVisible(ProductSceneView view) { Product product = view.getProduct(); ProductNodeGroup<Mask> overlayMaskGroup = view.getRaster().getOverlayMaskGroup(); Mask mask = overlayMaskGroup.getByDisplayName(MagicWandModel.MAGIC_WAND_MASK_NAME); if (mask == null) { mask = product.getMaskGroup().get(MagicWandModel.MAGIC_WAND_MASK_NAME); if (mask != null) { overlayMaskGroup.add(mask); } } }
protected Mask createNewMask(Mask.ImageType type) { String maskName = getNewMaskName(getMaskForm().getProduct().getMaskGroup()); Dimension maskSize = getMaskForm().getTargetMaskSize(); Mask mask = new Mask(maskName, maskSize.width, maskSize.height, type); Preferences preferences = SnapApp.getDefault().getPreferences(); mask.setImageColor( StringUtils.parseColor(preferences.get("mask.color", StringUtils.formatColor(Mask.ImageType.DEFAULT_COLOR)))); mask.setImageTransparency(preferences.getDouble("mask.transparency", Mask.ImageType.DEFAULT_TRANSPARENCY)); return mask; }
private static Band createBandCopy(Product targetProduct, Mask mask) { String bandName = ProductUtils.getAvailableNodeName("mask_" + mask.getName(), targetProduct.getBandGroup()); String maskName = ProductUtils.getAvailableNodeName(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; }