平滑线 (制图)

许可等级:BasicStandardAdvanced

摘要

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

插图

Smooth Line illustration

用法

语法

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

要平滑处理的线要素。

Feature Layer
out_feature_class

要创建的输出要素类。

Feature Class
algorithm

指定平滑算法。

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

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

Linear unit
endpoint_option
(可选)

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

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

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

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

代码实例

SmoothLine 示例(Python 窗口)

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

import arcpy
from arcpy import env
import arcpy.cartography as CA
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
from arcpy import env
import arcpy.cartography as CA
 
# Set environment settings
env.workspace = "C:/data/Portland.gdb/Hydrography"
 
# Set local variables
inCoastlineFeatures = "coastlines"
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")
 
# Smooth coastlines.
CA.SmoothLine(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "", "FLAG_ERRORS")

环境

相关主题

许可信息

ArcGIS for Desktop Basic: 否
ArcGIS for Desktop Standard: 是
ArcGIS for Desktop Advanced: 是
5/10/2014