简化面 (制图)

摘要

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

插图

Polygon simplification

用法

语法

SimplifyPolygon_cartography (in_features, out_feature_class, algorithm, tolerance, {minimum_area}, {error_option}, {collapsed_point_option})
参数说明数据类型
in_features

要简化的面要素。

Feature Layer
out_feature_class

要创建的输出面要素类。

Feature Class
algorithm

指定面简化算法。

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

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

  • 对于 POINT_REMOVE 算法,指定的容差表示允许的最大偏移量。
  • 对于 BEND_SIMPLIFY 算法,指定的容差表示参考弯曲基线的长度。
Linear unit
minimum_area
(可选)

设置要保留的简化面的最小面积。默认值为零,即保留所有面。可以为指定的值选择首选单位;默认为要素单位。

Areal unit
error_option
(可选)

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

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

指定是否将处理中发现的任何折叠的面积为零的面要素作为点保留下来。仅当指定了 NO_CHECK 或 FLAG_ERRORS 时,此选项才可用。

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

代码示例

SimplifyPolygon 示例(Python 窗口)

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

import arcpy
from arcpy import env
import arcpy.cartography as CA
env.workspace = "C:/data"
CA.SimplifyPolygon("soils.shp", "C:/output/output.gdb/simplified_soils", "POINT_REMOVE", 100)
SimplifyPolygon 示例 2(独立脚本)

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

# Name: SimplifyPolygon_Example2.py
# Description: Eliminate small islands before simplifying and smoothing lake boundaries
# Author: ESRI
 
# 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
inLakeFeatures = "lakes"
eliminatedFeatures = "C:/data/PortlandOutput.gdb/lakes_eliminated"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/lakes_simplified"
smoothedFeatures = "C:/data/PortlandOutput.gdb/lakes_smoothed"

# Eliminate small islands in lake polygons.
DM.EliminatePolygonPart(inLakeFeatures, eliminatedFeatures, 100, "OR", 0, "CONTAINED_ONLY")
 
# Simplify lake polygons.
CA.SimplifyPolygon(eliminatedFeatures, simplifiedFeatures, "POINT_REMOVE", 50, 200, "RESOLVE_ERRORS", "KEEP_COLLAPSED_POINTS", "CHECK")
 
# Smooth lake polygons.
CA.SmoothPolygon(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "FLAG_ERRORS")
 

环境

相关主题

许可信息

ArcView: 否
ArcEditor: 是
ArcInfo: 是

7/10/2012