public class VirtualBand extends Band
ProductData. The band class is just a
container for attached metadata of the band, currently: FlagCoding
The several getPixel 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.
ProductDataRasterDataNode.RasterDataProcessor| Modifier and Type | Field and Description |
|---|---|
static String |
PROPERTY_NAME_EXPRESSION |
PROPERTY_NAME_SAMPLE_CODING, PROPERTY_NAME_SOLAR_FLUX, PROPERTY_NAME_SPECTRAL_BAND_INDEX, PROPERTY_NAME_SPECTRAL_BANDWIDTH, PROPERTY_NAME_SPECTRAL_WAVELENGTHINVALID_POS_TEXT, IO_ERROR_TEXT, NO_DATA_TEXT, PROPERTY_NAME_ANCILLARY_RELATIONS, PROPERTY_NAME_ANCILLARY_VARIABLES, PROPERTY_NAME_GEO_CODING, PROPERTY_NAME_IMAGE_INFO, PROPERTY_NAME_IMAGE_TO_MODEL_TRANSFORM, PROPERTY_NAME_LOG_10_SCALED, PROPERTY_NAME_MODEL_TO_SCENE_TRANSFORM, PROPERTY_NAME_NO_DATA_VALUE, PROPERTY_NAME_NO_DATA_VALUE_USED, PROPERTY_NAME_SCALING_FACTOR, PROPERTY_NAME_SCALING_OFFSET, PROPERTY_NAME_SCENE_TO_MODEL_TRANSFORM, PROPERTY_NAME_STX, PROPERTY_NAME_TIME_CODING, PROPERTY_NAME_VALID_PIXEL_EXPRESSIONPROPERTY_NAME_DATA, PROPERTY_NAME_READ_ONLY, PROPERTY_NAME_SYNTHETIC, PROPERTY_NAME_UNITPROPERTY_NAME_DESCRIPTION, PROPERTY_NAME_NAME| Constructor and Description |
|---|
VirtualBand(String name,
int dataType,
int width,
int height,
String expression)
Constructs a new
Band. |
| Modifier and Type | Method and Description |
|---|---|
void |
acceptVisitor(ProductVisitor visitor)
Accepts the given visitor.
|
protected RenderedImage |
createSourceImage()
Creates the source image associated with this
RasterDataNode. |
static MultiLevelImage |
createSourceImage(RasterDataNode raster,
String expression)
Create a
MultiLevelImage that computes its pixel values from the given band math expression. |
void |
dispose()
Releases all of the resources used by this object instance and all of its owned children.
|
String |
getExpression() |
long |
getRawStorageSize(ProductSubsetDef subsetDef)
Gets an estimated raw storage size in bytes of this product node.
|
void |
setExpression(String expression) |
void |
setPixelDouble(int x,
int y,
double pixelValue)
Sets the pixel value at the given pixel coordinate to the given pixel value.
|
void |
setPixelFloat(int x,
int y,
float pixelValue)
Sets the pixel at the given pixel coordinate to the given pixel value.
|
void |
setPixelInt(int x,
int y,
int pixelValue)
Sets the pixel at the given pixel co-ordinate to the given pixel value.
|
String |
toString()
Creates a string defining this band object.
|
void |
updateExpression(String oldExternalName,
String newExternalName)
Asks a product node to replace all occurences of and references to the node name
given by
oldExternalName with oldExternalName. |
void |
writePixels(int x,
int y,
int w,
int h,
double[] pixels,
ProgressMonitor pm)
Retrieves the range of pixels specified by the coordinates as double array.
|
void |
writePixels(int x,
int y,
int w,
int h,
float[] pixels,
ProgressMonitor pm)
Retrieves the range of pixels specified by the coordinates as float array.
|
void |
writePixels(int x,
int y,
int w,
int h,
int[] pixels,
ProgressMonitor pm)
Retrieves the range of pixels specified by the coordinates as integer array.
|
computeStxImpl, createDefaultImageInfo, getFlagCoding, getIndexCoding, getSampleCoding, getSolarFlux, getSpectralBandIndex, getSpectralBandwidth, getSpectralWavelength, isFlagBand, isIndexBand, readRasterData, readRasterDataFully, removeFromFile, setSampleCoding, setSolarFlux, setSpectralBandIndex, setSpectralBandwidth, setSpectralWavelength, writeRasterData, writeRasterDataFullyensureMinLengthArray, ensureMinLengthArray, ensureMinLengthArray, ensureRasterData, getPixelDouble, getPixelFloat, getPixelInt, getPixels, getPixels, getPixels, getRasterHeight, getRasterWidth, loadRasterData, readPixels, readPixels, readPixels, setPixels, setPixels, setPixels, unloadRasterDataaddAncillaryVariable, canBeOrthorectified, checkCompatibleRasterData, clearNoDataValue, createColorIndexedImage, createCompatibleRasterData, createCompatibleRasterData, createCompatibleSceneRasterData, createDefaultImageInfo, createMultiLevelModel, createPointing, createRgbImage, createTransectProfileData, fireImageInfoChanged, getAncillaryRelations, getAncillaryVariable, getAncillaryVariables, getGeoCoding, getGeophysicalDataType, getGeophysicalImage, getGeophysicalNoDataValue, getImageInfo, getImageInfo, getImageInfo, getImageToModelTransform, getModelToSceneTransform, getMultiLevelModel, getNoDataValue, getOverlayMaskGroup, getPixels, getPixels, getPixels, getPixelString, getPointing, getRasterData, getRasterSize, getSampleFloat, getSampleInt, getScalingFactor, getScalingOffset, getSceneToModelTransform, getSourceImage, getStx, getStx, getTimeCoding, getValidMaskExpression, getValidMaskImage, getValidPixelExpression, getValidShape, hasIntPixels, hasRasterData, isCompatibleRasterData, isFloatingPointType, isGeophysicalImageSet, isLog10Scaled, isNoDataValueSet, isNoDataValueUsed, isPixelValid, isPixelValid, isPixelValid, isScalingApplied, isSourceImageSet, isStxSet, isValidMaskImageSet, isValidMaskProperty, isValidMaskUsed, loadRasterData, processRasterData, quantizeRasterData, quantizeRasterData, readPixels, readPixels, readPixels, readRasterData, readRasterDataFully, readValidMask, removeAncillaryVariable, resetValidMask, scale, scaleInverse, setAncillaryRelations, setGeoCoding, setGeophysicalNoDataValue, setImageInfo, setImageInfo, setImageToModelTransform, setLog10Scaled, setModelToSceneTransform, setModified, setNoDataValue, setNoDataValueUsed, setRasterData, setScalingFactor, setScalingOffset, setSceneToModelTransform, setSourceImage, setSourceImage, setStx, setTimeCoding, setValidPixelExpression, writePixels, writePixels, writePixels, writeRasterData, writeRasterDataFullycheckDataCompatibility, createCompatibleProductData, fireProductNodeDataChanged, getData, getDataElems, getDataElemSize, getDataType, getNumDataElems, getUnit, isReadOnly, isSynthetic, setData, setDataElems, setReadOnly, setSynthetic, setUnitfireProductNodeChanged, fireProductNodeChanged, getDescription, getDisplayName, getName, getOwner, getProduct, getProductReader, getProductReaderSafe, getProductRefString, getProductSafe, getProductWriter, getProductWriterSafe, getRawStorageSize, isModified, isPartOfSubset, isValidNodeName, setDescription, setName, setOwnergetExtensionpublic static final String PROPERTY_NAME_EXPRESSION
public VirtualBand(String name, int dataType, int width, int height, String expression)
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 pixelsexpression - the expression codepublic String getExpression()
public void setExpression(String expression)
public void updateExpression(String oldExternalName, String newExternalName)
oldExternalName with oldExternalName. Such references most often occur
in band arithmetic expressions.updateExpression in class RasterDataNodeoldExternalName - The old node name.newExternalName - The new node name.public void setPixelInt(int x,
int y,
int pixelValue)
AbstractBandsetPixelInt in class AbstractBandx - The X co-ordinate of the pixel locationy - The Y co-ordinate of the pixel locationpixelValue - the new pixel valuepublic void setPixelFloat(int x,
int y,
float pixelValue)
AbstractBandsetPixelFloat in class AbstractBandx - The X co-ordinate of the pixel locationy - The Y co-ordinate of the pixel locationpixelValue - the new pixel valuepublic void setPixelDouble(int x,
int y,
double pixelValue)
AbstractBandsetPixelDouble in class AbstractBandx - The X co-ordinate of the pixel locationy - The Y co-ordinate of the pixel locationpixelValue - the new pixel valuepublic void writePixels(int x,
int y,
int w,
int h,
int[] pixels,
ProgressMonitor pm)
throws IOException
writePixels in class AbstractBandx - x offset into the bandy - y offset into the bandw - width of the pixel array to be readh - height of the pixel array to be read.pixels - integer array to be filled with datapm - a monitor to inform the user about progressIOException - if an I/O error occurspublic void writePixels(int x,
int y,
int w,
int h,
float[] pixels,
ProgressMonitor pm)
throws IOException
writePixels in class AbstractBandx - x offset into the bandy - y offset into the bandw - width of the pixel array to be readh - height of the pixel array to be read.pixels - float array to be filled with datapm - a monitor to inform the user about progressIOException - if an I/O error occurspublic void writePixels(int x,
int y,
int w,
int h,
double[] pixels,
ProgressMonitor pm)
throws IOException
writePixels in class AbstractBandx - x offset into the bandy - y offset into the bandw - width of the pixel array to be readh - height of the pixel array to be read.pixels - double array to be filled with datapm - a monitor to inform the user about progressIOException - if an I/O error occurspublic void acceptVisitor(ProductVisitor visitor)
The method simply calls visitor.visit(this).
acceptVisitor in class Bandvisitor - the visitor, must not be nullpublic long getRawStorageSize(ProductSubsetDef subsetDef)
getRawStorageSize in class BandsubsetDef - if not null the subset may limit the size returnedpublic String toString()
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.
protected RenderedImage createSourceImage()
RasterDataNodeRasterDataNode.
This shall preferably be a MultiLevelImage instance which recognises this raster data node's
imageToModelTransform property, if set.createSourceImage in class Bandpublic static MultiLevelImage createSourceImage(RasterDataNode raster, String expression)
MultiLevelImage that computes its pixel values from the given band math expression.
The returned image is intended to be used as source image for the given target raster.
Non-API.
raster - The raster data node.expression - The band-arithmetic expression.Copyright © 2014–2017 European Space Agency (ESA). All rights reserved.