『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

ArcGIS教程:边界清理 (Spatial Analyst)

ArcGIS教程:边界清理 (Spatial Analyst)
通过扩展和收缩来平滑区域间的边界。本篇介绍边界清理的用法,语法,代码。

摘要

    通过扩展和收缩来平滑区域间的边界。

插图

用法

·      将更改 x y 方向上所有少于三个像元的区域。

·      ONE_WAY 平滑过程(扩展-收缩过程运行一次)或 TWO_WAY 平滑过程的第一个过程中发生的收缩不同于 TWO_WAY 平滑过程的第二个过程中发生的收缩。

在第一个过程中,对于扩展栅格中的任意待处理像元,如果其邻近像元具有待处理像元的原始值,则将恢复该待处理像元的原始值。在 TWO_WAY 平滑过程的第二个过程中,如果扩展栅格中的任意像元周围的八个像元的值不完全相同,则将恢复该像元的原始值。

·      第一个过程和第二个过程发生的扩展完全相同。

·      值为 NoData 的输入像元在 ONE_WAY 排序类型或在 TWO_WAY 排序的第一次运行中具有最低的优先级。在 TWO_WAY 排序的第二次排序中,NoData 像元拥有最高优先级。

语法

    BoundaryClean (in_raster, {sort_type}, {number_of_runs})

参数

说明

数据类型

in_raster

将平滑区域之间边界的输入栅格。

必须为整型。

Raster Layer

sort_type

(可选)

指定要在平滑处理中使用的排序类型。

这将确定像元可扩展到相邻像元的优先级。

·         NO_SORT — 不按大小排序。值较大的区域具有较高的优先级,可以扩展到值较小的若干区域。 这是默认设置。

·         DESCEND — 以大小的降序顺序对区域进行排序。总面积较大的区域具有较高的优先级,可以扩展到总面积较小的若干区域。

·         ASCEND — 以大小的升序顺序对区域进行排序。总面积较小的区域具有较高的优先级,可以扩展到总面积较大的若干区域。

String

number_of_runs

(可选)

指定发生平滑处理过程的方向的数目。

·         TWO_WAY — 根据排序类型执行扩展和收缩,然后使用相反的优先级多执行一次收缩和扩展。 这是默认设置。

·         ONE_WAY — 根据排序类型执行扩展和收缩一次。

Boolean

返回值

名称

说明

数据类型

out_raster

输出概化的栅格。

将对输入中的区域间边界进行平滑处理。

Raster

代码实例

    边界清理 (BoundaryClean) 示例 1Python 窗口)

    本示例执行双向处理以降序顺序平滑区域间边界。

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")

      京ICP备2025132830号-1 京公网安备 号