This tool performs a
maximum filter
on a raster image. Maximum filters
assign each cell in the output grid the maximum value in a moving window
centred on each grid cell. This is essentially a
dilation
operation in
the field of mathematical morphology and is the opposite of an
erosion
operation, which can be achieved using the
minimum
filter
. An
opening
operation is achieved by first running the
minimum filter
and subsequently running the
maximum filter
on the output of the
first operation.
Closing
operations are achieved by running the
maximum
filter
followed by the
minimum filter
on the output.
Neighbourhood size, or filter size, is determined by the user-defined x and
y dimensions. These dimensions should be odd, positive integer values, e.g. 3,
5, 7, 9... The user may also define the neighbourhood shape as either
squared
or
rounded
. A rounded neighbourhood
approximates an ellipse; a rounded neighbourhood with equal x and y dimensions
approximates a circle.
NoData
values in the input image are ignored during filtering.
When the neighbourhood around a grid cell extends beyond the edge of the grid,
NoData
values are assigned to these sites. The output raster is of
the
float
data type and
continuous
data scale.
See Also:
Spatial Filters
Scripting:
The following is an example of a Python script that uses this tool:
wd = pluginHost.getWorkingDirectory()
inputFile = wd + "input.dep"
outputFile = wd + "output.dep"
xDim = "3"
yDim = "3"
rounded = "false"
reflectEdges = "true"
args = [inputFile, outputFile, xDim, yDim, rounded, reflectEdges]
pluginHost.runPlugin("FilterMaximum", args, False)
This is a Groovy script also using the tool:
def wd = pluginHost.getWorkingDirectory()
def inputFile = wd + "input.dep"
def outputFile = wd + "output.dep"
def xDim = "7"
def yDim = "7"
def rounded = "true"
def reflectEdges = "true"
String[] args = [inputFile, outputFile, xDim, yDim, rounded, reflectEdges]
pluginHost.runPlugin("FilterMaximum", args, false)