ArcGIS Desktop

  • 文档
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

简化面

  • 摘要
  • 插图
  • 用法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

摘要

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

插图

面简化

用法

  • 存在两种简化方法:

    • POINT_REMOVE 是两种算法中较快的。它可移除多余的折点。此方法用于数据压缩或更为粗糙的简化,尤其适用于大家都已经了解的数据。随着容差的增大,生成的面中有棱角的部分(尖锐拐角)将显著增加,所以,输出的面可能不如输入的面美观。
    • BEND_SIMPLIFY 方法较慢,但通常会生成与原始几何形状更为接近的结果,因此更加美观。其操作方式为消除沿面轮廓不太重要的折弯。此方法用于精细的简化。
  • 最小面积参数仅适用于简化的面。任何在简化过程完成后小于最小面积的面要素都将从输出要素类中移除。对于一组共享公共边的相邻面,该参数适用于该组面的总面积。

  • 该工具会产生两个输出要素类,一个是存储了简化之后的面的面要素类和一个是存储了用来表示任意折叠于一点的面的那些点的点要素类。点的输出名称和位置自动从输出的面的名称获得,并加 _Pnt 作为后缀。面输出将包含所有输入字段;点输出不包含任何输入字段。

  • 多部分 (Multipart) 面可简化为单部分。

  • 以下为用于处理输出中的拓扑错误的 3 个选项:

    • 请勿检查拓扑错误(Python 中的 error_option = 'NO_CHECK'):不检查简化过程结果的拓扑错误。处理过程会更快。只有在可以保证数据的拓扑准确性时才使用该选项。这是默认设置。
    • 标记错误(Python 中的 error_option = 'FLAG_ERRORS'):将检查简化过程结果的拓扑错误,并将标记具有拓扑错误的要素。当标识拓扑错误的重要性大于解决错误的重要性时,请使用此选项。编辑会话中不支持此选项。
      • 面输出将包含两个表示要素是否存在拓扑错误的新字段。InPoly_FID 和 SimPlyFlag 分别包含输入要素 ID 和拓扑错误。
      • InPoly_FID 字段将折叠的点连接到其输入面。
      • 在 SimPlyFlag 字段中,值为 1 表示引入了错误,而值为 0(零)表示未引入错误。
      • 拓扑错误解决之后,标记值仍将保持不变。SimPlyFlag 字段用于检查包含拓扑错误的要素。
    • 解决拓扑错误(Python 中的 error_option = 'RESOLVE_ERRORS'):修复简化过程所引入的拓扑错误。处理时间会较长。编辑会话中不支持此选项。
      • 指定的容差可能会适合大多数面要素,但并非全部,特别是拥挤区域中的面要素。第一轮简化后如果检测到拓扑错误,则将定位涉及的边界线段(非整个面)并使用更小的容差。
      • 新的较小容差值 50% 将用于重新简化这些线段。该迭代过程将根据需要重复多次,直到不存在拓扑错误为止。
      • 面输出要素类将包含与输入相同的面数量。它将使用两个新字段 MaxSimpTol 和 MinSimpTol 存储迭代过程中简化每个面时所应用的最大容差和最小容差。如果未引入错误,MaxSimpTol 和 MinSimpTol 的值将与指定的简化容差的值相同。
      • 警告:

        如果简化容差值相对较大,较大的面要素旁的较小面要素最终可能会并入较大面要素的内部。该算法无法检测到这种类型的空间关系错误。

    • 对于 NO_CHECK 和 FLAG_ERRORS 选项,简化过程中可能会创建自相交的几何形状,并将自动修复。例如,如果面要素自身存在交叉,则经过修复,它将成为多部件面,以便各部件不存在交叉,尽管面要素的显示效果依然是自交叉。
  • 当使用了 NO_CHECK 或 FLAG_ERRORS 时,或者选中了保留折叠点复选框时,将对点输出进行填充。如果输入面要素包含了多个部分,并且其中一个部分成为折叠的点,则表示该部分的点要素也将包括在点输出中。

语法

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")

环境

  • 当前工作空间
  • 默认输出 Z 值
  • 输出 M 属性域
  • 输出 XY 属性域
  • 输出坐标系
  • 范围
  • 输出包含 M 值
  • 输出包含 Z 值
  • 临时工作空间
  • XY 容差

许可信息

  • ArcGIS Desktop Basic: 否
  • ArcGIS Desktop Standard: 是
  • ArcGIS Desktop Advanced: 是

相关主题

  • 制图综合工具集概述
  • 了解冲突解决和制图综合
  • 通过地理处理自动化冲突解决和制图综合的工作流
  • 简化线
  • 简化建筑物
  • 简化线的工作原理

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
© Copyright 2016 Environmental Systems Research Institute, Inc. | 隐私政策 | 法律声明