This tool performs a minimum filter on a raster image. Minimum filters assign each cell in the output grid the minimum value in a moving window centred on each grid cell. This is essentially an erosion operation in the field of mathematical morphology and is the opposite of a dilation operation, which can be achieved using the maximum 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.
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("FilterMinimum", 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("FilterMinimum", args, false)