| 标注 | 说明 | 数据类型 |
输入要素 | 将进行平滑处理的面要素。 | Feature Layer |
输出要素类 | 将创建的输出面要素类。 | Feature Class |
平滑算法 | 指定将使用的平滑算法。
| String |
平滑容差 | 平滑算法参数的指数核的多项式近似 (PAEK) 选项使用的容差。 必须指定一个容差,且值必须大于零。 可以选择首选单位;默认为要素单位。 当使用平滑算法参数的贝塞尔插值选项时,此参数将不可用。 | Linear Unit |
保留环的端点 (可选) | 这是一个不再使用的旧参数。 之前曾将其用于指定是否保留孤立面环的端点。 为了脚本和模型的兼容性,工具语法中仍然包含此参数,但其已从地理处理窗格中隐藏。 指定是否保留孤立面环的端点。 此选项仅适用于平滑算法参数的指数核的多项式近似 (PAEK) 选项。
| Boolean |
处理拓扑错误 (可选) | 指定如何处理拓扑错误(可能是在该过程中引发的,如线的交叉或重叠)。
| String |
输入障碍图层 (可选) | 包含将充当平滑障碍的要素的输入。 生成的平滑面不会接触或越过障碍要素。 | Feature Layer |
插图

使用情况
平滑算法参数具有以下选项:
- 指数核的多项式近似 (PAEK) - 根据平滑容差对面进行平滑处理。 每个面经过平滑处理后,其折点都可能比之前多。 平滑容差参数可控制计算新折点时用到的“移动”路径的长度。 长度越短,保留的细节越多,处理时间也越长。
- 贝塞尔插值方法 - 对面进行平滑处理时无需使用容差,而是通过创建近似的贝塞尔曲线来匹配输入面。
可以使用输入障碍图层参数来标识不得被平滑面越过的要素。 障碍要素可以是点、线或面。
处理大型数据集可能会超出内存限制。 在这类情况下,考虑通过在制图分区环境设置中确定一个相关的面要素类来通过分区处理输入数据。 将按顺序处理分区边界定义的数据部分。 生成的要素类无缝,而且在分区边界一致。 有关详细信息,请参阅使用分区概化大型数据集。
警告:
将处理拓扑错误参数设置为不检查拓扑错误或检查并标记拓扑错误时,将忽略“制图分区”环境设置。
即使未选中传输字段属性域、子类型和属性规则环境,属性域和子类型也将被复制到输出。
输出面要素类将具有正确的拓扑。 输入数据中的任何拓扑错误都会在输出面要素类中标记出来。 输出要素类将包括以下附加字段:
- InPoly_FID- 包含输入的要素 ID。
- SmoPgnFlag- 包含输入的拓扑错误。 值为 1 指示存在拓扑错误;值为 0 指示不存在任何错误。
旧版本:
在此工具的 ArcGIS Pro 2.2 版本之前,保留环的端点参数曾被用来指定是否保留所生成的孤立面环的端点。 为了脚本和模型的兼容性,工具语法中仍然包含此参数,但现在其已被忽略且已在工具对话框中隐藏。
参数
arcpy.cartography.SmoothPolygon(in_features, out_feature_class, algorithm, tolerance, {endpoint_option}, {error_option}, {in_barriers})| 名称 | 说明 | 数据类型 |
in_features | 将进行平滑处理的面要素。 | Feature Layer |
out_feature_class | 将创建的输出面要素类。 | Feature Class |
algorithm | 指定将使用的平滑算法。
| String |
tolerance | algorithm 参数的 PAEK 选项使用的容差。 必须指定一个容差,且值必须大于零。 可以选择首选单位;默认为要素单位。 当使用 algorithm 参数的 BEZIER_INTERPOLATION 选项时,必须输入 0 作为占位符。 | Linear Unit |
endpoint_option (可选) | 这是一个不再使用的旧参数。 之前曾将其用于指定是否保留孤立面环的端点。 为了脚本和模型的兼容性,工具语法中仍然包含此参数。 指定是否保留孤立面环的端点。 此选项仅适用于 algorithm 参数的 PAEK 选项。
| Boolean |
error_option (可选) | 指定如何处理拓扑错误(可能是在该过程中引发的,如线的交叉或重叠)。
| String |
in_barriers [in_barriers,...] (可选) | 包含将充当平滑障碍的要素的输入。 生成的平滑面不会接触或越过障碍要素。 | Feature Layer |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 SmoothPolygon 函数。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.cartography.SmoothPolygon("soils.shp", "C:/output/output.gdb/smoothed_soils", "PAEK", 100)以下独立脚本演示了如何使用 SmoothPolygon 函数。
# Name: SmoothPolygon_Example2.py
# Description: Eliminate small islands before simplifying and smoothing lake boundaries
# Import system modules.
import arcpy
# Set environment settings.
arcpy.env.workspace = "C:/data/Portland.gdb/Hydrography"
# Set local variables.
inLakeFeatures = "lakes"
barriers = "C:/data/Portland.gdb/Structures/buildings"
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.
arcpy.management.EliminatePolygonPart(
inLakeFeatures, eliminatedFeatures, 100, "OR", 0, "CONTAINED_ONLY")
# Simplify lake polygons.
arcpy.cartography.SimplifyPolygon(
eliminatedFeatures, simplifiedFeatures, "POINT_REMOVE", 50, 200,
"RESOLVE_ERRORS", "KEEP_COLLAPSED_POINTS", barriers)
# Smooth lake polygons.
arcpy.cartography.SmoothPolygon(
simplifiedFeatures, smoothedFeatures, "PAEK", 100, "", "FLAG_ERRORS",
barriers)许可信息
- Basic: 否
- Standard: 是
- Advanced: 是