|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.bc.ceres.core.ExtensibleObject
org.esa.beam.framework.datamodel.ProductNode
org.esa.beam.framework.datamodel.DataNode
org.esa.beam.framework.datamodel.RasterDataNode
org.esa.beam.framework.datamodel.AbstractBand
org.esa.beam.framework.datamodel.Band
public class Band
A band contains the data for geophysical parameter in remote sensing data products. Bands are two-dimensional images
which hold their pixel values (samples) in a buffer of the type ProductData. The band class is just a
container for attached metadata of the band, currently:
FlagCodinggetPixel and readPixel methods of this class do not necessarily return the
values contained in the data buffer of type ProductData. If the scalingFactor,
scalingOffset or log10Scaled are set a conversion of the form scalingFactor *
rawSample + scalingOffset is applied to the raw samples before the getPixel and @
readPixel methods return the actual pixel values. If the log10Scaled property is true then
the conversion is pow(10, scalingFactor * rawSample + scalingOffset). The several setPixel
and writePixel perform the inverse operations in this case.
ProductData| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class org.esa.beam.framework.datamodel.RasterDataNode |
|---|
RasterDataNode.RasterDataDoubleList, RasterDataNode.RasterDataProcessor |
| Field Summary | |
|---|---|
static String |
PROPERTY_NAME_SAMPLE_CODING
|
static String |
PROPERTY_NAME_SOLAR_FLUX
|
static String |
PROPERTY_NAME_SPECTRAL_BAND_INDEX
|
static String |
PROPERTY_NAME_SPECTRAL_BANDWIDTH
|
static String |
PROPERTY_NAME_SPECTRAL_WAVELENGTH
|
| Fields inherited from class org.esa.beam.framework.datamodel.AbstractBand |
|---|
VIEW_MODE_FORWARD, VIEW_MODE_NADIR, VIEW_MODE_ORTHO |
| Fields inherited from class org.esa.beam.framework.datamodel.RasterDataNode |
|---|
INVALID_POS_TEXT, IO_ERROR_TEXT, NO_DATA_TEXT, NOT_LOADED_TEXT, PROPERTY_NAME_GEOCODING, PROPERTY_NAME_IMAGE_INFO, PROPERTY_NAME_LOG_10_SCALED, PROPERTY_NAME_NO_DATA_VALUE, PROPERTY_NAME_NO_DATA_VALUE_USED, PROPERTY_NAME_ROI_DEFINITION, PROPERTY_NAME_SCALING_FACTOR, PROPERTY_NAME_SCALING_OFFSET, PROPERTY_NAME_STX, PROPERTY_NAME_VALID_PIXEL_EXPRESSION |
| Fields inherited from class org.esa.beam.framework.datamodel.DataNode |
|---|
PROPERTY_NAME_DATA, PROPERTY_NAME_READ_ONLY, PROPERTY_NAME_SYNTHETIC, PROPERTY_NAME_UNIT |
| Fields inherited from class org.esa.beam.framework.datamodel.ProductNode |
|---|
PROPERTY_NAME_DESCRIPTION, PROPERTY_NAME_NAME |
| Fields inherited from interface org.esa.beam.framework.datamodel.Scaling |
|---|
IDENTITY |
| Constructor Summary | |
|---|---|
Band(String name,
int dataType,
int width,
int height)
Constructs a new Band. |
|
| Method Summary | |
|---|---|
void |
acceptVisitor(ProductVisitor visitor)
Accepts the given visitor. |
protected Stx |
computeStxImpl(int level,
com.bc.ceres.core.ProgressMonitor pm)
Computes the statistics. |
ImageInfo |
createDefaultImageInfo(double[] histoSkipAreas,
com.bc.ceres.core.ProgressMonitor pm)
Creates a default image information instance. |
protected RenderedImage |
createSourceImage()
Creates the source image associated with this RasterDataNode. |
void |
dispose()
Releases all of the resources used by this object instance and all of its owned children. |
FlagCoding |
getFlagCoding()
Gets the flag coding for this band. |
IndexCoding |
getIndexCoding()
Gets the index coding for this band. |
long |
getRawStorageSize(ProductSubsetDef subsetDef)
Gets an estimated raw storage size in bytes of this product node. |
SampleCoding |
getSampleCoding()
Gets the sample coding. |
float |
getSolarFlux()
Gets the solar flux in mW/(m^2 nm) (milli-watts per square metre per nanometer)
units for the wavelength of this band. |
int |
getSpectralBandIndex()
Gets the (zero-based) spectral band index. |
float |
getSpectralBandwidth()
Gets the spectral bandwidth in nm (nanomater) units. |
float |
getSpectralWavelength()
Gets the spectral wavelength in nm (nanomater) units. |
boolean |
isFlagBand()
Tests whether or not this band is a flag band ( getFlagCoding() != null). |
boolean |
isIndexBand()
Tests whether or not this band is an index band ( getIndexCoding() != null). |
void |
readRasterData(int offsetX,
int offsetY,
int width,
int height,
ProductData rasterData,
com.bc.ceres.core.ProgressMonitor pm)
Reads raster data from its associated data source into the given data buffer. |
void |
readRasterDataFully(com.bc.ceres.core.ProgressMonitor pm)
Reads the complete underlying raster data. |
void |
removeFromFile(ProductWriter productWriter)
Physically remove this node from the file associated with the given product writer. |
void |
setSampleCoding(SampleCoding sampleCoding)
Sets the sample coding for this band. |
void |
setSolarFlux(float solarFlux)
Sets the solar flux in mW/(m^2 nm) (milli-watts per square metre per nanometer)
units for the wavelength of this band. |
void |
setSpectralBandIndex(int spectralBandIndex)
Sets the (zero-based) spectral band index. |
void |
setSpectralBandwidth(float spectralBandwidth)
Sets the spectral bandwidth in nm (nanomater) units. |
void |
setSpectralWavelength(float spectralWavelength)
Sets the spectral wavelength in nm (nanomater) units. |
String |
toString()
Creates a string defining this band object. |
void |
writeRasterData(int offsetX,
int offsetY,
int width,
int height,
ProductData rasterData,
com.bc.ceres.core.ProgressMonitor pm)
Writes data from this product raster into the specified region of the user-supplied raster. |
void |
writeRasterDataFully(com.bc.ceres.core.ProgressMonitor pm)
Writes the complete underlying raster data. |
| Methods inherited from class org.esa.beam.framework.datamodel.AbstractBand |
|---|
computeBand, ensureMinLengthArray, ensureMinLengthArray, ensureMinLengthArray, ensureRasterData, getPixelDouble, getPixelFloat, getPixelInt, getPixels, getPixels, getPixels, getSceneRasterData, getViewModeId, loadRasterData, readPixels, readPixels, readPixels, setPixelDouble, setPixelFloat, setPixelInt, setPixels, setPixels, setPixels, unloadRasterData, writePixels, writePixels, writePixels |
| Methods inherited from class org.esa.beam.framework.datamodel.DataNode |
|---|
checkDataCompatibility, createCompatibleProductData, fireProductNodeDataChanged, getData, getDataElems, getDataElemSize, getDataType, getNumDataElems, getUnit, isReadOnly, isSynthetic, setData, setDataElems, setReadOnly, setSynthetic, setUnit |
| Methods inherited from class org.esa.beam.framework.datamodel.ProductNode |
|---|
fireProductNodeChanged, fireProductNodeChanged, getDescription, getDisplayName, getName, getOwner, getProduct, getProductReader, getProductReaderSafe, getProductRefString, getProductSafe, getProductWriter, getProductWriterSafe, getRawStorageSize, isModified, isPartOfSubset, isValidNodeName, setDescription, setName, setOwner |
| Methods inherited from class com.bc.ceres.core.ExtensibleObject |
|---|
getExtension |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final String PROPERTY_NAME_SAMPLE_CODING
public static final String PROPERTY_NAME_SOLAR_FLUX
public static final String PROPERTY_NAME_SPECTRAL_BAND_INDEX
public static final String PROPERTY_NAME_SPECTRAL_BANDWIDTH
public static final String PROPERTY_NAME_SPECTRAL_WAVELENGTH
| Constructor Detail |
|---|
public Band(String name,
int dataType,
int width,
int height)
Band.
name - the name of the new objectdataType - the raster data type, must be one of the multiple ProductData.TYPE_X
constants, with the exception of ProductData.TYPE_UINT32width - the width of the raster in pixelsheight - the height of the raster in pixels| Method Detail |
|---|
public FlagCoding getFlagCoding()
null otherwisepublic boolean isFlagBand()
getFlagCoding() != null).
true if sopublic IndexCoding getIndexCoding()
null otherwisepublic boolean isIndexBand()
getIndexCoding() != null).
true if sopublic SampleCoding getSampleCoding()
public void setSampleCoding(SampleCoding sampleCoding)
sampleCoding - the sample coding
IllegalArgumentException - if this band does not contain integer pixelspublic int getSpectralBandIndex()
-1 if it is unknownpublic void setSpectralBandIndex(int spectralBandIndex)
spectralBandIndex - the (zero-based) spectral band index or -1 if it is unknownpublic float getSpectralWavelength()
nm (nanomater) units.
public void setSpectralWavelength(float spectralWavelength)
nm (nanomater) units.
spectralWavelength - the wavelength in nanometers of this band, or zero if this is not a spectral band or
the wavelength is not known.public float getSpectralBandwidth()
nm (nanomater) units.
public void setSpectralBandwidth(float spectralBandwidth)
nm (nanomater) units.
spectralBandwidth - the spectral bandwidth in nanometers of this band, or zero if this is not a spectral band
or the spectral bandwidth is not known.public float getSolarFlux()
mW/(m^2 nm) (milli-watts per square metre per nanometer)
units for the wavelength of this band.
public void setSolarFlux(float solarFlux)
mW/(m^2 nm) (milli-watts per square metre per nanometer)
units for the wavelength of this band.
solarFlux - the solar flux for the wavelength of this band, or zero if this is not a spectral band or the
solar flux is not known.protected RenderedImage createSourceImage()
RasterDataNodeRasterDataNode.
This shall preferably be a MultiLevelImage instance.
createSourceImage in class RasterDataNode
public void readRasterData(int offsetX,
int offsetY,
int width,
int height,
ProductData rasterData,
com.bc.ceres.core.ProgressMonitor pm)
throws IOException
readRasterData in class RasterDataNodeoffsetX - the X-offset in the band's pixel co-ordinates where reading startsoffsetY - the Y-offset in the band's pixel co-ordinates where reading startswidth - the width of the raster data bufferheight - the height of the raster data bufferrasterData - a raster data buffer receiving the pixels to be readpm - a monitor to inform the user about progress
IOException - if an I/O error occurs
IllegalArgumentException - if the raster is null
IllegalStateException - if this product raster was not added to a product so far, or if the product to which
this product raster belongs to, has no associated product readerProductReader.readBandRasterData(Band, int, int, int, int, ProductData, com.bc.ceres.core.ProgressMonitor)
public void readRasterDataFully(com.bc.ceres.core.ProgressMonitor pm)
throws IOException
After this method has been called successfully, hasRasterData() should always return
true and getRasterData() should always return a valid ProductData instance
with at least getRasterWidth()*getRasterHeight() elements (samples).
In opposite to the loadRasterData method, the readRasterDataFully method always
reloads the data of this product raster, independently of whether its has already been loaded or not.
readRasterDataFully in class RasterDataNodepm - a monitor to inform the user about progress
IOException - if an I/O error occursRasterDataNode.loadRasterData(),
RasterDataNode.readRasterData(int, int, int, int, ProductData, com.bc.ceres.core.ProgressMonitor)
public void writeRasterData(int offsetX,
int offsetY,
int width,
int height,
ProductData rasterData,
com.bc.ceres.core.ProgressMonitor pm)
throws IOException
It is important to know that this method does not change this product raster's internal state nor does it write into this product raster's internal raster.
writeRasterData in class RasterDataNodeoffsetX - the X-offset in raster co-ordinates where reading startsoffsetY - the Y-offset in raster co-ordinates where reading startswidth - the width of the raster data bufferheight - the height of the raster data bufferrasterData - a raster data buffer receiving the pixels to be readpm - a monitor to inform the user about progress
IOException - if an I/O error occursProductReader.readBandRasterData(Band, int, int, int, int, ProductData, com.bc.ceres.core.ProgressMonitor)
public void writeRasterDataFully(com.bc.ceres.core.ProgressMonitor pm)
throws IOException
writeRasterDataFully in class RasterDataNodepm - a monitor to inform the user about progress
IOException - if an I/O error occurspublic long getRawStorageSize(ProductSubsetDef subsetDef)
getRawStorageSize in class AbstractBandsubsetDef - if not null the subset may limit the size returned
public void acceptVisitor(ProductVisitor visitor)
The method simply calls visitor.visit(this).
acceptVisitor in class RasterDataNodevisitor - the visitor, must not be nullpublic String toString()
toString in class ProductNodepublic void removeFromFile(ProductWriter productWriter)
ProductNode
removeFromFile in class ProductNodeproductWriter - the product writer to be used to remove this node from the underlying file.
public ImageInfo createDefaultImageInfo(double[] histoSkipAreas,
com.bc.ceres.core.ProgressMonitor pm)
RasterDataNodeAn IllegalStateException is thrown in the case that this raster data node has no raster data.
createDefaultImageInfo in class RasterDataNodehistoSkipAreas - the left (at index 0) and right (at index 1) normalized areas of the raster data
histogram to be excluded when determining the value range for a linear constrast
stretching. Can be null, in this case {0.01, 0.04} resp. 5% of
the entire area is skipped.pm - a monitor to inform the user about progress
null.
protected Stx computeStxImpl(int level,
com.bc.ceres.core.ProgressMonitor pm)
RasterDataNode
computeStxImpl in class RasterDataNodelevel - The resolution level.pm - A progress monitor.
public void dispose()
This method should be called only if it is for sure that this object instance will never be used again. The
results of referencing an instance of this class after a call to dispose() are undefined.
Overrides of this method should always call super.dispose(); after disposing this instance.
dispose in class RasterDataNode
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||