增密 (编辑)

描述

可以沿线要素或面要素添加折点,还可将曲线线段(贝塞尔、圆弧和椭圆弧)替换为线段。

插图

密度图示
通过“偏移”、“距离”或“角度”将曲线增密为线段。

使用方法

    警告:

    此工具会修改输入数据。有关详细信息以及避免数据被意外更改的策略,请参阅修改或更新输入数据的工具

  • 通过距离参数对直线段进行增密。将以不超过指定距离的间隔添加折点。利用距离最大偏转角最大偏移偏差参数,通过增密操作对曲线段进行简化。

  • 将逐段进行增密。

  • 每次执行增密时只能选择一种增密方法。

  • 数据的空间参考对于此工具所生成的结果而言非常重要。在合适的坐标系中对数据进行增密,以保持要素的正确形状。

  • 对于原始要素的每个折点(包括起点和终点),在生成的要素中将出现重合折点。

  • 最大折点计数参数用于控制每个增密输出线段中的最大折点数。如果增密操作需要的值超过此值,则系统会对线段进行调整以确保其不会超过此折点计数 (+/- 1)。如果输入了无效值(0 或更小),则系统将不会对线段应用限制,且工具针对曲线段的默认值将为 12000。

    设置最大折点计数将使设置值应用于线段和曲线段的最大折点计数。

    注:
    所使用的值越大,要素增至很大的机会就越大。要素过大可能会对性能造成负面影响。如果使用极小的值,则输出要素可能会退化,从而导致出现空几何。此外,极小的值还可能导致所创建的要素在后续分析中返回意外结果。

  • 使用最大偏移偏差参数进行增密时,如果输入几何中包含圆弧,则将强制使用偏移的上限值,从而使输出中两个连续线段之间的角度不超过 10 度。如果使用最大偏转角参数进行增密,则该角度可超过十度。

语法

arcpy.edit.Densify(in_features, {densification_method}, {distance}, {max_deviation}, {max_angle}, {max_vertex_per_segment})
参数说明数据类型
in_features

要进行增密的面或线要素类。

Feature Layer
densification_method
(可选)

指定要使用的要素增密方法。

  • DISTANCE直线和曲线将使用指定的距离进行增密。这是默认设置。
  • OFFSET曲线将使用指定的最大偏移偏差进行增密。
  • ANGLE曲线将使用指定的最大偏转角进行增密。
String
distance
(可选)

折点间的最大距离。此距离始终应用于线段,并用来简化曲线。默认值是关于数据的 x,y 容差的函数。

可能无法沿线以此确切间隔插入新折点,只能将它们插入到先前折点的此距离内。无法确保沿线段以指定的间隔精确添加折点。

Linear Unit
max_deviation
(可选)

输出线段与原始线段之间的最大距离。此参数仅影响曲线。默认值是关于数据的 x,y 容差的函数。

Linear Unit
max_angle
(可选)

输出几何与输入几何之间的最大角度。有效范围是 0 到 90。默认值为 10。此参数仅影响曲线。

Double
max_vertex_per_segment
(可选)

每个线段所允许的最大折点计数。如果未输入任何值或输入无效值(0 或更小),则线段将没有折点限制,且曲线段的默认值将为 12000。

Long

派生输出

名称说明数据类型
out_feature_class

增密的输入要素。

要素类

代码示例

Densify 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 Densify 函数。

import arcpy
arcpy.Densify_edit("C:/data.gdb/lines", "ANGLE", "", "", 0.75)
Densify 示例 2(独立脚本)

以下独立脚本显示的是将 Densify 函数与 Snap 编辑工具结合使用的工作流。

# Name: Snap.py
# Description: Snap climate regions boundary to vegetation layer
#              boundary to ensure common boundary is coincident
# import system modules 
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Make backup copy of climate regions feature class, 
# since modification with the Editing tools below is permanent.
climateBackup = "backups/climate.shp"
arcpy.CopyFeatures_management('climate.shp', climateBackup)
# Densify climate regions feature class to make sure there are enough 
# vertices to match detail of vegetation layer when layers are snapped.
arcpy.Densify_edit('climate.shp', "DISTANCE", "10 Feet") 
# Snap climate regions feature class to vegetation layer vertices and 
# edge. First, snap climate region vertices to the nearest vegetation 
# vertex within 30 Feet. Second, snap climate region vertices to the 
# nearest vegetation edge within 20 Feet.
snapEnv1 = ["Habitat_Analysis.gdb/vegtype", "VERTEX", "30 Feet"]    
snapEnv2 = ["Habitat_Analysis.gdb/vegtype", "EDGE", "20 Feet"]       
arcpy.Snap_edit('climate.shp', [snapEnv1, snapEnv2])

许可信息

  • Basic: 否
  • Standard: 是
  • Advanced: 是

相关主题