APP下载

基于ArcEngine的线状数据实体化处理*

2015-06-30李娇娇

现代测绘 2015年4期
关键词:线状数据处理角度

金 琳,李娇娇

(江苏省基础地理信息中心,江苏 南京 210013)

1 背景介绍

在日常的测绘工作中实际使用的数据源类型存在多样性,数据质量也存在差异。随着信息技术的发展,数据处理工作趋于自动化,这提高了处理效率,避免了人为误差。对矢量数据而言,为了更好满足制图及建库的需要,数据采集处理必须严格保证数据的规范性。

2 数据情况说明

在数据整合处理过程中,一个测区内的某层线状数据在交叉处往往会被其他线层数据打断,数据存在同一对象在一个图幅范围内有多段连续的对象的情况,而在数据入库或数字制图等实际情况中这些连续的对象应为一个完整的对象。为保证数据规范统一,需要对这种同一对象被打断为好几段的情况进行处理,使同一图幅范围内一个地物对象对应空间数据中的一个线状地物。本文就这种数据情况进行分析,讨论此类型数据的自动化连接处理,寻找解决办法。我们以交通线层和水系线层数据处理为例,分析需处理数据特点,并寻找解决办法,需处理的数据情况如图1所示。

图1 需处理的数据情况举例

3 解决方法研究

对交通线层和水系线层的数据,需要连接为同一对象的数据应是在空间上连续且为属性信息一致的一组空间对象。所以如何选择满足统一条件且连贯的一组对象就成为我们研究的关键。我们把线层数据情况简化为图2。

图2 数据处理情况简化模型

当前地物存在首尾节点,如果它为其中需要连接的一个断线,则与它连接的对象就成为我们判断是否为需要连接的一个对象。当前对象A起点处与其连接前一对象B在起点处最邻近节点所形成的角度为a,如A与B属性一致,且角度a大于等于(经过多次实验后发现可以得到较佳的效果,且符合道路和水系的实际弯曲程度),则A、B可以连接;如属性不一致则A、B不可以连接。A终点处与其连接的后一对象有多个,此处简化为C和D,在终点处与C最邻近节点所形成的角度为b,与D最邻近节点所形成的角度为c,如果A与C和D属性均一致,则判断角度c和角度d的大小,此处角度值取0-π的,则两者走向更为一致。图中角度c小于角度d,所以在A、C、D属性一致的情况下,A地物与C地物连接。

在实际空间道路线层数据和水系线层数据中,需要一致连接的对象绝大多数在断点处也保持方向统一。为了更好判断是否需要连接,我们在最后均增加一个角度判断,所形成的角度a、b在满足属性及所成角度最大的情况下应保证角度值大于等于,这在一定程度上更保证了数据连接的正确性。

4 解决算法

常见的空间数据组织格式为shp、mdb、dwg等,在本文讨论中拟定中间成果是按图幅组织的mdb,处理工作是对所有图幅的一组mdb进行操作,数据处理的整体流程如图3所示。遍历处理每一个mdb数据库,mdb库中遍历其所有数据类对象,寻找需要进行断线连接的线层数据,此处为交通线层(LRDL)和水系线层(HYDL)2层。对需要处理的线层数据,为避免重复处理,应先为该层添加“备注”字段,用于记录该对象是否已经处理。查看该数据类中的每一个对象pFeature。数据处理工作是针对未做处理的地物对象,选择可以与其连接的所有对象组进行对象合并,完成整个数据的处理工作。

图3 数据处理整体流程

每一对象pFeature获取满足连接条件的选择集的过程如图4所示。首先定义一个记录删除对象的数组用于判断该地物是否已经删除。若没有删除,获取该地物属性值作为属性匹配的基础,然后获得该地物首尾节点及与首尾节点最邻近的节点,并以此选择与该地物需要连接的地物对象,再以新选择的地物对象为当前地物,搜索其未判断的另一端点处是否存在需要连接的地物对象。在每次选择需要连接的地物对象后,我们增加一个判断,对已经处理过的地物对象不作为选择集中的一员。最终,我们获得与该地物属性匹配的、走向一致的所有地物。

图4 获取选择集的流程

当前地物端点(起点和终点)处可以连接地物对象的判断如图5所示。我们输入当前对象pFeature、当前端点pPoint和与pPoint最近的节点以及该层数据类,通过空间关系选择与当前端点相交的所有对象,判断并获取相交的地物中与pFeature属性一致且所成角度最大的地物:若最终所选地物与当前地物最邻近节点所成的角度大于等于0,即为可以选择连接的地物,否则返回空值。

图5 判断是否为选择集的对象

5 解决方法实现

数据处理的算法实现基于ArcEngine,采用C#编程语言完成。Engine的SDK用于判断空间地物关系和相关空间对象的计算。程序实现如图6所示,浏览选择需要处理的mdb所在文件夹,程序列出该文件夹下所有的数据库对象。填写需要处理的数据类名,此处为LRDL和 HYDL,设置容差0.001m(数据要求精度,根据实际情况填写),点击连接处理按钮,即可实现地物断线连接。

处理后和处理前的数据对比我们可随机取一层为例,处理前对象数为737个,处理后对象为244个,哪些对象被处理了可以在处理后的对象属性表中看到,“备注”字段为“已处理”的即是经过处理的对象。

图6 算法实现界面

6 结 语

线状数据实体化处理程序对在交叉点处被打断的线状地物可以进行很好的判断并可以合并为同一对象。经过对水系线层和交通线层对象的处理,我们将处理结果进行检查,对象基本合并正确,平均每一幅图处理时间约为1min,极大提高了数据的处理效率并最大程度减少了人工干预,有效提升了省级基础测绘数据的自动化处理水平。

[1] 欧阳霞辉.ArcGIS地理信息系统大全[M].北京:科学出版社,2011.

[2] 樊红,詹小国.Arc/info应用开发技术[M].武汉:武汉大学出版社,200.

[3] 吕晓艳.城市DLG数据加工及其入库处理方法的研究[D].沈阳:辽宁工程技术大学,2011.

[4] 寿源源.1∶10000地形要素数据整合的实践[J].城市地理,2014(12):62-63.

猜你喜欢

线状数据处理角度
无取向硅钢边部线状缺陷分析及改进措施
神奇的角度
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
热轧卷板边部线状缺陷分析与措施
一个涉及角度和的几何不等式链的改进
角度不同
人啊
线状生命
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用