描述
可简化输入要素的边,对于与其他要素共享的边,可同时保持与这些边的拓扑关系。
插图
使用方法
此工具为不同目的采用不同的简化算法。要了解有关这些算法的详细信息,请参阅简化线和简化面的工作原理。
- 保留关键点(道格拉斯-普克)算法(Python 中的 algorithm='POINT_REMOVE')的工作原理是识别并移除相对多余的折点来简化数据并以较小的比例显示。这是此工具中最快的简化算法。这种算法通常用于数据压缩或粗糙的简化。随着容差的增大,生成的线中有棱角的部分将显著增加。这种算法基于道格拉斯-普克算法:Douglas, David and Peucker, Thomas, "Algorithms for the reduction of the number of points required to represent a digitized line or its caricature," The Canadian Cartographer. 10(2), 112–22 (1973)。
- 保留关键折弯 (Wang-Müller) 算法(Python 中的 algorithm='BEND_SIMPLIFY')的工作原理是识别并消除相对不太重要的折弯来简化数据并以较小的比例显示。这通常比保留关键点(道格拉斯-普克)算法更接近输入几何,但可能需要更多的处理时间。这种算法基于 Wang, Zeshen and Müller, Jean-Claude, "Line Generalization Based on Analysis of Shape Characteristics," Cartography and Geographic Information Systems 25(1), 3–15 (1998) 中定义的算法。
- 保留加权有效面积 (Zhou-Jones) 算法(Python 中的 algorithm='WEIGHTED_AREA')的工作原理是首先识别每个折点有效区域的三角形。随后采用一系列度量对这些三角形进行加权以对比每个面积的平面度、偏度和凸度。通过加权后的面积指导移除相应折点以简化线,同时尽可能多地保留特性。这种算法基于 Zhou, Sheng and Jones, Christopher B., "Shape-Aware Line Generalisation with Weighted Effective Area," in Fisher, Peter F. (Ed.), Developments in Spatial Handling: 11th International Symposium on Spatial Handling, 369–80 (2005) 中定义的算法。
- 保留有效面积 (Visvalingam-Whyatt) 算法(Python 中的 algorithm='EFFECTIVE_AREA')可通过识别每个折点的有效三角形面积来指导移除折点以简化线,同时尽可能多地保留特性。这种算法基于 Visvalingam, M. and Whyatt, J. D., "Line Generalisation by Repeated Elimination of the Smallest Area," Cartographic Information Systems Research Group (CISRG) Discussion Paper 10, The University of Hull (1992) 中定义的算法。
此工具可以修改输入要素和共享边要素参数。不会生成新输出。
简化仅适用于所有输入要素边,并且仅适用于与任意输入要素边共享边的共享边要素边。将不会对未与至少一个输入要素边共享边的共享边要素边进行简化。
语法
arcpy.cartography.SimplifySharedEdges(in_features, algorithm, tolerance, {shared_edge_features}, {minimum_area}, {in_barriers})
参数 | 说明 | 数据类型 |
in_features [in_features,...] | 要进行简化的线或面。 | Feature Layer |
algorithm | 用于指定简化算法。
| String |
tolerance | 用于确定简化程度。如果未指定单位,则将使用输入单位。
| Linear Unit |
shared_edge_features [shared_edge_features,...] (可选) | 将沿与输入要素共享的边进行简化的线要素或面要素。将不会对其他边进行简化。 | Feature Layer |
minimum_area (可选) | 要保留的面的最小面积。默认值为零,即保留所有面。可以指定单位,如果未指定单位,则将使用输入单位。此参数仅当至少其中一个输入为面要素类时可用。 | Areal Unit |
in_barriers [in_barriers,...] (可选) | 作为障碍进行简化的点、线、或面要素。简化要素不会与障碍要素接触或相交。 | Feature Layer |
派生输出
名称 | 说明 | 数据类型 |
out_feature_class | 平滑的输入要素。 | 要素图层 |
out_shared_edge_feature_class | 共享的边要素。 | 要素图层 |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 SimplifySharedEdges 工具:
import arcpy
arcpy.env.workspace = "C:/data/LandUse.gdb"
arcpy.SimplifySharedEdges_cartography
arcpy.SimplifySharedEdges_cartography("Water;Parks;",
"POINT_REMOVE",
"10 Meters",
"Commercial;Highways;Buildings",
"0 SquareMeters")
此独立脚本显示的是使用 SimplifySharedEdges 工具的示例。
# Name: SimplifySharedEdges_standalone_script.py
# Description: Simplifies input features while maintaining topological
# relationships along shared edges. For features included as
# shared_edge_features (4th argument of
# SimplifySharedEdges_cartography()) only the edges that are shared
# with in_features (1st argument) are simplified.
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/LandUse.gdb"
# Set local variables
in_features = "Water;Parks"
algorithm = "POINT_REMOVE"
tolerance = "10 Meters"
shared_edge_features = "Commercial;Highways;Buildings"
minimum_area = "0 SquareMeters"
barriers = None
# Execute Simplify Shared Edges
arcpy.SimplifySharedEdges_cartography(in_features, algorithm, tolerance,
shared_edge_features, minimum_area,
barriers)
环境
许可信息
- Basic: 否
- Standard: 是
- Advanced: 是