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.
ProductData
RasterDataNode.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_WAVELENGTH
INVALID_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_EXPRESSION
PROPERTY_NAME_DATA, PROPERTY_NAME_READ_ONLY, PROPERTY_NAME_SYNTHETIC, PROPERTY_NAME_UNIT
PROPERTY_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, isProductReaderDirectlyUsable, readRasterData, readRasterDataFully, removeFromFile, setSampleCoding, setSolarFlux, setSpectralBandIndex, setSpectralBandwidth, setSpectralWavelength, writeRasterData, writeRasterDataFully
ensureMinLengthArray, ensureMinLengthArray, ensureMinLengthArray, ensureRasterData, getPixelDouble, getPixelFloat, getPixelInt, getPixels, getPixels, getPixels, getRasterHeight, getRasterWidth, loadRasterData, readPixels, readPixels, readPixels, setPixels, setPixels, setPixels, unloadRasterData
addAncillaryVariable, 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, isPixelWithinImageBounds, isScalingApplied, isSourceImageSet, isStxSet, isValidMaskImageSet, isValidMaskProperty, isValidMaskUsed, loadRasterData, processRasterData, quantizeRasterData, quantizeRasterData, readPixels, readPixels, readPixels, readRasterData, readRasterDataFully, readValidMask, removeAncillaryVariable, removeCachedImageData, 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, writeRasterDataFully
checkDataCompatibility, createCompatibleProductData, fireProductNodeDataChanged, getData, getDataElems, getDataElemSize, getDataType, getNumDataElems, getUnit, isReadOnly, isSynthetic, setData, setDataElems, setReadOnly, setSynthetic, setUnit
fireProductNodeChanged, fireProductNodeChanged, getDescription, getDisplayName, getName, getOwner, getProduct, getProductReader, getProductReaderSafe, getProductRefString, getProductSafe, getProductWriter, getProductWriterSafe, getRawStorageSize, isModified, isPartOfSubset, isValidNodeName, setDescription, setName, setOwner
getExtension
public 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_UINT32
width
- 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 RasterDataNode
oldExternalName
- The old node name.newExternalName
- The new node name.public void setPixelInt(int x, int y, int pixelValue)
AbstractBand
setPixelInt
in class AbstractBand
x
- 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)
AbstractBand
setPixelFloat
in class AbstractBand
x
- 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)
AbstractBand
setPixelDouble
in class AbstractBand
x
- 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 AbstractBand
x
- 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 AbstractBand
x
- 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 AbstractBand
x
- 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 Band
visitor
- the visitor, must not be null
public long getRawStorageSize(ProductSubsetDef subsetDef)
getRawStorageSize
in class Band
subsetDef
- 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()
RasterDataNode
RasterDataNode
.
This shall preferably be a MultiLevelImage
instance which recognises this raster data node's
imageToModelTransform
property, if set.createSourceImage
in class Band
public 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–2022 European Space Agency (ESA). All rights reserved.