栅格数据层的概念以及其结构的表示
一、栅格数据层的概念
地理信息系统对现实世界的描述可以以地理空间位置为基础,按道路、行政区域、土地使用、土壤、房屋、地下管线、自然地形等不同专题属性来组织地理信息。在栅格数据结构中,物体的空间位置就用其在笛卡尔平面网格中的行号和列号坐标表示,物体的属性用像元的取值表示,每个像元在一个网格中只能取值一次,同一像元要表示多重属性的事物就要用多个笛卡尔平面网格,每个笛卡尔平面网格表示一种属性或同一属性的不同特征,这种平面称为层。地理数据在栅格数据结构中必须分层组织存储,每一层构成单一的属性数据层或专题信息层,例如同样以线性特征表示的地理要素,河流可以组织为一个层,道路可以作为另一层,同样以多边形特征表示的地理要素,湖泊可以作为一个层,房屋可以作为另一层,根据使用目的不同,可以确定需要建立哪些层及需要建立哪些描述性属性。在下图,左图是现实世界按专题内容的分层表示,第三层为植被,第二层为土壤,第一层为地形,中间是现实世界各专题层所对应的栅格数据层,右图是对不同栅格数据层进行叠加分析得出的分析结论。
二、栅格数据结构的表示
1. 二维数组
把栅格数据中各像素的值对应于二维数组相应的各元素加以存储的方式适合于灰度级大的浓淡图像的存储以及在通用计算机中的处理,所以是最常采用的一种方式。在采用二维数组的方式中,还有组合方式和比特面方式。
组合方式是在计算机的一个字长中存储多个像素的方式。从节约存储量的观点来考虑,经常在保存数据时采用。例如:16比特/字的计算机中,按每个像素8比特的数据对待的时候,如图(a)所示,可以把相邻的两个像素数据分别存储到上8比特和下8比特中。同样,如果是按每个像素4比特数据,则一个字可以存储连续的4个像素的数据;如果是按每个像素1比特数据,则一个字可以存储16个像素的数据。
比特面方式,就是把数据存储到能按比特进行存取的二维数组(可以理解为1比特/1字)即比特面中的方式。对于n个比特的浓淡图像,如图2-7(b)所示,要准备n个比特面。在比特面k中(k=0,1,。。。,n-1),存储的是以二维形式排列着的各个像素值的第k比特(0或者1)的数据。另一方面,也有对于n比特/字的二维数组,把它作为n个比特面考虑,从而把二维图像存储到各比特面中的用法。以比特面作为单位进行处理时,其优点是能够在各面间进行高效率的逻辑运算,存储设备利用率高等,但也存在对浓淡图像的处理上耗费时间的问题。
2.一维数组
如果给栅格数据内的全体像素赋予按照某一顺序的一维的连续号码,则能够把栅格数据存储到一维数组中。上面的二维数组,在计算机内部如图2-8所示,实际上也变成为一维数组。
其次,也有不是存储栅格数据全体,而只是把应该存储的像素的信息,按照一定规则存储到一维数组中去的方法。这种方法主要是在栅格数据中用来存储图形轮廓线信息等。具体来讲是坐标序列、链码等。