标注 | 说明 | 数据类型 |
输入栅格 | 要根据相邻像元数据值的众数进行过滤的输入栅格。 该字段必须为整型。 | Raster Layer |
要使用的相邻像元数 (可选) | 确定在滤波器内核中使用的相邻像元数。
| String |
替换阈值 (可选) | 指定在发生替换之前必须具有相同值的相邻(空间连接)像元的数量。
| String |
返回值
标注 | 说明 | 数据类型 | 输出栅格 | 过滤后的输出栅格。 输出始终为整型。 | Raster |
需要 Spatial Analyst 许可。
众数滤波工具必须满足两个条件才能执行替换。 具有近似值的相邻像元数必须足够多(达到所有像元的半数及以上),并且这些像元在滤波器内核周围必须是连续的。 涉及像元空间连通性的第二个条件最大限度地减少了对像元空间模式的损坏。
使用四个相邻像元数会保留矩形区域的拐角。 使用八个相邻像元将使矩形区域的拐角变得平滑。
将相邻像元数设置为八时,相邻的定义是共享一条边。 将相邻像元数设置为四时,相邻的定义是共享一个角。
如果将替换阈值参数设置为半数,并且两个值作为相等部分出现,则当处理的像元值与半数中某一像元值相同时将不会发生替换。 半数选项比众数选项允许的过滤范围广泛。
当边和角栅格像元的相邻条件相同时,它们会遵循不同的众数和半数选项规则。 使用的相邻像元数为四时,边或角像元始终要求存在两个匹配的相邻像元才能发生替换。 使用八个相邻像元时,角像元在所有相邻像元均具有相同值时才能发生更改,而边像元需要三个相邻像元(包括边上的像元)具有相同值才发生更改。
运行几次众数滤波后,输出栅格将会稳定下来(不再变化)。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
标注 | 说明 | 数据类型 |
输入栅格 | 要根据相邻像元数据值的众数进行过滤的输入栅格。 该字段必须为整型。 | Raster Layer |
要使用的相邻像元数 (可选) | 确定在滤波器内核中使用的相邻像元数。
| String |
替换阈值 (可选) | 指定在发生替换之前必须具有相同值的相邻(空间连接)像元的数量。
| String |
标注 | 说明 | 数据类型 | 输出栅格 | 过滤后的输出栅格。 输出始终为整型。 | Raster |
MajorityFilter(in_raster, {number_neighbors}, {majority_definition})
名称 | 说明 | 数据类型 |
in_raster | 要根据相邻像元数据值的众数进行过滤的输入栅格。 该字段必须为整型。 | Raster Layer |
number_neighbors (可选) | 确定在滤波器内核中使用的相邻像元数。
| String |
majority_definition (可选) | 指定在发生替换之前必须具有相同值的相邻(空间连接)像元的数量。
| String |
名称 | 说明 | 数据类型 | out_raster | 过滤后的输出栅格。 输出始终为整型。 | Raster |
本例将使用全部八个相邻像元过滤输入栅格,并在替换时要求半数像元具有相同值,从而生成更加平滑的效果。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outMajFilt = MajorityFilter("land", "EIGHT", "HALF")
outMajFilt.save("c:/sapyexamples/output/outmajfilt")
本例将使用全部八个相邻像元过滤输入栅格,并在替换时要求半数像元具有相同值,从而生成更加平滑的效果。
# Name: MajorityFilter_Ex_02.py
# Description: Replaces cells in a raster based on the
# majority of their contiguous neighboring cells.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inRaster = "land"
# Execute MajorityFilter
outMajFilt = MajorityFilter(inRaster, "EIGHT", "HALF")
# Save the output
outMajFilt.save("c:/sapyexamples/output/majfilter")