private static void setSpectralWaveLength(final Element element, final Band band) { final String bandWavelen = element.getChildTextTrim(DimapProductConstants.TAG_BAND_WAVELEN); if (bandWavelen != null) { band.setSpectralWavelength(Float.parseFloat(bandWavelen)); } }
protected void setSpectralBand(Product product) { int spectralBandIndex = 0; for (String name : product.getBandNames()) { Band band = product.getBandAt(product.getBandIndex(name)); if (name.matches("\\w+_\\d{3,}")) { String[] parts = name.split("_"); String wvlstr = parts[parts.length - 1].trim(); //Some bands have the wvl portion in the middle... if (!wvlstr.matches("^\\d{3,}")) { wvlstr = parts[parts.length - 2].trim(); } final float wavelength = Float.parseFloat(wvlstr); band.setSpectralWavelength(wavelength); band.setSpectralBandIndex(spectralBandIndex++); } } }
private void setSpectralBandProperties(Band band) { if (band.getName().endsWith("REFL_BLUE")) { band.setSpectralBandIndex(0); band.setSpectralWavelength(462.0f); band.setSpectralBandwidth(48.0f); } else if (band.getName().endsWith("REFL_RED")) { band.setSpectralBandIndex(1); band.setSpectralWavelength(655.5f); band.setSpectralBandwidth(81.0f); } else if (band.getName().endsWith("REFL_NIR")) { band.setSpectralBandIndex(2); band.setSpectralWavelength(843.0f); band.setSpectralBandwidth(142.0f); } else if (band.getName().endsWith("REFL_SWIR")) { band.setSpectralBandIndex(3); band.setSpectralWavelength(1599.0f); band.setSpectralBandwidth(70.0f); } }
public static Band createBand(String name, int wavelength) { Band a = new Band(name, ProductData.TYPE_INT16, 10, 10); a.setSpectralWavelength(wavelength); return a; }
private void addSpectralInfo(Product product, String name, int index, float min, float max, float solFlux) { Band spectralBand = product.getBand(name); if (spectralBand != null) { spectralBand.setSpectralBandIndex(index); spectralBand.setSpectralWavelength(min + 0.5f * (max - min)); spectralBand.setSpectralBandwidth(max - min); spectralBand.setSolarFlux(solFlux); spectralBand.setDescription(MessageFormat.format("{0} spectral band", name)); } }
private void handleRgbProduct(Product product) { Product hicoProductPart = hicoProductParts.get(FileType.RGB); if (hicoProductPart != null && hicoProductPart.getNumBands() == 3) { copyMetadata(hicoProductPart, product, FileType.RGB.toString()); Band red = hicoProductPart.getBandAt(0); Band band = ProductUtils.copyBand(red.getName(), hicoProductPart, "red", product, true); band.setSpectralWavelength(0.0f); Band green = hicoProductPart.getBandAt(1); band = ProductUtils.copyBand(green.getName(), hicoProductPart, "green", product, true); band.setSpectralWavelength(0.0f); Band blue = hicoProductPart.getBandAt(2); band = ProductUtils.copyBand(blue.getName(), hicoProductPart, "blue", product, true); band.setSpectralWavelength(0.0f); } }
/** * Creates the forward view 1600 nm band */ private void createForward1600Band() { Band band = new Band(AtsrGBTConstants.FORWARD_1600_REF_NAME, ProductData.TYPE_FLOAT32, AtsrConstants.ATSR_SCENE_RASTER_WIDTH, AtsrConstants.ATSR_SCENE_RASTER_HEIGHT); band.setUnit(AtsrGBTConstants.REFLECTANCE_UNIT); band.setDescription(AtsrGBTConstants.FORWARD_1600_REF_DESCRIPTION); band.setSpectralWavelength(AtsrConstants.BAND_16_WAVELENGTH); band.setSpectralBandwidth(AtsrConstants.BAND_16_WIDTH); addBand(band); }
private void setBandProperties(Band band, String validMaskExpression) { band.setDescription(bandDescription); band.setUnit(bandUnit); band.setSpectralWavelength(bandWavelength); band.setGeophysicalNoDataValue(noDataValue); band.setNoDataValueUsed(noDataValueUsed); band.setValidPixelExpression(validMaskExpression); }
public static void addBand(Product product, String bandName, int wavelength) { Band a = new Band(bandName, ProductData.TYPE_FLOAT32, 10, 10); a.setSpectralWavelength(wavelength); product.addBand(a); } }
/** * Creates the nadir view 1600 nm band */ private void createNadir1600Band() { Band band = new Band(AtsrGBTConstants.NADIR_1600_REF_NAME, ProductData.TYPE_FLOAT32, AtsrConstants.ATSR_SCENE_RASTER_WIDTH, AtsrConstants.ATSR_SCENE_RASTER_HEIGHT); band.setUnit(AtsrGBTConstants.REFLECTANCE_UNIT); band.setDescription(AtsrGBTConstants.NADIR_1600_REF_DESCRIPTION); band.setSpectralWavelength(AtsrConstants.BAND_16_WAVELENGTH); band.setSpectralBandwidth(AtsrConstants.BAND_16_WIDTH); addBand(band); }
@Before public void setUp() throws Exception { product = new Product("product", "t", 16, 16); product.addBand("a1", ProductData.TYPE_FLOAT32); b1 = product.addBand("b1", ProductData.TYPE_FLOAT32); product.addBand("a2", ProductData.TYPE_FLOAT32); b2 = product.addBand("b2", ProductData.TYPE_FLOAT32); product.addBand("a3", ProductData.TYPE_FLOAT32); b3 = product.addBand("b3", ProductData.TYPE_FLOAT32); b1.setSpectralWavelength(100); b2.setSpectralWavelength(200); b3.setSpectralWavelength(300); }
static void setBandSpectralInformation(ModisBandDescription bandDesc, String bandNameExt, Band band) { if (bandDesc.isSpectral()) { if (bandDesc.hasSpectralInfo()) { final ModisSpectralInfo specInfo = bandDesc.getSpecInfo(); band.setSpectralWavelength(specInfo.getSpectralWavelength()); band.setSpectralBandwidth(specInfo.getSpectralBandwidth()); band.setSpectralBandIndex(specInfo.getSpectralBandIndex()); } else { final float[] data = ModisUtils.decodeSpectralInformation(bandNameExt, null); band.setSpectralWavelength(data[0]); band.setSpectralBandwidth(data[1]); band.setSpectralBandIndex((int) data[2]); } } else { band.setSpectralBandIndex(-1); } }
static private SpectrumBand createBand(int index) { final Band band = new Band("Radiance_" + (index + 1), ProductData.TYPE_INT16, 100, 100); band.setDescription("Radiance for band " + (index + 1)); band.setSpectralWavelength((float) Math.random()); band.setSpectralBandwidth((float) Math.random()); band.setUnit("sr^-1"); if (index == 7) { band.setUnit("dl"); } return new SpectrumBand(band, true); }
private void addBand(String varName) { VariableMetadata variableMetadata = getVariableMetadata(varName); if (variableMetadata != null) { Band band = new Band(variableMetadata.name, variableMetadata.dataType, sceneRasterWidth, sceneRasterHeight); band.setDescription(variableMetadata.description); band.setUnit(variableMetadata.variable.getUnitsString()); band.setNoDataValue(variableMetadata.fillValue); band.setNoDataValueUsed(variableMetadata.fillValue != Double.NaN); band.setSpectralWavelength(getWavelengthFromBandName(varName)); product.addBand(band); final VariableReader variableReader = new VariableReader(variableMetadata.variable); bandMap.put(band, variableReader); } }
private void addBand(String varName, String suffix, int[] origin, int[] shape, int binDimIndex) { final VariableMetadata variableMetadata = getVariableMetadata(varName); if (variableMetadata != null) { final String bandName = variableMetadata.name + suffix; final Band band = new Band(bandName, variableMetadata.dataType, sceneRasterWidth, sceneRasterHeight); band.setDescription(variableMetadata.description); band.setUnit(variableMetadata.variable.getUnitsString()); band.setNoDataValue(variableMetadata.fillValue); band.setNoDataValueUsed(variableMetadata.fillValue != Double.NaN); band.setSpectralWavelength(getWavelengthFromBandName(varName)); product.addBand(band); final VariableReader variableReader = new VariableReader(variableMetadata.variable, origin, shape, binDimIndex); bandMap.put(band, variableReader); } }
public void testWaveLength() { assertEquals(0.0F, _rsBand.getSpectralWavelength(), 1e-6F); _rsBand.setSpectralWavelength(1.2F); assertEquals(1.2F, _rsBand.getSpectralWavelength(), 1e-6F); }
private void setSpectralBandInfo(Product product) { float[] wavelengths = productFile.getSpectralBandWavelengths(); float[] bandwidths = productFile.getSpectralBandBandwidths(); float[] solar_fluxes = productFile.getSpectralBandSolarFluxes(); for (int i = 0; i < product.getNumBands(); i++) { Band band = product.getBandAt(i); int sbi = band.getSpectralBandIndex(); if (sbi >= 0) { if (wavelengths != null) { band.setSpectralWavelength(wavelengths[sbi % wavelengths.length]); } if (bandwidths != null) { band.setSpectralBandwidth(bandwidths[sbi % bandwidths.length]); } if (solar_fluxes != null) { band.setSolarFlux(solar_fluxes[sbi % solar_fluxes.length]); } } // Debug.trace(band.toString()); } }
protected Band createBand(BandReader bandReader, int channel) { final Band band = new Band(bandReader.getBandName(), bandReader .getDataType(), avhrrFile.getProductWidth(), avhrrFile .getProductHeight()); band.setScalingFactor(bandReader.getScalingFactor()); band.setUnit(bandReader.getBandUnit()); band.setDescription(bandReader.getBandDescription()); band.setSpectralBandIndex(channel); band.setSpectralBandwidth(CH_BANDWIDTHS[channel]); band.setSpectralWavelength(CH_WAVELENGTHS[channel]); band.setValidPixelExpression(CH_VALID_MASK_EXPRESSIONS[channel]); band.setNoDataValue(NO_DATA_VALUE); band.setNoDataValueUsed(true); bandReaders.put(band, bandReader); return band; }
private void addBand(final Product product) { final String bandName = "radiance_1"; // constant final Band band = new Band(bandName, ProductData.TYPE_UINT8, product.getSceneRasterWidth(), product.getSceneRasterHeight()); band.setSpectralBandIndex(0); // constant band.setSpectralWavelength(645); // constant band.setSpectralBandwidth(250); // constant band.setUnit("mw / (m^2*sr*nm)"); // constant band.setScalingFactor(leaderFile.getAncillary2Record().getAbsoluteCalibrationGain()); band.setScalingOffset(leaderFile.getAncillary2Record().getAbsoluteCalibrationOffset()); band.setNoDataValue(0.00); band.setNoDataValueUsed(true); product.addBand(band); }
private Band createBand(final Avnir2ImageFile avnir2ImageFile) throws IOException, IllegalCeosFormatException { final Band band = new Band(avnir2ImageFile.getBandName(), ProductData.TYPE_UINT8, sceneWidth, sceneHeight); final int bandIndex = avnir2ImageFile.getBandIndex(); band.setSpectralBandIndex(bandIndex - 1); band.setSpectralWavelength(avnir2ImageFile.getSpectralWavelength()); band.setSpectralBandwidth(avnir2ImageFile.getSpectralBandwidth()); band.setUnit(avnir2ImageFile.getGeophysicalUnit()); final double scalingFactor = leaderFile.getAbsoluteCalibrationGain(bandIndex); final double scalingOffset = leaderFile.getAbsoluteCalibrationOffset(bandIndex); band.setScalingFactor(scalingFactor); band.setScalingOffset(scalingOffset); band.setNoDataValueUsed(false); band.setDescription("Radiance band " + avnir2ImageFile.getBandIndex()); return band; }