3.3 栅格数据的转换
栅格数据模型的基本单元是一个格网,每个格网称为一个栅格(也称为像元),被赋予一个特定值。这种规则格网通常采用三种基本形状:正方形、三角形、六边形,如图3-39所示。每种形状具有不同的几何特性:其一是方向性,栅格数据模型中的正方形和六边形格网都具有相同的方向,而其中的三角形格网却具有不同的方向;其二是可再分性,正方形和三角形格网都可以无限循环地再细分成相同形状的子格网,而六边形格网则不能进行相同形状的无限循环再分;其三是对称性,六边形格网的每个邻居都与该六边形格网等距,也就是说六边形格网的中心点到其周围的邻居格网的中心点的距离相等,而三角形格网和正方形格网就不具备这一特征。
图3-39 三种形状的格网
栅格模型中最常用且最简单的是正方形格网,除了因为它具有上述的方向性和可再分性,还因为大多数栅格地图和数字图像都采用了这种栅格模型。
栅格模型的缺点在于难以表示不同要素占据相同位置的情况,原因是一个栅格被赋予了一个特定的值,因而一幅栅格地图仅适合表示一个主题(如土地地貌、土地利用等)。
在栅格模型中,栅格大小的确定是一个关键。根据抽样原理,当一个地物的面积小于1/4个栅格时就无法予以描述,而只有地物的面积大于一个栅格时才能确保被反映出来。很多栅格具有相同的值,数据冗余非常大,因此在地图数据库中,为了节约存储空间,通常不直接存储每个栅格的值,而是采用一定的数据压缩方法,常用的有行程编码法和四叉树法。
行程编码法是逐行将具有相同取值的栅格用两个数值(L,V)表示,L表示栅格数,V表示栅格的值。行程编码法也可以按列进行压缩,其压缩倍率与按行压缩一般不相等。行程编码法的数据在处理时需要还原,因此研究数据压缩还应考虑数据还原的可能性与方便性。
四叉树法是一个分层的多分辨率的栅格地图表示方法。它首先将整幅图以2×2的方式进行四等分,如果其中任一栅格内属性不唯一,则将该栅格再以2×2的方式进行四等分,如此循环直至每个栅格内的值唯一,如图3-40所示,图中的每个栅格大小并不相等,各栅格根据其所处层次的编号逐层记录,图3-40(a)左上角的栅格处于第一层,右上角的栅格处于第二层,左下角的栅格处于第三层,以此类推。就其本质而言,四叉树法不仅是一种数据压缩方法,还是一种数据结构,用四叉树表示的栅格地图一般无须还原即可进行数据分析。四叉树法曾经是一个相当活跃的研究领域,基于四叉树法的算法非常丰富。
图3-40 四叉树描述
栅格模型与矢量模型似乎是两种截然不同的空间数据结构。栅格模型具有属性明显、位置隐含的特性,而矢量模型具有位置明显、属性隐含的特性。栅格数据的操作总体来说比较容易实现,尤其是作为斑块图件的表示时更易于为人们接受;而矢量数据的操作则比较复杂,许多分析操作(如两张地图的覆盖操作、点或线状地物的邻域搜索等)用矢量数据实现十分困难,但用矢量数据表示线状地物是比较直观的,而面状地物则通过对边界的描述而表示。无论采用哪种数据结构,数据精度和数据量都是一对矛盾,要提高数据精度,栅格模型需要更多的栅格单元,而矢量模型则需记录更多的线节点。一般来说,栅格模型只是矢量模型在某种程度上的一种近似,如果要使栅格模型描述的地物取得与矢量模型同样的精度,甚至仅仅在量值上接近,数据也要比后者大得多。
栅格模型在某些操作上比矢量模型更有效且更易于实现。例如,按空间坐标位置的搜索,对于栅格模型而言是极为方便的,而对矢量模型而言则搜索时间要长得多;又如,在给定区域内进行统计指标运算,包括计算多边形形状、多边形面积、线密度、点密度,栅格模型可以很快得到结果,采用矢量模型则由于所在区域边界限制条件而难以提取而效率较低,对于给定范围的开窗、缩放,栅格模型也比矢量模型优越。但矢量模型用于拓扑关系的搜索时则更为高效,如计算多边形形状搜索邻域、层次信息等;对于网络信息,只有矢量模型才能进行完全描述;矢量模型在计算精度与数据量方面的优势也是矢量模型比栅格模型更受欢迎的原因之一,采用矢量模型时的数据量大大少于栅格模型的数据量。
栅格模型除了可使大量的空间分析模型得以容易实现,还具有以下两个特点:
(1)易于与遥感相结合。遥感影像是以栅格为单位的栅格模型,可以直接将原始数据或经过处理的影像数据纳入栅格模型的地理信息系统。
(2)易于信息共享。目前还没有一种公认的矢量模型地图数据记录格式,而不经压缩编码的栅格格式(即整数型数据库阵列)则易于为大多数程序设计人员和用户理解和使用,因此以栅格数据为基础进行信息共享的数据交流较为实用。
许多实践证明,栅格模型和矢量模型在表示空间数据时可以达到同样的效果。对于一个GIS软件,较为理想的方案是采用两种数据结构,即栅格模型与矢量模型并存,这对于提高地理信息系统的空间分辨率、数据压缩率,以及增强系统分析、输入/输出的灵活性是十分重要的。矢量数据和栅格数据的比较如表3-1所示。
表3-1 矢量数据和栅格数据的比较
在MapGIS 10中,栅格数据转换是在基础数据转换插件中实现的,能够支持*.msi、*.tif、*.img、*.jpg、*.gif、*.bmp、*.jp2、*.png等20多种栅格数据格式,以及bil、Arc/Info明码Grid、Surfer Grid等多种DEM数据格式。MapGIS 10提供了导入6x DEM库的功能,增强了它对DEM数据的支持能力。
另外,在MapGIS 10中矢量数据和栅格数据的转换统一到相同的界面中进行,使得数据转换在界面和流程操作上都更加统一和便捷。
与矢量数据转换相同,基础数据转换插件也为栅格数据转换提供了错误检查和自动改错的功能,可自动消除不符合规范的命名错误,可设置日志文件、记录详细转换日志并提供出错提示。
栅格数据的导入步骤如下:
(1)右键单击“GDBCatalog”目录窗口中需要导入的数据节点,在弹出的右键菜单中选择“导入→其他数据”,可弹出如图3-41所示的“数据转换”对话框。
图3-41 “数据转换”对话框
(2)添加数据。单击“数据转换”对话框中的“”按钮可添加需要导入的数据,如图3-42所示。
图3-42 添加数据后的结果
(3)修改转换参数。添加完数据后,系统会采用默认的目的数据类型、目的数据名、目的数据目录,用户可根据需要修改这三个参数。“参数设置”对话框如图3-43所示。
图3-43 “参数设置”对话框
栅格数据的导出步骤与导入类似。在将MapGIS栅格数据集导出为其他类型的栅格文件时,若要修改目的栅格文件的类型,请单击“数据转换”对话框上对应的栅格数据的“”按钮,可弹出如图3-44所示的“栅格文件”对话框,可在该对话框中选择目的栅格文件类型。
图3-44 “栅格文件”对话框
设置好目的栅格文件类型等信息后就可以导出栅格文件了。常用的重采样方法有最邻近内插法、双线性内插法和三次卷积法。其中,最邻近内插法最为简单,计算速度快,但是视觉效果较差;双线性内插法会使图像轮廓模糊;三次卷积法产生的图像较平滑,有较好的视觉效果,但计算量大、较费时。