焦英华
(山东省国土测绘院,山东 济南 250013)
矢量数据[1-4]是地理要素按几何对象类型分层存储的数据集,包含空间信息以及属性信息,是实现地理信息系统功能的数据基础,在农村土地承包经营权确权登记发证、第三次全国国土调查、房地一体确权登记等工作的汇交数据成果中,矢量数据是最基础也是最核心的组成部分。矢量数据具有的空间分析功能使得其广泛应用于建设规划、资源管理、环境分析等各个行业领域,数据质量的好坏直接影响着数据在各个领域的应用[5]。通过多源数据融合,可以有效提升数据维度,维度提升可以增加对象的属性信息,对于表述某些空间关系更为有利。矢量数据对精度、图形拓扑关系和属性逻辑关系的准确性要求极高,测绘生产内业在采集、编辑、整理的各个过程中不可避免的产生拓扑错误,而临近节点是其中最容易出现的错误[6]。实现高精度的矢量数据临近节点检查,是保证数据质量的关键问题。
本文研究了基于缓冲区融合的矢量数据临近节点检查方法,并通过实证分析对算法精度、效率和稳定性进行了验证。
本文选用微软公司的Microsoft Visual Studio 2010[7](以下简称VS2010)作为开发平台,C#[8]作为开发语言,ArcObjects[9](以下简称AO)作为主要开发工具包,实现基于缓冲区融合的矢量数据临近节点检查。
首先将所有待检查数据进行合并,然后将要素的节点全部取出,融合完相同的节点后,生成缓冲区并且按照是否相交进行融合,读取融合缓冲区的面积众数作为判定阈值,大于该阈值的融合缓冲区即为临近节点所在位置,算法流程如图1所示。
图1 算法流程图
(1)数据合并。临近节点检查数据来源不同,如房地一体临近节点检查中,需将房屋、宗地、阳台、楼梯等数据合并到一起,综合检查其临近节点,因此首先将不同来源数据合并到一起,如果数据的空间参考不一致,需要先进行坐标转换再将数据合并。
(2)要素转节点。使用AO中的ESRI.ArcGIS.DataManagementTools.FeatureVerticesToPoints类,将合并的要素转化为节点集合。
(3)相似节点融合。要素转节点后,邻接位置存在重复节点,其坐标值在一定容差范围内,但并不一定完全一致,因此,使用ESRI.ArcGIS.DataManagementTools.Dissolve类,将生成的拓扑容差范围内相接触的点融合。避免不同数据源位置精度不一致造成的同一节点坐标偏差,同时降低数据量,提高计算效率,为下一步缓冲区融合做准备。
(4)生成缓冲区。使用AO中的ESRI.ArcGIS.AnalysisTools.Buffer类,以检查临近节点的距离容差的一半作为缓冲半径,生成缓冲区面。
(5)缓冲区融合。使用AO中的ESRI.ArcGIS.DataManagementTools.Dissolve类,将生成的相接触的缓冲区融合。
(6)得到面积容差。读取生成的缓冲区融合数据,因临近节点为少数,所以单个节点生成的缓冲区面积应为众数,因此取面积众数作为面积判定阈值,大于该阈值的为临近节点所在缓冲区。其中,面积精度应与拓扑容差一致,如拓扑容差为0.001,则面积取值应取三位有效数字。
(7)临近节点判定。大于获取的面积容差阈值的缓冲区融合图形为临近节点拓扑错误所在缓冲区范围。
(8)释放资源,输出检查结果。删除融合后要素节点、节点缓冲区等中间数据,保留临近节点判定结果。
以某地籍子区房地一体数据作为测试数据,共计9类数据923个要素,数据存在80组临近节点。设计两组实验分别验证其精度稳定性和效率稳定性,实验中算法计算CPU为i7-8700K 3.7GHz,临近节点检查阈值为0.05m。
本文将数据整体平移复制1到10倍,数据量从9类923个矢量图形到9类9230个矢量图形时,随数据量增加,该算法对临近节点识别的准确性未有明显变化,算法运行结果如表1所示。
表1 算法准确性分析表 (临近节点数量/组)
数据量倍增后,算法依旧检测出所有临近节点错误集合,具有良好的精度稳定性。
从实验结果可以看出,同源数据间临近节点、不同源数据间临近节点均被全部检测出。该算法无需进行数据融合、拓扑节点构建等预处理操作,即可对数据中存在的临近节点进行快速、准确检测,具有较好的通用性与稳定性。
本文将数据整体平移复制1到10倍,分别计算数据量从9类923个图斑到9类9230个图斑时,该算法随数据量增加其运行效率保持稳定,算法运行时间如表2所示。
表2 算法效率性分析表 (运行时间/s)
数据量为9组923个时,算法运行时间约为9.4s,随数据量倍增,算法运行时间线性增长,在数据量为9组9230个时,算法运行时间约112.3s,算法效率如图2所示。传统基于拓扑查询的临近节点检查,随数据量增加,不可避免地会出现效率严重降低现象,而该算法随数据量倍增未出现运行时间指数增长现象,具有良好的效率稳定性。
图2 算法效率折线图
近年来,土地确权、三调、自然资源统一确权登记、房地一体等国家任务陆续开展,时间紧任务重,顺利完成数据汇交对实现成果信息化管理共享至关重要[10-12]。研究通用、高效、准确的矢量数据质检方案是保证数据质量的重要方向。
本文设计实现了基于要素节点缓冲区融合的矢量数据临近节点检查算法。
(1)基于维度提升带来高维信息这一特征,将临近节点关系描述转换为缓冲区面关系描述,检查算法描述简单,同时检查结果具有较高的准确性。
(2)检查效率线性增长,随数据量倍增,本算法检查效率成平缓线性增长趋势,具有较好的效率稳定性。
(3)通用性强,既能够检查要素内部又能有检查要素间临近节点,且之前无需做拓扑关系构建等处理,自动合并多源数据检查数据临近节点。
(4)检查结果直观定位准确,检查结果维度同样提升为缓冲区簇形式,非常规的两两点集合,错误结果定位更直观准确。