简化线 (制图)

摘要

在不改变基本几何形状的情况下,通过移除多余的弯曲简化线。

了解有关“简化线”工作原理的详细信息

插图

Simplify Line illustration

用法

语法

SimplifyLine_cartography (in_features, out_feature_class, algorithm, tolerance, {error_resolving_option}, {collapsed_point_option}, {error_checking_option})
参数说明数据类型
in_features

要进行简化的线要素。

Feature Layer
out_feature_class

要创建的输出线要素类。

Feature Class
algorithm

指定线的简化算法。

  • POINT_REMOVE保留构成线的基本几何形状的关键点并移除其他所有点。这是默认设置。
  • BEND_SIMPLIFY保留线的主要几何形状并移除多余的弯曲。
String
tolerance

用于确定简化程度的容差。必须指定一个容差,且值必须大于零。可以选择首选单位;默认为要素单位。

  • 对于 POINT_REMOVE 算法,指定的容差表示每个折点与其原始位置的最大允许偏移量。使用该选项解决拓扑错误时,可在某些区域局部减小此值。
  • 对于 BEND_SIMPLIFY 算法,指定的容差表示参考弯曲基线的长度。
Linear unit
error_resolving_option
(可选)

指定处理拓扑错误的方式(这些拓扑错误可能是在处理时引入的,其中包括交叉的线、重叠的线和折叠为零长度的线)。当 error_checking_option 为 CHECK 时(默认设置),该参数生效。

  • FLAG_ERRORS指定标记拓扑错误(如果发现拓扑错误)。这是默认设置。
  • RESOLVE_ERRORS指定解决拓扑错误(如果发现拓扑错误)。
Boolean
collapsed_point_option
(可选)

指定是否将处理中发现的任何折叠的零长度线作为点保留下来。只有指定了 NO_CHECK 或者同时指定了 FLAG_ERRORS 和 CHECK 选项时,该选项才可用。

  • KEEP_COLLAPSED_POINTS指定将折叠的零长度线作为点保留下来。折叠线的端点将存储在位于输出要素类位置的点要素类中,以输出要素类的名称加上后缀 _Pnt 作为其名称。这是默认设置。
  • NO_KEEP指定折叠的零长度线不作为点保留下来,即使在处理中发现也不保留;因此,点要素类将为空。
Boolean
error_checking_option
(可选)

指定处理拓扑错误的方式(这些拓扑错误可能是在处理时引入的,其中包括交叉的线、重叠的线和折叠为零长度的线)。

  • CHECK指定检查拓扑错误并启用 error_resolving_option 参数。这是默认设置。
  • NO_CHECK指定不检查拓扑错误并禁用 error_resolving_option 参数。
Boolean

代码示例

SimplifyLine 示例(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 SimplifyLine 工具。

import arcpy
from arcpy import env
import arcpy.cartography as CA
env.workspace = "C:/data"
CA.SimplifyLine("roads.shp", "C:/output/output.gdb/simplified_roads", "POINT_REMOVE", 20)
SimplifyLine 示例 2(独立脚本)

以下独立脚本演示了如何使用 SimplifyLine 工具。

# Name: SimplifyLine_Example2.py
# Description: Simplify line features from two feature classes, rivers and coastlines,
# while maintaining their connections

 
# Import system modules
import arcpy
from arcpy import env
import arcpy.management as DM
import arcpy.cartography as CA
 
# Set environment settings
env.workspace = "C:/data/Portland.gdb/Hydrography"
 
# Set local variables
inRiverFeatures = "rivers"
inCoastlineFeatures = "coastlines"

mergedFeatures = "C:/data/PortlandOutput.gdb/merged_lines"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/merged_lines_simplified"
tempLayer = "tempLyr"

outRiverFeatureClass = "C:/data/PortlandOutput.gdb/rivers_final"
outCoastlineFeatureClass = "C:/data/PortlandOutput.gdb/coastlines_final"

# Merge rivers and coastlines into one feature class, assuming that they have 
#  a common f-code field with value 40 for rivers and 80 for coastlines.
DM.Merge(inRiverFeatures, inCoastlineFeatures, mergedFeatures)
# Simplify all lines.
CA.SimplifyLine(mergedFeatures, simplifiedFeatures, "BEND_SIMPLIFY", 100, "RESOLVE_ERRORS", "KEEP_COLLAPSED_POINTS", "CHECK")
 
# Select rivers and coastlines by their f-code values and put them in separate feature classes.
DM.MakeFeatureLayer(simplifiedFeatures, tempLayer, "f-code = 40")
DM.CopyFeatures(tempLayer, outRiverFeatureClass)

DM.MakeFeatureLayer(simplifiedFeatures, tempLayer, "f-code = 80")
DM.CopyFeatures(tempLayer, outCoastlineFeatureClass)

环境

相关主题

许可信息

ArcView: 否
ArcEditor: 是
ArcInfo: 是

7/10/2012