《地理信息系统概论空间数据管理资料讲解》由会员分享,可在线阅读,更多相关《地理信息系统概论空间数据管理资料讲解(83页珍藏版)》请在金锄头文库上搜索。
1、第七章空间数据管理,邬伦北京大学地球与空间科学学院遥感与地理信息系统研究所2004年12月,1空间数据库,1.1地理信息系统与一般管理信息系统的比较两者的区别:硬件软件信息处理的内容和采用目的共同之处:以计算机为核心的信息处理系统,都具有数据量大和数据之间关系复杂的特点,也都随着数据库技术的发展在不断的改进和完善。,1.2空间数据库,概念:某一区域内关于一定地理要素特征的数据集合。特点:数据量特别大;既有属性数据,又有空间数据;数据应用广泛。数据库管理系统GIS数据管理方法的4种主要类型:开发独立的数据管理服务。在商业化的DBMS基础上开发附加系统。使用现有的DBMS,对系统的功能进行必要扩充
2、。重新设计一个具有空间数据和属性数据管理和分析功能的数据库系统。,1.3GIS内部的数据结构,矢量结构和栅格结构矢量模型:现实世界的要素位置和范围可以采用点、线或面表达,与它们在地图上表示相似,每一个实体的位置是用它们在坐标参考系统中的空间位置(坐标)定义。栅格模型:在栅格模型中,空间被规则地划分为栅格(通常为正方形)。地理实体的位置和状态是用它们占据的栅格的行、列来定义的。,2栅格数据结构及其编码,基本概念特点编码方式,I什么是栅格数据结构(Raster)?,栅格结构是最简单最直接的空间数据结构,是指将地球表面划分为大小均匀紧密相邻的网格阵列,每个网格作为一个象元或象素由行、列定义,并包含一
3、个代码表示该象素的属性类型或量值,或仅仅包括指向其属性记录的指针。,I什么是栅格数据结构(Raster)?,栅格结构是以规则的阵列来表示空间地物或现象分布的数据组织,组织中的每个数据表示地物或现象的非几何属性特征。栅格结构表示的地表是不连续的,是量化和近似离散的数据。每一个单元格对应一个相应的地块。,I什么是栅格数据结构(Raster)?,Realworld,Grid,Point,Line,Area,Value,=0=1=2=3,Row,Column,Triangles,Hexagons,RASTER,栅格数据结构示例,(a)点(b)线(c)面,栅格数据单元格经常是矩形(主要是正方形)的,但并
4、不是必须如此。其单元格形状可以随应用的需要进行具体设定,比如设置为三角形。栅格数据的比例尺就是栅格大小与地表相应单元大小之比。栅格尺寸越小,其分辨率越高,数据量也越大。,栅格数据的形状、尺寸及相关问题,引申思考:栅格数据的投影与变形问题?,由于栅格结构对地表的离散,在计算面积、长度、距离、形状等空间指标时,若栅格尺寸较大,则造成较大的误差。由于栅格单元中存在多种地物,而数据中常常只记录一个属性值,这会导致属性误差。比如,遥感数据中的“混合像元”问题。,栅格数据的形状、尺寸及相关问题,II栅格数据结构的特点,属性明显数据中直接记录了数据属性或指向数据属性的指针,因而我们可以直接得到地物的属性代码
5、定位隐含所在位置则根据行列号转换为相应的坐标,也就是说定位是根据数据在数据集中的位置得到的。栅格结构是按一定的规则排列的,所表示的实体的位置很容易隐含在格网文件的存储结构中,II栅格数据结构的特点,栅格数据结构结构容易实现,算法简单,且易于扩充、修改,也很直观,特别是易于同遥感影像的结合处理,给地理空间数据处理带来了极大的方便,III决定栅格单元代码的方式,基本原则:在决定栅格代码时尽量保持地表的真实性,保证最大的信息容量。注意:每一个单元可能对应多个地物种类或多个属性值。比如遥感图像中的“混合像元”。,III决定栅格单元代码的方式,中心点法处理方法:用处于栅格中心处的地物类型或现象特性决定栅
6、格代码常用于具有连续分布特性的地理要素,如降雨量分布、人口密度图等。,例如:中心点O落在代码为C的地物范围内,按中心点法的规则,该矩形区域相应的栅格单元代码为C,III决定栅格单元代码的方式,2.面积占优法处理方法:以占栅格区域面积比例最大的地物类型或现象特性决定栅格单元的代码面积占优法常用于分类较细,地物类别斑块较小的情况,例如:所示的例子中,显见B类地物所占面积最大,故相应栅格代码定为B,III决定栅格单元代码的方式,3.重要性法处理方法:根据栅格内不同地物的重要性,选取最重要的地物类型决定相应的栅格单元代码重要性法常用于具有特殊意义而面积较小的地理要素,特别是点、线状地理要素,如城镇、交
7、通枢纽、交通线、河流水系等,在栅格中代码应尽量表示这些重要地物,例如:假设A类最重要的地物类型,即A比B和C类更为重要,则栅格单元的代码应为A,III决定栅格单元代码的方式,4.百分比法处理方法:根据栅格区域内各地理要素所占面积的百分比数确定栅格单元的代码适用于地物面积具有重要意义的分类体系,例如:可记面积最大的两类BA,也可以根据B类和A类所占面积百分比数在代码中加入数字,III决定栅格单元代码的方式,5.其他方法根据具体的应用内容,栅格单元的代码确定方式还可以采用其他方法,如插值方法(平均值就是其中之一),或使用特定的计算函数等。,IV栅格数据编码,栅格数据编码方法分为两大类:直接栅格编码
8、压缩编码方法链码游程长度编码块码四叉树,直接栅格编码,直接编码就是将栅格数据看作一个数据矩阵,逐行(或逐列)逐个记录代码,可以每行都从左到右逐个象元进行记录,也可以奇数行地从左到右而偶数行地从右向左记录,为了特定目的还可采用其他特殊的顺序,一些常用的栅格排列顺序,压缩编码方式,压缩编码的目的就是用尽可能少的数据量记录尽可能多的信息,其类型分为信息无损编码编码过程中没有任何信息损失,通过解码操作可以完全恢复原来的信息信息有损编码为了提高编码效率,最大限度地压缩数据,在压缩过程中损失一部分相对不太重要的信息,解码时这部分难以恢复,压缩编码方式,在地理信息系统中的压缩编码多采用信息无损编码,而对原始
9、遥感影像进行压缩时也可以采取有损压缩编码方法。,压缩编码方式,1链码(ChainCodes)链式编码又称为弗里曼链码(Freeman,1961)或边界链码。该编码方法将数据表示为由某一原点开始并按某些基本方向确定的单位矢量链。基本方向可定义为:东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表示起点为第十行第一列,
10、从第三个数字开始每个数字表示单位矢量的方向,八个方向以07的整数代表。,链码(ChainCodes),链码(ChainCodes),优点:链式编码对多边形的表示具有很强的数据压缩能力,且具有一定的运算功能,如面积和周长计算等,探测边界急弯和凹进部分等都比较容易,比较适于存储图形数据。缺点:对叠置运算如组合、相交等则很难实施,对局部修改将改变整体结构,效率较低,而且由于链码以每个区域为单位存储边界,相邻区域的公共边界被重复存储会产生冗余。,压缩编码方式,2游程长度编码(Run-LengthCodes)它的基本思路是:对于一幅栅格图像,常常有行(或列)方向上相邻的若干点具有相同的属性代码,因而可采
11、取某种方法压缩那些重复的记录内容。,游程长度编码(Run-LengthCodes),其实现方法有两种一种编码方案是,只在各行(或列)数据的代码发生变化时依次记录该代码以及相同的代码重复的个数,从而实现数据的压缩。另一种游程长度编码方案就是逐个记录各行(或列)代码发生变化的位置和相应代码,游程长度编码示例,按第一种编码方法,此数据游程长度编码:(0,1),(4,2),(7,5);(4,5),(7,3);(4,4),(8,2),(7,2);(0,2),(4,1),(8,3),(7,2);(0,2),(8,4),(7,1),(8,1);(0,3),(8,5);(0,4),(8,4);(0,5),(8
12、,3)。用44个整数表达了原始数据中的64个栅格。,游程长度编码示例,按第二种编码方法,此数据游程长度编码(沿列方向):(1,0),(2,4),(4,0),(1,4),(4,0);(1,4),(5,8),(6,0);(1,7),(2,4),(4,8),(7,0);(1,7),(2,4),(3,8),(8,0);(1,7),(3,8);(1,7),(6,8);(1,7),(5,8)。,游程长度编码优缺点,优点压缩效率较高,且易于进行检索,叠加合并等操作,运算简单,适用于机器存储容量小,数据需大量压缩,而又要避免复杂的编码解码运算增加处理和操作时间的情况缺点对于图斑破碎,属性和边界多变的数据压缩效
13、率较低,甚至压缩后的数据量比原始数据还大。,压缩编码方式,3块码(ChainCodes)块码是游程长度编码扩展到二维的情况,采用方形区域作为记录单元,每个记录单元包括相邻的若干栅格,数据结构由初始位置(行、列号)和半径,再加上记录单位的代码组成。,块码编码示例,其块码编码为:(1,1,1,0),(1,2,2,4),(1,4,1,7),(1,5,1,7),(1,6,2,7),(1,8,1,7),(2,1,1,4),(2,4,1,4),(2,5,1,4),(2,8,1,7),(3,1,1,4),(3,2,1,4),(3,3,1,4),(3,4,1,4),(3,5,2,8),(3,7,2,7),(4
14、,1,2,0),(4,3,1,4),(4,4,1,8),(5,3,1,8),(5,4,2,8),(5,6,1,8),(5,7,1,7),(5,8,1,8),(6,1,3,0),(6,6,3,8),(7,4,1,0),(7,5,1,8),(8,4,1,0),(8,5,1,0)。,压缩编码方式,4四叉树编码四叉树编码将整个图像区逐步分解为一系列仅包含单一类型的方形区域,最小的方形区域为一个栅格象元。,四叉树编码,其基本分割方法是将一幅栅格地图或图像等分为四部分。逐块检查其栅格属性值(或灰度)。如果某个子区的所有栅格值都具有相同的值。则这个子区就不再继续分割,否则还要把这个子区再分割成四个子区。这样
15、依次地分割,直到每个子块都只含有相同的属性值或灰度为止。,四叉树编码,由上而下的方法运算量大,耗时较长。因而实践中可以采用从下而上的方法建立四叉树编码。对栅格数据按如下的顺序进行检测:如果每相邻四个栅格值相同则进行合并,逐次往上递归合并,直到符合四叉树的原则为止。这种方法重复计算较少,运算速度较快。,四叉树编码,采用四叉树编码时,为了保证四叉树分解能不断地进行下去,要求图像必须为2n2n的栅格阵列,对于非标准尺寸的图像需首先通过增加背景的方法将图像扩充为2n2n的图像。,四叉树的结构方式,四叉树结构按其编码的方法不同分为常规四叉树和线性四叉树:常规四叉树:除了记录叶结点之外,还要记录中间结点。
16、结点之间借助指针联系,每个结点需要用六个量表达:四个叶结点指针,一个父结点指针和一个结点的属性或灰度值。这些指针不仅增加了数据贮存量,而且增加了操作的复杂性。常规四叉树主要在数据索引和图幅索引等方面应用。,四叉树的结构方式,四叉树结构按其编码的方法不同分为常规四叉树和线性四叉树:线性四叉树:只存贮最后叶结点的信息。包括叶结点的位置、深度和本结点的属性或灰度值。所谓深度是指处于四叉树的第几层上。由深度可推知子区的大小。线性四叉树叶结点的编号需要遵循一定的规则,这种编号称为地址码,它隐含了叶结点的位置和深度信息。最常用的地址码是四进制或十进制的Morton码。,四叉树编码示例,其中最上面的结点叫根结点,它对应整个图形。此树共有4层结点,每个结点对应一个象限,如第2层4个结点分别对应于整个图形的四个象