栅格数据
仪器信息网 · 2008-07-09 15:12 · 29343 次点击
目录
概念
结构
取值方法
编码
概念
data/attachment/portal/201111/06/0907143vz8a88catjy9xbo.jpg栅格数据
栅格数据结构实际就是像元阵列,每个像元由行列确定它的位置。H值表示属性或编码为H的一个点,其位置由所在的第六行,第九列作交叉而得到。由于栅格结构是按一定的规则排列的,所表示的实体位置很容易隐含在网络文件的存储结构中。在后面讲述栅格结构编码时可以看到每个存储单元的行列位置可方便地根据其在文件中的记录位置得到,且行列坐标可以很容易地转为其它坐标系下的坐标。在网络文件中每个代码本身明确地代表了实体的属性或属性的编码。点实体在栅格数据中表示为一个像元;线实体则表示为在一定方向上连接成串的相邻像元集合;面实体由聚集在一起的相邻像元结合表示。这种数据结构很适合计算机处理,因为行列像元阵列非常容易存储、维护和显示。
用栅格数据表示的地表是不连续的,是量化和近似离散的数据,这就意味着地表一定面积内(像元地面分辨率范围内)地理数据的近似性,例如平均值、主成分值或按某种规则在像元内提取的值等。另一方面,栅格数据的比例尺就是栅格大小与地表相应单元大小之比。像元大小相对于所表示的面积较大时,对长度、面积等的度量有较大影响。这种影响除对像元的取舍外,还与计算长度、面积的方法有关。
结构
data/attachment/portal/201111/06/090715f6xwj72roosjj0tr.jpg栅格数据分布示意图
栅格结构是最简单最直接的空间数据结构,是指将地球表面划分为大小均匀紧密相邻的网格阵列,每个网格作为一个象元或象素由行、列定义,并包含一个代码表示该象素的属性类型或量值,或仅仅包括指向其属性记录的指针。因此,栅格结构是以规则的阵列来表示空间地物或现象分布的数据组织,组织中的每个数据表示地物或现象的非几何属性特征。
特点:
1、属性明显,定位隐含,即数据直接记录属性本身,而所在的位置则根据行列号转换为相应的坐标,即定位是根据数据在数据集中的位置得到的,在栅格结构中,点用一个栅格单元表示;线状地物用沿线走向的一组相邻栅格单元表示,每个栅格单元最多只有两个相邻单元在线上;
2、面或区域用记有区域属性的相邻栅格单元的集合表示,每个栅格单元可有多于两个的相邻单元同属一个区域。
取值方法
data/attachment/portal/201111/06/090715au97ian5wvnli9tp.jpg栅格数据
栅格数据的取得,可在专题地图上均匀地划分网格(相当于将一透明方格纸覆盖在地图上),每一单位格子覆盖部分的属性数据便成为图中各点的值,最后形成栅格数字地图文件。也可以用数字化仪跟踪,得到矢量结构数据后再转换为网格结构,或用扫描数字化方法,逐步扫描专题地图,将扫描数据重采样和再编码得到栅格数据文件。
栅格数据的获取需尽可能保持原图或原始数据的精度。在决定代码时尽可能保持地表的真实性,保证最大的信息容量。网格覆盖后,常常会在同一格子下对应了几种不同的属性值,而每一个单元只能取一个值,在这种情况下,有不同的取值方法:
中心点法:用处于栅格中心处的地物类型或现象特性决定栅格代码。为了寻找中心的方便,覆盖使用的网格常常使交点与网格单元的中心对准,这时读数据只考虑网格交点所对应地图上的值,因此中心点法也可以叫做“网格交点归属法”。此法常用于具有连续分布特性的地理要素,如降雨量分布、人口密度图等。
面积占优法:以占栅格最大的地物类型或现象特征决定栅格单元的代码。面积占优法最适合分类较细、地物类别斑块较小的情况。
长度最占优法:当覆盖的格网过中心部位时,横线占据该格中的大部分长度的属性值定为该栅格单元的代码。
重要性法:根据栅格内不同地物的重要性,选取最重要的地物类型决定相应的栅格单元代码。这种方法对于特别重要的地理实体,其所在区域尽管面积很小或不在中心,也采取保留的原则,如稀有金属矿产区域等,重要性法常用于具有特殊意义而面积较小的地理要素,特别是具有点、线状分布的地理要素,如城镇、交通枢纽、河流水系等。
为了逼近原图或原始数据精度,除了采用上述几种取值方法外,还可以采用缩小单个栅格单元的面积,即增加栅格单元总数的方法,这样行列数也相应增加,每个栅格单元可代表更为精细的地面矩形单元,混合单元减少,可以大大提高量算的精度,更接近真实形态,表现更细小的地物类型。然而增加栅格个数、提高精度的同时也带来了一个严重的问题,那就是数据量的大幅度增加,数据冗余严重。为了解决这一矛盾,现已发展了一系列栅格数据压缩编码方法,如键码、游程长度编码、块码和四分树编码等。其目的,就是尽可能少的数据量记录尽可能多的信息,其类型又有信息无损编码和信息有损编码之分。信息无损编码是指编码过程中没有任何信息损失,通过解码操作可以完全恢复原来的信息;信息有损编码是指为了提高编码效率,最大限度地压缩数据,在压缩过程中损失一部分相对不太重要的信息,解码时这部分难以恢复。在地理信息系统中多采用信息无损编码,而对原始遥感影像进行压缩编码时,有时也采取有损型的压缩编码方法。
编码
data/attachment/portal/201111/06/090715y1epryn8t4pqq8fz.jpg栅格数据
直接栅格编码是最简单、最直观而又非常重要的一种栅格结构编码方法,通常称这种编码的图像文件为网络文件或栅格文件。直接编码就是将栅格数据看作一个数据矩阵,逐行(或逐列)逐个记录代码,可以每行都从左到右逐像元记录,也可奇数行从左到右,而偶数行由右向左记录,为了特定目的还可采用其它特殊的顺序。栅格结构不论采用何种压缩方法,其逻辑原型都是直接编码的网格文件。
当每个像元都有唯一一个属性值时,一层内的编码就需要m行×n列×3(x,y和属性编码值)个存储单元。数字地面模型就属此种情况。如果一个多边形(或制图单元)内的每个像元都具有相同的属性值,就有可能大大节省栅格数据的存储需要量,关键是恰当地设计数据结构和编码方法。
一、链式编码(ChainCodes)
链式编码又称为弗里曼链码(Freeman,1961)或边界链码。考虑图3-9(图略)中的多边形。该多边形的边界可表示为:由某一原点开始并按某些基本方向确定的单位矢量链。基本方向可定义为:东=0,东南=1,南=2,西南=3,西=4,西北=5,北=6,东北=7等八个基本方向。如果再确定原点为像元(10,1),则该多边形边界按顺时针方向的链式编码为:
10,1,7,0,1,0,7,1,7,0,0,2,3,2,2,1,0,7,0,0,0,0,2,4,3,4,4,3,4,4,5,4,5,4,5,4,5,4,6,6。其中前两个数字10和1表示起点为第十行第一列,从第三个数字开始每个数字表示单位矢量的方向,八个方向以0—7的整数代表。
链式编码对多边形的表示具有很强的数据压缩能力,且具有一定的运算功能,如面积和周长计算等,探测边界急弯和凹进部分等都比较容易,比较适于存储图形数据。缺点是对叠置运算如组合、相交等则很难实施,对局部修改将改变整体结构,效率较低,而且由于链码以每个区域为单位存储边界,相邻区域的边界则被重复存储而产生冗余。
二、游程长度编码(Run-LengthCodes)
游程长度编码是按行的顺序存储多边形内的各个像元的列号,即在某行上从左至右存储属该多边形的始末像元的列号。
显然,游程编码在对“多对一”的结构,即许多像元同属一个地理属性值的情况下大大改善了传统编法的存储情况。游程长度编码栅格加密时,数据量没有明显增加,压缩效率较高,且易于检索、叠加、合并等操作。这种编码方法最适合于小型计算机,同时也减少了栅格数据库的数据输入量,但计算期间的处理和制图输出处理工作量都有所增加。
三、块式编码(BlockCodes)
块式编码是将游程长度编码扩大到二维的情况,把多边形范围划分成由像元组成的正方形,然后对各个正方形进行编码。
块式编码的数据结构由初始位置(行号,列号)和半径,再加上记录单元的代码组成。根据这一编码原则,上述多边形只需17个单位正方形。9个4单位的正方形和1个16单位的正方形就能完整表示。如果该区域是一片森林,用代码4表示,则块式编码为:
(9,2,1,4),(9,3,1,4),(9,6,1,4),(9,8,1,4),(9,9,2,4)
(10,1,1,4),(10,2,1,4),(10,3,4,4),(10,7,2,4),(11,1,2,4)
(11,9,1,4),(12,7,2,4),(12,9,1,4),(13,9,1,4),(13,12,1,4)
(13,13,1,4),(13,14,1,4),(13,15,2,4),(14,5,1,4),(14,6,1,4)
(14,7,2,4),(14,9,2,4),(14,11,2,4),(14,13,2,4),(16,9,1,4)
(16,10,1,4),(16,11,1,4)
一个多边形所能包含的正方形越大,多边形的边界越简单,块式编码的效果越好。游程和块式编码都对大而简单的多边形更有效,而对那些碎部较多的复杂多边形效果并不好。块码在合并、插入、检查延伸性、计算面积等操作时有明显的优越性。然而对某些运算不适应,必须再转换成简单数据形式才能顺利进行。
data/attachment/portal/201111/06/090715gnzlyoywry5xyva5.gif栅格地图数据
四、四叉树编码(QuadtreeEncoding)
四叉树编码又称为四分树、四元树编码。它是一种更有效地压编数据的方法。它将2n×2n像元阵列的区域,逐步分解为包含单一类型的方形区域,最小的方形区域为一个栅格像元。图像区域划分的原则是将区域分为大小相同的象限,而每一个象限又可根据一定规则判断是否继续等分为次一层的四个象限。其终止判据是,不管是哪一层上的象限,只要划分到仅代表一种地物或符合既定要求的几种地物时,则不再继续划分否则一直分到单个栅格像元为止。
所谓四叉树结构,即把整个2n×2n像元组成的阵列当作树的根结点,n为极限分割次数,n+1为四分树的最大高度或最大层数。每个结点有分别代表西北、东北、西南、东南四个象限的四个分支。四个分支中要么是树叶,要么是树叉。树叉、树叶用方框表示,它说明该四分之一范围全属多边形范围(黑色)或全不属多边形范围(空心四方块),因此不再划分这些分枝;树用圆圈表示,它说明该四分之一范围内,部分在多边形内,另一部分在多边形外,因而继续划分,直到变成树叶为止。
为了在计算机中既能以最小的冗余存储与图像对应的四叉树,又能方便地完成各种图形操作,专家们已提出多种编码方式。下面介绍美国马里兰大学地理信息系统中采用的编码方式。该方法记录每个终点(或叶子结点)的地址和值,值就是子区的代码,其中地址包括两个部分,共占有32位(二进制),最右边四位记录该叶子结点的深度,即处于四叉树的第几层上,有了深度可以推知子区的大小;地址由从根结点到该叶子结点的路径表示。0,1,2,3分别表示NW、NE、SW、SE,从右边第五位开始2n字节记录这些方向。如图3-9第10个结点深度为4,第一层处于SW象限记为1,第四层处于象限SE,记为3,表示为二进制为:
20位8位4位
0000…00100001110100
每层象限位置由二位二进制表示,共八位。上述二进制换算成十进制整数为2164。这样,记录了各个叶子的地址,再记上相应的代码值,就记录了整个图像,并可在此编码的基础上进行多种图像操作。
四叉树编码有许多优点:
1、容易而有效地计算多边形的数量特征。
2、阵列各部分的分辨率是可变的,边界复杂部分四叉树较高,即分级多,分辨率也高,而不需表示的细节部分则分级少,分辨率低。因而既可精确表示图形结构,又可减少存储量。
3、栅格到四叉树及四叉树到简单栅格结构的转换比其它压缩方法容易。
4、多边形中嵌套不同类型小多边形的表示较方便。
四叉树编码的最大缺点是,树状表示的变换不具有稳定性,相同形状和大小的多边形可能得出不同四叉树结构,故不利于形状分析和模式识别。但因它允许多边形中嵌套多边形,即所谓“洞”的结构存在,使越来越多的地理信息系统工作者对四叉树结构很感兴趣。上述这些压缩数据的方法应视图形的复杂情况合理选用,同时应在系统中备用相应的程序。另外,用户的分析目的和分析方法也决定着压缩方法的选取。