细化 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

通过减少表示要素宽度的像元数来对栅格化的线状要素进行细化。

使用情况

  • 细化工具的典型应用是对扫描的等高线地图进行处理。 由于扫描仪分辨率和原始地图中线宽度的原因,等值线将在生成的栅格中表示为五至十个像元宽度的线状元素。 运行细化工具后,各个等值线将表示为单个像元宽度的线状要素。

  • 如果启用,过滤器选项会使用与边界清理工具相同的过滤算法,来移除从主要分支延伸出来的较短线状要素。 它也可移除宽度小于三个像元的要素。

  • 指定输入线状要素的最大线宽对于细化栅格必不可少,线状要素的宽度可超出或低于默认的最大线宽值。 如果最大线宽适合要被细化的最宽线状要素,则可望获得最佳结果。

  • 以下详细说明了细化工具中使用的常规算法:

    Zhan, Cixiang, 1993, A Hybrid Line Thinning Approach, Proceedings Auto-Carto 11, Minneapolis , pp. 396-405

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

参数

标注说明数据类型
输入栅格

要进行细化的输入栅格。

该字段必须为整型。

Raster Layer
背景值
(可选)

指定用于识别背景像元的像元值。 线状要素将基于前景单元生成。

  • 背景由 0 像元、负值像元或 NoData 像元组成。 值大于 0 的所有像元均为前景像元。
  • NoData背景由 NoData 像元组成。 所有具备有效值的单元均属于前景单元。
String
首先输入过滤器
(可选)

指定是否要在细化的第一阶段使用过滤器。

  • 未选中 - 不应用任何过滤器。 这是默认设置。
  • 选中 - 将过滤栅格以平滑前景像元和背景像元间的边界。 此选项将排除输出栅格中次要的不规则内容。
Boolean
拐角形状
(可选)

指定在转弯处或交汇点处使用平滑拐角还是尖锐拐角。

在样条化曲线或锐化交点和拐角等矢量转换过程中,同样会使用此选项。

  • 圆形尝试对拐角处和交汇点处进行平滑。 对等值线或河流等自然要素进行矢量化时,最好选中此选项。
  • 尖锐尝试保留直角拐角和交汇点。 对街道等人造要素进行矢量化时,最好选中此选项。
String
输入线状要素的最大宽度
(可选)

输入栅格中线状要素的最大线宽(以地图单位表示)。

默认线宽是像元大小的十倍。

Double

返回值

标注说明数据类型
输出栅格

细化的输出栅格。

输出始终为整型。

Raster

Thin(in_raster, {background_value}, {filter}, {corners}, {maximum_thickness})
名称说明数据类型
in_raster

要进行细化的输入栅格。

该字段必须为整型。

Raster Layer
background_value
(可选)

指定用于识别背景像元的像元值。 线状要素将基于前景单元生成。

  • ZERO背景由 0 像元、负值像元或 NoData 像元组成。 值大于 0 的所有像元均为前景像元。
  • NODATA背景由 NoData 像元组成。 所有具备有效值的单元均属于前景单元。
String
filter
(可选)

指定是否要在细化的第一阶段使用过滤器。

  • NO_FILTER不使用过滤器。这是默认设置。
  • FILTER将过滤栅格以平滑前景像元和背景像元间的边界。 此选项将排除输出栅格中次要的不规则内容。
Boolean
corners
(可选)

指定在转弯处或交汇点处使用平滑拐角还是尖锐拐角。

在样条化曲线或锐化交点和拐角等矢量转换过程中,同样会使用此选项。

  • ROUND尝试对拐角处和交汇点处进行平滑。 对等值线或河流等自然要素进行矢量化时,最好选中此选项。
  • SHARP尝试保留直角拐角和交汇点。 对街道等人造要素进行矢量化时,最好选中此选项。
String
maximum_thickness
(可选)

输入栅格中线状要素的最大线宽(以地图单位表示)。

默认线宽是像元大小的十倍。

Double

返回值

名称说明数据类型
out_raster

细化的输出栅格。

输出始终为整型。

Raster

代码示例

Thin 示例 1(Python 窗口)

本例对背景值为 NoData 的栅格进行细化,并在尝试保留拐角和交汇点的同时对边界进行平滑处理。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
thinOut = Thin("land","NODATA", "FILTER", "SHARP", 300)
thinOut.save("c:/sapyexamples/output/thinout")
Thin 示例 2(独立脚本)

本例对背景值为 NoData 的栅格进行细化,并在尝试保留拐角和交汇点的同时对边界进行平滑处理。

# Name: Thin_Ex_02.py
# Description: Thins rasterized linear features by 
#              reducing the number of cells 
#              representing the width of the features.
# 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"
tolerance = 300

# Execute Thin
thinOut = Thin(inRaster, "NODATA", "FILTER", "SHARP", tolerance)

# Save the output 
thinOut.save("c:/sapyexamples/output/thinoutput")

相关主题