ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

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

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

ArcMap

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

平滑线

  • 描述
  • 插图
  • 使用
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

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

插图

平滑线图示

使用

  • 提供了两种平滑方法:

    • 指数核的多项式近似 (PAEK) 方法(Python 中的 PAEK)可根据平滑容差对线进行平滑处理。每条线经过平滑处理后,其折点都可能比之前多。平滑容差参数可控制计算新折点时用到的“移动”路径的长度。长度越短,保留的细节越多,处理时间也越长。
    • 贝塞尔插值方法(Python 中的 BEZIER_INTERPOLATION)对线进行平滑处理时无需使用容差,而是通过创建近似的贝塞尔曲线来匹配输入线。
  • 使用输入障碍图层参数来标识不得被平滑线越过的要素。障碍要素可以是点、线或面。

  • 处理大型数据集可能会超出内存限制。在这类情况下,考虑通过在制图分区环境设置中确定一个相关的面要素类来通过分区处理输入数据。将按顺序处理分区边界定义的数据部分。生成的要素类无缝,而且在分区边界一致。有关详细信息,请参阅使用分区概化大型数据集。

  • 输出线要素类具有正确的拓扑。输入数据中的任何拓扑错误都会在输出线要素类中标记出来。输出要素类包括含有相应输入要素 ID 和输入拓扑错误的两个附加字段:InLine_FID 和 SmoLnFlag。SmoLnFlag 值为 1 表示存在拓扑错误;值为 0(零)表示不存在错误。

    旧版本:

    对于 ArcMap 10.6.1 之前版本的工具,可能会在处理期间生成拓扑错误。处理拓扑错误(Python 中的 error_option)和保留环的端点(Python 中的 endpoint_option)参数曾被用来识别这些错误。为了脚本和模型的兼容性,工具语法中仍然包含这些参数,但现在这些参数已被忽略并从工具对话框中隐藏。

语法

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

要平滑处理的线要素。

Feature Layer
out_feature_class

要创建的输出要素类。

Feature Class
algorithm

指定平滑算法。

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

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

Linear Unit
endpoint_option
(可选)

这是一个不再使用的旧参数。之前曾将其用于指定是否保留闭合线的端点。为了脚本和模型的兼容性,工具语法中仍然包含此参数,但其已从工具对话框中隐藏。

用于指定是否保留闭合线的端点。该选项仅适用于 PAEK 算法。

  • FIXED_CLOSED_ENDPOINT —保留闭合线的端点。这是默认设置。
  • NO_FIXED —通过闭合线的端点进行平滑处理。
Boolean
error_option
(可选)

这是一个不再使用的旧参数。以前使用该参数来指定如何处理可能在处理过程中引入的拓扑错误。为了脚本和模型的兼容性,工具语法中仍然包含此参数,但其已从工具对话框中隐藏。

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

  • NO_CHECK —不检查拓扑错误。这是默认设置。
  • FLAG_ERRORS —标记拓扑错误(如果发现拓扑错误)。
String
in_barriers
[in_barriers,...]
(可选)

包含将充当平滑障碍的要素的输入。生成的平滑线不会接触或越过障碍要素。例如,在平滑等值线时,将点高度要素输入作为障碍可确保平滑等值线不会越过这些点进行平滑。输出不会违反测量点高度所述的高程。

Feature Layer

代码示例

SmoothLine 示例(Python 窗口)

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

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

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

# Name: SmoothLine_Example2.py
# Description: Simplify and then Smooth coastlines
# Import system modules
import arcpy
import arcpy.cartography as CA
# Set environment settings
arcpy.env.workspace = "C:/data/Portland.gdb/Hydrography"
# Set local variables
inCoastlineFeatures = "coastlines"
barriers = "C:/data/Portland.gdb/Structures/buildings"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/coastlines_simplified"
smoothedFeatures = "C:/data/PortlandOutput.gdb/coastlines_smoothed"
# Simplify coastlines.
CA.SimplifyLine(inCoastlineFeatures, simplifiedFeatures, "POINT_REMOVE", 50, 
                "RESOLVE_ERRORS", "KEEP_COLLAPSED_POINTS", "CHECK", barriers)
# Smooth coastlines.
CA.SmoothLine(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "", 
              "FLAG_ERRORS", barriers)

环境

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

许可信息

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

相关主题

  • 制图综合工具集概述
  • 了解冲突解决和制图综合
  • 通过地理处理自动化冲突解决和制图综合的工作流
  • 平滑面
  • 简化线
  • 使用分区概化大型数据集

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

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

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2019 Esri. | 隐私政策 | 法律声明