描述
可以沿线要素或面要素添加折点,还可将曲线线段(贝塞尔、圆弧和椭圆弧)替换为线段。
插图
使用方法
通过距离参数对直线段进行增密。将以不超过指定距离的间隔添加折点。利用距离、最大偏转角或最大偏移偏差参数,通过增密操作对曲线段进行简化。
将逐段进行增密。
每次执行增密时只能选择一种增密方法。
数据的空间参考对于此工具所生成的结果而言非常重要。在合适的坐标系中对数据进行增密,以保持要素的正确形状。
对于原始要素的每个折点(包括起点和终点),在生成的要素中将出现重合折点。
最大折点计数参数用于控制每个增密输出线段中的最大折点数。如果增密操作需要的值超过此值,则系统会对线段进行调整以确保其不会超过此折点计数 (+/- 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 (可选) | 指定要使用的要素增密方法。
| 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 | 增密的输入要素。 | 要素类 |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 Densify 函数。
import arcpy
arcpy.Densify_edit("C:/data.gdb/lines", "ANGLE", "", "", 0.75)
以下独立脚本显示的是将 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: 是