刘莹
(本科 助理工程师 湖南省第一测绘院 衡阳 421001 )
摘 要:多源数据格式之间的无损转换是目前不同GIS系统间数据共享的一个关键问题。随着南方CASS和MAPGIS系统在“数字国土”工程中的应用越来越广泛,它们间的数据共享也变得越来越重要。然而,由于平台的不同,如果直接采用软件提供的功能进行数据转换,数据的丢失和失真将非常普遍。因此研究南方CASS到MAPGIS的无损数据转换具有重要意义,本文在对比分析这两种软件平台的数据结构和组织基础上,设计相应的转换规则和算法,通过编程实现了南方CASS到MAPGIS的数据转换,试验结果表明本文方法是可行和有效的。
关键词:南方CASS;MAPGIS;数据转换
中图分类号:TP311.13
Discussion of Data Conversion from South CASS to MAPGIS
Liu Ying
(Engineer Assistant/ Undergraduate/ First Surveying and Mapping Institute of Hunan Province, Hengyang 421001
E-MAIL: ly163.china @ 163.com)
Abstract: It is key issue that the lossless conversion among multi-source data format in data sharing among the different GIS systems. As the increasingly wide application of South CASS and MAPGIS system in the "Digital Land" project, the data sharing between them has also become more and more important. However, due to the different platforms, data loss and distortion will be very common if convert data through directly use of the functions offered by software. That is why it is significant to study non-destructive data transformation from South CASS to MAPGIS. This paper is based on comparative analysis of data structures and organizations of these two software platforms, designs rules and the conversion algorithm, in order to reach the data conversion between South CASS to MAPGIS, and the test results show that the method is feasible and effective.
Keywords:South CASS; MAPGIS; data conversion
1 引言
南方CASS是南方公司在AutoCAD平台上开发的GIS前端数据采集系统。主要应用于地形成图、地籍成图、工程测量三大领域。目前,南方CASS以其强大的数据采集编辑功能和易于学习操作等优势在工程测绘领域获得了广泛的应用。
MAPGIS是武汉中地公司研制的大型基础地理信息系统平台。它是一个集数字制图、数据库管理及空间分析为一体的软件系统,是进行现代化管理和决策的先进工具。MAPGIS凭借先进的空间数据管理技术和强大的地图制图功能,已成为国内主流的GIS软件之一。
在GIS基础测绘和地理信息建库过程中,南方CASS和MAPGIS这两种软件的数据是很常见的。MAPGIS的数据分析方法具有专业化特征,现存的南方CASS并不完全适合于完成GIS任务,同时,它们之间数据结构的不一致性,导致MAPGIS无法直接操作CASS数据。因此如何实现数据从CASS到MAPGIS的无损转换,成为目前GIS基础地理信息数据库建设领域中一个迫切需要解决的问题。
2 南方CASS与MAPGIS的数据分析
2.1 图形与属性
CASS与MAPGIS系统的共同特点是:它们都有地理坐标系,都能把目标和参考系统联系起来,都能描述图形数据的拓扑关系,也都能处理非图形(属性)数据。它们的主要区别在于:CASS处理的对象多为规则几何图形及其组合,它的图形处理能力极强,但属性功能相对较弱。CASS图形中的每一个实体都有唯一的实体编码,用来表示地物类别;而MAPGIS处理的多为自然目标,有分维特征(海岸线、地形等高线等),因而图形处理的难度大,MAPGIS的属性库内容结构复杂,功能强大,图形和属性的相互操作十分频繁。在坐标系方面,CASS系统一般只采用高斯投影直角坐标,而MAPGSI可以根据需要采用不同的坐标。总之,MAPGIS在地理信息建库方面,比南方CASS具有更好的专业化特征,能表达的信息也更丰富,因此数据从南方CASS到MAPGIS的无损转换是可行的。
2.2 图层、块与区域
南方CASS中的图层(layer)对应于地形中的一个专题(如铁路、河流、线界、电力线等),可以看成相同类型地物的聚集,其包括了地物的空间数据和属性数据,如:居民地层中可以存放房屋的空间数据(线、面),也可以存放房屋的各种属性(文本注记);而MAPGIS的图层只能是点、线、面、文本之中的一种,或是复合类型。所以在转换过程中,可能会出现CASS中的多个图层数据对应于MAPGIS中一个图层数据的问题,这可以通过数据叠加实现。多数情况下, 南方CASS是用“块”(block)来表示点状地物,而MAPGIS通过专门的点状符号库来表达,所以在数据转换时,要注意南方CASS块与MAPGIS点状符号间的对应。
2.3 线型和颜色
几何特征为线的专题对象需采用不同的线型来表达,如大车路、机耕路、小路表示的线型就会不同。在南方CASS中,由于不同类型的专题对象放在不同的图层,对象的线型可以随层,也可单独设定,而MAPGIS则提供了专门的线型库来表达对象的线型信息。在数据转换时,如果某类对象的线型都采用了随层方式,则只要将层的线型与MAPGIS的线型库对应即可,由于这种情况只需读取一次层的线型信息,因此可以提高转换效率。然而,当对象的线型采用单独设定的方式时,必须逐一读取对象的线型信息后才能转换。此外,在CASS和MAPGIS的颜色系统存在一定的差异:对于同一种颜色,两者的颜色码不一样,所以在转换过程中,还要处理好颜色的对应关系。
2.4 文件格式
南方CASS软件是基于AutoCAD平台开发的GIS软件,所以它支持AutoCAD的所有格式,常用的有*.DWG,*.DXF,*.CAS,其中*. CAS是南方CASS的标准交换格式,它用文本信息描述了文件中的空间和属性数据。
MAPGIS的数据文件类型很多,例如: WT(点文件)、WL(线文件)、WP(区文件)、MPJ(工程文件)和RBM(内部栅格数据文件)等三十多种。WT主要是指各种文字注记、子图等图形要素;WL主要是指各种线型图形要素;WP主要是指经拓扑重建构成各种面域图形要素。这三种格式是MAPGIS最常用的矢量图形格式。在数据转换前,应根据转换规则先建立MAPGIS的模板文件,并在模板文件中定义地物的符号、属性结构等。
3 南方CASS向MAPGIS的数据转换流程
MAPGIS软件提供了AutoCAD的DXF格式到它的图形格式(*.WT、*.WL)的转换接口。采用该转换接口可以解决一些简单图形的转换要求,在图形的完整性和精度上,转换的结果还是能达到一般的应用需求的。但随着图形数据量和复杂度的增加,采用MAPGIS提供的转换功能便出现了明显的问题:转换过程往往需要花费很长时间,甚至发生死机现象;此外,还会发生坐标不一致,数据膨胀等问题;最主要的是转换后的属性信息基本上都丢失了,这样的数据无法满足建设基础地理信息数据库的需要。基于此,本文为解决MAPGIS提供的转换功能存在的若干缺陷问题,设计了南方CASS到MAPGIS的转换算法,并在CASS环境下采用VBA编程实现了该转换算法。整个转换流程可分为三个步骤:转换前预处理、读入CASS数据、输出MAPGIS格式数据。
1)转换前预处理:根据转换规则,在EXCEL文档中建立转换前后CASS与MAPGIS的数据项对应关系表,主要内容包括:层、线型、颜色、块(符号)的对应关系,程序启动时首先读入该EXCEL文档,并在内存区建立相应的映射关系。同时,为了在MAPGIS中保存从南方CASS转换过来的属性数据,需要定义转换后的MAPGIS模板文件属性结构。例如,在CLKZD.WT模板文件中为控制点对象定义的属性一般有:ID、目标标识码、要素代码、控制点代码、控制点名称等。
2) 读入CASS实体数据。首先需要定义一个选择集(AcadSelectionSet)并选择所有的实体对象;然后遍历该选择集,逐一读取每个对象的相关数据。为使转换程序具有更好的稳健性,不宜直接从底层读取CASS文件,应采用CAD系统提供的API(Application Program Interface)函数,因为这些函数一般都经过了开发商的严格测试。在几何数据读取方面,由于不同类型对象调用的API函数不同,如点、线类型对象的几何数据调用Corodinates函数读取,而块类型对象的几何数据需要调用InsertionPoint函数读取。因此,在读取对象的几何数据前,应先采用Select Case控制语句对其类型进行判断。在属性数据读取方面,由于CASS中实体的属性主要来源于两方面:CAD系统定义的属性和CASS的扩展属性,因此读取属性数据有两种方式:利用CAD系统提供的对象属性名(如Layer,LineType等)和GetXData函数(用于读取CASS的扩展属性数据)。
3) 写入MAPGIS数据。在步骤2完整地读取CASS实体的几何和属性数据基础上,为在MAPGIS中正确写入数据,需要依据步骤1中编制的转换规则,充分考虑CASS和MAPGIS间的数据项对应关系,例如:南方CASS中代码为131100的控制点实体,转换后对应于MAPGIS中的CLKZD.WT文件,在该文件中提供了相应的属性表定义。与读取数据方式类似,在写入数据时,采用MAPGIS的SDK(Soft Development Kit)提供的库函数实现,例如:可以采用Append函数往MAPGIS的WL文件中写入二维线实体,AppendFile函数将一个文件添加到工作区等。
数据转换的流程如下图所示:
转换前预处理
程序开始
建立转换映射表
是
CASS文件是否结束
否
CASS实体数据读取
查找MAPGIS映射项
写入MAPGIS数据
程序结束
图1 数据转换程序流程图
4 数据转换实例
为验证本文方法的可行性和有效性,在地籍建库过程中,应用该转换程序对数据从南方CASS到MAPGIS的转换进行了试验。通过将转换前CASS数据和转换后MAPGIS数据进行对比分析,证明该方法在实现CASS到MAPGIS系统的数据转换是成功的,它保证了在满足实体空间和属性信息转换精度的基础上,实现了实体在转换过程中的重新分层、分类以及转换后数据组织的一致性,并且基本上实现了数据的无损转换,从而提高了数据在转换后应用的可能性,减少了重新编辑的工作量。
以某部分地籍数据为例,CASS到MAPGIS数据转换前后的图形见图2、图3.
图2 转换前在CASS中的浏览图
图3 转换后在MAPGIS中的浏览查询图 5 结语
随着“数字国土”工程及对已建成的数据库的更新与维护在全国范围内的全面铺开,原有的CASS格式的测绘成果可作为“数字国土”的重要数据源, 同时MAPGIS软件作为国内重要的基础地理信息平台,其应用也越来越广泛,因此研究数据从CASS到MAPGIS的高效无损转换具有现实意义。本文通过对这两种软件平台的数据结构和组织进行对比分析,设计相应的转换规则和算法,通过编程成功地实现了CASS到MAPGIS的数据转换,促进了CASS与MAPGIS的无缝集成,降低了GIS应用系统的建设成本。
参 考 文 献:
[1] 南方测绘仪器有限公司.数字化地形地籍成图系统CASS50用户手册[M].广州:南方测绘仪器有限公司,2005.
[2] 武汉中地数码科技有限公司.MAPGIS地理信息系统实用教程[M].武汉:武汉中地数码科技有限公司, 2003.
[3] 周利,岳国森.CASS数据格式转换为MapInfo数据格式的设计[J].西部探矿工程, 2004.
[4] 龚健雅.地理信息系统基础[M].北京:科学出版社,2001.
[5] 钟世彬,郑贵洲. AutoCAD和MAPGIS间的数据转换[J].测绘科学, 2005.
[6] 张乐,赵淑玲.关于测绘科学数据共享服务建设的探讨[J].测绘与空间地理信息, 2006. |