通过直线和圆弧进行简化 (编辑)

描述

通过使用较少线段或边替换连续线段或边的方式来简化面和线要素。线段和面的边将根据指定的最大允许偏移量进行简化。此外,可以从连续线段或面的边创建圆弧。

插图

拟合折点与拟合线段
输出线或面的边是通过在指定的最大允许偏移量内拟合直线段和圆弧段来构造的。

使用方法

    警告:

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

  • 此工具可对从各种数据转换和操作过程中累积了不需要的折点或短线段的线和面要素的几何进行简化。非线性段或边的序列可以用两点直线代替,代表弧的一系列段或边可以用真曲线代替。该工具将对多个段或边进行逼近并用直线和圆弧代替这些段,这些直线和圆弧符合指定的最大允许偏移量。

  • 输入要素可以是面或线。输出线或面的边将包含原始折点的子集。不会引入新的折点,也不会删除要素。

  • 现有参数曲线(如贝塞尔曲线、圆弧和椭圆弧段)将不会发生更改。

    注:

    如果输入要素存储在 shapefile 中,则输出要素中的圆弧将仍为一系列密集填充的小直线段。Shapefile 不支持真曲线。要派生出真曲线,请将 shapefile 导出到要素类。

  • 除直线外,使用创建圆弧参数还可以生成真曲线。可通过五个可选参数最大弧度步长最小折点数最小半径最大半径最小弧度控制将圆弧拟合成线段或边的方式。

    • 最大弧度步长(十进制度)是可用于构造圆弧的最大弧度。弧度是候选曲线(正在构建的曲线)的圆心角。最大弧度步长定义了在定位折点来构建圆曲线时,圆心角搜索字段所能达到的宽度上限。如果在每个最大弧度步长中找到多个折点,则可考虑将这些折点拟合成圆弧。可使用较小弧度将圆弧拟合为分布密集的线段,并防止将圆弧过度拟合为较大线段。可使用较大弧度将圆弧拟合为分布稀疏的线段。有效值范围是从 2 到 95(十进制度)。默认值为 20(十进制度)。

      在下图中,请考虑用圆弧拟合一个具有 90 度圆心角的线段。如果将最大弧度步长指定为 89 度,则不会考虑该线段,且输出将由一条曲线和一条直线组成(中图)。如果指定为 91 度,则该线段将用于构造圆弧,且输出将由单条曲线组成(末尾图)。

      最大弧度步长
      最大弧度步长参数用于定位构建圆弧所需的折点。

    • 注:

      如果针对拟合类型参数选择拟合线段选项,则最大弧角步长参数不可用。

  • 选中保留闭合线的端点参数以保留具有重合端点(循环)的线的端点。如果未选中保留闭合线的端点,则端点可能会被移动或删除。

语法

arcpy.edit.SimplifyByStraightLinesAndCircularArcs(in_features, max_offset, {fitting_type}, {circular_arcs}, {max_arc_angle_step}, {min_vertex_count}, {min_radius}, {max_radius}, {min_arc_angle}, {closed_ends}, {anchor_points})
参数说明数据类型
in_features
[in_features,...]

要进行简化的要素。要素可以是线或面。如果使用多个输入,则要素必须具有相同的空间参考。

Feature Layer
max_offset

输出要素边从输入要素形状偏移的最大距离。针对拟合类型参数选择了拟合折点选项时,会测量输入折点与输出要素边之间的距离。选中拟合线段选项时,会测量输入要素边和输出要素边之间的距离。

Linear Unit
fitting_type
(可选)

指定输出要素边和圆弧如何拟合输入要素形状。

如果选中拟合线段,则最大弧度步长最小折点数参数不可用。

  • FIT_TO_VERTICES输出要素边与输入要素折点之间的偏移间隙将被最小化。输出要素边与曲线将近似拟合到输入要素折点位置。这是默认设置。
  • FIT_TO_SEGMENTS输出要素边与输入要素边之间的偏移间隙将被最小化。输出边和曲线将近似拟合到输入要素形状的位置。
String
circular_arcs
(可选)

指定是否会创建圆弧。

  • CREATE将创建圆弧。这是默认设置。
  • NOT_CREATE不会创建圆弧。
Boolean
max_arc_angle_step
(可选)

用于构造圆弧的最大弧度步长(十进制度)。弧度定义了在定位折点来构建圆曲线时,每个步长的视野宽度。弧度是候选曲线(正在构建的曲线)的圆心角。如果在每个最大弧度步长中都存在折点,则会构建一个圆弧。例如,如果折点和边很稀疏,则应使用较大的弧度步长。有效值范围是从 2 到 95(十进制度)。默认值为 20(十进制度)。如果针对拟合类型参数选择了拟合线段选项,则该参数不可用。

Double
min_vertex_count
(可选)

创建圆弧所需的最小折点数。该值必须大于 3。默认值为 4。如果针对拟合类型参数选择了拟合线段选项,则该参数不可用。

Long
min_radius
(可选)

输出圆弧的最小允许半径。该值必须大于 0 且小于指定的最大半径值。如果未指定值,则不会选中输出圆弧的半径(默认)。

Linear Unit
max_radius
(可选)

输出圆弧的最大允许半径。该值必须大于指定的最小半径值。如果未指定值,则不会选中输出圆弧的半径(默认)。

Linear Unit
min_arc_angle
(可选)

用于构造圆弧的最小弧度(十进制度)。最小弧度是输出圆弧允许的最小圆心角。如果输出圆弧的圆心角小于此值,则不会创建圆弧。有效值范围是从 2 到 360(十进制度)。默认值为 2(十进制度)。

Double
closed_ends
(可选)

指定是否保留闭合线的端点。闭合线是具有重合端点(循环)的线。

  • PRESERVE将保留闭合线的端点。这是默认设置。
  • NOT_PRESERVE不保留闭合线的端点,端点可能会被移动或删除。
Boolean
anchor_points
(可选)

包含锚点的要素类的路径和名称。锚点将叠加输入要素上的折点,并指示在简化过程中不应对其进行移动或删除。

Feature Layer

派生输出

名称说明数据类型
out_feature_class

已更新的要素。

要素图层
out_feature_layers

已更新的图层名称。

要素图层

代码示例

SimplifyByStraightLinesAndCircularArcs 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 SimplifyByStraightLinesAndCircularArcs 函数简化线。

import arcpy
arcpy.env.workspace = "C:\data\data.gdb"
arcpy.edit.SimplifyByStraightLinesAndCircularArcs_edit("myDensifiedLines", 
                                                       "1.5 feet")
SimplifyByStraightLinesAndCircularArcs 示例 2(Python 窗口)

以下 Python 窗口脚本演示了如何使用 SimplifyByStraightLinesAndCircularArcs 函数来通过锚点同时简化线和面。

import arcpy
arcpy.env.workspace = "C:\data\data.gdb"
arcpy.edit.SimplifyByStraightLinesAndCircularArcs("myDensifiedPolygons;myDensifiedLines", 
                                                  "0.4 Meters", 
                                                  anchor_points="myAnchorPoints")

许可信息

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

相关主题