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
Methods inherited from class OperationJAI |
createRenderedImage, deriveCategory, deriveGridCoverage, deriveName, deriveRange, deriveUnit, doOperation, equals, getJAI, getOperationDescriptor, getProperties, getQuantitative, prepareParameters, resampleToCommonGeometry |
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.
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 class OperationJAI
- Parameters:
bandLists
- The set of sample dimensions for each source GridCoverage2D
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.Unit>[], org.geotools.coverage.processing.OperationJAI.Parameters)
Copyright © 1996-2014 Geotools. All Rights Reserved.