利用路径分析解决单要素多重叠盖(多重洞、岛)问题

2014-10-27 09:51:29    来源:中国地理信息产业协会

摘要:本文分析了该问题产生的原因,提出了利用有向图路径分析法区分岛、洞进行取舍的方法,详述了该方法的具体实现步骤,基于ArcEngine开发了相关应用实例并运用于实际项目中。​

单要素多重叠盖(多重洞、岛)问题是影响CAD/GIS数据转换质量之一,本文分析了该问题产生的原因,提出了利用有向图路径分析法区分岛、洞进行取舍的方法,详述了该方法的具体实现步骤,基于ArcEngine开发了相关应用实例并运用于实际项目中。


1.引言

数据是GIS的“血液”[1],GIS的发展必须建立在严格的数据结构基础之上。由于CAD与GIS行业的发展顺序及软件的结构特点,目前,GIS行业普遍存在同时维持两套库(CAD库和GIS库)的现状。如何将CAD数据快速转变为GIS数据变得极为重要。近年来,国内外对该问题做了许多研究与探讨,并已取得了诸多成果,例如,南京师范大学曾巧玲、张书亮等人提出利用FME实现GIS数据与CAD的语义转换[2],周小成、焦道振等人基于GeodataBase提出利用规则库转换CAD数据[3],张叶、孙毅中、陈年松等基于Geoway对CAD城市基础数据到GIS转换的有关问题作了深入的探讨[4]等。然而,这些成果主要集中在如何将CAD中点、线图形转变为GIS的点、线、面要素的过程上,而很少关注如何对转换后的数据进行后处理,存在的单要素多重叠盖(多重洞、岛)问题。简单单要素多重叠盖可由人工识别方式解决,将属于岛的部分保留,属于洞的部分挖去。但我国幅员辽阔,包括渤海、东海、南海、黄海四大海域,舟山群岛岛礁众多,形态各异,大小岛屿1390多个,通过简单人工识别不仅工作量大而且不适合信息化的发展要求,因此,需对单要素多重叠盖(多重洞、岛)问题进行深入研究,提出专门解决办法,本文针对数据转换后的单要素多重叠盖(多重洞、岛)问题,提出利用有向图路径分析自动建立区分岛、洞的方法。


2.分析解决问题

单要素多重叠盖(多重洞、岛)指的是单一要素,要素中存在岛、洞,岛、洞中继续存在岛、洞的情况,反复存在。在CAD中单要素多重叠盖(多重洞、岛)由多根闭合线来表示,经CAD/GIS系统转换后,便产生了多个叠加面,简单的多重叠盖(多重洞、岛)可由人工识别,将属于岛的部分保留,属于洞的部分挖去,但不适用于解决复杂的多重叠盖(多重洞、岛)问题。

解决单要素多重叠盖(多重洞、岛)问题的过程可以看作是有向图路径分析的过程。如图2.1,图a中各多边形要素可看作是有向图的节点,图b显示了构造有向图结构的过程,图c显示了处理后的结果。

路径的起点为未包含任何多边形的多边形,路径的终点为未被任何多边形包含的多边形。通过将多边形模拟到有向图的节点上,找出各起点到各终点的所有路径。任何一条路径便是一组拓扑互操作,操作对象为该路径上得所有节点,操作方法为按路径相反方向逐步裁切,合并零散多边形并删除多余多边形,最终得出准确表示该要素的复杂多边形。


利用路径分析解决单要素多重叠盖(多重洞、岛)问题
图2.1 多边形叠盖处理过程


3.实现步骤

本方法实现步骤包括:

1)要素按面积从小到大排序

排序方法可采用直接插入排序、希尔排序、快速排序、冒泡排序、选择排序等

2)构造有向图:添加节点

有向图中的节点代表某单一要素的所有多边形。

3)构造有向图:添加有向边

有向图中的有向边的起点为小多边形,终点为直接包含该起点的大多边形,节点的入度和出度可能大于1。

4)寻找路径的起点和终点

有向图中,可根据节点的出度/入度来判断该点是否为起点/终点,只有出度的节点为路径的起点,只有入度的节点为路径的终点。

5)找出各起点到各终点的所有路径

各起点到各终点的路径可以利用深度优先搜索算法(DFS)[5]进行查找。

6)拓扑求差(奇切偶不切)

对于每条路径,按路径相反方向,进行奇数位节点裁切偶数位节点操作,生成多个裁切多边形。

7)拓扑求并

对上面步骤产生的结果进行拓扑求并,合并后的单一复杂多边形即为表示该要素的准确形式。

8)重复步骤(6),直至所有路径均被遍历完为止

9)删除多余节点

删除参与拓扑求差的所有节点。


4.具体实现

1、数据源

现有CAD数据有多种属性链接方式,主要有直接应用对象特性、应用扩展属性和外接数据库[6]三种方式。本实例采用的数据源属性链接方式为前两种。

2、规则库

规则库包含数据字典和地理空间知识库。对于不同的测绘单位拥有自己的一套规则,需该单位根据本单位数据字典和地理空间知识库自行编写。

3、基于ArcEngine实现

目前,国内外采用比较多的GIS数据格式为ArcGIS数据格式,ArcGIS软件比较成熟,具有很好的GIS数据存储、处理、分析能力,并提供在线GIS数据访问功能。考虑到本单位长期以来的ArcGIS格式数据积累及GIS数据的共享与应用,我们采用基于ArcEngine的开发方式,建立CAD数据到ArcGIS数据的转化系统,通过调用上述方法,很好地解决了单要素多重叠盖(多重洞、岛)问题,并取得很好的效果。应用实例如图4.1、图4.2所示:

利用路径分析解决单要素多重叠盖(多重洞、岛)问题
图4.1 处理前


利用路径分析解决单要素多重叠盖(多重洞、岛)问题
图4.2 处理后

 

5.结论与展望

地理数据采集速度、精度、总量正以快速发展,测绘单位同时维持CAD、GIS两套数据库任务异常艰巨,CAD/GIS数据的快速转换显得格外重要。本文通过分析目前CAD/GIS数据转换系统发展的特点,从另一个角度看待该问题,并针对数据后处理中的单要素多重叠盖(多重洞、岛)问题展开研究,提出利用有向图路径分析解决单要素多重叠盖(多重洞、岛)问题的方法,节省了转换后人工处理量,提高了数据转换效率,具有很好的应用价值。

本文叙述的方法在一定的程度上缓解了CAD/GIS数据格式转换的压力,如需真正实习高自动化数据转换还需进行拓扑检查、质量评价等后期工作。


参考文献

[1]BAE S.SCHUTZ B E.Precision Attitude Determination.GLAS Algorithm Theoreticcal Basis Document (Version 2.0)[R].Austin:The University of Texas at Austin,1999.

[2]曾巧玲,张书亮,姜永发等.利用FME实现GIS与CAD的语义转换[J].计算机工程与应用,2005,41(13):214-217.

[3]周小成,焦道振.基于GeodataBase的CAD数据到 GIS的解决方案[J].测绘与空间地理信息,2005,28(1):29-32.

[4] 张叶,孙毅中,陈年松等.CAD城市基础数据到GIS转换的有关问题探讨[J].测绘与空间地理信息,2007,30(1):94-97.

[5] 胡学钢.数据结构算法设计指导[M].北京:清华大学出版社,1999:198-216.

[6] 张雪松,张友安,邓敏等.AutoCAD环境中组织GIS数据的方法[J].测绘通报,2003,(11):45-48.


作者:喻国强 陈洪建(宁波市鄞州区测绘院,浙江 宁波,315100)


声明:中国勘测联合网登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。