张发顺,郭邦梅,孟志军,梁 勇
(1.山东农业大学信息科学与工程学院,山东泰安271018;2.国家农业信息化工程技术研究中心,北京100097;3.中国测绘科学研究院,北京100039)
目前我国每年因突发公共事件造成的损失惊人。以“5.12”汶川8级大地震为例,大地震给四川及周边地区带来的经济损失高达5000亿元。面对如此巨大的损失,我们除了加大地震预报方面的研究工作以外,同时也要建立应急平台,提高突发公共事件的应急水平,只有这样才能最大限度地减少损失。
公共安全应急平台是公共安全应急体系的重要组成部分,具有很好的提取分析、预测模拟、预警发布、预案优化、决策处置等系统功能,能为各级政府的高效应急提供强大支持[1]。
地理信息系统作为城市公共安全应急指挥软件系统中的基础支撑信息平台,其基础数据建设的缺与全、杂与专、简与繁等方面的尺度必须把握恰当,否则可能造成需要的数据没有建设或建设深度不够、非关键性的数据建设过度,从而导致地理信息综合指挥系统、乃至整个公共安全应急指挥系统无法发挥实战效果或根本无法满足专业使用需求。因此,迫切需要选择优质合适的空间数据源用于数据库。
在众多数据源中,几乎90%以上的数据都来自AutoCAD,但从空间地理信息系统的角度来看,CAD数据缺乏较强的对空间数据信息的描述和分析功能。而地理信息系统(GIS)却在空间信息分析方面发挥着巨大的作用,能对已存在的空间数据进行建模、分析和管理。所以,为充分利用已有的数据资源,就必须有一个切实可行的处理方法,将已有的AutoCAD数字地形图转换为适用的Arc-GIS数据,以便更高效地建立基础地理信息数据库,进一步建立公共安全应急平台。从而提高ArcGIS的整体开发的效率,降低成本。基于以上原因,本文主要讨论将CAD空间数据更好地转换到ArcGIS的方法。
国内外很多学者在AutoCAD到ArcGIS的数据转换方面做了很多研究,但是由于AutoCAD软件在数据存储、图元定义、管理风格等方面不同于ArcGIS软件,所以他们间的格式转换依然存在很多问题。
1)要素丢失
有些AutoCAD数据元素ArcGIS不能接受,或者转换前后数据的对应关系没有处理好,有的内容没有转换过来,转换后就造成要素丢失。
2)要素变形
AutoCAD软件中的图形数据结构定义与ArcGIS软件中的不一致(如CAD中的圆、弧等,在ArcGIS中可能变成多边形、线)。
3)数据冗余
AutoCAD中数据分类分层不合适(如母线和符号没区分好,符号也当作母线转换过来),或一条线段上的点太多、太密,造成数据冗余。
4)属性信息不足
AutoCAD数据属性信息不完整,造成转换后信息不足。
5)接边不精确
AutoCAD图形数据以图幅的形式存在,而在ArcGIS中需要将这些图幅整合为一幅图,在整合的过程中就存在接边不精确的问题,如道路、河流、房屋边界等[2]。
ArcGIS与AutoCAD的共同特点是都有空间坐标,都能把目标和参考系统联系起来,都能描述图形数据的拓扑关系,也都能处理非图形属性数据。它们的主要区别是:AutoCAD处理的对象多为规则几何图形及其组合,它的图形功能尤其是三维图形功能极强,属性库功能则相对要弱,一般采用的是几何坐标系;而ArcGIS处理的多为自然目标,有分维特征(海岸线、地形等高线等),因而图形处理的难度较大。ArcGIS的属性库内容结构复杂,功能强大,图形属性的相互作用十分频繁,且多具有专业特征。
从表1的分析数据可以看出AutoCAD数据格式地形图要素的表现形式有多种,而且其面状地物(如建筑物、水系)也不一定完全闭合,线状地物(如道路、陡坎等)碰到软地物(如高程点、汉字注记)有断开;独立符号、汉字注记表示不是很清晰,不能满足GIS要求,因此大部分的空间数据仍需要重新编辑,有的需程序处理,有的需人工干预。
表1 AutoCAD数据与ArcGIS数据对地物的表达方式的比较
在完成 CAD图形数据的检查、修改之后,即要进行AutoCAD与ArcGIS的数据转换,以建立GIS数据库。
一般来说,不同数据格式之间的数据转换方法有两种:直接转换和间接转换。通常意义上的直接转换是指两个系统不同数据格式之间的直接转换,不借助其他工具。这种方式的效率较高,但首先必须得知道相互转换的两个系统内部的数据结构,因此难度较大。而间接转换则是指不同数据格式的数据集之间的转换,通过中间数据格式进行,如AutoCAD的DXF、ArcView的Shape、MapInfo的MIF格式等。通过交换格式可以实现不同软件之间的数据转换,但是由于缺乏对空间对象统一的描述,不同数据格式描述空间对象时采用的数据模型不同,因而转换后不能完全准确地表达原数据的信息,经常性地造成一些信息丢失,而且用户必须详细地掌握交换格式的细节及应用系统数据格式的细节时,才能进行转换程序的设计工作,对用户的编程能力及工作量要求都很高,不利于无缝GIS快速获取多源数据。在CAD与GIS的数据转换时,其转化方式也是这两种,但在此界定直接转换与间接转换的标准是指CAD与GIS二者之间是否通过特制程序接口进行相互转换、读写[3]。
本文主要采用两种转换方案,即商用软件工具转换方案和自行编程转换方案。软件工具转换,是通过某一制图系统软件的转入、转出的功能菜单选项来实现。自行编程转换是使用计算机程序语言(如VB,VC,C#等)自行编辑程序,并通过运行程序来实现。
首先对地形图在AutoCAD中进行整理后,运用现有的商用软件ArcGIS的工具进行转换。图1为在AutoCAD中的地形图,经过转换后得到图2。图3为面图层,图4为线图层。可以看出整体效果较好,经过整理后转换得到的并没有要素的丢失,但是仍然存在很多问题:首先,在转换后的线图层中除了提取线状物外,面状物的边缘也当成线提取到线图层中(如图4)。其次,虽然软件提取出了属性数据,但是没有将属性自动匹配并放入ArcGIS属性表中,还需要人工进行匹配工作,这样就增加了工作量。
用商业软件工具转换方案时,需要大量的手工处理,如在CAD中进行图形检查,需要人工重新分层及提取有用图层,进一步对CAD数据进行整理。而这些也可以通过编程实现,虽然通过编程不能全部将有用信息提取出来或进行非常好的无缝转换,但是可以将一些繁琐的工作通过编程使计算机自动实现。
本方案的主要原理是:通过C#语言编程建一个数据库,通过此库可对CAD图进行数据提取,分层及剔除冗余数据进而提取出有用信息并对其进行整理,使其符合GIS的数据组织要求。从而可将数据更好地无缝转换到GIS中。图5为程序流程图。
图6为利用编程提取出的线图层,从图6可以看出,自行编程可以解决利用软件工具转换中出现的面的边缘提取到线图层中的问题,可以很好地将线要素提取出来,剔除了面要素的边缘,很好的解决了数据冗余问题。
其次,在编程的过程中利用设置缓冲区,实现属性数据与地物的匹配问题(如图7)。从而,大大地减少了工作量,将可以批处理的工作全都由计算机处理,当然这种匹配不能完全地实现所有的匹配工作,仍需人工检查,部分属性还需人工处理。
图7 匹配的要素属性表
在公共应急平台中,多数空间数据来自Auto-CAD,CAD到ArcGIS数据转换方法有直接转换法和间接转换法,间接转换法效果优于直接转换法,且间接转换法还有很大的研究前景与改进潜力。
本文还提出了利用间接法转换的两种方案,从实例可以看出,利用商用软件工具转换方案在CAD改进数据、修改数据方面工作量巨大。故利用编程实现方案更能提高工作效率,改进转换技术,可根据应急平台的空间数据需要提取有用的空间数据,方式较灵活且大大地减少了作业人员的工作量,具有良好的应用前景。
[1] 徐志胜,冯 凯,徐 亮,等.基于GIS的城市公共安全应急决策支持系统的研究[J].安全与环境学报,2004,4(6):82-85.
[2] 周小成,焦道振.基于GeodataBase的CAD数据到GIS的解决方案[J].测绘与空间地理信息,2005,28(1):29-32.
[3] 张雪松,张友安,邓 敏.AutoCAD环境中组织GIS数据的方法[J].测绘通报,2003(11):45-48.