Package org.geotools.coverage.processing
Class Operations
Object
Operations
Convenience, type-safe, methods for applying some common operations on coverage objects. All
methods wrap their arguments in a parameter value group and delegate the work to the
processor's
doOperation
method. This convenience class do not brings any new
functionalities, but brings type-safety when the operation is know at compile time. For operation unknown at compile
time (e.g. for an operation selected by users in some widget), use the processor
directly.- Since:
- 2.2
- Author:
- Martin Desruisseaux (IRD)
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionOperations
(RenderingHints hints) Creates a new instance using the specified hints. -
Method Summary
Modifier and TypeMethodDescriptionComputes the mathematical absolute value of each sample value.Adds constants (one for each band) to every sample values of the source coverage.Returns the sum between two coveragesaffine
(GridCoverage source, AffineTransform transform, Interpolation interpolation, double[] noDataValues) Translates and resizes an image.Crops the image to a specified rectangular area.Crops the image to a specified clipping areaDivides every sample values of the source coverage by constants (one for each band).protected final Coverage
doOperation
(String operationName, Coverage source) Applies a process operation with default parameters.protected final Coverage
doOperation
(String operationName, Coverage source, String argumentName1, Object argumentValue1) Applies a process operation with one parameter.protected final Coverage
doOperation
(String operationName, Coverage source, String argumentName1, Object argumentValue1, String argumentName2, Object argumentValue2) Applies process operation with two parameters.protected final Coverage
doOperation
(String operationName, Coverage source, String argumentName1, Object argumentValue1, String argumentName2, Object argumentValue2, String argumentName3, Object argumentValue3) Applies a process operation with three parameters.protected final Coverage
doOperation
(String operationName, Coverage source, String argumentName1, Object argumentValue1, String argumentName2, Object argumentValue2, String argumentName3, Object argumentValue3, String argumentName4, Object argumentValue4) Applies a process operation with four parameters.protected final Coverage
doOperation
(String operationName, Coverage source, String argumentName1, Object argumentValue1, String argumentName2, Object argumentValue2, String argumentName3, Object argumentValue3, String argumentName4, Object argumentValue4, String argumentName5, Object argumentValue5) Applies a process operation with five parameters.protected final Coverage
doOperation
(String operationName, Coverage source, String argumentName1, Object argumentValue1, String argumentName2, Object argumentValue2, String argumentName3, Object argumentValue3, String argumentName4, Object argumentValue4, String argumentName5, Object argumentValue5, String argumentName6, Object argumentValue6) Applies a process operation with six parameters.protected final Coverage
doOperation
(String operationName, Coverage source0, Coverage source1) Applies a process binary operation on two coverages with default parameters.Takes the exponential of the sample values of a coverage.Finds the maximum and minimum pixel values for each band within that region of the coverage.filteredSubsample
(GridCoverage source) Subsamples an image using the default values.filteredSubsample
(GridCoverage source, int scaleX, int scaleY, float[] qsFilter) Subsamples an image by integral factors.filteredSubsample
(GridCoverage source, int scaleX, int scaleY, float[] qsFilter, Interpolation interpolation) Subsamples an image by integral factors.interpolate
(GridCoverage source, String type) Specifies the interpolation type to be used to interpolate values for points which fall between grid cells.interpolate
(GridCoverage source, Interpolation type) Specifies the interpolation type to be used to interpolate values for points which fall between grid cells.interpolate
(GridCoverage source, Interpolation[] types) Specifies the interpolation types to be used to interpolate values for points which fall between grid cells.Inverts the sample values of a coverage.Takes the natural logarithm of the sample values of a coverage.Multiplies every sample values of the source coverage by constants (one for each band).Returns the multiplication between two coveragesnodataFilter
(GridCoverage source) ReplacesNaN
values by the weighted average of neighbors values.nodataFilter
(GridCoverage source, int padding, int validityThreshold) ReplacesNaN
values by the weighted average of neighbors values.resample
(Coverage source, CoordinateReferenceSystem crs) Resamples a coverage to the specified coordinate reference system.resample
(GridCoverage source, Bounds envelope, Interpolation interpolationType) Resamples a grid coverage to the specified envelope.resample
(GridCoverage source, CoordinateReferenceSystem crs, GridGeometry gridGeometry, Interpolation interpolationType) Resamples a grid coverage to the specified coordinate reference system and grid geometry.resample
(GridCoverage source, CoordinateReferenceSystem crs, GridGeometry gridGeometry, Interpolation interpolationType, double[] backgroundValues) Resamples a grid coverage to the specified coordinate reference system and grid geometry.Maps the sample values of a coverage from one range to another range.scale
(GridCoverage source, double xScale, double yScale, double xTrans, double yTrans) Translates and resizes an image.scale
(GridCoverage source, double xScale, double yScale, double xTrans, double yTrans, Interpolation interpolation) Translates and resizes an image.selectSampleDimension
(Coverage source, int[] sampleDimensions) Chooses N sample dimensions from a coverage and copies their sample data to the destination grid coverage in the order specified.subsampleAverage
(GridCoverage source, double scaleX, double scaleY) Subsamples an image by averaging over a moving windowSubtracts constants (one for each band) from every sample values of the source coverage.subtractFrom
(Coverage source, double[] constants) Subtracts every sample values of the source coverage from constants (one for each band).warp
(GridCoverage source, Warp warp) Warps an image.warp
(GridCoverage source, Warp warp, Interpolation interpolation) Translates and resizes an image.
-
Field Details
-
DEFAULT
The default instance.
-
-
Constructor Details
-
Operations
Creates a new instance using the specified hints.- Parameters:
hints
- The hints, ornull
if none.
-
-
Method Details
-
add
Adds constants (one for each band) to every sample values of the source coverage.- Parameters:
source
- The source coverage.constants
- The constants to add to each band.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
add
Returns the sum between two coverages- Parameters:
source0
- The first source coverage.source1
- The second source coverage.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
multiply
Returns the multiplication between two coverages- Parameters:
source0
- The first source coverage.source1
- The second source coverage.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
subtract
Subtracts constants (one for each band) from every sample values of the source coverage.- Parameters:
source
- The source coverage.constants
- The constants to subtract to each band.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
subtractFrom
public Coverage subtractFrom(Coverage source, double[] constants) throws CoverageProcessingException Subtracts every sample values of the source coverage from constants (one for each band).- Parameters:
source
- The source coverage.constants
- The constants to subtract from.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
multiply
Multiplies every sample values of the source coverage by constants (one for each band).- Parameters:
source
- The source coverage.constants
- The constants to multiply to each band.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
divideBy
Divides every sample values of the source coverage by constants (one for each band).- Parameters:
source
- The source coverage.constants
- The constants to divides by.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
rescale
public Coverage rescale(Coverage source, double[] constants, double[] offsets) throws CoverageProcessingException Maps the sample values of a coverage from one range to another range.- Parameters:
source
- The source coverage.constants
- The constants to multiply to each band.offsets
- The constants to add to each band.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
invert
Inverts the sample values of a coverage.- Parameters:
source
- The source coverage.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
absolute
Computes the mathematical absolute value of each sample value.- Parameters:
source
- The source coverage.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
log
Takes the natural logarithm of the sample values of a coverage.- Parameters:
source
- The source coverage.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
exp
Takes the exponential of the sample values of a coverage.- Parameters:
source
- The source coverage.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
extrema
Finds the maximum and minimum pixel values for each band within that region of the coverage. The coverage data pass through this operation unchanged.- Parameters:
source
- The source coverage.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
nodataFilter
ReplacesNaN
values by the weighted average of neighbors values. This method uses the default padding and validity threshold.- Parameters:
source
- The source coverage.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
org.geotools.coverage.processing.operation.NodataFilter
-
nodataFilter
public GridCoverage nodataFilter(GridCoverage source, int padding, int validityThreshold) throws CoverageProcessingException ReplacesNaN
values by the weighted average of neighbors values.- Parameters:
source
- The source coverage.padding
- The number of pixels above, below, to the left and to the right of centralNaN
pixel to use for computing the average. The default value is 1.validityThreshold
- The minimal number of valid values required for computing the average. TheNaN
value will be replaced by the average only if the number of valid value is greater than or equals to this threshold. The default value is 4.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
org.geotools.coverage.processing.operation.NodataFilter
-
interpolate
public GridCoverage interpolate(GridCoverage source, String type) throws CoverageProcessingException Specifies the interpolation type to be used to interpolate values for points which fall between grid cells. The default value is nearest neighbor. The new interpolation type operates on all sample dimensions.- Parameters:
source
- The source coverage.type
- The interpolation type. Possible values are"NearestNeighbor"
,"Bilinear"
and"Bicubic"
.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
interpolate
public GridCoverage interpolate(GridCoverage source, Interpolation type) throws CoverageProcessingException Specifies the interpolation type to be used to interpolate values for points which fall between grid cells. The default value is nearest neighbor. The new interpolation type operates on all sample dimensions.- Parameters:
source
- The source coverage.type
- The interpolation type as a JAI interpolation object.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
interpolate
public GridCoverage interpolate(GridCoverage source, Interpolation[] types) throws CoverageProcessingException Specifies the interpolation types to be used to interpolate values for points which fall between grid cells. The first element in the array is the primary interpolation. All other elements are fallback to be used if the primary interpolation returns aNaN
value. SeeInterpolate
operation for details.- Parameters:
source
- The source coverage.types
- The interpolation types and their fallback.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
selectSampleDimension
public Coverage selectSampleDimension(Coverage source, int[] sampleDimensions) throws CoverageProcessingException Chooses N sample dimensions from a coverage and copies their sample data to the destination grid coverage in the order specified.- Parameters:
source
- The source coverage.sampleDimensions
- The sample dimensions to select.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
resample
public Coverage resample(Coverage source, CoordinateReferenceSystem crs) throws CoverageProcessingException Resamples a coverage to the specified coordinate reference system.- Parameters:
source
- The source coverage.crs
- The target coordinate reference system.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
resample
public Coverage resample(GridCoverage source, Bounds envelope, Interpolation interpolationType) throws CoverageProcessingException Resamples a grid coverage to the specified envelope.- Parameters:
source
- The source coverage.envelope
- The target envelope, including a possibly different coordinate reference system.interpolationType
- The interpolation type, ornull
for the default one.- Throws:
CoverageProcessingException
- if the operation can't be applied.- Since:
- 2.5
- See Also:
-
resample
public Coverage resample(GridCoverage source, CoordinateReferenceSystem crs, GridGeometry gridGeometry, Interpolation interpolationType) throws CoverageProcessingException Resamples a grid coverage to the specified coordinate reference system and grid geometry.- Parameters:
source
- The source coverage.crs
- The target coordinate reference system, ornull
for keeping it unchanged.gridGeometry
- The grid geometry, ornull
for a default one.interpolationType
- The interpolation type, ornull
for the default one.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
resample
public Coverage resample(GridCoverage source, CoordinateReferenceSystem crs, GridGeometry gridGeometry, Interpolation interpolationType, double[] backgroundValues) throws CoverageProcessingException Resamples a grid coverage to the specified coordinate reference system and grid geometry.- Parameters:
source
- The source coverage.crs
- The target coordinate reference system, ornull
for keeping it unchanged.gridGeometry
- The grid geometry, ornull
for a default one.interpolationType
- The interpolation type, ornull
for the default one.backgroundValues
- The backgroundValues, ornull
for the default one.- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
crop
Crops the image to a specified rectangular area.- Parameters:
source
- The source coverage.envelope
- The rectangular area to keep.- Throws:
CoverageProcessingException
- if the operation can't be applied.- Since:
- 2.3
- See Also:
-
crop
Crops the image to a specified clipping area- Parameters:
source
- The source coverage.roi
- The cutting geometry- Throws:
CoverageProcessingException
- if the operation can't be applied.- See Also:
-
scale
public GridCoverage scale(GridCoverage source, double xScale, double yScale, double xTrans, double yTrans) throws CoverageProcessingException Translates and resizes an image.- Parameters:
source
- The source coverage.xScale
- The scale factor along the x axis.yScale
- The scale factor along the y axis.xTrans
- The translation along the x axis.yTrans
- The translation along the x axis.- Throws:
CoverageProcessingException
- if the operation can't be applied.- Since:
- 2.3
- See Also:
-
warp
Warps an image.- Parameters:
source
- The source coverage.warp
- TheWarp
object for this class.- Throws:
CoverageProcessingException
- if the operation can't be applied.- Since:
- 2.3
- See Also:
-
affine
public GridCoverage affine(GridCoverage source, AffineTransform transform, Interpolation interpolation, double[] noDataValues) throws CoverageProcessingException Translates and resizes an image.- Parameters:
source
- The source coverage.transform
- theAffineTransform
interpolation
- The interpolation to use, ornull
for the default.noDataValues
- the no data values to be applied- Throws:
CoverageProcessingException
- if the operation can't be applied.- Since:
- 2.3
- See Also:
-
scale
public GridCoverage scale(GridCoverage source, double xScale, double yScale, double xTrans, double yTrans, Interpolation interpolation) throws CoverageProcessingException Translates and resizes an image.- Parameters:
source
- The source coverage.xScale
- The scale factor along the x axis.yScale
- The scale factor along the y axis.xTrans
- The translation along the x axis.yTrans
- The translation along the x axis.interpolation
- The interpolation to use, ornull
for the default.- Throws:
CoverageProcessingException
- if the operation can't be applied.- Since:
- 2.3
- See Also:
-
warp
public GridCoverage warp(GridCoverage source, Warp warp, Interpolation interpolation) throws CoverageProcessingException Translates and resizes an image.- Parameters:
source
- The source coverage.warp
- The scale factor along the x axis.interpolation
- The interpolation to use, ornull
for the default.- Throws:
CoverageProcessingException
- if the operation can't be applied.- Since:
- 2.3
- See Also:
-
subsampleAverage
public GridCoverage subsampleAverage(GridCoverage source, double scaleX, double scaleY) throws CoverageProcessingException Subsamples an image by averaging over a moving window- Parameters:
source
- The source coverage.scaleX
- The scale factor along the x axis.scaleY
- The scale factor along the y axis.- Throws:
CoverageProcessingException
- if the operation can't be applied.- Since:
- 2.3
- See Also:
-
filteredSubsample
Subsamples an image using the default values. The scale factor is 2 and the filter is a quadrant symmetric filter generated from a Gaussian kernel.- Parameters:
source
- The source coverage.- Throws:
CoverageProcessingException
- if the operation can't be applied.- Since:
- 2.3
- See Also:
-
filteredSubsample
public GridCoverage filteredSubsample(GridCoverage source, int scaleX, int scaleY, float[] qsFilter) throws CoverageProcessingException Subsamples an image by integral factors.- Parameters:
source
- The source coverage.scaleX
- The scale factor along the x axis. The default value is 2.scaleY
- The scale factor along the y axis. The default value is 2.qsFilter
- The filter. Default to a quadrant symmetric filter generated from a Gaussian kernel- Throws:
CoverageProcessingException
- if the operation can't be applied.- Since:
- 2.3
- See Also:
-
filteredSubsample
public GridCoverage filteredSubsample(GridCoverage source, int scaleX, int scaleY, float[] qsFilter, Interpolation interpolation) throws CoverageProcessingException Subsamples an image by integral factors.- Parameters:
source
- The source coverage.scaleX
- The scale factor along the x axis. The default value is 2.scaleY
- The scale factor along the y axis. The default value is 2.qsFilter
- The filter. Default to a quadrant symmetric filter generated from a Gaussian kernelinterpolation
- The interpolation to use, ornull
for the default.- Throws:
CoverageProcessingException
- if the operation can't be applied.- Since:
- 2.3
- See Also:
-
doOperation
protected final Coverage doOperation(String operationName, Coverage source) throws OperationNotFoundException, CoverageProcessingException Applies a process operation with default parameters. This is a helper method for implementation of various convenience methods in this class.- Parameters:
operationName
- Name of the operation to be applied to the coverage.source
- The source coverage.- Returns:
- The result as a coverage.
- Throws:
OperationNotFoundException
- if there is no operation namedoperationName
.CoverageProcessingException
- if the operation can't be applied.
-
doOperation
protected final Coverage doOperation(String operationName, Coverage source0, Coverage source1) throws OperationNotFoundException, CoverageProcessingException Applies a process binary operation on two coverages with default parameters. This is a helper method for implementation of various convenience methods in this class.- Parameters:
operationName
- Name of the operation to be applied to the coverage.source0
- The first source coverage.source1
- The second source coverage.- Returns:
- The result as a coverage.
- Throws:
OperationNotFoundException
- if there is no operation namedoperationName
.CoverageProcessingException
- if the operation can't be applied.
-
doOperation
protected final Coverage doOperation(String operationName, Coverage source, String argumentName1, Object argumentValue1) throws OperationNotFoundException, InvalidParameterNameException, CoverageProcessingException Applies a process operation with one parameter. This is a helper method for implementation of various convenience methods in this class.- Parameters:
operationName
- Name of the operation to be applied to the coverage.source
- The source coverage.argumentName1
- The name of the first parameter to setParameterValue.argumentValue1
- The value for the first parameter.- Returns:
- The result as a coverage.
- Throws:
OperationNotFoundException
- if there is no operation namedoperationName
.InvalidParameterNameException
- if there is no parameter with the specified name.CoverageProcessingException
- if the operation can't be applied.
-
doOperation
protected final Coverage doOperation(String operationName, Coverage source, String argumentName1, Object argumentValue1, String argumentName2, Object argumentValue2) throws OperationNotFoundException, InvalidParameterNameException, CoverageProcessingException Applies process operation with two parameters. This is a helper method for implementation of various convenience methods in this class.- Parameters:
operationName
- Name of the operation to be applied to the coverage.source
- The source coverage.argumentName1
- The name of the first parameter to setParameterValue.argumentValue1
- The value for the first parameter.argumentName2
- The name of the second parameter to setParameterValue.argumentValue2
- The value for the second parameter.- Returns:
- The result as a coverage.
- Throws:
OperationNotFoundException
- if there is no operation namedoperationName
.InvalidParameterNameException
- if there is no parameter with the specified name.CoverageProcessingException
- if the operation can't be applied.
-
doOperation
protected final Coverage doOperation(String operationName, Coverage source, String argumentName1, Object argumentValue1, String argumentName2, Object argumentValue2, String argumentName3, Object argumentValue3) throws OperationNotFoundException, InvalidParameterNameException, CoverageProcessingException Applies a process operation with three parameters. This is a helper method for implementation of various convenience methods in this class.- Parameters:
operationName
- Name of the operation to be applied to the coverage.source
- The source coverage.argumentName1
- The name of the first parameter to setParameterValue.argumentValue1
- The value for the first parameter.argumentName2
- The name of the second parameter to setParameterValue.argumentValue2
- The value for the second parameter.argumentName3
- The name of the third parameter to setParameterValue.argumentValue3
- The value for the third parameter.- Returns:
- The result as a coverage.
- Throws:
OperationNotFoundException
- if there is no operation namedoperationName
.InvalidParameterNameException
- if there is no parameter with the specified name.CoverageProcessingException
- if the operation can't be applied.
-
doOperation
protected final Coverage doOperation(String operationName, Coverage source, String argumentName1, Object argumentValue1, String argumentName2, Object argumentValue2, String argumentName3, Object argumentValue3, String argumentName4, Object argumentValue4) throws OperationNotFoundException, InvalidParameterNameException, CoverageProcessingException Applies a process operation with four parameters. This is a helper method for implementation of various convenience methods in this class.- Parameters:
operationName
- Name of the operation to be applied to the coverage.source
- The source coverage.- Returns:
- The result as a coverage.
- Throws:
OperationNotFoundException
- if there is no operation namedoperationName
.InvalidParameterNameException
- if there is no parameter with the specified name.CoverageProcessingException
- if the operation can't be applied.- Since:
- 2.3
-
doOperation
protected final Coverage doOperation(String operationName, Coverage source, String argumentName1, Object argumentValue1, String argumentName2, Object argumentValue2, String argumentName3, Object argumentValue3, String argumentName4, Object argumentValue4, String argumentName5, Object argumentValue5) throws OperationNotFoundException, InvalidParameterNameException, CoverageProcessingException Applies a process operation with five parameters. This is a helper method for implementation of various convenience methods in this class.- Parameters:
operationName
- Name of the operation to be applied to the coverage.source
- The source coverage.- Returns:
- The result as a coverage.
- Throws:
OperationNotFoundException
- if there is no operation namedoperationName
.InvalidParameterNameException
- if there is no parameter with the specified name.CoverageProcessingException
- if the operation can't be applied.- Since:
- 2.3
-
doOperation
protected final Coverage doOperation(String operationName, Coverage source, String argumentName1, Object argumentValue1, String argumentName2, Object argumentValue2, String argumentName3, Object argumentValue3, String argumentName4, Object argumentValue4, String argumentName5, Object argumentValue5, String argumentName6, Object argumentValue6) throws OperationNotFoundException, InvalidParameterNameException, CoverageProcessingException Applies a process operation with six parameters. This is a helper method for implementation of various convenience methods in this class.- Parameters:
operationName
- Name of the operation to be applied to the coverage.source
- The source coverage.- Returns:
- The result as a coverage.
- Throws:
OperationNotFoundException
- if there is no operation namedoperationName
.InvalidParameterNameException
- if there is no parameter with the specified name.CoverageProcessingException
- if the operation can't be applied.- Since:
- 2.3
-