Package org.geotools.coverage.processing
Class FilterOperation
- Object
-
- AbstractOperation
-
- Operation2D
-
- OperationJAI
-
- FilterOperation
-
- All Implemented Interfaces:
Serializable
,Operation
public class FilterOperation extends OperationJAI
Common super-class for filter operation. The following is adapted from OpenGIS specification:Filtering is an enhancement operation that alters the grid values on the basis of the neighborhood grid values. For this reason, filtering is considered to be a spatial or area operation. There are many different filters that can be applied to a grid coverage but the general concept of filtering is the same. A filter window or kernel is defined, its dimension being an odd number in the x and y dimensions. Each cell in this window contains a co-efficient or weighting factor representative of some mathematical relationship. A filtered grid coverage is generated by multiplying each coefficient in the window by the grid value in the original grid coverage corresponding to the windows current location and assigning the result to the central pixel location of the window in the filtered grid coverage. The window is moved throughout the grid coverage on pixel at a time. This window multiplication process is known as convolution. A grid coverage contains both low and high spatial information. High frequencies describe rapid change from one grid cell to another such as roads or other boundary conditions. Low frequencies describe gradual change over a large number of cells such as water bodies. High pass filters allow only high frequency information to be generated in the new grid coverage Grid coverages generated with high pass filters will show edge conditions. Low pass filters allow low frequency information to be generated in the new grid coverage. The grid coverage produced from a filtering operation will have the same dimension as the source grid coverage. To produce filtered values around the edges of the source grid coverage, edge rows and columns will be duplicated to fill a complete kernel.
- Since:
- 2.2
- Author:
- Martin Desruisseaux (IRD)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class OperationJAI
OperationJAI.Parameters
-
-
Field Summary
-
Fields inherited from class OperationJAI
operation, RENDERED_MODE
-
Fields inherited from class Operation2D
PRIMARY_SOURCE_INDEX, SOURCE_0
-
Fields inherited from class AbstractOperation
descriptor
-
-
Constructor Summary
Constructors Constructor Description FilterOperation(String name)
Constructs a new filter operation.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected GridSampleDimension[]
deriveSampleDimension(GridSampleDimension[][] bandLists, OperationJAI.Parameters parameters)
Returns the target sample dimensions.-
Methods inherited from class OperationJAI
createRenderedImage, deriveCategory, deriveGridCoverage, deriveName, deriveRange, deriveUnit, doOperation, equals, extractSources, getJAI, getOperationDescriptor, getProperties, getQuantitative, handleJAIEXTParams, handleROINoDataInternal, handleROINoDataProperties, hashCode, prepareParameters, resampleToCommonGeometry
-
Methods inherited from class Operation2D
extractSources, getFactory
-
Methods inherited from class AbstractOperation
getDescription, getDocURL, getName, getNumSources, getParameters, getVendor, getVersion, toString
-
-
-
-
Constructor Detail
-
FilterOperation
public FilterOperation(String name) throws OperationNotFoundException
Constructs a new filter operation.- Parameters:
name
- The JAI operation name.- Throws:
OperationNotFoundException
- if no JAI descriptor was found for the given name.
-
-
Method Detail
-
deriveSampleDimension
protected GridSampleDimension[] deriveSampleDimension(GridSampleDimension[][] bandLists, OperationJAI.Parameters parameters)
Returns the target sample dimensions. Since filter operation do not change the range of values, this method returns the same sample dimension than the first source.- Overrides:
deriveSampleDimension
in classOperationJAI
- Parameters:
bandLists
- The set of sample dimensions for each sourceGridCoverage2D
s.parameters
- Parameters, rendering hints and coordinate reference system to use.- Returns:
- The sample dimensions for each band in the destination image, or
null
if unknown. - See Also:
OperationJAI.deriveCategory(org.geotools.coverage.Category[], org.geotools.coverage.processing.OperationJAI.Parameters)
,OperationJAI.deriveUnit(javax.measure.Unit<?>[], org.geotools.coverage.processing.OperationJAI.Parameters)
-
-