@Override public String getValue() { return String.format("%d x %d", raster.getRasterWidth(), raster.getRasterHeight()); } }
private boolean isSampleValueAvailableInRaster() { return levelZeroRasterX >= 0 && levelZeroRasterY >= 0 && levelZeroRasterX < currentRaster.getRasterWidth() && levelZeroRasterY < currentRaster.getRasterHeight(); }
private static Dimension getFinalImageSize(RasterDataNode raster) { int width; int height; double ratio = raster.getRasterWidth() / (double) raster.getRasterHeight(); if (ratio >= 1.0) { width = Math.min(1280, raster.getRasterWidth()); height = (int) Math.round(width / ratio); } else { height = Math.min(1280, raster.getRasterHeight()); width = (int) Math.round(height * ratio); } return new Dimension(width, height); } }
private static int determineHeight(String expression, Product[] products, int index) { int height = products[index].getSceneRasterHeight(); try { final RasterDataNode[] refRasters = BandArithmetic.getRefRasters(expression, products, index); if (refRasters.length > 0) { height = refRasters[0].getRasterHeight(); } } catch (ParseException e) { throw new IllegalArgumentException("Invalid expression: " + expression); } return height; }
private String getKey(RasterDataNode rasterDataNode) { return rasterDataNode.getGeoCoding().toString() + " " + rasterDataNode.getRasterWidth() + " " + rasterDataNode.getRasterHeight(); }
private void updateTargetResolutionTargetWidthAndHeight() { final Product selectedProduct = ioParametersPanel.getSourceProductSelectorList().get(0).getSelectedProduct(); final RasterDataNode node = getAnyRasterDataNode(selectedProduct); int targetWidth = 0; int targetHeight = 0; if (node != null) { final int resolution = Integer.parseInt(resolutionSpinner.getValue().toString()); final double nodeResolution = node.getImageToModelTransform().getScaleX(); targetWidth = (int) (node.getRasterWidth() * (nodeResolution / resolution)); targetHeight = (int) (node.getRasterHeight() * (nodeResolution / resolution)); } targetResolutionTargetWidthLabel.setText("" + targetWidth); targetResolutionTargetHeightLabel.setText("" + targetHeight); }
private void updateTargetResolutionTargetWidthAndHeight() { if (hasSourceProducts()) { final Product selectedProduct = sourceProducts[0]; final RasterDataNode node = getAnyRasterDataNode(selectedProduct); int targetWidth = 0; int targetHeight = 0; if (node != null) { final int resolution = Integer.parseInt(resolutionSpinner.getValue().toString()); final double nodeResolution = node.getImageToModelTransform().getScaleX(); targetWidth = (int) (node.getRasterWidth() * (nodeResolution / resolution)); targetHeight = (int) (node.getRasterHeight() * (nodeResolution / resolution)); } targetResolutionTargetWidthLabel.setText("" + targetWidth); targetResolutionTargetHeightLabel.setText("" + targetHeight); } }
Dimension getTargetMaskSize() { RasterDataNode raster = getRaster(); if (raster != null) { return new Dimension(raster.getRasterWidth(), raster.getRasterHeight()); } Product product = getProduct(); if (product != null) { return new Dimension(product.getSceneRasterWidth(), product.getSceneRasterHeight()); } return null; } }
private static long getImageFileSize(RasterDataNode band) { return (long) ProductData.getElemSize(band.getDataType()) * (long) band.getRasterWidth() * (long) band.getRasterHeight(); }
private Orthorectifier createOrthorectifier(final RasterDataNode sourceBand) { return new Orthorectifier2(sourceBand.getRasterWidth(), sourceBand.getRasterHeight(), sourceBand.getPointing(), elevationModel, 25); }
private Mask addMask(Product product, RasterDataNode raster, String expression) { Mask mask = Mask.BandMathsType.create(maskName, maskDescription, raster.getRasterWidth(), raster.getRasterHeight(), expression, maskColor, 0.5); product.addMask(mask); ProductUtils.copyImageGeometry(raster, mask, false); return mask; }
private static long getImageFileSize(final RasterDataNode band) { long numInterleaved = 1; if (isComplex(band)) { numInterleaved = 2; } return (long) ProductData.getElemSize(band.getDataType()) * (long) band.getRasterWidth() * (long) band.getRasterHeight() * numInterleaved; }
protected String[] collectNamesOfRastersOfSameSize() { final Product product = getMaskForm().getProduct(); //todo [multisize_products] do not compare raster sizes final RasterDataNode referenceRaster = getMaskForm().getRaster(); final List<String> rangeRasterNames = new ArrayList<>(); final Band[] bands = product.getBands(); for (Band band : bands) { if (band.getRasterHeight() == referenceRaster.getRasterHeight() && band.getRasterWidth() == referenceRaster.getRasterWidth()) { rangeRasterNames.add(band.getName()); } } final TiePointGrid[] tiePointGrids = product.getTiePointGrids(); for (TiePointGrid tiePointGrid : tiePointGrids) { if (tiePointGrid.getRasterHeight() == referenceRaster.getRasterHeight() && tiePointGrid.getRasterWidth() == referenceRaster.getRasterWidth()) { rangeRasterNames.add(tiePointGrid.getName()); } } return rangeRasterNames.toArray(new String[rangeRasterNames.size()]); } }
public SpectraDataSentinel1(final Product product) { super(product); //get general metadata final MetadataElement root = AbstractMetadata.getOriginalProductMetadata(product); annotation = root.getElement("annotation"); numRecords = annotation.getNumElements() - 1; final RasterDataNode rasterNode = product.getBandAt(0); recordLength = rasterNode.getRasterWidth() * rasterNode.getRasterHeight(); }
public static Band createVirtualBand(final Product product, final String expression, final String name) { int width = product.getSceneRasterWidth(); int height = product.getSceneRasterHeight(); try { final RasterDataNode[] refRasters = BandArithmetic.getRefRasters(expression, product); if (refRasters.length > 0) { width = refRasters[0].getRasterWidth(); height = refRasters[0].getRasterHeight(); } } catch (ParseException e) { throw new IllegalArgumentException("Invalid expression: " + expression); } final VirtualBand virtBand = new VirtualBand(name, ProductData.TYPE_FLOAT64, width, height, expression); virtBand.setNoDataValueUsed(true); product.addBand(virtBand); return virtBand; }
collectCompatibleBands(raster, selectedProduct.getBands(), compatibleNodes); if (raster.getRasterWidth() == selectedProduct.getSceneRasterWidth() && raster.getRasterHeight() == selectedProduct.getSceneRasterHeight()) { compatibleNodes.addAll(Arrays.asList(selectedProduct.getTiePointGrids()));
geoCoding = raster.getGeoCoding(); sceneCenter = new PixelPos(Math.floor(raster.getRasterWidth() / 2.0) + 0.5, Math.floor(raster.getRasterHeight() / 2.0) + 0.5); sceneUL = new PixelPos(0 + 0.5, 0 + 0.5); sceneUR = new PixelPos(raster.getRasterWidth() - 1 + 0.5, 0 + 0.5); sceneLL = new PixelPos(0 + 0.5, raster.getRasterHeight() - 1 + 0.5); sceneLR = new PixelPos(raster.getRasterWidth() - 1 + 0.5, raster.getRasterHeight() - 1 + 0.5);
@Override public void setValue(String newValue) { try { final Product product = raster.getProduct(); final RasterDataNode[] refRasters = BandArithmetic.getRefRasters(newValue, product); if (refRasters.length > 0 && (!BandArithmetic.areRastersEqualInSize(product, newValue) || refRasters[0].getRasterHeight() != raster.getRasterHeight() || refRasters[0].getRasterWidth() != raster.getRasterWidth())) { Dialogs.showInformation("Referenced rasters must all be the same size", null); } else { String oldValue = raster.getValidPixelExpression(); performUndoableProductNodeEdit("Edit Valid-Pixel Expression", raster, node -> { node.setValidPixelExpression(newValue); updateImages(node, true); }, node -> { node.setValidPixelExpression(oldValue); updateImages(node, true); } ); } } catch (ParseException e) { Dialogs.showError("Expression is invalid: " + e.getMessage()); } } }
private ProductNodeGroup<Mask> getMaskGroup() { if (product == null) { return null; } else if (visibleBand == null) { return product.getMaskGroup(); } else { final ProductNodeGroup<Mask> visibleMasks = new ProductNodeGroup<Mask>("Masks for " + visibleBand.getName()); final ProductNodeGroup<Mask> maskGroup = product.getMaskGroup(); for (int i = 0; i < maskGroup.getNodeCount(); i++) { final Mask mask = maskGroup.get(i); // todo - [multisize_products] fix: ask ImageGeometry whether mask and band have the same scenerastertransform if (mask.getRasterWidth() == visibleBand.getRasterWidth() && mask.getRasterHeight() == visibleBand.getRasterHeight()) { visibleMasks.add(mask); } } return visibleMasks; } }
public SpectraDataAsar(final Product product, final WaveProductType waveProductType) { super(product); setWaveProductType(waveProductType); final MetadataElement root = AbstractMetadata.getOriginalProductMetadata(product); final MetadataElement sph = root.getElement("SPH"); numDirBins = sph.getAttributeInt("NUM_DIR_BINS", 0); numWLBins = sph.getAttributeInt("NUM_WL_BINS", 0); firstDirBins = (float) sph.getAttributeDouble("FIRST_DIR_BIN", 0); dirBinStep = (float) sph.getAttributeDouble("DIR_BIN_STEP", 0); firstWLBin = (float) sph.getAttributeDouble("FIRST_WL_BIN", 0); lastWLBin = (float) sph.getAttributeDouble("LAST_WL_BIN", 0); final RasterDataNode rasterNode = product.getBandAt(0); numRecords = rasterNode.getRasterHeight() - 1; recordLength = rasterNode.getRasterWidth(); if (waveProductType == WaveProductType.WAVE_SPECTRA) { spectraMetadataRoot = root.getElement("OCEAN_WAVE_SPECTRA_MDS"); } else { spectraMetadataRoot = root.getElement("CROSS_SPECTRA_MDS"); } }