DOI:10.19476/j.ysxb.1004.0609.2002.04.036
地形图矢量化的后处理
中南大学信息物理学院
湖南省建筑学校
中南大学信息物理学院 长沙410083
湘潭411001
摘 要:
讨论了地形图矢量化后的几项处理工作 , 如曲线上点的稀释、直角化处理、重复点线的删除、接边等。概述了目前已有的几种曲线点抽稀方法 , 提出了一种新的方法———逐点筛选法 , 并且用实例证明了它的实用性 ;最后 , 简要介绍了进行直角化处理、重复点线的删除以及接边时要注意的问题。
关键词:
中图分类号: P283
收稿日期:2002-04-25
Post-processing of vectorized topographic maps
Abstract:
The processing works after vectorizing topographic maps were discussed, such as diluting, right angle processing, deleting redundant points and lines. Present methods for diluting were briefly introduced, and a new method, selection from point to point, was put forward and demonstrated to be a practical method. In the end, several problems about right-angle processing, deleting redundant points and lines were simply discussed.
Keyword:
vectorizing; diluting; selection from point to point; right-angle processing;
Received: 2002-04-25
由于某些人为的因素, 再加上现阶段国内矢量化软件的功能欠缺, 地形图矢量化后的数据仍存在一些问题需要进行后续处理
1 现有曲线点抽稀方法概述
地形图矢量化后, 还需要对矢量化提取的线条进行抽稀处理。 抽稀是在保证矢量化曲线形状不变的情况下, 最大限度地减少曲线上点的个数。 其关键是定义抽稀因子, 抽稀因子的不同决定了抽稀算法的多样性。 在已有的抽稀理论中
步长法是沿连续曲线每隔一定的步长选取一点, 其余点全部压缩掉, 然后在相邻取样点间用直线连接或采取曲线拟合逼近。
线段过滤法是指当某一段的长度小于某一值时, 就以该段的中点代替该段, 如同该段的两端退化到中点一样。
圆柱法的具体做法是用一个圆柱面去套线串, 当圆柱面被抵住时记下线串上抵住圆柱的点, 然后从该点开始往下套并记下相应的点, 直到线串的另一端点为止。 圆柱的半径称为过滤公差, 它量化了稀释线串的程度。
道格拉斯-普克法是从整体的角度来考虑一条完整的线或某一确定的线段, 首先选取线段的两端点, 然后计算线段内其余各点到连接两端点的直线的距离。 如果这些点到直线的垂直距离中最大者仍小于某一阀值, 则所有这些点都被舍去, 若最大距离大于阀值, 则此点保留, 并以此点将线段分为两段, 对这两段重复计算垂距, 分别检查最大垂距是否大于阀值。 重复此过程直到没有多余的点需要被舍去为止。
2 逐点筛选法
逐点筛选法是Douglas-Poiker法的求逆过程。 它不是从整体角度去考虑一条完整的曲线, 而是从开始点依次筛选, 排除冗余点。 即以第一点为起点, 计算第二点到第一点和第三点所构成的直线的距离, 如该距离大于某一阀值, 则保留第二点, 并以该点作为新的起点, 计算第三点到第二点和第四点所构成的直线的距离; 否则, 去掉第二点, 仍以第一点为起点, 计算原曲线上第三点到第一点和第四点所构成直线的距离。 依次类推, 直至曲线上最后一点。 该方法的阀值一般取相应地物最大允许误差或更小。
经过分析比较, Douglas-Poiker法与逐点筛选法为曲线抽稀的首选算法, 一方面它们在阀值上有明确的规定, 另一方面又能在删除与保留之间达到较好的平衡, 既可以保持矢量线条的形状特性, 又可以根据实际制图的需求确定抽稀的容差, 从而在保证拟合精度的同时最大限度的减少矢量数据。 从误差累积的角度考虑, Douglas-Poiker法是比较好的, 逐点筛选法次之。 从计算机编程的难易程度和程序处理的复杂程度考虑, 逐点筛选法比Douglas-Poiker法要好。 基于以上因素, 且考虑到各矢量化软件都能输出DXF的中间数据交换格式的特点, 作者针对逐点筛选法, 采用面向对象的编程技术, 以Visual C++6.0为编程工具, 对矢量化后转换成的DXF文件进行处理, 有效地实现了曲线特别是等高线的抽稀。 阀值在编程时根据要求由程序员自行给定, 作者取阀值为0.1 mm, 程序运行后的效果如图1所示。 抽稀前后曲线的点数比较如表1所示。
为简单起见, 从中抽取两条曲线进行精度分析, 分析结果如表2所示, 表中只列出坐标变化的点。 其中Δi表示曲线上各点的点位误差, 按公式
3 直角化处理
在地图数字化的过程中, 由于不可避免的数据采集误差, 会使呈矩形的房屋内角与直角存在着差异
4 重复点线处理
为准确反映空间拓扑关系, 又最大限度地节省
图1 曲线抽稀实例图
Fig.1 Example of diluting (a) —Before diluting; (b) —After diluting
表1 抽稀前后点数的比较
Table 1 Comparison of number of points
Before diluting | 26 | 41 | 41 | 41 | 51 | 46 | 36 | 66 | 66 | 56 | 51 | 36 | 31 | 21 |
After diluting | 10 | 11 | 10 | 12 | 13 | 17 | 19 | 23 | 24 | 23 | 16 | 11 | 8 | 13 |
表2 曲线抽稀点位精度分析
Table 2 Analysis of position precision after diluting (unit: m)
Point | Curve 1 Δi |
Curve 2 Δi |
Point | Curve 1 Δi |
1 2 3 4 5 6 7 8 |
0.102 0.108 0.083 0.046 0.068 0.082 0.083 0.050 |
0.082 0.099 0.084 0.098 0.085 0.080 0.085 0.072 |
9 10 11 12 13 14 15 16 |
0.085 0.125 0.148 0.105 0.072 0.073 0.060 0.048 |
m | =±0.069 | ±0.048 |
存储空间, 适当删除重复点线及直线中间点是矢量化后处理中一项必不可少的工作。 实际操作中, 对多余点的删除一般在文本编辑中处理, 对多余线的删除可结合图形编辑与文本编辑同时处理。
5 接边处理
由于纸张伸缩、 图数转换误差和人工操作的失误等因素, 两个相邻图幅结合处可能出现逻辑裂隙或几何裂隙, 即相邻图幅公共图廓线两侧本应相互连接的同一地物要素出现位置或属性错位。 逻辑裂隙指的是同一个实体在一个图幅中具有属性A, 而在另一个图幅中具有属性B, 即同一实的要素在不同的图幅中具有不同的要素; 几何裂隙是指图幅边界所分开的一个实体的两部分不能精确衔接。 因此, 在GIS数据库中必须解决如何将相邻的图幅在逻辑和几何上融成一个连续的整体的问题, 这就是图幅接边问题。
接边是矢量化后一个非常重要的环节。 每幅图矢量化完成后都需与相邻图幅进行接边检查, 确保矢量化后的整体图形真实于原图。 接边问题长期以来一直是数字化编程的难点。 传统的方法是将相邻图幅公共图廓线两侧的点进行距离匹配, 距离最近点为匹配点。 这种做法当多个匹配点具有相同特征码时, 采用距离搜索可能会发生错误。 如图2所示, b′可能与c相匹配。
在进行接边点匹配时, 人眼是非常容易识别的, 这是因为人的识别涉及这些匹配点的整体结构, 这种整体结构不仅仅考虑对应两点间的距离,
图2 图幅接边错误示意图
Fig.2 Schematic drawing of wrong map brink connecting
而重要的是考虑了对应点在各自总体中的相对位置是否相似。 鉴于这一识别特点, 在进行最近距离匹配的同时, 适当配合人眼识别与判断, 可大大减小接边误差。 目前已有一些软件具有自动接边功能
6 结束语
在矢量化后处理中, 除了以上几个方面外, 还有一些如数字、 文本、 符号等的识别
总之, 矢量化后处理是为了保证矢量数据在输出或入库之前的质量和精度而进行的错误修正和内容补充等。 处理的对象不仅包括地物及其空间拓扑关系, 也包括地物的属性, 使地物的位置精度和属性精度在后处理完成时得到较大的提高。 后处理的方式不仅可通过图形编辑实现, 也可通过文本编辑实现, 还可以利用编程语言来实现。
矢量化后处理作为扫描矢量化数据向GIS转化的过渡阶段, 一方面是为了打印输出高精度的数字地图; 另一方面是为GIS提供可靠精度保证的前端数据。 矢量化后处理在控制误差的同时, 虽然又引入了新的误差, 但相对于处理前的误差和规范的要求, 矢量化后处理工作是十分必要的, 它有助于完善和提高矢量数据精度。
参考文献