public abstract class AbstractBand extends RasterDataNode
AbstractBand
class provides a set of pixel access methods but does not provide an implementation of
the actual reading and writing of pixel data from or into a raster.RasterDataNode.RasterDataProcessor
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 |
---|
AbstractBand(String name,
int dataType,
int rasterWidth,
int rasterHeight) |
Modifier and Type | Method and Description |
---|---|
protected static double[] |
ensureMinLengthArray(double[] array,
int length) |
protected static float[] |
ensureMinLengthArray(float[] array,
int length) |
protected static int[] |
ensureMinLengthArray(int[] array,
int length) |
void |
ensureRasterData()
Ensures that raster data exists
|
double |
getPixelDouble(int x,
int y)
Gets the sample for the pixel located at (x,y) as a double value.
|
float |
getPixelFloat(int x,
int y)
Gets the sample for the pixel located at (x,y) as a float value.
|
int |
getPixelInt(int x,
int y)
Gets the sample for the pixel located at (x,y) as an integer value.
|
double[] |
getPixels(int x,
int y,
int w,
int h,
double[] pixels,
ProgressMonitor pm)
Retrieves the range of pixels specified by the coordinates as double array.
|
float[] |
getPixels(int x,
int y,
int w,
int h,
float[] pixels,
ProgressMonitor pm)
Retrieves the range of pixels specified by the coordinates as float array.
|
int[] |
getPixels(int x,
int y,
int w,
int h,
int[] pixels,
ProgressMonitor pm)
Retrieves the range of pixels specified by the coordinates as integer array.
|
int |
getRasterHeight() |
int |
getRasterWidth() |
abstract long |
getRawStorageSize(ProductSubsetDef subsetDef)
Gets an estimated raw storage size in bytes of this product node.
|
void |
loadRasterData(ProgressMonitor pm)
Loads the complete underlying raster data.
|
double[] |
readPixels(int x,
int y,
int w,
int h,
double[] pixels,
ProgressMonitor pm)
Retrieves the band data at the given offset (x, y), width and height as double data.
|
float[] |
readPixels(int x,
int y,
int w,
int h,
float[] pixels,
ProgressMonitor pm)
Retrieves the band data at the given offset (x, y), width and height as float data.
|
int[] |
readPixels(int x,
int y,
int w,
int h,
int[] pixels,
ProgressMonitor pm)
Retrieves the band data at the given offset (x, y), width and height as integer data.
|
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.
|
void |
setPixels(int x,
int y,
int w,
int h,
double[] pixels)
Sets a range of pixels specified by the coordinates as double array.
|
void |
setPixels(int x,
int y,
int w,
int h,
float[] pixels)
Sets a range of pixels specified by the coordinates as float array.
|
void |
setPixels(int x,
int y,
int w,
int h,
int[] pixels)
Sets a range of pixels specified by the coordinates as integer array.
|
void |
unloadRasterData()
Un-loads the raster data for this band.
|
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.
|
acceptVisitor, addAncillaryVariable, canBeOrthorectified, checkCompatibleRasterData, clearNoDataValue, computeStxImpl, createColorIndexedImage, createCompatibleRasterData, createCompatibleRasterData, createCompatibleSceneRasterData, createDefaultImageInfo, createDefaultImageInfo, createMultiLevelModel, createPointing, createRgbImage, createSourceImage, createTransectProfileData, dispose, 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, readRasterData, readRasterDataFully, 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, updateExpression, writePixels, writePixels, writePixels, writeRasterData, writeRasterData, writeRasterDataFully, 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, removeFromFile, setDescription, setName, setOwner, toString
getExtension
public AbstractBand(String name, int dataType, int rasterWidth, int rasterHeight)
public int getRasterWidth()
getRasterWidth
in class RasterDataNode
public int getRasterHeight()
getRasterHeight
in class RasterDataNode
public void writePixels(int x, int y, int w, int h, int[] pixels, ProgressMonitor pm) throws IOException
writePixels
in class RasterDataNode
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 RasterDataNode
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 RasterDataNode
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 abstract long getRawStorageSize(ProductSubsetDef subsetDef)
getRawStorageSize
in class DataNode
subsetDef
- if not null
the subset may limit the size returnedprotected static int[] ensureMinLengthArray(int[] array, int length)
protected static float[] ensureMinLengthArray(float[] array, int length)
protected static double[] ensureMinLengthArray(double[] array, int length)
public int getPixelInt(int x, int y)
getPixelInt
in class RasterDataNode
x
- The X co-ordinate of the pixel locationy
- The Y co-ordinate of the pixel locationNullPointerException
- if this band has no raster dataArrayIndexOutOfBoundsException
- if the co-ordinates are not in boundspublic float getPixelFloat(int x, int y)
getPixelFloat
in class RasterDataNode
x
- The X co-ordinate of the pixel locationy
- The Y co-ordinate of the pixel locationNullPointerException
- if this band has no raster dataArrayIndexOutOfBoundsException
- if the co-ordinates are not in boundspublic double getPixelDouble(int x, int y)
getPixelDouble
in class RasterDataNode
x
- The X co-ordinate of the pixel locationy
- The Y co-ordinate of the pixel locationNullPointerException
- if this band has no raster dataArrayIndexOutOfBoundsException
- if the co-ordinates are not in boundspublic void setPixelInt(int x, int y, int pixelValue)
setPixelInt
in class RasterDataNode
x
- The X co-ordinate of the pixel locationy
- The Y co-ordinate of the pixel locationpixelValue
- the new pixel valueNullPointerException
- if this band has no raster datapublic void setPixelFloat(int x, int y, float pixelValue)
setPixelFloat
in class RasterDataNode
x
- The X co-ordinate of the pixel locationy
- The Y co-ordinate of the pixel locationpixelValue
- the new pixel valueNullPointerException
- if this band has no raster datapublic void setPixelDouble(int x, int y, double pixelValue)
setPixelDouble
in class RasterDataNode
x
- The X co-ordinate of the pixel locationy
- The Y co-ordinate of the pixel locationpixelValue
- the new pixel valueNullPointerException
- if this band has no raster datapublic int[] readPixels(int x, int y, int w, int h, int[] pixels, ProgressMonitor pm) throws IOException
null
a new one was created and
returned.readPixels
in class RasterDataNode
x
- x offest of upper left cornery
- y offset of upper left cornerw
- width of the desired data arrayh
- height of the desired data arraypixels
- array of integer pixels to be filled with datapm
- a monitor to inform the user about progressIllegalArgumentException
- if the length of the given array is less than w*h
.IOException
- if an /IO error occurspublic float[] readPixels(int x, int y, int w, int h, float[] pixels, ProgressMonitor pm) throws IOException
null
a new one was created and
returned.readPixels
in class RasterDataNode
x
- x offest of upper left cornery
- y offset of upper left cornerw
- width of the desired data arrayh
- height of the desired data arraypixels
- array of float pixels to be filled with data.pm
- a monitor to inform the user about progressIllegalArgumentException
- if the length of the given array is less than w*h
.IOException
public double[] readPixels(int x, int y, int w, int h, double[] pixels, ProgressMonitor pm) throws IOException
null
a new one was created and
returned.readPixels
in class RasterDataNode
x
- x offest of upper left cornery
- y offset of upper left cornerw
- width of the desired data arrayh
- height of the desired data arraypixels
- array of double pixels to be filled with datapm
- a monitor to inform the user about progressIllegalArgumentException
- if the length of the given array is less than w*h
.IOException
public int[] getPixels(int x, int y, int w, int h, int[] pixels, ProgressMonitor pm)
null
a new one was created and returned.getPixels
in class RasterDataNode
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 progressNullPointerException
- if this band has no raster dataIllegalArgumentException
- if the length of the given array is less than w*h
.public float[] getPixels(int x, int y, int w, int h, float[] pixels, ProgressMonitor pm)
null
a new one was created and returned.getPixels
in class RasterDataNode
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 progressNullPointerException
- if this band has no raster dataIllegalArgumentException
- if the length of the given array is less than w*h
.public double[] getPixels(int x, int y, int w, int h, double[] pixels, ProgressMonitor pm)
null
a new one was created and returned.getPixels
in class RasterDataNode
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 progressNullPointerException
- if this band has no raster dataIllegalArgumentException
- if the length of the given array is less than w*h
.public void setPixels(int x, int y, int w, int h, int[] pixels)
setPixels
in class RasterDataNode
x
- x offset into the bandy
- y offset into the bandw
- width of the pixel array to be writtenh
- height of the pixel array to be written.pixels
- integer array to be writtenNullPointerException
- if this band has no raster datapublic void setPixels(int x, int y, int w, int h, float[] pixels)
setPixels
in class RasterDataNode
x
- x offset into the bandy
- y offset into the bandw
- width of the pixel array to be writtenh
- height of the pixel array to be written.pixels
- float array to be writtenpublic void setPixels(int x, int y, int w, int h, double[] pixels)
setPixels
in class RasterDataNode
x
- x offset into the bandy
- y offset into the bandw
- width of the pixel array to be writtenh
- height of the pixel array to be written.pixels
- double array to be writtenpublic void ensureRasterData()
public void loadRasterData(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 readRasterDataFully
method, loadRasterData
will only read data
if this has not already been done.
loadRasterData
in class RasterDataNode
pm
- a monitor to inform the user about progressIOException
- if an I/O error occursRasterDataNode.readRasterDataFully(ProgressMonitor)
public void unloadRasterData()
After this method has been called successfully, the hasRasterData()
method returns
false
and getRasterData()
returns null
.
unloadRasterData
in class RasterDataNode
RasterDataNode.loadRasterData()
Copyright © 2014–2016 European Space Agency (ESA). All rights reserved.