private static void appendSpectrumBandNames(List<String> bandNames, boolean normalize, StringBuilder arguments) { String firstName = BandArithmetic.createExternalName(bandNames.get(0)); for (int i = 0; i < bandNames.size(); i++) { if (i > 0) { arguments.append(","); } String name = BandArithmetic.createExternalName(bandNames.get(i)); if (normalize) { arguments.append(name).append("/").append(firstName); } else { arguments.append(name); } } }
protected String createMaskExpression(double x0, double y0, double dx, double dy) { return String.format("sqrt(sqr((%s - %s)/%s) + sqr((%s - %s)/%s)) < 1.0", BandArithmetic.createExternalName(dataSourceConfig.xBand.getName()), x0, dx, BandArithmetic.createExternalName(dataSourceConfig.yBand.getName()), y0, dy); } };
String createCodeFromSelection(String op, Mask[] selectedMasks, int selectionOffset) { StringBuilder code = new StringBuilder(); for (int i = selectionOffset; i < selectedMasks.length; i++) { Mask mask = selectedMasks[i]; if (code.length() > 0) { code.append(" "); code.append(op); code.append(" "); } code.append(BandArithmetic.createExternalName(mask.getName())); } return code.toString(); }
protected String createMaskExpression(double x1, double x2) { String bandName = BandArithmetic.createExternalName(getRaster().getName()); return String.format("%s >= %s && %s <= %s", bandName, x1, bandName, x2); } };
protected String createMaskExpression(double x1, double x2) { String bandName = BandArithmetic.createExternalName(getRaster().getName()); return String.format("%s >= %s && %s <= %s", bandName, x1, bandName, x2); } };
@Override String getCode(ActionEvent e) { Mask[] selectedMasks = getMaskForm().getSelectedMasks(); StringBuilder code = new StringBuilder(); code.append(BandArithmetic.createExternalName(selectedMasks[0].getName())); if (selectedMasks.length > 1) { code.append(" && !("); code.append(createCodeFromSelection("||", selectedMasks, 1)); code.append(")"); } return code.toString(); }
@Override String getCode(ActionEvent e) { Mask[] selectedMasks = getMaskForm().getSelectedMasks(); final List<Mask> reverseList = new ArrayList<Mask>(Arrays.asList(selectedMasks)); Collections.reverse(reverseList); selectedMasks = reverseList.toArray(new Mask[selectedMasks.length]); StringBuilder code = new StringBuilder(); code.append(BandArithmetic.createExternalName(selectedMasks[0].getName())); if (selectedMasks.length > 1) { code.append(" && !("); code.append(createCodeFromSelection("||", selectedMasks, 1)); code.append(")"); } return code.toString(); }
/** * Invoked when the mouse has been clicked on a component. */ @Override public void mouseClicked(MouseEvent e) { final int index = patternList.locationToIndex(e.getPoint()); if (index >= 0) { final String value = (String) patternList.getModel().getElementAt(index); final String pattern = BandArithmetic.createExternalName(value); insertCodePattern(pattern); patternList.clearSelection(); } } });
private void updateExpressionToRenamedNode(ProductNode renamedNode, String oldName) { final Product[] products = getProducts(); final String oldExternName = BandArithmetic.createExternalName(oldName); final String newExternName = BandArithmetic.createExternalName(renamedNode.getName()); for (Product product : products) { if (product != renamedNode.getProduct()) { product.acceptVisitor(new ExpressionUpdaterVisitor(oldExternName, newExternName)); } } }
private String createValidMaskExpressionForNoDataValue() { final String ref = BandArithmetic.createExternalName(getName()); final double noDataValue = getGeophysicalNoDataValue(); if (Double.isNaN(noDataValue)) { return "!nan(" + ref + ")"; } else if (Double.isInfinite(noDataValue)) { return "!inf(" + ref + ")"; } else { if (ProductData.isIntType(getDataType())) { double rawNoDataValue = getNoDataValue(); String rawSymbol = getName() + ".raw"; String extName = BandArithmetic.createExternalName(rawSymbol); return extName + " != " + rawNoDataValue; } else { return "fneq(" + ref + "," + noDataValue + ")"; } } }
final String newName = event.getSourceNode().getName(); final String oldExternName = BandArithmetic.createExternalName(oldName); final String newExternName = BandArithmetic.createExternalName(newName);
private static String getExpression(RasterDataNode raster) { final Product product = raster.getProduct(); if (product != null) { if (product.containsBand(raster.getName())) { return BandArithmetic.createExternalName(raster.getName()); } else { if (raster instanceof VirtualBand) { return ((VirtualBand) raster).getExpression(); } } } return null; }
protected String createMaskExpression(double x1, double x2) { String bandName = BandArithmetic.createExternalName(getRaster().getName()); HistogramPanelModel.HistogramConfig currentConfig = createHistogramConfig(); return String.format("%s >= %s && %s <= %s", bandName, model.hasStx(currentConfig) ? model.getStx(currentConfig).getHistogramScaling().scaleInverse(x1) : x1, bandName, model.hasStx(currentConfig) ? model.getStx(currentConfig).getHistogramScaling().scaleInverse(x2) : x2); } };
private void copyMasks(Product sourceProduct, boolean rename, String pattern) { ProductNodeGroup<Mask> maskGroup = sourceProduct.getMaskGroup(); final Mask[] masks = maskGroup.toArray(new Mask[maskGroup.getNodeCount()]); for (Mask mask : masks) { Mask.ImageType imageType = mask.getImageType(); final Mask newmask = new Mask(mask.getName(), targetProduct.getSceneRasterWidth(), targetProduct.getSceneRasterHeight(), imageType); newmask.setDescription(mask.getDescription()); for (Property property : mask.getImageConfig().getProperties()) { newmask.getImageConfig().setValue(property.getDescriptor().getName(), property.getValue()); } if (rename) { newmask.setName(pattern.replace(SOURCE_NAME_REFERENCE, mask.getName())); for (final Band targetBand : targetProduct.getBands()) { RasterDataNode srcRDN = sourceRasterMap.get(targetBand); if (srcRDN != null) { newmask.updateExpression( BandArithmetic.createExternalName(srcRDN.getName()), BandArithmetic.createExternalName(targetBand.getName())); } } } targetProduct.getMaskGroup().add(newmask); } }
if (sourceRaster.getProduct() == slaveProduct) { targetBandOuter.updateExpression( BandArithmetic.createExternalName(sourceRaster.getName()), BandArithmetic.createExternalName(targetBandInner.getName()));