Class TiePointGrid
- java.lang.Object
-
- com.bc.ceres.core.ExtensibleObject
-
- org.esa.snap.core.datamodel.ProductNode
-
- org.esa.snap.core.datamodel.DataNode
-
- org.esa.snap.core.datamodel.RasterDataNode
-
- org.esa.snap.core.datamodel.TiePointGrid
-
- All Implemented Interfaces:
Extensible
,Scaling
,SceneTransformProvider
public class TiePointGrid extends RasterDataNode
A tie-point grid contains the data for geophysical parameter in remote sensing data products. Tie-point grid are two-dimensional images which hold their pixel values (samples) in afloat
array.Usually, tie-point grids are a sub-sampling of a data product's scene resolution.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.esa.snap.core.datamodel.RasterDataNode
RasterDataNode.RasterDataProcessor
-
-
Field Summary
Fields Modifier and Type Field Description static int
DISCONT_AT_180
Tie point values have angles in the range -180...+180 degrees and may comprise a discontinuity at 180 (resp.static int
DISCONT_AT_360
Tie point values have are angles in the range 0...+360 degrees and may comprise a discontinuity at 360 (resp.static int
DISCONT_AUTO
The discontinuity of the tie point values shall be detected automatically.static int
DISCONT_NONE
Tie point values are assumed to have none discontinuities.-
Fields inherited from class org.esa.snap.core.datamodel.RasterDataNode
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
-
Fields inherited from class org.esa.snap.core.datamodel.DataNode
PROPERTY_NAME_DATA, PROPERTY_NAME_READ_ONLY, PROPERTY_NAME_SYNTHETIC, PROPERTY_NAME_UNIT
-
Fields inherited from class org.esa.snap.core.datamodel.ProductNode
PROPERTY_NAME_DESCRIPTION, PROPERTY_NAME_NAME
-
-
Constructor Summary
Constructors Constructor Description TiePointGrid(String name, int gridWidth, int gridHeight, double offsetX, double offsetY, double subSamplingX, double subSamplingY)
Constructs a newTiePointGrid
with the given tie point grid properties.TiePointGrid(String name, int gridWidth, int gridHeight, double offsetX, double offsetY, double subSamplingX, double subSamplingY, float[] tiePoints)
Constructs a newTiePointGrid
with the given tie point grid properties.TiePointGrid(String name, int gridWidth, int gridHeight, double offsetX, double offsetY, double subSamplingX, double subSamplingY, float[] tiePoints, boolean containsAngles)
Constructs a newTiePointGrid
with the given tie point grid properties.TiePointGrid(String name, int gridWidth, int gridHeight, double offsetX, double offsetY, double subSamplingX, double subSamplingY, float[] tiePoints, int discontinuity)
Constructs a newTiePointGrid
with the given tie point grid properties.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
acceptVisitor(ProductVisitor visitor)
Accepts the given visitor.TiePointGrid
cloneTiePointGrid()
protected RenderedImage
createSourceImage()
Creates the source image associated with thisRasterDataNode
.static TiePointGrid
createSubset(TiePointGrid sourceTiePointGrid, ProductSubsetDef subsetDef)
static TiePointGrid
createZenithFromElevationAngleTiePointGrid(TiePointGrid elevationAngleGrid)
void
dispose()
Releases all of the resources used by this object instance and all of its owned children.protected static double[]
ensureMinLengthArray(double[] array, int length)
protected static float[]
ensureMinLengthArray(float[] array, int length)
protected static int[]
ensureMinLengthArray(int[] array, int length)
int
getDiscontinuity()
Gets the angular discontinuity.static int
getDiscontinuity(float[] tiePoints)
Determines the angular discontinuity of the given tie point values.int
getGeophysicalDataType()
Returns the geophysical data type of thisRasterDataNode
.ProductData
getGridData()
int
getGridHeight()
int
getGridWidth()
double
getOffsetX()
Retrieves the x co-ordinate of the first (upper-left) tie-point in pixels.double
getOffsetY()
Retrieves the y co-ordinate of the first (upper-left) tie-point in pixels.double
getPixelDouble(double x, double y)
Gets the interpolated sample for the pixel located at (x,y) as a double value.double
getPixelDouble(int x, int y)
Gets the interpolated sample for the pixel located at (x,y) as a double value.float
getPixelFloat(float x, float y)
Computes the interpolated sample for the pixel located at (x,y) given as floating point co-ordinates.float
getPixelFloat(int x, int y)
Computes the interpolated sample for the pixel located at (x,y).int
getPixelInt(int x, int y)
Gets the interpolated 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 an array of tie point data interpolated to the product width and height as float array.float[]
getPixels(int x, int y, int w, int h, float[] pixels, ProgressMonitor pm)
Retrieves an array of tie point data interpolated to the product with and height as double array.int[]
getPixels(int x, int y, int w, int h, int[] pixels, ProgressMonitor pm)
Retrieves an array of tie point data interpolated to the product with and height as integer array.ProductData
getRasterData()
Gets the linear interpolated raster data containingrasterWidth
xrasterHeight
samples.int
getRasterHeight()
int
getRasterWidth()
double
getSubSamplingX()
Returns the sub-sampling in X-direction given in the pixel co-ordinates of the data product to which this tie-point grid belongs to.double
getSubSamplingY()
Returns the sub-sampling in Y-direction given in the pixel co-ordinates of the data product to which this tie-point grid belongs to.float[]
getTiePoints()
boolean
isFloatingPointType()
Returnstrue
double[]
readPixels(int x, int y, int w, int h, double[] pixels, ProgressMonitor pm)
Retrieves an array of tie point data interpolated to the product with and height as double array.float[]
readPixels(int x, int y, int w, int h, float[] pixels, ProgressMonitor pm)
Retrieves an array of tie point data interpolated to the product with and height as float array.int[]
readPixels(int x, int y, int w, int h, int[] pixels, ProgressMonitor pm)
Retrieves an array of tie point data interpolated to the product with and height as float array.void
readRasterData(int offsetX, int offsetY, int width, int height, ProductData rasterData, ProgressMonitor pm)
Reads raster data from this dataset into the user-supplied raster data buffer.void
readRasterDataFully(ProgressMonitor pm)
Reads the complete underlying raster data.void
setData(ProductData data)
Sets the data of this data node.void
setDiscontinuity(int discontinuity)
Sets the angular discontinuity.void
setPixelDouble(int x, int y, double pixelValue)
This method is not implemented because pixels are read-only in tie-point grids.void
setPixelFloat(int x, int y, float pixelValue)
This method is not implemented because pixels are read-only in tie-point grids.void
setPixelInt(int x, int y, int pixelValue)
This method is not implemented because pixels are read-only in tie-point grids.void
setPixels(int x, int y, int w, int h, double[] pixels)
This method is not implemented because pixels are read-only in tie-point grids.void
setPixels(int x, int y, int w, int h, float[] pixels)
This method is not implemented because pixels are read-only in tie-point grids.void
setPixels(int x, int y, int w, int h, int[] pixels)
This method is not implemented because pixels are read-only in tie-point grids.void
setRasterData(ProductData rasterData)
The method will always fail on tie-point grids as they are read-only.void
writePixels(int x, int y, int w, int h, double[] pixels, ProgressMonitor pm)
This method is not implemented because pixels are read-only in tie-point grids.void
writePixels(int x, int y, int w, int h, float[] pixels, ProgressMonitor pm)
This method is not implemented because pixels are read-only in tie-point grids.void
writePixels(int x, int y, int w, int h, int[] pixels, ProgressMonitor pm)
This method is not implemented because pixels are read-only in tie-point grids.void
writeRasterData(int offsetX, int offsetY, int width, int height, ProductData rasterData, ProgressMonitor pm)
Writes data from this product raster into the specified region of the user-supplied raster.void
writeRasterDataFully(ProgressMonitor pm)
Writes the complete underlying raster data.-
Methods inherited from class org.esa.snap.core.datamodel.RasterDataNode
addAncillaryVariable, canBeOrthorectified, checkCompatibleRasterData, clearNoDataValue, computeStxImpl, createColorIndexedImage, createCompatibleRasterData, createCompatibleRasterData, createCompatibleSceneRasterData, createDefaultImageInfo, createDefaultImageInfo, createMultiLevelModel, createPointing, createRgbImage, createTransectProfileData, fireImageInfoChanged, getAncillaryRelations, getAncillaryVariable, getAncillaryVariables, getGeoCoding, getGeophysicalImage, getGeophysicalNoDataValue, getImageInfo, getImageInfo, getImageInfo, getImageToModelTransform, getModelToSceneTransform, getMultiLevelModel, getNoDataValue, getOverlayMaskGroup, getPixels, getPixels, getPixelString, getPointing, getRasterSize, getSampleFloat, getSampleInt, getScalingFactor, getScalingOffset, getSceneToModelTransform, getSourceImage, getStx, getStx, getTimeCoding, getValidMaskExpression, getValidMaskImage, getValidPixelExpression, getValidShape, hasIntPixels, hasRasterData, isCompatibleRasterData, isGeophysicalImageSet, isLog10Scaled, isNoDataValueSet, isNoDataValueUsed, isPixelValid, isPixelValid, isPixelValid, isPixelWithinImageBounds, isScalingApplied, isSourceImageSet, isStxSet, isValidMaskImageSet, isValidMaskProperty, isValidMaskUsed, loadRasterData, 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, setScalingFactor, setScalingOffset, setSceneToModelTransform, setSourceImage, setSourceImage, setStx, setTimeCoding, setValidPixelExpression, unloadRasterData, updateExpression, writePixels, writePixels, writePixels, writeRasterData, writeRasterDataFully
-
Methods inherited from class org.esa.snap.core.datamodel.DataNode
checkDataCompatibility, createCompatibleProductData, fireProductNodeDataChanged, getData, getDataElems, getDataElemSize, getDataType, getNumDataElems, getRawStorageSize, getUnit, isReadOnly, isSynthetic, setDataElems, setReadOnly, setSynthetic, setUnit
-
Methods inherited from class org.esa.snap.core.datamodel.ProductNode
fireProductNodeChanged, fireProductNodeChanged, getDescription, getDisplayName, getName, getOwner, getProduct, getProductReader, getProductReaderSafe, getProductRefString, getProductSafe, getProductWriter, getProductWriterSafe, getRawStorageSize, isModified, isPartOfSubset, isValidNodeName, removeFromFile, setDescription, setName, setNodeName, setOwner, toString
-
Methods inherited from class com.bc.ceres.core.ExtensibleObject
getExtension
-
-
-
-
Field Detail
-
DISCONT_AUTO
public static final int DISCONT_AUTO
The discontinuity of the tie point values shall be detected automatically.- See Also:
- Constant Field Values
-
DISCONT_NONE
public static final int DISCONT_NONE
Tie point values are assumed to have none discontinuities.- See Also:
- Constant Field Values
-
DISCONT_AT_180
public static final int DISCONT_AT_180
Tie point values have angles in the range -180...+180 degrees and may comprise a discontinuity at 180 (resp. -180) degrees.- See Also:
- Constant Field Values
-
DISCONT_AT_360
public static final int DISCONT_AT_360
Tie point values have are angles in the range 0...+360 degrees and may comprise a discontinuity at 360 (resp. 0) degrees.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
TiePointGrid
public TiePointGrid(String name, int gridWidth, int gridHeight, double offsetX, double offsetY, double subSamplingX, double subSamplingY)
Constructs a newTiePointGrid
with the given tie point grid properties.- Parameters:
name
- the name of the new objectgridWidth
- the width of the tie-point grid in pixelsgridHeight
- the height of the tie-point grid in pixelsoffsetX
- the X co-ordinate of the first (upper-left) tie-point in pixelsoffsetY
- the Y co-ordinate of the first (upper-left) tie-point in pixelssubSamplingX
- the sub-sampling in X-direction given in the pixel co-ordinates of the data product to which this tie-point grid belongs to. Must not be less than one.subSamplingY
- the sub-sampling in X-direction given in the pixel co-ordinates of the data product to which this tie-point grid belongs to. Must not be less than one.
-
TiePointGrid
public TiePointGrid(String name, int gridWidth, int gridHeight, double offsetX, double offsetY, double subSamplingX, double subSamplingY, float[] tiePoints)
Constructs a newTiePointGrid
with the given tie point grid properties.- Parameters:
name
- the name of the new objectgridWidth
- the width of the tie-point grid in pixelsgridHeight
- the height of the tie-point grid in pixelsoffsetX
- the X co-ordinate of the first (upper-left) tie-point in pixelsoffsetY
- the Y co-ordinate of the first (upper-left) tie-point in pixelssubSamplingX
- the sub-sampling in X-direction given in the pixel co-ordinates of the data product to which this tie-point grid belongs to. Must not be less than one.subSamplingY
- the sub-sampling in X-direction given in the pixel co-ordinates of the data product to which this tie-point grid belongs to. Must not be less than one.tiePoints
- the tie-point data values, must be an array of the sizegridWidth * gridHeight
-
TiePointGrid
public TiePointGrid(String name, int gridWidth, int gridHeight, double offsetX, double offsetY, double subSamplingX, double subSamplingY, float[] tiePoints, boolean containsAngles)
Constructs a newTiePointGrid
with the given tie point grid properties.- Parameters:
name
- the name of the new objectgridWidth
- the width of the tie-point grid in pixelsgridHeight
- the height of the tie-point grid in pixelsoffsetX
- the X co-ordinate of the first (upper-left) tie-point in pixelsoffsetY
- the Y co-ordinate of the first (upper-left) tie-point in pixelssubSamplingX
- the sub-sampling in X-direction given in the pixel co-ordinates of the data product to which this tie-point grid belongs to. Must not be less than one.subSamplingY
- the sub-sampling in X-direction given in the pixel co-ordinates of the data product to which this tie-point grid belongs to. Must not be less than one.tiePoints
- the tie-point data values, must be an array of the sizegridWidth * gridHeight
containsAngles
- if true, theangular discontinuity
is derived from the provided tie-point data values
-
TiePointGrid
public TiePointGrid(String name, int gridWidth, int gridHeight, double offsetX, double offsetY, double subSamplingX, double subSamplingY, float[] tiePoints, int discontinuity)
Constructs a newTiePointGrid
with the given tie point grid properties.- Parameters:
name
- the name of the new objectgridWidth
- the width of the tie-point grid in pixelsgridHeight
- the height of the tie-point grid in pixelsoffsetX
- the X co-ordinate of the first (upper-left) tie-point in pixelsoffsetY
- the Y co-ordinate of the first (upper-left) tie-point in pixelssubSamplingX
- the sub-sampling in X-direction given in the pixel co-ordinates of the data product to which this tie-point grid belongs to. Must not be less than one.subSamplingY
- the sub-sampling in X-direction given in the pixel co-ordinates of the data product to which this tie-point grid belongs to. Must not be less than one.tiePoints
- the tie-point data values, must be an array of the sizegridWidth * gridHeight
discontinuity
- the discontinuity mode, can be eitherDISCONT_NONE
,DISCONT_AUTO
,DISCONT_AT_180
orDISCONT_AT_360
-
-
Method Detail
-
getGridWidth
public int getGridWidth()
- Returns:
- The grid's width (= number of columns).
-
getGridHeight
public int getGridHeight()
- Returns:
- The grid's height (= number of rows).
-
getOffsetX
public double getOffsetX()
Retrieves the x co-ordinate of the first (upper-left) tie-point in pixels.
-
getOffsetY
public double getOffsetY()
Retrieves the y co-ordinate of the first (upper-left) tie-point in pixels.
-
getSubSamplingX
public double getSubSamplingX()
Returns the sub-sampling in X-direction given in the pixel co-ordinates of the data product to which this tie-point grid belongs to.- Returns:
- the sub-sampling in X-direction, never less than one.
-
getSubSamplingY
public double getSubSamplingY()
Returns the sub-sampling in Y-direction given in the pixel co-ordinates of the data product to which this tie-point grid belongs to.- Returns:
- the sub-sampling in Y-direction, never less than one.
-
getTiePoints
public float[] getTiePoints()
- Returns:
- The data array representing the single tie-points.
-
getGridData
public ProductData getGridData()
- Returns:
- The data buffer representing the single tie-points.
-
getRasterWidth
public int getRasterWidth()
- Specified by:
getRasterWidth
in classRasterDataNode
- Returns:
- The native width of the raster in pixels.
-
getRasterHeight
public int getRasterHeight()
- Specified by:
getRasterHeight
in classRasterDataNode
- Returns:
- The native height of the raster in pixels.
-
getDiscontinuity
public static int getDiscontinuity(float[] tiePoints)
Determines the angular discontinuity of the given tie point values.- Returns:
- the angular discontinuity, will always be either
DISCONT_AT_180
orDISCONT_AT_360
-
getDiscontinuity
public int getDiscontinuity()
Gets the angular discontinuity.- Returns:
- the angular discontinuity, will always be either
DISCONT_NONE
,DISCONT_AUTO
,DISCONT_AT_180
orDISCONT_AT_360
-
setDiscontinuity
public void setDiscontinuity(int discontinuity)
Sets the angular discontinuity.- Parameters:
discontinuity
- angular discontinuity, can be eitherDISCONT_NONE
,DISCONT_AUTO
,DISCONT_AT_180
orDISCONT_AT_360
-
isFloatingPointType
public boolean isFloatingPointType()
Returnstrue
- Overrides:
isFloatingPointType
in classRasterDataNode
- Returns:
- true
-
getGeophysicalDataType
public int getGeophysicalDataType()
Returns the geophysical data type of thisRasterDataNode
. The value returned is always one of theProductData.TYPE_XXX
constants.- Overrides:
getGeophysicalDataType
in classRasterDataNode
- Returns:
- the geophysical data type
- See Also:
ProductData
-
setData
public void setData(ProductData data)
Description copied from class:DataNode
Sets the data of this data node.
-
getRasterData
public ProductData getRasterData()
Gets the linear interpolated raster data containingrasterWidth
xrasterHeight
samples.- Overrides:
getRasterData
in classRasterDataNode
- Returns:
- The raster data for this tie-point grid.
-
setRasterData
public void setRasterData(ProductData rasterData) throws UnsupportedOperationException
The method will always fail on tie-point grids as they are read-only.- Overrides:
setRasterData
in classRasterDataNode
- Parameters:
rasterData
- The raster data whose reference will be stored.- Throws:
UnsupportedOperationException
- See Also:
RasterDataNode.getRasterData()
-
getPixelInt
public int getPixelInt(int x, int y)
Gets the interpolated sample for the pixel located at (x,y) as an integer value.If the pixel co-ordinates given by (x,y) are not covered by this tie-point grid, the method extrapolates.
- Specified by:
getPixelInt
in classRasterDataNode
- Parameters:
x
- The X co-ordinate of the pixel locationy
- The Y co-ordinate of the pixel location- Returns:
- the pixel value at (x,y)
- Throws:
ArrayIndexOutOfBoundsException
- if the co-ordinates are not in bounds
-
dispose
public void dispose()
Description copied from class:RasterDataNode
Releases all of the resources used by this object instance and all of its owned children. Its primary use is to allow the garbage collector to perform a vanilla job.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.- Overrides:
dispose
in classRasterDataNode
-
getPixelFloat
public float getPixelFloat(int x, int y)
Computes the interpolated sample for the pixel located at (x,y).If the pixel co-ordinates given by (x,y) are not covered by this tie-point grid, the method extrapolates.
- Specified by:
getPixelFloat
in classRasterDataNode
- Parameters:
x
- The X co-ordinate of the pixel location, given in the pixel co-ordinates of the data product to which this tie-point grid belongs to.y
- The Y co-ordinate of the pixel location, given in the pixel co-ordinates of the data product to which this tie-point grid belongs to.- Returns:
- the pixel value at (x,y)
- Throws:
ArrayIndexOutOfBoundsException
- if the co-ordinates are not in bounds
-
getPixelFloat
public final float getPixelFloat(float x, float y)
Computes the interpolated sample for the pixel located at (x,y) given as floating point co-ordinates.If the pixel co-ordinates given by (x,y) are not covered by this tie-point grid, the method extrapolates.
- Parameters:
x
- The X co-ordinate of the pixel location, given in the pixel co-ordinates of the data product to which this tie-point grid belongs to.y
- The Y co-ordinate of the pixel location, given in the pixel co-ordinates of the data product to which this tie-point grid belongs to.- Throws:
ArrayIndexOutOfBoundsException
- if the co-ordinates are not in bounds
-
getPixelDouble
public double getPixelDouble(int x, int y)
Gets the interpolated sample for the pixel located at (x,y) as a double value.If the pixel co-ordinates given by (x,y) are not covered by this tie-point grid, the method extrapolates.
- Specified by:
getPixelDouble
in classRasterDataNode
- Parameters:
x
- The X co-ordinate of the pixel location, given in the pixel co-ordinates of the data product to which this tie-point grid belongs to.y
- The Y co-ordinate of the pixel location, given in the pixel co-ordinates of the data product to which this tie-point grid belongs to.- Returns:
- the pixel value at (x,y)
- Throws:
ArrayIndexOutOfBoundsException
- if the co-ordinates are not in bounds
-
getPixelDouble
public double getPixelDouble(double x, double y)
Gets the interpolated sample for the pixel located at (x,y) as a double value.If the pixel co-ordinates given by (x,y) are not covered by this tie-point grid, the method extrapolates.
- Parameters:
x
- The X co-ordinate of the pixel location, given in the pixel co-ordinates of the data product to which this tie-point grid belongs to.y
- The Y co-ordinate of the pixel location, given in the pixel co-ordinates of the data product to which this tie-point grid belongs to.- Throws:
ArrayIndexOutOfBoundsException
- if the co-ordinates are not in bounds
-
setPixelInt
public void setPixelInt(int x, int y, int pixelValue)
This method is not implemented because pixels are read-only in tie-point grids.- Specified by:
setPixelInt
in classRasterDataNode
- Parameters:
x
- the X co-ordinate of the pixel locationy
- the Y co-ordinate of the pixel locationpixelValue
- the new pixel value at (x,y)
-
setPixelFloat
public void setPixelFloat(int x, int y, float pixelValue)
This method is not implemented because pixels are read-only in tie-point grids.- Specified by:
setPixelFloat
in classRasterDataNode
- Parameters:
x
- the X co-ordinate of the pixel locationy
- the Y co-ordinate of the pixel locationpixelValue
- the new pixel value at (x,y)
-
setPixelDouble
public void setPixelDouble(int x, int y, double pixelValue)
This method is not implemented because pixels are read-only in tie-point grids.- Specified by:
setPixelDouble
in classRasterDataNode
- Parameters:
x
- the X co-ordinate of the pixel locationy
- the Y co-ordinate of the pixel locationpixelValue
- the new pixel value at (x,y)
-
getPixels
public int[] getPixels(int x, int y, int w, int h, int[] pixels, ProgressMonitor pm)
Retrieves an array of tie point data interpolated to the product with and height as integer array. If the given array isnull
a new one was created and returned.- Specified by:
getPixels
in classRasterDataNode
- Parameters:
x
- the x coordinate of the array to be ready
- the y coordinate of the array to be readw
- the width of the array to be readh
- the height of the array to be readpixels
- the integer array to be filled with datapm
- a monitor to inform the user about progress- Throws:
IllegalArgumentException
- if the length of the given array is less thanw*h
.
-
getPixels
public double[] getPixels(int x, int y, int w, int h, double[] pixels, ProgressMonitor pm)
Retrieves an array of tie point data interpolated to the product width and height as float array. If the given array isnull
a new one is created and returned.- Specified by:
getPixels
in classRasterDataNode
- Parameters:
x
- the x coordinate of the array to be ready
- the y coordinate of the array to be readw
- the width of the array to be readh
- the height of the array to be readpixels
- the float array to be filled with datapm
- a monitor to inform the user about progress- Throws:
IllegalArgumentException
- if the length of the given array is less thanw*h
.
-
getPixels
public float[] getPixels(int x, int y, int w, int h, float[] pixels, ProgressMonitor pm)
Retrieves an array of tie point data interpolated to the product with and height as double array. If the given array isnull
a new one was created and returned.- Specified by:
getPixels
in classRasterDataNode
- Parameters:
x
- the x coordinate of the array to be ready
- the y coordinate of the array to be readw
- the width of the array to be readh
- the height of the array to be readpixels
- the double array to be filled with datapm
- a progress monitor- Throws:
IllegalArgumentException
- if the length of the given array is less thanw*h
.
-
setPixels
public void setPixels(int x, int y, int w, int h, int[] pixels)
This method is not implemented because pixels are read-only in tie-point grids.- Specified by:
setPixels
in classRasterDataNode
- Parameters:
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 written
-
setPixels
public void setPixels(int x, int y, int w, int h, float[] pixels)
This method is not implemented because pixels are read-only in tie-point grids.- Specified by:
setPixels
in classRasterDataNode
- Parameters:
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 written
-
setPixels
public void setPixels(int x, int y, int w, int h, double[] pixels)
This method is not implemented because pixels are read-only in tie-point grids.- Specified by:
setPixels
in classRasterDataNode
- Parameters:
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 written
-
readPixels
public int[] readPixels(int x, int y, int w, int h, int[] pixels, ProgressMonitor pm) throws IOException
Retrieves an array of tie point data interpolated to the product with and height as float array. If the given array isnull
a new one was created and returned.- Specified by:
readPixels
in classRasterDataNode
- Parameters:
x
- the x coordinate of the array to be ready
- the y coordinate of the array to be readw
- the width of the array to be readh
- the height of the array to be readpixels
- the integer array to be filled with datapm
- a progress monitor- Returns:
- the pixels read
- Throws:
IllegalArgumentException
- if the length of the given array is less thanw*h
.IOException
- if an /IO error occurs
-
readPixels
public float[] readPixels(int x, int y, int w, int h, float[] pixels, ProgressMonitor pm) throws IOException
Retrieves an array of tie point data interpolated to the product with and height as float array. If the given array isnull
a new one was created and returned. *- Specified by:
readPixels
in classRasterDataNode
- Parameters:
x
- the x coordinate of the array to be ready
- the y coordinate of the array to be readw
- the width of the array to be readh
- the height of the array to be readpixels
- the float array to be filled with datapm
- a monitor to inform the user about progress- Returns:
- the pixels read
- Throws:
IllegalArgumentException
- if the length of the given array is less thanw*h
.IOException
-
readPixels
public double[] readPixels(int x, int y, int w, int h, double[] pixels, ProgressMonitor pm) throws IOException
Retrieves an array of tie point data interpolated to the product with and height as double array. If the given array isnull
a new one was created and returned.- Specified by:
readPixels
in classRasterDataNode
- Parameters:
x
- the x coordinate of the array to be ready
- the y coordinate of the array to be readw
- the width of the array to be readh
- the height of the array to be readpixels
- the double array to be filled with datapm
- a monitor to inform the user about progress- Returns:
- the pixels read
- Throws:
IllegalArgumentException
- if the length of the given array is less thanw*h
.IOException
-
writePixels
public void writePixels(int x, int y, int w, int h, int[] pixels, ProgressMonitor pm) throws IOException
This method is not implemented because pixels are read-only in tie-point grids.- Specified by:
writePixels
in classRasterDataNode
- Parameters:
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 writtenpixels
- array of pixels to writepm
- a progress monitor- Throws:
IOException
- if an I/O error occurs
-
writePixels
public void writePixels(int x, int y, int w, int h, float[] pixels, ProgressMonitor pm) throws IOException
This method is not implemented because pixels are read-only in tie-point grids.- Specified by:
writePixels
in classRasterDataNode
- Parameters:
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 writtenpixels
- array of pixels to writepm
- a progress monitor- Throws:
IOException
- if an I/O error occurs
-
writePixels
public void writePixels(int x, int y, int w, int h, double[] pixels, ProgressMonitor pm) throws IOException
This method is not implemented because pixels are read-only in tie-point grids.- Specified by:
writePixels
in classRasterDataNode
- Parameters:
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 writtenpixels
- array of pixels to writepm
- a progress monitor- Throws:
IOException
- if an I/O error occurs
-
readRasterData
public void readRasterData(int offsetX, int offsetY, int width, int height, ProductData rasterData, ProgressMonitor pm) throws IOException
Reads raster data from this dataset into the user-supplied raster data buffer.This method always directly (re-)reads this tie-point grid's data from its associated data source into the given data buffer.
- Specified by:
readRasterData
in classRasterDataNode
- Parameters:
offsetX
- the X-offset in the raster co-ordinates where reading startsoffsetY
- the Y-offset in the 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- Throws:
IOException
- if an I/O error occursIllegalArgumentException
- if the raster is nullIllegalStateException
- 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 reader- See Also:
ProductReader.readBandRasterData(Band, int, int, int, int, ProductData, com.bc.ceres.core.ProgressMonitor)
-
readRasterDataFully
public void readRasterDataFully(ProgressMonitor pm) throws IOException
Reads the complete underlying raster data.After this method has been called successfully,
hasRasterData()
should always returntrue
andgetRasterData()
should always return a validProductData
instance with at leastgetRasterWidth()*getRasterHeight()
elements (samples).In opposite to the
loadRasterData
method, thereadRasterDataFully
method always reloads the data of this product raster, independently of whether its has already been loaded or not.- Specified by:
readRasterDataFully
in classRasterDataNode
- Parameters:
pm
- a monitor to inform the user about progress- Throws:
IOException
- if an I/O error occurs- See Also:
RasterDataNode.loadRasterData()
,RasterDataNode.readRasterData(int, int, int, int, ProductData, com.bc.ceres.core.ProgressMonitor)
-
writeRasterData
public void writeRasterData(int offsetX, int offsetY, int width, int height, ProductData rasterData, ProgressMonitor pm) throws IOException
Writes data from this product raster into the specified region of the user-supplied raster.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.
- Specified by:
writeRasterData
in classRasterDataNode
- Parameters:
offsetX
- 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- Throws:
IOException
- if an I/O error occurs- See Also:
ProductReader.readBandRasterData(Band, int, int, int, int, ProductData, com.bc.ceres.core.ProgressMonitor)
-
writeRasterDataFully
public void writeRasterDataFully(ProgressMonitor pm) throws IOException
Writes the complete underlying raster data.- Specified by:
writeRasterDataFully
in classRasterDataNode
- Parameters:
pm
- a monitor to inform the user about progress- Throws:
IOException
- if an I/O error occurs
-
createSourceImage
protected RenderedImage createSourceImage()
Description copied from class:RasterDataNode
Creates the source image associated with thisRasterDataNode
. This shall preferably be aMultiLevelImage
instance which recognises this raster data node's {@link ##getImageToModelTransform() imageToModelTransform} property, if set.- Specified by:
createSourceImage
in classRasterDataNode
- Returns:
- A new source image instance.
-
acceptVisitor
public void acceptVisitor(ProductVisitor visitor)
Accepts the given visitor. This method implements the well known 'Visitor' design pattern of the gang-of-four. The visitor pattern allows to define new operations on the product data model without the need to add more code to it. The new operation is implemented by the visitor.The method simply calls
visitor.visit(this)
.- Specified by:
acceptVisitor
in classRasterDataNode
- Parameters:
visitor
- the visitor
-
cloneTiePointGrid
public TiePointGrid cloneTiePointGrid()
-
createZenithFromElevationAngleTiePointGrid
public static TiePointGrid createZenithFromElevationAngleTiePointGrid(TiePointGrid elevationAngleGrid)
-
ensureMinLengthArray
protected static int[] ensureMinLengthArray(int[] array, int length)
-
ensureMinLengthArray
protected static float[] ensureMinLengthArray(float[] array, int length)
-
ensureMinLengthArray
protected static double[] ensureMinLengthArray(double[] array, int length)
-
createSubset
public static TiePointGrid createSubset(TiePointGrid sourceTiePointGrid, ProductSubsetDef subsetDef)
-
-