@Override public boolean validateIndex(int index) { return energies[index] != bands[index].getGeophysicalNoDataValue(); } };
@Override public double getYValueAt(int index) { if (energies[index] == bands[index].getGeophysicalNoDataValue()) { return Double.NaN; } return energies[index]; }
private void addToSeries(Band spectralBand, int x, int y, int level, XYSeries series, double wavelength) { final double energy = ProductUtils.getGeophysicalSampleAsDouble(spectralBand, x, y, level); if (energy != spectralBand.getGeophysicalNoDataValue()) { series.add(wavelength, energy); } }
if (energy != spectralBand.getGeophysicalNoDataValue()) { series.add(wavelength, energy);
private double readEnergy(Placemark pin, Band spectralBand) { //todo [Multisize_products] use scenerastertransform here final Object pinGeometry = pin.getFeature().getDefaultGeometry(); if (pinGeometry == null || !(pinGeometry instanceof Point)) { return spectralBand.getGeophysicalNoDataValue(); } final Point2D.Double modelPoint = new Point2D.Double(((Point) pinGeometry).getCoordinate().x, ((Point) pinGeometry).getCoordinate().y); final MultiLevelModel multiLevelModel = spectralBand.getMultiLevelModel(); int level = getLevel(multiLevelModel); final AffineTransform m2iTransform = multiLevelModel.getModelToImageTransform(level); final PixelPos pinLevelRasterPos = new PixelPos(); m2iTransform.transform(modelPoint, pinLevelRasterPos); int pinLevelRasterX = (int) Math.floor(pinLevelRasterPos.getX()); int pinLevelRasterY = (int) Math.floor(pinLevelRasterPos.getY()); if (coordinatesAreInRasterBounds(spectralBand, pinLevelRasterX, pinLevelRasterY, level) && isPixelValid(spectralBand, pinLevelRasterX, pinLevelRasterY, level)) { return ProductUtils.getGeophysicalSampleAsDouble(spectralBand, pinLevelRasterX, pinLevelRasterY, level); } return spectralBand.getGeophysicalNoDataValue(); }
final float noDataValue = (float) targetBand.getGeophysicalNoDataValue(); final Rectangle targetRectangle = targetTile.getRectangle(); final ProductData trgData = targetTile.getDataBuffer();
addEntry("Is no-data value used:", String.valueOf(band.isNoDataValueUsed()), ""); addEntry("No-data value:", String.valueOf(band.getNoDataValue()), ""); addEntry("Geophysical no-data value:", String.valueOf(band.getGeophysicalNoDataValue()), ""); addEntry("Valid pixel expression:", String.valueOf(band.getValidPixelExpression()), ""); addEntry("Spectral band index:", String.valueOf(band.getSpectralBandIndex()), "");
targetBand.setNoDataValueUsed(true); targetBand.setUnit(getNotNullValueOrDefault(srcBand.getUnit())); targetBand.setGeophysicalNoDataValue(srcBand.getGeophysicalNoDataValue()); targetBand.setSpectralWavelength(srcBand.getSpectralWavelength()); targetBand.setSpectralBandwidth(srcBand.getSpectralBandwidth());
realBand.setUnit(computedBand.getUnit()); realBand.setSpectralWavelength(computedBand.getSpectralWavelength()); realBand.setGeophysicalNoDataValue(computedBand.getGeophysicalNoDataValue()); realBand.setNoDataValueUsed(computedBand.isNoDataValueUsed()); if (computedBand.isStxSet()) {