标注 | 说明 | 数据类型 |
输入栅格 | 将平滑区域之间边界的输入栅格。 必须为整型。 | Raster Layer |
排序类型 (可选) | 指定要在平滑处理中使用的排序类型。将由排序确定像元可扩展到相邻像元的优先级。 排序可以基于区域值或区域大小。
| String |
运行两次扩展与收缩 (可选) | 指定平滑过程的执行次数:两次或一次。
| Boolean |
返回值
标注 | 说明 | 数据类型 | 输出栅格 | 输出概化的栅格。 将对输入中的区域间边界进行平滑处理。 输出始终为整型。 | Raster |
需要 Spatial Analyst 许可。
边界清理工具可通过对区域之间的边界进行平滑处理来概化或简化栅格。该工具将提供一些选项,用于控制输入中区域的像元如何影响平滑效果以及将应用的平滑量。
该工具可在对边界进行平滑处理时应用扩展(扩张)和收缩(侵蚀)的数学形态学技术 (Serra, 1982)。可以使用每个输入像元的正交和对角线相邻像元对其进行评估。
平滑过程首先按特定优先级对相邻像元进行排序。优先级可以确定相邻像元中可替换输出中处理像元值的区域。
优先级可以基于区域的值或区域大小。排序类型参数(Python 中的 sort_type)可确定要使用的排序类型。
默认方法不排序(Python 中的 NO_SORT)可根据区域的值来评估优先级。值较大的区域具有较高的优先级,可以扩展到值较小的区域中。不考虑区域的大小。
区域的大小或总面积可用于对优先级进行排序。大小将由组成每个区域的像元计数确定。对于降序设置(Python 中的 DESCEND),区域将按大小降序排序。总面积较大的区域将优先扩展到总面积较小的区域中。对于升序设置(Python 中的 ASCEND),情况正好相反:总面积较小的区域将优先扩展到总面积较大的区域中。
平滑量将由运行两次扩展与收缩参数(Python 中的 number_of_runs)控制,该参数可以确定执行扩展与收缩过程的次数。
对于未选中的设置(Python 中的 ONE_WAY),扩展和收缩过程将执行一次。对于选中的设置(Python 中的 TWO_WAY),扩展和收缩过程将执行两次,从而使区域边界更加平滑。
有关算法的其他详细信息,请参阅使用边界清理和众数滤波对区域边缘进行平滑处理。
如果所有 8 个相邻像元的值均与处理像元的值相同,则输出像元将保留输入像元的值。
参考文献:
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
标注 | 说明 | 数据类型 |
输入栅格 | 将平滑区域之间边界的输入栅格。 必须为整型。 | Raster Layer |
排序类型 (可选) | 指定要在平滑处理中使用的排序类型。将由排序确定像元可扩展到相邻像元的优先级。 排序可以基于区域值或区域大小。
| String |
运行两次扩展与收缩 (可选) | 指定平滑过程的执行次数:两次或一次。
| Boolean |
标注 | 说明 | 数据类型 | 输出栅格 | 输出概化的栅格。 将对输入中的区域间边界进行平滑处理。 输出始终为整型。 | Raster |
BoundaryClean(in_raster, {sort_type}, {number_of_runs})
名称 | 说明 | 数据类型 |
in_raster | 将平滑区域之间边界的输入栅格。 必须为整型。 | Raster Layer |
sort_type (可选) | 指定要在平滑处理中使用的排序类型。将由排序确定像元可扩展到相邻像元的优先级。 排序可以基于区域值或区域大小。
| String |
number_of_runs (可选) | 指定平滑过程的执行次数:两次或一次。
| Boolean |
名称 | 说明 | 数据类型 | out_raster | 输出概化的栅格。 将对输入中的区域间边界进行平滑处理。 输出始终为整型。 | Raster |
本示例执行双向处理以降序顺序对区域间边界进行平滑处理。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
OutBndCln = BoundaryClean("land", "DESCEND", "TWO_WAY")
OutBndCln.save("c:/sapyexamples/output/bndcln_des2")
本示例执行双向处理以降序顺序对区域间边界进行平滑处理。
# Name: BoundaryClean_Ex_02.py
# Description: Smoothes the boundary between zones
# by expanding and shrinking it.
# 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 BoundaryClean
OutBndCln = BoundaryClean(inRaster, "ASCEND", "TWO_WAY")
# Save the output
OutBndCln.save("c:/sapyexamples/output/bndcln_asc2")