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  MultiLevelImagethat 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  oldExternalNamewitholdExternalName. | 
| 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, 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, 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, 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–2022 European Space Agency (ESA). All rights reserved.