Package org.geotools.coverage.processing
Class FilterOperation
Object
AbstractOperation
Operation2D
OperationJAI
FilterOperation
- All Implemented Interfaces:
Serializable
,Operation
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:
-
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 -
Method Summary
Modifier and TypeMethodDescriptionprotected 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 Details
-
FilterOperation
Constructs a new filter operation.- Parameters:
name
- The JAI operation name.- Throws:
OperationNotFoundException
- if no JAI descriptor was found for the given name.
-
-
Method Details
-
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:
-