ArcGIS for Desktop

  • 文档
  • 合约
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

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

ArcGIS for Desktop

全面的专业性 GIS

ArcGIS for Server

面向企业的 GIS

ArcGIS for Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

帮助

  • 主页
  • 入门
  • 制图
  • 分析
  • 管理数据
  • 工具
  • 更多...

平滑面

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

摘要

对面轮廓中的尖角进行平滑处理以使制图更加美观或改善制图质量。

插图

Smooth Polygon illustration

用法

  • 有两种平滑方法可供选择:

    • PAEK(指数核的多项式近似)方法可根据平滑容差对面进行平滑处理。每个面经过平滑处理后,其折点都可能比之前多。平滑容差参数可控制计算新折点时用到的“移动”路径的长度。长度越短,保留的细节越多,处理时间也越长。
    • 贝塞尔插值法(Python 中为 BEZIER_INTERPOLATION)对面进行平滑处理时无需使用容差,而是通过创建贝塞尔曲线来匹配输入线。如果输出为 shapefile,则将创建近似的贝塞尔曲线,因为真正的贝塞尔曲线无法存储在 shapefile 中。
  • 平滑处理可能带来拓扑错误,如面轮廓的交叉。使用处理拓扑错误参数中的标记错误选项(Python 中为 FLAG_ERRORS)可识别这些错误。将添加两个字段 InPoly_FID 和 SmoPlyFlag 以包含输入要素 ID 和拓扑错误。SmoPlyFlag 字段中的值为 1 表明存在拓扑错误;0(零)表明不存在错误。InPoly_FID 字段将输出面连接到其输入面。标记错误选项不能在编辑会话下使用。

    注:

    ArcGIS Pro 允许在任何时候设置这些参数,即使编辑始终可用。

  • 在平滑处理的过程中,可能创建无效(自相交)的几何,并将对无效的几何进行修复,但不会将其改进。例如,如果一个面自交叉,则这个面将成为多部分面,但显示效果依然是自交叉。

语法

SmoothPolygon_cartography (in_features, out_feature_class, algorithm, tolerance, {endpoint_option}, {error_option})
参数说明数据类型
in_features

要平滑处理的面要素。

Feature Layer
out_feature_class

要创建的输出面要素类。

Feature Class
algorithm

指定平滑算法。

  • PAEK —Polynomial Approximation with Exponential Kernel(指数核的多项式近似)的首字母缩略词。该方法可以计算不经过输入面折点的平滑面。这是默认设置。
  • BEZIER_INTERPOLATION —拟合折点间的贝塞尔曲线。生成的面将经过输入面的折点。该算法不需要容差。在 shapefile 输出中,将创建近似的贝塞尔曲线。
String
tolerance

设置 PAEK 算法使用的容差。必须指定一个容差,且值必须大于零。可以指定首选单位;默认为要素单位。使用 BEZIER_INTERPOLATION 平滑算法时,必须输入 0 作为占位符。

Linear unit
endpoint_option
(可选)

指定是否保留孤立面环的端点。该选项仅适用于 PAEK 算法。

  • FIXED_ENDPOINT —保留孤立面环的端点。这是默认设置。
  • NO_FIXED —通过孤立面环的端点进行平滑处理。
Boolean
error_option
(可选)

指定如何处理拓扑错误(可能是在该过程中引发的,如线的交叉或重叠)。

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

代码实例

SmoothPolygon 示例(Python 窗口)

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

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

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

# Name: SmoothPolygon_Example2.py
# Description: Eliminate small islands before simplifying and smoothing lake boundaries
 
# Import system modules
import arcpy
from arcpy import env
import arcpy.cartography as CA
import arcpy.management as DM
 
# 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 for Desktop Basic: 否
  • ArcGIS for Desktop Standard: 是
  • ArcGIS for Desktop Advanced: 是

相关主题

  • 制图综合工具集概述
  • 了解冲突解决和制图综合
  • 通过地理处理自动化冲突解决和制图综合的工作流
  • 平滑线
  • 简化面
有关此主题的反馈?

ArcGIS for Desktop

  • 主页
  • 文档
  • 合约
  • 支持

ArcGIS 平台

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

关于 Esri

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