需要 Spatial Analyst 许可。
摘要
通过扩展和收缩来平滑区域间的边界。
插图
用法
将更改 x 和 y 方向上所有少于三个像元的区域。
存在两种可用的平滑过程,这两种过程在执行的扩展-收缩过程的次数方面有所不同。在启用了默认设置运行两次扩展与收缩(Python 中的 TWO_WAY)的情况下,将执行两次扩展-收缩过程以平滑输入像元值,但在不启用该选项时(Python 中的 ONE_WAY),将仅执行一次扩展-收缩过程。
在两种方法的第一个过程中,对于扩展栅格中的任意待处理像元,如果其邻近像元具有待处理像元的原始值,则将恢复该待处理像元的原始值。但是,在双向选项第二个过程的收缩操作中,如果扩展栅格中的任意像元周围的八个像元的值不完全相同,则将恢复该像元的原始值。
第一个过程和第二个过程发生的扩展完全相同。
值为 NoData 的输入像元在单向排序类型或在双向排序的第一个过程中具有最低的优先级。在双向排序的第二个过程中,NoData 像元拥有最高优先级。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
语法
BoundaryClean (in_raster, {sort_type}, {number_of_runs})
参数 | 说明 | 数据类型 |
in_raster | 将平滑区域之间边界的输入栅格。 必须为整型。 | Raster Layer |
sort_type (可选) | 指定要在平滑处理中使用的排序类型。 这将确定像元可扩展到相邻像元的优先级。
| String |
number_of_runs (可选) | 指定发生平滑处理过程的方向的数目。
| Boolean |
返回值
名称 | 说明 | 数据类型 |
out_raster | 输出概化的栅格。 将对输入中的区域间边界进行平滑处理。 输出始终为整型。 | Raster |
代码示例
边界清理 (BoundaryClean) 示例 1(Python 窗口)
本示例执行双向处理以降序顺序平滑区域间边界。
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")
边界清理 (BoundaryClean) 示例 2(独立脚本)
本示例执行双向处理以降序顺序平滑区域间边界。
# 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"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute BoundaryClean
OutBndCln = BoundaryClean(inRaster, "ASCEND", "TWO_WAY")
# Save the output
OutBndCln.save("c:/sapyexamples/output/bndcln_asc2")
环境
许可信息
- ArcGIS Desktop Basic: 需要 Spatial Analyst
- ArcGIS Desktop Standard: 需要 Spatial Analyst
- ArcGIS Desktop Advanced: 需要 Spatial Analyst