private String getProductNodeDisplayName() { if (raster != null) { return raster.getDisplayName(); } else { if (product != null) { return product.getDisplayName(); } else { return ""; } } }
private String getRasterDisplayName(RasterDataNode rasterDataNode) { return multipleProducts ? rasterDataNode.getDisplayName() : rasterDataNode.getName(); }
private void quantizeRasterDataFromFile(final double rawMin, final double rawMax, final byte[] samples, final int offset, final int stride, final byte[] gammaCurve, ProgressMonitor pm) throws IOException { processRasterData("Quantizing raster '" + getDisplayName() + "'", new RasterDataProcessor() { @Override public void processRasterDataBuffer(ProductData buffer, int y0, int numLines, ProgressMonitor pm) { int pos = y0 * getRasterWidth() * stride; quantizeRasterData(buffer, rawMin, rawMax, samples, pos + offset, stride, gammaCurve, pm); } }, pm); }
/** * Creates a color indexed product scene for the given product raster. * * @param raster the product raster, must not be null * @param configuration a configuration * @param pm a monitor to inform the user about progress @return a color indexed product scene image */ public ProductSceneImage(RasterDataNode raster, PropertyMap configuration, ProgressMonitor pm) { this(raster.getDisplayName(), new RasterDataNode[]{raster}, configuration); bandImageMultiLevelSource = BandImageMultiLevelSource.create(raster, pm); initRootLayer(); }
private String getDisplayDescription(RasterDataNode rasterDataNode) { final String fullName = multipleProducts ? rasterDataNode.getDisplayName() : rasterDataNode.getName(); final StringBuilder description = new StringBuilder(); description.setLength(0); description.append(fullName); description.append(rasterDataNode.getDescription() == null ? "" : " (" + rasterDataNode.getDescription()); if (rasterDataNode instanceof Band) { if (((Band) rasterDataNode).getSpectralWavelength() > 0.0) { description.append(" ("); description.append(((Band) rasterDataNode).getSpectralWavelength()); description.append(" nm)"); } } description.append(")"); return description.toString(); }
private String createInternalFrameTitle(final RasterDataNode raster) { return UIUtils.getUniqueFrameTitle(VisatApp.getApp().getAllInternalFrames(), raster.getDisplayName()); }
private void updateTitle() { final String suffix; final ProductSceneView view = getSelectedView(); if (view != null) { suffix = " - " + view.getRaster().getDisplayName(); } else { suffix = ""; } getDescriptor().setTitle(prefixTitle + suffix); }
@Override public void nodeChanged(ProductNodeEvent event) { if (event.getSourceNode() == rasterDataNode) { if (RasterDataNode.PROPERTY_NAME_NAME.equals(event.getPropertyName())) { imageLayer.setName(rasterDataNode.getDisplayName()); } else if (imageChangingProperties.contains(event.getPropertyName())) { BandImageMultiLevelSource bandImageSource = (BandImageMultiLevelSource) imageLayer.getMultiLevelSource(); bandImageSource.setImageInfo(rasterDataNode.getImageInfo()); imageLayer.regenerate(); } } }
@Override public void clearStatusBarMessage() { final ProductSceneView sceneView = getSelectedProductSceneView(); if (sceneView == null) { super.clearStatusBarMessage(); return; } final RasterDataNode raster = sceneView.getRaster(); super.setStatusBarMessage(raster.getDisplayName() + " - " + getCSName(raster)); }
/** * Creates a new scene image for an existing view. * * @param raster The product raster. * @param view An existing view. */ public ProductSceneImage(RasterDataNode raster, ProductSceneView view) { this(raster.getDisplayName(), new RasterDataNode[]{raster}, view.getSceneImage().getConfiguration()); bandImageMultiLevelSource = view.getSceneImage().getBandImageMultiLevelSource(); initRootLayer(); }
private void showResults(MaskAreaStatistics areaStatistics) { final double roundFactor = 10000.0; final double maskAreaR = MathUtils.round(areaStatistics.getMaskArea(), roundFactor); final double meanPixelAreaR = MathUtils.round(areaStatistics.getMaskArea() / areaStatistics.getNumPixels(), roundFactor); final double pixelAreaMinR = MathUtils.round(areaStatistics.getPixelAreaMin(), roundFactor); final double pixelAreaMaxR = MathUtils.round(areaStatistics.getPixelAreaMax(), roundFactor); final JPanel content = GridBagUtils.createPanel(); final GridBagConstraints gbc = new GridBagConstraints(); gbc.fill = GridBagConstraints.HORIZONTAL; gbc.anchor = GridBagConstraints.WEST; gbc.insets.right = 4; gbc.gridy = 0; gbc.weightx = 0; gbc.insets.top = 2; addField(content, gbc, "Number of Mask pixels:", String.format("%15d", areaStatistics.getNumPixels()), ""); addField(content, gbc, "Mask area:", String.format("%15.3f", maskAreaR), "km^2"); addField(content, gbc, "Mean pixel area:", String.format("%15.3f", meanPixelAreaR), "km^2"); addField(content, gbc, "Minimum pixel area:", String.format("%15.3f", pixelAreaMinR), "km^2"); addField(content, gbc, "Maximum pixel area:", String.format("%15.3f", pixelAreaMaxR), "km^2"); gbc.insets.top = 8; addField(content, gbc, "Mean earth radius:", String.format("%15.3f", areaStatistics.getEarthRadius()), "km"); final ModalDialog dialog = new ModalDialog(VisatApp.getApp().getMainFrame(), DIALOG_TITLE + " - " + mask.getDisplayName(), content, ModalDialog.ID_OK | ModalDialog.ID_HELP, getHelpId()); dialog.show(); }
private void exchangeRasterInProductSceneView(RasterDataNode nextRaster) { // todo use a real ProgressMonitor final RasterDataNode currentRaster = currentView.getRaster(); final ImageInfo imageInfoClone = currentRaster.getImageInfo(ProgressMonitor.NULL).createDeepCopy(); nextRaster.setImageInfo(imageInfoClone); currentView.setRasters(new RasterDataNode[]{nextRaster}); currentView.setImageInfo(imageInfoClone.createDeepCopy()); VisatApp.getApp().getSelectedInternalFrame().setTitle(nextRaster.getDisplayName()); }
blendLayer.setName(currentView.getRaster().getDisplayName());
@Override public boolean performFinish() { final RasterDataNode rasterDataNode = (RasterDataNode) tree.getSelectionPath().getLastPathComponent(); LayerType type = LayerTypeRegistry.getLayerType(RasterImageLayerType.class.getName()); PropertySet configuration = type.createLayerConfig(getContext().getLayerContext()); configuration.setValue(RasterImageLayerType.PROPERTY_NAME_RASTER, rasterDataNode); configuration.setValue(ImageLayer.PROPERTY_NAME_BORDER_SHOWN, false); configuration.setValue(ImageLayer.PROPERTY_NAME_BORDER_COLOR, ImageLayer.DEFAULT_BORDER_COLOR); configuration.setValue(ImageLayer.PROPERTY_NAME_BORDER_WIDTH, ImageLayer.DEFAULT_BORDER_WIDTH); configuration.setValue(ImageLayer.PROPERTY_NAME_PIXEL_BORDER_SHOWN, false); final ImageLayer imageLayer = (ImageLayer) type.createLayer(getContext().getLayerContext(), configuration); imageLayer.setName(rasterDataNode.getDisplayName()); ProductSceneView sceneView = getContext().getAppContext().getSelectedProductSceneView(); Layer rootLayer = sceneView.getRootLayer(); rootLayer.getChildren().add(sceneView.getFirstImageLayerIndex(), imageLayer); final LayerDataHandler layerDataHandler = new LayerDataHandler(rasterDataNode, imageLayer); rasterDataNode.getProduct().addProductNodeListener(layerDataHandler); rootLayer.addListener(layerDataHandler); return true; }
private void updateMaskForm(ProductSceneView view) { if (view == null) { final ProductNode selectedProductNode = VisatApp.getApp().getSelectedProductNode(); if (selectedProductNode instanceof RasterDataNode) { final RasterDataNode rdn = (RasterDataNode) selectedProductNode; maskForm.reconfigureMaskTable(rdn.getProduct(), rdn); } else if (selectedProductNode instanceof Product) { final Product product = (Product) selectedProductNode; maskForm.reconfigureMaskTable(product, null); } else if (selectedProductNode != null && selectedProductNode.getProduct() != null) { maskForm.reconfigureMaskTable(selectedProductNode.getProduct(), null); } else { maskForm.clearMaskTable(); } updateTitle(selectedProductNode != null ? selectedProductNode.getDisplayName() : null); } else { maskForm.reconfigureMaskTable(view.getProduct(), view.getRaster()); if (view.isRGB()) { updateTitle("RGB"); } else { updateTitle(view.getRaster().getDisplayName()); } } }