简化线、简化面和简化共享边工具通过简化线和面来降低要素复杂度,以便能够以较小的比例进行显示。这些工具的工作原理是识别和移除相对不太重要的折点来降低要素复杂度,同时保留固有的特征和形状。这些工具提供有不同的简化算法,而生成的结果也将略有不同。
简化算法
保留关键点(道格拉斯-普克)
保留关键点(道格拉斯-普克)(Python 中的 algorithm='POINT_REMOVE')选项是一种用于简化线的便捷算法。它将保留所有构成线要素的基本形状的关键点而移除其他点。该算法从使用趋势线连接线要素的各端点开始。首先测量每个折点到趋势线的垂直距离。与趋势线的距离小于容差的折点将被删除。线要素最先在距离趋势线最远的折点处断开,从而构成两条新趋势线。然后再测量剩余折点到这两条线的垂直距离,整个过程将持续到与趋势线的距离小于容差的所有折点全部被删除为止。此选项基于道格拉斯和普克 (1973) 定义的算法。
保留关键点(道格拉斯-普克)对于数据压缩和消除冗余细节非常有效,但是生成的线可能含有不必要的尖角和尖锋,从而降低线的制图质量。如果对制图质量要求不高,则可使用保留关键点(道格拉斯-普克)实现相对较少的数据缩减或压缩。
保留关键折弯 (Wang-Müller)
保留关键折弯 (Wang-Müller)(Python 中的 algorithm='BEND_SIMPLIFY')算法通过形状识别技术找出折弯并分析其特征,然后消除无关紧要的折弯。可将线状要素视为由一系列折弯组成 (Wang, 1996),其中的每个折弯在其连续折点处的拐角符号(正或负)均相同。可将每个折弯的若干个几何属性与直径等于指定简化容差的参考半圆的对应属性进行比较。这些测量结果用于确定是保留折弯还是消除折弯,也就是说用基线(连接折弯端点的线)取代折弯。这种简化是迭代进行的,因此,较小的折弯在较早的迭代过程中可能会消失,从而形成大折弯。这样一来,生成的线与原始线的大体形状将更加接近,而制图质量也高于保留关键点(道格拉斯-普克)。此选项基于 Wang 和 Müller (1998) 定义的算法。
保留加权有效面积 (Zhou-Jones)
保留加权有效面积 (Zhou-Jones) 算法(Python 中的 algorithm='WEIGHTED_AREA')的工作原理是首先识别每个折点有效区域的三角形。随后采用一系列度量对这些三角形进行加权以对比每个面积的平面度、偏度和凸度。通过加权后的面积指导移除相应折点以简化线,同时尽可能多地保留特性。此选项基于 Zhou 和 Jones (2005) 定义的算法。
保留有效区域 (Visvalingam-Whyatt)
保留有效区域 (Visvalingam-Whyatt)(Python 中的 algorithm='EFFECTIVE_AREA')算法的工作原理是根据每个顶点及其两个相邻点形成的三角形的大小为顶点指定相对重要性,然后首先删除最不重要的顶点。删除与最小三角形关联的顶点将对线或轮廓的特征影响最小。该过程是迭代的,以便在第一个过程中移除顶点后,从剩余的顶点重新计算三角形,且该过程得以继续。此选项基于 Visvalingam 和 Whyatt (1992) 定义的算法。
保持拓扑完整性
该工具可确保拓扑在处理过程中保持完整。不会产生拓扑错误。如果简化将违反拓扑规则,那么该工具会首先尝试将几何分为两部分,然后分别对其进行简化。这是一个递归过程。子部分随后将被再次分割,以此类推。如果使用此方法仍不能保持拓扑完整,那么该要素将被置于等待状态,并在处理完邻近要素后重新进行访问,以查看该拓扑是否可以保持完整。
旧版本:
在之前版本的工具中,可能会在处理期间生成拓扑错误。其中含有相关参数以识别这些错误,并可让您选择解决这些错误。该工具不会再产生拓扑错误,因此不需要对其进行检查和解决。为了脚本和模型的兼容性,工具语法中仍然包含检查拓扑错误(Python 中的 error_checking_option)和解决拓扑错误(Python 中的 error_resolving_option)参数,但现在这些参数已全部失效并从工具对话框中隐藏。
SimPgnFlag 字段(在简化面情况下)或 SimLnFlag 字段(在简化线情况下)将添加到输出要素类中以标记输入要素类中存在的拓扑错误。而之前版本的工具则使用这些字段来标记工具在处理过程中产生的拓扑错误。另外,在拓扑分辨率课程中,之前版本的工具针对每个要素修改了容差并将这些值存储在 MinSimpTol 和 MaxSimpTol 字段中。在当前实施中,这些容差字段中的值将相同并等于在简化容差参数中指定的容差。请确保根据这些字段修改现有模型或脚本。
可使用输入障碍图层参数来定义一个或多个要素类,使其中包含不得被简化线或面越过的要素。例如,简化道路不应该越过的湖泊和河流,等值线不能越过的高程点高度或其他调查标记,以及简化数据必须保持完整的行政边界。
分析和改进结果
这些工具一次简化一条线和一个面轮廓;线或轮廓越长,结果越理想。采集或构造源数据时,请切记: 尽可能将线端点放在长而平滑的线段上,而不要放在角度很大的线段上。
输入要素类中的拓扑问题 - 与其他要素重叠但没有交点的要素会在输入要素类的字段中标记出来。在简化面的情况下,该字段名为 SimPgnFlag,在简化线的情况下,该字段名为 SimLinFlag。这些字段中的值为 1 表示在输入要素类中该要素存在拓扑错误。
为便于参考,还会在输出要素类中添加与输入要素的对象 ID 对应的 ID 字段。在简化面工具的情况下,该字段名为 InPoly_FID,在简化线工具的情况下,该字段名为 InLine_FID。此外,MinSimpTol 和 MaxSimpTol 字段也将被添加至输出以存储使用过的容差。
派生的点输出要素类是由点要素创建的,在简化线的情况下,这些点要素表示简化为零长度线的线端点,在简化面的情况下,这些点要素表示简化为零面积面的面或者面积小于最小面积参数所定义的最小面积的面,或者在简化共享边的情况下,可能表示上述两种情况。简化面已缩减为空几何或一个小于最小面积参数所定义的最小面积的面。
使用大型数据集
对这些面进行拓扑处理时应同时考虑多个要素。处理大型数据库时,可能会超出内存限制。在这种情况下,应考虑通过分区来处理输入数据。这可以通过在制图分区环境设置中确定一个相关的面要素类来覆盖和细分输入数据来实现。将按顺序简化分区边界定义的数据部分,但输出要素类无缝且在分区边界一致。有关详细信息,请参阅使用分区概化大型数据集。
参考文献
Douglas, David H. 与 Thomas K. Peucker 合著,1973 年 "Algorithms for the Reduction of the Number of Points Required to Represent a Digitised Line or its Caricature." The Canadian Cartographer, 10(2): 112–122.
Wang, Zeshen, 与 Jean-Claude Müller 合著。1998 年。"Line Generalization Based on Analysis of Shape Characteristics." Cartography and Geographic Information Systems 25(1): 3–15.
Zhou, Sheng 与 Christopher B. Jones 合著,2005 年。"Shape-Aware Line Generalisation with Weighted Effective Area." In Developments in Spatial Handling: 11th International Symposium on Spatial Handling, edited by Peter F. Fisher, 369–80.
Visvalingam, M. 与 J. D. Whyatt 合著,1992 年。"Line Generalisation by Repeated Elimination of the Smallest Area," Cartographic Information Systems Research Group (CISRG) Discussion Paper 10,赫尔大学。