两种,在地理信息系统中,它们之间的相互转换是经常性的。GIS在其发展过程中,出现了很多研究机构和企业,它们所使用的数据格式往往不尽相同。为了实现相互之间的数据和资源共享,需要对数据格式进行转换。
6.5.1 数据结构转换
1. 矢量数据向栅格数据的转换
许多数据如行政边界、交通干线、土地利用类型、土壤类型等通常都是以矢量的方式存储在计算机中。在一些特殊的空间分析中,如多层数据的复合分析,用矢量数据实现的比较复杂,相比之下利用栅格数据模式进行处理则容易得多。因此它们的叠置复合分析更需要把其从矢量形式转变为栅格形式。
矢量数据的基本坐标是直角坐标X、Y,其坐标原点一般取图的左下角。栅格数据的基本坐标是行和列(i,j),其坐标原点一般取图的西南角。两种数据变换时,令直角坐标X和Y分别与行与列平行,按确定的栅格大小采样。由于矢量数据的基本要素是点、线、面,因而只要实现点、线、面的转换,各种线划图形的变换问题基本上都可以得到解决。点的转换原理很简单,只需要计算出点所在的栅格行列号即可。线的转换基本原理是计算出线所经过的所有栅格,然后将其赋予线的属性值。面的转换要复杂一些。在矢量结构中,多边形面用组成面边界的线段表示,而在栅格结构中,整个面域所在的栅格单元都要用属性值充填。因此,要完成面域的栅格化,首先需要完成多边形边界线段的栅格化;然后,用面域属性值充填。所以,矢量的面域向栅格转换又称为多边形填充。常用的多边形填充算法有内部点扩散法、射线法、扫描线法。 2. 栅格数据向矢量数据的转换
栅格向矢量转换处理的目的,是为了将栅格数据分析的结果,通过矢量绘图装置输出,或者为了数据压缩的需要,将大量的面状栅格数据转换为由少量数据表示的多边形边界。转换的另一个主要目的是为了能将自动扫描仪获取的栅格数据加入矢量形式的数据库。栅格向矢量转换的过程比较复杂,通常有两种情况:一种本身为遥感影像或已栅格化的分类图在矢量化前首先要做边界提取,然后将它处理成近似线划图的二值图像(二值图),最后才能将它转换成矢量数据(矢量数据);另一种情况通常是从原来的线划图扫描得到的栅格图,二值化后的线划宽度往往占据多个栅格,这时需要进行细化处理后才能矢量化。处理流程如图6.23。
遥感影像或分类图 边界提取 二值化 扫描图 二值化 细化 矢量化 矢量化的过程如下: ①从图幅西北角开始,按顺时针或逆时针方向,从起始点开始,根据八个邻域进行搜索,依次跟踪相邻点,找出线段经过的栅格。
②将栅格(i,j)坐标变成直角坐标(X,Y)。
③生成拓扑关系,对于矢量表示的边界弧段,判断其与原图上各多边形的空间关系,形成完整的拓扑结构,并建立与属性数据的联系。
④去除多余点及曲线圆滑:由于搜索是逐个栅格进行的,必须去除由此造成的多余点记录以减少冗余。搜索结果曲线由于栅格精度的限制可能不够圆滑,需要采用一定的插补算法进行光滑处理。常用的算法有线性叠代法、分段三次多项式插值法、正轴抛物线平均加权法、斜轴抛物线平均加权法、样条函数插值法等。
图6.23 栅格转矢量流程
6.5.2 数据格式转换
不同的数据生产者在获取空间数据采用的数据采集平台不同,地理几何数据和属性数据存储方式和表现方法各不相同。不论何种平台,地理几何数据可以归结为至少包括点、线、面三种要素,但在地图符号化的表现方式上,以及空间关系的组织各不相同,不能简单地进行转换使用。属性数据的组织虽然也各不相同,但一般都采用表的形式,只要找到对应的字段映射关系就可实现转换,相对几何数据更易于实现在不同平台下的相互转换。数据格式转换是GIS获取空间数据、共享空间数据的常用手段。
实现数据交换的模式大致有四种,即外部数据交换模式、直接数据访问模式、数据互操作模式和空间数据共享平台模式。后三种数据交换模式提供了较为理想的数据共享模式,但是对大多数普通用户而言,外部数据交换模式在具体应用中更具可操作性和现实性,与现实的技术、资金条件更相符。数据转换可直接利用软件商提供的交换文件(如DXF ,MIF ,E00等) ,也可以采用中介文件转换方式,即在数据加工平台软件支持下,把空间数据连同属性数据按自定义的格式输出为一文本文件,作为中介文件,该数据文件的要素和结构符合相应的数据转换标准,然后在GIS平台下开发数据接口程序,读入该文件,自动生成基础地理信息系统支持的数据格式。
数据转换的内容包括空间数据、属性数据、拓扑信息以及相应的元数据和数据描述信息。根据数据转换的程度、数据分层和编码对应情况,数据转换可以分为三类:
(1)分层和编码原则都不同的数据转换。在数据转换过程中,系统最大限度地保证空间数据和属性数据的转入,并把相应的分层和编码转换过来。
(2)分层不同,编码原则相同的数据转换。两者数据编码原则是一致的,为空间数据和数据描述信息的相互转换提供了有利条件。
(3)分层不同,编码方案完全一致的数据转换。除描述信息外,两者数据质量和数据情况是完全一致的。
实现数据转换的方法多种多样,一般可以通过以下三种途径实现。 (1)外部数据交换方式
外部数据交换方式是目前空间转换的主要方式。大部分商用GIS软件定义了外部数据交换文件格式,一般为ASCII码文件,如ArcInfo的EOO,MapInfo的MID,AutoCAD的DXF等。如图6.24所示,从系统A的内部数据转换到系统B,如果B系统能够直接读A系统的交换文件,则从A的内部文件转换到A的交换文件,即转换两次即可;否则还需要从A的外部交换文件到B的外部交换文件,即转换三次。
二次转换
系统A 内部文件 系统A 外部交换文件 交换 系统B 外部交换文件 交换 系统B 内部文件 三次转换
图6.24 通过外部交换文件的数据转换方式
(2)标准空间数据交换标准方式
这种方式是采用一种空间数据的转换标准来实现空间数据格式转换,尽量减少空间数据格式交换造成的信息损失,使之更加科学化与标准化。许多国家和国际组织制定了空间数据交换标准,例如美国国家空间数据协会(NSDI,National Spatial Data Institute)制定了统一的空间数据格式规范SDTS,包括几何坐标、投影、拓扑关系、属性数据、数据字典,也包括栅格和矢量等不同空间数据格式的转换标准。根据SDTS,目前有许多GIS软件提供了标准的空间数据交换格式,如ArcInfo的SDTSIMPORT和SDTSEXPORT模块等,可供其他系统调用。有了空间数据交换的标准格式后,每个系统都提供读写这一标准格式空间数据的程序,避免了大量的编程工作,而且数据转换只需两次,如图6.25所示。
转换 系统A 内部文件 标准空间数据 交换文件格式 转换 系统B 内部文件
(3)空间数据的互操作方式
空间数据的互操作方式是基于公共接口的数据融合方式。接口相当于一种规程,它是大家都遵守并达成统一的标准。在接口中不仅要考虑数据格式和数据处理,而且还要提供对数据处理采用的协议,各个系统通过公共接口相互联系,而且允许各自系统内部数据结构和数据处理各不相同。例如,OGC(Open GIS Consortium)为数据互操作制定了统一的规范,从而使一个系统同时支持不同的空间数据格式成为可能。Open GIS的思想是将空间数据的转换变成一次转换或者不进行转换,实现不同GIS软件系统之间空间数据的互操作。如图6.26所示,从系统A到系统B只需一次转换。空间数据的互操作是实现异构空间数据库数据共享的有效途径。 图6.25 通过标准格式完成不同系统的数据转换
系统A 内部文件 标准 API 函数 标准 API 函数 系统B 内部文件
在数据转换的过程中,数据格式的不一致实质上是空间数据模型的定义不一致。因此,
基于语义的数据格式转换也是一种非常有前景的转换方法。基于语义层次上的空间数据转换,除了数据结构的转换外,更重要的是对语义数据模型的转换和操作,更注重数据所蕴含的知识背景。语义转换与传统数据转换有着很大的不同。
语义转换 数据集A 格式A 图6.27 语义转换概念示意图
图6.26 通过Open GIS的空间数据交换 数据集B 格式B
所示,语义转换就像一个宽宽的管道把两个数据集连接起来,数据转换双方如图6.27
可以自由地进行数据的转换与共享。语义转换,就像一个引擎,通过要素操作语言,不仅可以对输入数据也可以对输出数据进行数据的重定义。因为在语义转换的背后存在一个丰富的数据转换模型,它具有内部一致性和外部可扩展性。
数据模型A
数据转换模型
数据模型B
图6.28 基于语义数据转换模型示意图
其它数据模型
如图6.28所示,数据模型A和数据模型B可以自由映射到数据转换模型中,而这种映射不是基于最低数据转换标准的映射机,也就是说不是基于公共要素的映射。在这种映射中,针对输入、输出数据,数据转换模型提供了一系列的方法来实现数据模型之间的定义和转换。这种功能使得数据的转入方和数据的转出方之间可以自由地变换,并且可以继续使用各自独立的系统和数据格式。
在数据转换模型中的映射不仅能够实现高度的定制,而且这种映射是双向的。数据转换模型是基于语义层次建立的一种数据的转换机制和规则。数据转换模型不仅考虑到了各个数据源的空间数据模型及空间数据组织方式,而且更重要的是侧重于语义的继承及丰富程度。
企业层 知识、信息 语义 数据结构 物理存储 企业层 应用层 逻辑层 物理层 应用层 逻辑层 物理层 基于语义数据转换 基于数据结构传统数据转换 图6.29 语义层次转换示意图
语义层次转换如图6.29所示。
基于语义层次上的空间数据转换,除了数据结构的转换外,更重要的是对语义数据模型的转换和操作。基于语义层次上的空间数据转换在考虑数据模型的基础上,引入语义信息,如元数据、转换的规则与规范、转换的机制与原则等,来解决模型之间的冲突,即数据转换器通过语义的继承和丰富来生产出符合用户要求的数据。
数据转换模型在逻辑上可分为许多的模型单元。针对各个不同格式的数据源,将这些模型单元有机地组合形成不同的模型块。
基于组件思想的数据转换模型留有很大的扩展空间,是一种可伸缩的、开放的数据转换模型。这样,以此模型为支持的转换共享功能也就具有了很强的伸缩性,可以根据不同的数据转换共享的需要对数据转换模型进行丰富,进而便于在异构空间数据转换共享平台构建时进行功能的配置和扩充。
6.6 图形拼接
在相邻图幅的边缘部分,由于原图本身的数字化误差,使得同一实体的线段或弧段的坐标数据不能相互衔接,或是由于坐标系统、编码方式等不统一,需进行图幅数据边缘匹配处理。
图幅的拼接总是在相邻两图幅之间进行的,如图6.30所示。要将相邻两图幅之间的数据集中起来,就要求相同实体的线段或弧的坐标数据相互衔接,也要求同一实体的属性码相同,因此必须进行图幅数据边缘匹配处理。具体步骤如下: 1. 逻辑一致性的处理
由于人工操作的失误,两个相邻图幅的空间数据库在接合处可能出现逻辑裂隙,如一个多边形在一幅图层中具有属性A,而在另一幅图层中属性为B。此时,必须使用交互编辑的方法,使两相邻图斑的属性相同,取得逻辑一致性。 2. 识别和检索相邻图幅
将待拼接的图幅数据按图幅进行编号,编号有2位,其中十位数指示图幅的横向顺序,个位数指示纵向顺序(图6.31),并记录图幅的长宽标准尺寸。因此,当进行横向图幅拼接时,总是将十位数编号相同的图幅数据收集在一起;进行纵向图幅拼接时,是将个位数编号相同的图幅数据收集在一起。其次,图幅数据的边缘匹配处理主要是针对 跨越相邻图幅的线段或弧而言的。为了减少
图6.31 图幅编号及图幅边缘数据提取范围 数据容量,提高处理速度,一般只提取图幅
边界2cm范围内的数据作为匹配和处理的
目标,同时要求图幅内空间实体的坐标数据已经进行过投影转换。 3. 相邻图幅边界点坐标数据的匹配
相邻图幅边界点坐标数据的匹配采用追踪拼接法。只要符合下列条件,两条线段或弧段即可匹配衔接:相邻图幅边界两条线段或弧段的左右码各自相同或相反;相邻图幅同名边界点坐标在某一允许值范围内(如土O.5mm)。
匹配衔接时是以一条弧或线段作为处理的单元,因此,当边界点位于两个结点之间时,须分别取出相关的两个结点,然后按照结点之间线段方向一致性的原则进行数据的记录和存
图6.30 图幅拼接