band.getRasterHeight(), expression); virtBand.setUnit(unit); virtBand.setDescription(band.getDescription()); virtBand.setNoDataValueUsed(true);
trgBand.getRasterHeight(), expression); band.setUnit(trgBand.getUnit()); band.setDescription(description); band.setNoDataValueUsed(true);
trgBand.getRasterHeight(), expression); band.setUnit(unit); band.setDescription("Beta0 image"); trgProduct.addBand(band);
trgBand.getRasterHeight(), expression); band.setUnit(unit); band.setDescription("Gamma0 image"); trgProduct.addBand(band);
/** * Create Beta0 image as a virtual band. */ public static void createBetaNoughtVirtualBand(final Product targetProduct) { final Band[] bands = targetProduct.getBands(); for (Band trgBand : bands) { final String trgBandName = trgBand.getName(); if (trgBand instanceof VirtualBand || !trgBandName.contains("Sigma0")) { continue; } final String expression = trgBandName + "==" + trgBand.getNoDataValue() + '?' + trgBand.getNoDataValue() + ':' + trgBandName + " / sin(projectedLocalIncidenceAngle * PI/180.0)"; String betaNoughtVirtualBandName = trgBandName.replace("Sigma0", "Beta0"); final VirtualBand band = new VirtualBand(betaNoughtVirtualBandName, ProductData.TYPE_FLOAT32, trgBand.getRasterWidth(), trgBand.getRasterHeight(), expression); band.setUnit(trgBand.getUnit()); band.setDescription("Beta0 image"); band.setNoDataValueUsed(true); targetProduct.addBand(band); } } }
public static void createVirtualIntensityBand(final Product product, final Band band, final String countStr) { final String expression = band.getName() + " * " + band.getName(); final VirtualBand virtBand = new VirtualBand("Intensity" + countStr, ProductData.TYPE_FLOAT32, band.getRasterWidth(), band.getRasterHeight(), expression); virtBand.setUnit(Unit.INTENSITY); virtBand.setDescription("Intensity from complex data"); virtBand.setNoDataValueUsed(true); product.addBand(virtBand); }
trgBand.getRasterHeight(), expression); band.setUnit(trgBand.getUnit()); band.setDescription(description); band.setNoDataValueUsed(true);
public static void convert(final Product product, final String iBandName, final String qBandName, final String phaseBandName) { final Band iBand = product.getBand(iBandName); final String expression = "atan2(" + qBandName + ',' + iBandName + ')'; final VirtualBand virtBand = new VirtualBand(phaseBandName, ProductData.TYPE_FLOAT32, iBand.getRasterWidth(), iBand.getRasterHeight(), expression); virtBand.setUnit(Unit.PHASE); virtBand.setDescription("Phase from complex data"); virtBand.setNoDataValueUsed(true); virtBand.setOwner(product); product.addBand(virtBand); }
public static void convert(final Product product, final String iBandName, final String qBandName, final String targetBandName) { final Band iBand = product.getBand(iBandName); final String expression = iBandName + " * " + iBandName + " + " + qBandName + " * " + qBandName; final VirtualBand virtBand = new VirtualBand(targetBandName, ProductData.TYPE_FLOAT32, iBand.getRasterWidth(), iBand.getRasterHeight(), expression); virtBand.setUnit(Unit.INTENSITY); virtBand.setDescription("Intensity from complex data"); virtBand.setNoDataValueUsed(true); virtBand.setOwner(product); product.addBand(virtBand); }
srcBand.getRasterHeight(), expression); virtBand.setUnit(srcBand.getUnit()); virtBand.setDescription(srcBand.getDescription()); virtBand.setNoDataValue(srcBand.getNoDataValue());
sourceProduct.getSceneRasterHeight(), expression); band.setUnit(unit); band.setDescription("Mean image"); sourceProduct.addBand(band);
private void addVirtualBand(final String operation, final String name_prefix, final String expression, final String unit, final double nodatavalue) { final VirtualBand virtBand = new VirtualBand(name_prefix, ProductData.TYPE_FLOAT32, sourceProduct.getSceneRasterWidth(), sourceProduct.getSceneRasterHeight(), expression); virtBand.setUnit(unit); virtBand.setDescription(name_prefix + ' ' + operation + ' ' + unit); virtBand.setNoDataValueUsed(true); virtBand.setNoDataValue(nodatavalue); final Band srcBand = sourceProduct.getBand(virtBand.getName()); if (srcBand != null) { sourceProduct.removeBand(srcBand); } sourceProduct.addBand(virtBand); ProductUtils.copyBand(name_prefix, sourceProduct, targetProduct, true); }
public static void convert(final Product product, final Band band, final boolean toAmplitude) { String bandName = band.getName(); String unit; String expression; if (toAmplitude) { expression = "sqrt(" + bandName + ')'; bandName = replaceName(bandName, "Intensity", "Amplitude"); unit = Unit.AMPLITUDE; } else { expression = bandName + " * " + bandName; bandName = replaceName(bandName, "Amplitude", "Intensity"); unit = Unit.INTENSITY; } final VirtualBand virtBand = new VirtualBand(bandName, ProductData.TYPE_FLOAT32, band.getRasterWidth(), band.getRasterHeight(), expression); virtBand.setUnit(unit); virtBand.setDescription(band.getDescription()); virtBand.setNoDataValueUsed(true); product.addBand(virtBand); }
private static void applyScaling(final Product product, final Band band, final double gain, final double bias, final double exp, final boolean isLog) { final String bandName = band.getName(); final String unit = band.getUnit(); String expression = gain + " * " + bandName + " + " + bias; String targetName = bandName + "_Scaled"; int cnt = 0; while (product.getBand(targetName) != null) { ++cnt; targetName = bandName + "_Scaled" + cnt; } if (exp != 1) { expression = "pow( " + expression + ", " + exp + " )"; } if (isLog) { expression = bandName + "==0 ? 0 : " + "log10( " + expression + " )"; } final VirtualBand virtBand = new VirtualBand(targetName, ProductData.TYPE_FLOAT32, band.getRasterWidth(), band.getRasterHeight(), expression); virtBand.setUnit(unit); virtBand.setDescription(band.getDescription()); virtBand.setNoDataValueUsed(true); product.addBand(virtBand); }
@Override protected void onOK() { String uncertaintyExpression = targetExprArea.getText(); Product targetProduct = sourceBand.getProduct(); int width = sourceBand.getRasterWidth(); int height = sourceBand.getRasterHeight(); ProductNodeGroup<Band> bandGroup = targetProduct.getBandGroup(); VirtualBand uncertaintyBand = new VirtualBand(getBandName(), ProductData.TYPE_FLOAT32, width, height, uncertaintyExpression); uncertaintyBand.setDescription("Uncertainty propagated from band " + sourceBand.getName() + " = " + sourceBand.getExpression()); uncertaintyBand.setUnit(sourceBand.getUnit()); uncertaintyBand.setNoDataValue(Double.NaN); uncertaintyBand.setNoDataValueUsed(true); uncertaintyBand.setValidPixelExpression(sourceBand.getValidPixelExpression()); ProductUtils.copySpectralBandProperties(sourceBand, uncertaintyBand); bandGroup.add(uncertaintyBand); sourceBand.addAncillaryVariable(uncertaintyBand, relation); UndoRedo.Manager undoManager = SnapApp.getDefault().getUndoManager(targetProduct); if (undoManager != null) { undoManager.addEdit(new UndoableProductNodeInsertion<>(bandGroup, uncertaintyBand)); } hide(); uncertaintyBand.setModified(true); if (SnapApp.getDefault().getPreferences().getBoolean(BandMathsDialog.PREF_KEY_AUTO_SHOW_NEW_BANDS, true)) { OpenImageViewAction.openImageView(uncertaintyBand); } }