增密 (编辑)

摘要

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

插图

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

使用情况

    警告:

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

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

  • 增密是逐段进行的。

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

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

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

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

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

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

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

参数

标注说明数据类型
输入要素

要增密的面或线要素类。

Feature Layer
增密方法
(可选)

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

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

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

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

Linear Unit
最大偏移偏差
(可选)

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

Linear Unit
最大偏转角(度)
(可选)

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

Double
最大折点计数(每个线段)
(可选)

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

Long

派生输出

标注说明数据类型
更新后的输入要素

增密的输入要素。

Feature Class

arcpy.management.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

增密的输入要素。

Feature Class

代码示例

Densify 示例 1(Python 窗口)

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

import arcpy
arcpy.edit.Densify("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.management.CopyFeatures('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.edit.Densify('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.edit.Snap('climate.shp', [snapEnv1, snapEnv2])