1、山西农业大学资源环境学院,1,4 空间数据结构,4.1 概述 4.2 空间数据的空间关系 4.3 矢量数据结构 4.4 栅格数据结构 4.5 矢量与栅格的转换 4.6 矢量一体化数据结构 4.7 树数据结构,山西农业大学资源环境学院,2,4.1 概述,数据结构即指数据组织的形式,是适合于计算机存储、管理和处理的数据逻辑结构。 空间数据结构是对空间数据进行合理的组织,以便于计算机的处理,它是对数据的一种理解和解释 。 空间数据描述的是现实世界各种现象的三大基本特征:空间、时间和专题属性。,4 空间数据结构,山西农业大学资源环境学院,3,4.1 概述,三大基本特征:空间、时间、专题属性。,4 空间
2、数据结构,山西农业大学资源环境学院,4,4.1 概述,目前,与GIS设计有关的空间数据模型主要有: 1)矢量模型、2)栅格模型、3)数字高程模型、4)面向对象模型、5)矢量和栅格的混合数据模型等。 前面四种模型属于定向性模型,在模型设计时只包括与应用目标有关的实体及其相互关系,而混合模型的设计则包括所有能够指出的实体及其相互关系。 地理空间中的空间对象的表达方法主要有如下类型:1、矢量表达法 2、栅格表达法,4 空间数据结构,山西农业大学资源环境学院,5,矢量表达法,4.1 概述,山西农业大学资源环境学院,6,栅格表达法1,栅格表达法主要描述空间实体的级别分布特征及其位置。 栅格表达中,对空间
3、实体的最小表达单位为一个单元或象素(Cell或Pixel),依行列构成的单元矩阵叫栅格(Grid),每个单元通过一定的数值表达方式(如颜色、灰度级)表达诸如环境污染程度、植被覆盖类型等空间地理现象。 GIS的主要数据为二维或三维的空间型地图数据,包括空间位置、拓扑关系和属性三个方面的内容。,4.1 概述,山西农业大学资源环境学院,7,栅格表达法2,4.1 概述,山西农业大学资源环境学院,8,4.2 空间数据的空间关系,空间关系 空间数据的拓扑关系 拓扑关系建立的技术,4 空间数据结构,山西农业大学资源环境学院,9,空间关系,空间关系:是指地理空间实体对象之间的空间相互作用关系。通常将空间关系分
4、为三大类:拓扑空间关系, 顺序空间关系, 度量空间关系。 (1)拓扑空间关系(Topological Spatial Relationship): 描述空间实体之间的相邻、包含和相交等空间关系。 (2)顺序空间关系(Order Spatial Relationship): 描述空间实体之间在空间上的排列次序,如实体之间的前后、左右和东南西北等方位关系。 (3)度量空间关系(Metric Spatial Relationship): 描述空间实体的距离或远近等关系。距离是定量描述,而远近则是定性描述。,4.2 空间数据的空间关系,山西农业大学资源环境学院,10,空间数据的拓扑关系,归纳起来,结点
5、、弧段、多边形间的拓扑关系主要有: 1、拓扑邻接:指存在于空间图形的同类图形实体之间的拓扑关系。如结点间的邻接关系和多边形间的邻接关系。 2、拓扑关联:指存在于空间图形实体中的不同类图形实体之间的拓扑关系。如弧段在结点处的联结关系和多边形与弧段的关联关系。 3、拓扑包含:指不同级别或不同层次的多边形图形实体之间的拓扑关系。 4、拓扑关系九元组表示:九元组能够较好地描述两个空间目标的交集不为空的拓扑关系。,4.2 空间数据的空间关系,山西农业大学资源环境学院,11,拓扑关系建立的技术,结点、弧段、多边形拓扑关系的生成是GIS系统数据处理的关键步骤之一。 1 拓扑关系的交互式生成(通过人机交互方式
6、实现结点、弧段、多边形拓扑关系的建立)。主要步骤: (1).利用鼠标按顺序得到构成封闭多边形的弧段,最终建立多边形的拓扑结构; (2).利用鼠标确定某一弧段两侧的左右多边形,以建立弧段的拓扑结构。 (3).利用鼠标确定包围结点的多边形,得到结点的拓扑结构。 2 拓扑关系的自动生成,4.2 空间数据的空间关系,山西农业大学资源环境学院,12,4.3 矢量数据结构,矢量数据就是代表地图图形的各离散点平面坐标(X,Y)的有序集合。 矢量数据结构有三种主要类型:一、实体型数据结构二、拓扑性数据结构三、曲面型数据结构,4 空间数据结构,山西农业大学资源环境学院,13,实体型数据结构及编码1,实体型数据结
7、构,是指在地理信息系统研究中,或在地理学研究中,对地理实体数据结构的统称。这种数据结构的主要特点 : (1)数据按点、线或多边形为单元进行组织,数据编排直观,数字化操作简单; (2)每个多边形都以闭合线段存储,多变性的公共边界被数字化两次和存储两次,造成数据冗余和不一致; (3)点、线和多边形有各自的坐标数据,但没有拓扑数据,互相之间不关联; (4)岛只作为一个个图形,没有与外界多边形的联系; 本部分研究以下三种实体数据结构:点实体数据结构、线实体数据结构、面实体数据结构。,4.3 矢量数据结构,山西农业大学资源环境学院,14,实体型数据结构及编码2,(一)点实体数据结构(本质上就是点的矢量数
8、据结构)。可表示为: 标识码通常按一定的原则编码,简单情况下可顺序编号。标识码具有唯一性,是联系矢量数据和与其对应的属性数据的关键字。属性数据单独存放在数据库中。 在点的矢量数据结构中也包含属性码,其数据结构为: 通常把与实体有关的基本属性(如等级、类型、大小等)作为属性码,可以有一个或多个。X,Y坐标是点实体的定位点,如果是有向点,则可以有两个坐标对。,4.3 矢量数据结构,山西农业大学资源环境学院,15,实体型数据结构及编码3,点实体数据的矢量编码的基本内容:,4.3 矢量数据结构,山西农业大学资源环境学院,16,实体型数据结构及编码4,(二)线实体型数据结构 线的实体数据结构可表示为:线
9、实体主要用来表示线状地物,如道路,河流,地形线等符号线和多边形边界。通常也成为“弧”。其矢量编码包括以下内容:(1)唯一标识码,用来建立系统的排列序号;(2)线标识码,用来确定该线的类型;(3)起、终点,可以用点号或坐标表示;(4)坐标对序列,确定线的形状,在一定距离内坐标对越多,则每个小线段越短,且与实体曲线越逼近。(5)显示信息,显示时采用的文体或符号,如线的虚实,粗细等;(6)其他非几何属性。,4.3 矢量数据结构,山西农业大学资源环境学院,17,实体型数据结构及编码5,(三)面实体的数据结构(描述地理空间信息的最重要的一类数据)面实体数据的矢量编码不但要表示位置和属性,更为重要的是要能
10、表达区域的拓扑性质,如形状,邻域和层次等 。 面实体数据常见的矢量编码方法有以下几种:1、坐标序列法(这种方法的数据结构由多边形标识码及其构成多边形的坐标串组成 )2、层次索引法(该法是在坐标序列法的基础上进行逐层改进,它采用逐层索引的方法减少对公共边的数据冗余以间接获得邻域信息),4.3 矢量数据结构,山西农业大学资源环境学院,18,拓扑型数据结构1,拓扑性数据结构: 包括DIME(对偶独立地图编码法),POLYVRT(多边形转换器),TIGER(地理编码和参照系统的拓扑集成)等 构成多边形的线又称为链段或弧段,两条以上的弧段相交的点称为结点,由一条弧段组成的多边形称为岛,多边形中不含岛的多
11、边形称为简单多边形,表示单连通区域,含岛区的多边形称为复合多边形,表示复连通区域。在复连通区域中,包括由外边界和内边界,岛区多边形看作是复连通区域的内边界,复连通区域的内边界多边形对应的区域含有平面上的无穷个点。,4.3 矢量数据结构,山西农业大学资源环境学院,19,拓扑型数据结构2,4.3 矢量数据结构,山西农业大学资源环境学院,20,拓扑型数据结构3,在这种数据结构中,弧段或链段是数据组织的基本对象,弧段文件由弧段记录组成,每个弧段记录包括弧段标识码、FN、TN、LP和RP。结点文件由结点记录组成,包括每个结点的结点号,结点坐标与该结点连接的弧段标识码等。多边形文件由多边形记录组成,包括多
12、边形标识码,组成该多边形的弧段标识码以及相关属性等。 拓扑数据结构最重要的技术特征和贡献具有拓扑编辑功能。这种拓扑编辑功能,不但保证数字化原始数据的自动差错编辑,而且可以自动形成封闭的多边形边界,为由各个单独存储的弧段组成所需要的各类多边形建立空间数据库奠定基础。,4.3 矢量数据结构,山西农业大学资源环境学院,21,拓扑型数据结构4,4.3 矢量数据结构,以上图为例,列出拓扑数据的弧段文件格式,山西农业大学资源环境学院,22,拓扑型数据结构5,4.3 矢量数据结构,拓扑编辑功能包括多边形连接编辑和结点编辑,前者指顺序连接组成封闭多边形一组线段的编辑,后者则是对结点连接进行编辑。 在形成多边形
13、拓扑关系结构时,其编码内容应包括唯一标识码; 多边形标识码; 多边形指针; 相邻多边形指针; 全部边界的记录; 范围(即最小和最大的坐标值)等几个方面。 拓扑性空间数据的主要缺点是:(1)拓扑关系的建立比较复杂。若由工作人员自己建立,工作量大且易出错,因而现在已很少用人工来见拓扑关系,而由计算机去建立。(2)数据结构本身比较复杂。如果制作简单的地图、查询,拓扑关系优越性不大。,山西农业大学资源环境学院,23,拓扑型数据结构6,4.3 矢量数据结构,与实体型数据结构相比,拓扑性空间数据结构的主要特点是: (1)描述点、线和面的空间关系不完全依赖于具体坐标位置。如面和边界的关系,多边形相邻关系。网
14、络连接在逻辑上很严格,不需要通过坐标值来查找、判断,空间分析、查询很方便,也无坐标值精度精算麻烦。 (2)用拓扑表达的空间关系信息丰富、简洁,若采用其它方法会出现大量的重复数据(冗余)。 (3)便于检查数据输入过程中的错误。线条的遗漏、多余、过短、过长,链(弧段)、多边形编号的遗憾或重复是输入矢量地图时常见、难免的错误。由于拓扑结构的严密,容易在生成拓扑结构的过程中查出数据输入的错误。,山西农业大学资源环境学院,24,拓扑型数据结构7,4.3 矢量数据结构,在数字化输入完成后建立拓扑结构的过程可分五个阶段来完成: 1) 对所有边界线进行分类,通过自相交或两两相交时各边界线都分割成两结点之间的具
15、有单一拓扑性质的弧段。建立连接指针,构成图形外边界; 2) 检查外边界构成的多边形是否闭合,即连接指针的正确性,只有在单弧段组成的“弧岛”情况下,弧段指针才可能指向该弧本身; 3) 从外边界连接各弧段构成内多边形,并给以顺序编号; 4) 按梯形规则计算各多边形面积,并将其作为附加属性记录; 5) 向所建立的多边形连接其属性数据,建立与属性库的联系。,山西农业大学资源环境学院,25,曲面数据结构,4.3 矢量数据结构,曲面数据结构,是指对连续分布现象的覆盖要素,如地形、降水量、温度、磁场等连续现象在任一点的内插计算。为了进行内插计算,经常采用不规则三角网来拟和连续分布现象的覆盖表面,称为TIN(
16、Triangulated Irregular Network)数据结构。 这种在TIN中的曲面数据结构,常用于数字地形的表示。 利用TIN的曲面数据结构,可以方便的进行地形分析,如坡度和坡向信息提取,填挖方计算,阴影和地形通视分析,等高线生成。,山西农业大学资源环境学院,26,4.4 栅格数据结构,栅格数据结构,指将空间分割成有规则的网格,在各个网格上给出相应的属性值来表示地理实体的一种数据组织形式。 本节主要介绍以下几方面内容:一、直接栅格编码结构二、游程压缩编码结构三、链式编码结构四、四叉树编码结构,4 空间数据结构,山西农业大学资源环境学院,27,与栅格数据结构有关的基本概念1,4.4
17、栅格数据结构,像元 将地图某区域的平面表像一定的分解力作行和列的规则划分,形成一个栅格阵列。 灰度 它用来表示各个像元所具有的表象信息。 二值图像 如果一个图像的灰度值只有“0”和“1”两种(通常1表示前景元素,用0表示背景元素),则这个图像称为二值图像,或称为二元图像。 栅格数据 根据所表示的表像信息,各个像元可用不同的灰度值来表示,但每个像元被认为是内部一致的基本单元。由平面表像对应位置上像元灰度值所组成的矩阵形式的数据就是栅格数据。 栅格数据结构 表示的是二维表面上地理要素的离散化数值,每个网格对应一种属性。,山西农业大学资源环境学院,28,与栅格数据结构有关的基本概念2,4.4 栅格数
18、据结构,栅格数据的基本表示方法 :当把地图图形数据以栅格形式保存于计算机中时,栅格矩阵中每个像素的灰度值的确定,根据每个栅格取值方法的不同,分为中心归属法、长度占优法和面积占优法三种。中心归属法,指每个单元的值根据该栅格中心点所在面域的属性确定;长度占优法,指每个栅格单元的值,根据栅格中心占据该栅格单元的大部分决定;单位栅格面积占优法,指每个栅格单元的值,根据占据该栅格单元面积的最大实体代码表示。栅格数据结构的编码,是对栅格数据的管理,可分为直接栅格编码结构、游程压缩编码结构、链式编码结构和四叉树编码结构。,山西农业大学资源环境学院,29,直接栅格编码结构1,4.4 栅格数据结构,直接栅格编码
19、结构,也可以理解为栅格矩阵结构,指对栅格数据不用压缩而采取的编码形式。步骤如下:栅格像元组成栅格矩阵,用像元所在的行列号来表示其位置。通常以矩阵左上角开始逐行逐列存储,记录代码。可以每从左到右逐像元记录,也可以奇数行从左到右而偶数行由右到左来记录。,山西农业大学资源环境学院,30,直接栅格编码结构2,4.4 栅格数据结构,例图:,山西农业大学资源环境学院,31,游程压缩编码结构1,4.4 栅格数据结构,游程指相邻同值网格的数量,游程编码结构时逐行将相邻同值的网格合并,并记录合并后网格的值及合并网格的长度,其目的是压缩栅格数据量,消除数据间的冗余。 游程编码结构的建立方法是:将栅格矩阵的数据序列
20、X1,X2,X3Xn,映射为相应的二元组序列(Ai,Pi),i=1k,且KN.其中,A为属性值,P为游程,K为游程序号。,山西农业大学资源环境学院,32,游程压缩编码结构2,4.4 栅格数据结构,例如将上图的栅格矩阵结构转换为游程编码结构,山西农业大学资源环境学院,33,游程压缩编码结构3,4.4 栅格数据结构,这种数据结构特别适用于二值图像的表示,如下图所示(游程编码能否压缩数据量,主要决定于栅格数据的性质,通常可通过事先测试,计算图的数据冗余度Re ),山西农业大学资源环境学院,34,游程压缩编码结构4,4.4 栅格数据结构,山西农业大学资源环境学院,35,游程压缩编码结构5,4.4 栅格
21、数据结构,游程长度压缩编码步骤:在同一行内先按列扫描,如果整行的单元值都相同,那么单元组、长度(一般取列数),行号记下后,这一行就扫描完毕。若从第一列开始到某列单元值有变化,就将前面取值相同的列数和该值记下,及编码为单元值,长度(列数),行号,专业上称作一个游程(或往程)。然后再扫描,随后把行内某一段取值相同的单元值组成一游程,直到该行结束,并逐行地将网格都扫描完毕,以下表为例。 以下例子只是说明游程长度编码方法,数据多,且有重叠时,用游程压缩编码可大大减少数据输入次数,方便的加以识别。,山西农业大学资源环境学院,36,游程压缩编码结构6,4.4 栅格数据结构,山西农业大学资源环境学院,37,
22、链式编码结构1,4.4 栅格数据结构,链式编码,又称为霍夫曼编码。指将线状地物或区域边界表示为:由某一起点和一系列在基本方向上的单位矢量组成,单位矢量的长度默认为一个栅格单元,每个后续点可能位于其前续点的8个基本方向之一,(如图4-17),山西农业大学资源环境学院,38,链式编码结构2,4.4 栅格数据结构,具体编码过程为:首先自上而下,从左向右寻找起始点,值不为零,且没有被记录过得点为起始点,记下该地物的特征码及其点的行列数。然后按顺时针方向寻找相邻的等值点,并按八个方向进行编码。对于已经被记录的栅格单元,可将其属性代码值置为零。如果遇到不能闭合线段,结束后可返回到起始点,重新开始寻找下一个
23、线段。用链式编码结构,则图4-18可记录为:1,3,5,6,1,7。其中,前两位数字为起点位置,1列3列,从第三位数字起,记录单位矢量的方向。,山西农业大学资源环境学院,39,链式编码结构3,4.4 栅格数据结构,山西农业大学资源环境学院,40,四叉树编码结构1,4.4 栅格数据结构,四叉树编码结构的基本思想是首先把一幅图像或一幅栅格地图(2n*2n,n1)等分成四部分,逐块检查其格网值,如果某个子区的所有格网都具有相同的值,则这个子区就不再往下分割,否则,把这个区域在分割成四个子区域,递归的分割下去,直到每个子块都只含有相同的灰度或属性值为止。这样最后结果可得到一颗四分叉的倒向树。四叉树编码
24、正是通过这种树状结构来记录和压缩栅格数据,以此种结构实现查询,修改和量算等操作。如图4-19所示的栅格数据,经过四叉树编码得到图4-20所示。,山西农业大学资源环境学院,41,四叉树编码结构2,4.4 栅格数据结构,山西农业大学资源环境学院,42,四叉树编码结构3,4.4 栅格数据结构,在图4-20中,各个子图像的大小不同,它们是由组成该子象限的具有相同代码的栅格像元构成的子块而决定。在图4-21中最上面的结点称作根结点。它对应于整个图形区域。在此例中,共划出四层结点,每层结点对应于不同尺寸的子象限。,山西农业大学资源环境学院,43,四叉树编码结构4,4.4 栅格数据结构,在对图4-21图形的
25、四叉树编码过程中,位于结点层次较高的子象限尺寸较大,说明其分解深度小,也即分割次数少,而低层次上的象限尺寸就较小,反映其分解深度大即分割次数多。这样编码后,可反映出整个图形区域的空间地物分布情况,在某些位置上单一地物分布较广,则采用较少的分割次数。在地物较复杂,变化较大的区域,则用加深分解深度,增加分割次数的方式编码。,山西农业大学资源环境学院,44,四叉树编码结构5,4.4 栅格数据结构,通常定义从根结点到叶结点的路径可以按照象限递归分割的顺序编号进行。无论分割到哪一层,总是用0,1,2,3分别表示SW SE NW NE四个象限的编号,只是每个子象限子结点编号的前缀必须为其父象限(父结点)的
26、编号,如图4-22所示地址编号为113的子象限,就表示它为经过3次分割象限后,在第31层象限中的一个子象限。“113”的意思是,经过第一次分割象限,该子象限位于SE象限,记作1,经过第二次分割象限,该子象限位于SE象限,记作1,再经过第三次分割象限,落于NE象限,记作3。,山西农业大学资源环境学院,45,小结,4.4 栅格数据结构,一般而言,对数据的压缩是以增加运算时间为代价的。直接栅格编码简单明了,可直观地反映栅格图像数据,但数据冗余太大。游程压缩编码在很大程度上压缩数据,也可较大限度的保留原始栅格结构,而且编码解码容易。链式编码的压缩效率较高,已接近矢量结构,对边界的运算比较方便,但是不具
27、备区域的性质,区域运算较困难。四叉树编码有区域性质,压缩效率比较高,可进行大量的图形图像运算,且效率较高,使用日益广泛。,山西农业大学资源环境学院,46,4.5 矢量数据结构与栅格数据结构的转换,栅格数据结构和矢量数据结构都有一定的优点和局限性。在地理信息系统建立过程中,应根据应用目的和应用特点,选择合适的数据结构。矢量数据结构是人们最熟悉的图形表达形式,对于线划地图而言,用矢量数据来记录往往比用栅格数据节省存储空间。相互连接的线网络或多边形网络则只有矢量数据结构模式才能做到,矢量结构更有利于网络分析(交通网,供排水网,煤气管道,电缆等)和制图。矢量数据表示的数据精度高,并易于附加上对制图物体
28、的属性所进行分门别类的描述。矢量数据便于产生各个独立的制图物体,并便于存储各图形元素间的关系信息。 1、矢量数据结构向栅格数据结构的转换2、栅格数据结构向矢量数据结构的转换,4 空间数据结构,山西农业大学资源环境学院,47,概述1,4.5 矢量数据结构与栅格数据结构的转换,山西农业大学资源环境学院,48,概述2,4.5 矢量数据结构与栅格数据结构的转换,栅格数据结构是一种影像数据结构,适用于遥感图像的处理。它与制图物体的空间分布特征有着简单、直观而严格的对应关系,对制图物体空间位置的可操行强,并为应用机器视觉提供了可能性,对于探测物体之间的位置关系,栅格数据更为便捷。 一般来说,大范围小比例的
29、自然资源、环境、农业、林业、地质等区域问题的研究,城市总体规划阶段的战略布局问题等,使用栅格模型比较适合。城市分区或详细规划、土地管理、公用事业管理等方面的应用,矢量模型比较合适。,山西农业大学资源环境学院,49,概述3,4.5 矢量数据结构与栅格数据结构的转换,对于点状实体,每个实体仅由一个坐标对表示,其矢量结构和栅格结构的相互转换基本上只是坐标精度转换问题。线实体的矢量结构由一系列坐标对表示,在变为栅格结构时,除把坐标对变为栅格行列坐标外,还需根据栅格精度要求,在坐标点之间插满一系列栅格点,这也容易由两点式直线方程得到;线实体由栅格结构变为矢量结构与将多边形表示为矢量结构相似。,山西农业大
30、学资源环境学院,50,矢量数据结构向栅格数据结构的转换,4.5 矢量数据结构与栅格数据结构的转换,矢量格式向栅格格式转换又称为多边形填充,就是在矢量表示的多边形界内部的所有栅格上赋予相应的多边形编号,从而形成栅格数据阵列。 几种算法1、内部点扩散算法2、算数积分算法3、射线算法4、扫描算法5、边界代数算法,山西农业大学资源环境学院,51,内部点扩散算法,4.5.1 矢量数据结构向栅格数据结构的转换,该算法由每个多边形一个内部点(种子点)开始,向其八个方向的邻点扩散,判断各个新加入点是否在多边形边界上,如果是边界点,则新加入点不作为种子点,否则把非边界点的邻点作为新的种子点与原有种子点一起进行新
31、的扩散运算,并将该种子点赋予多边形的编号。重复上述过程,直到所有种子点填满该多边形并遇到边界为止。,山西农业大学资源环境学院,52,算数积分算法,4.5.1 矢量数据结构向栅格数据结构的转换,对全部栅格阵列逐个栅格单元判断栅格归属的多边形编码,判别方法是由待判点对每个多边形的封闭边界计算复数积分,对某个多边形,如果积分值为2i,则该待判点属于此多边形,赋予多边形编号,否则在此多边形外部,不属于该多边形。,山西农业大学资源环境学院,53,射线算法,4.5.1 矢量数据结构向栅格数据结构的转换,射线算法可逐点判别数据栅格点在某多边形之外或在多边形内,由待判点向图外某点引射线,判断该射线与某多边形所
32、有边界相交的总次数,如相交偶数次,则判点在该多连形的外部,如为奇数次,则待判点在该多边形内部。,山西农业大学资源环境学院,54,扫描算法,4.5.1 矢量数据结构向栅格数据结构的转换,扫描算法是射线算法的改进,通常情况下,沿栅格阵列的行方向扫描,在每两次遇到多边形边界点的两个位置之间的栅格,属于该多边形。扫描算法省去了计算射线与多边形交点的大量运算,大大提高了效率,但一般需要预留一个较大的数组以存放边界点,而且扫描线与多边形边界相交的各种特殊情况仍然存在,需要加以判别。,山西农业大学资源环境学院,55,边界代数算法1,4.5.1 矢量数据结构向栅格数据结构的转换,边界代数多边形填充算法(简称B
33、AF)是在微机地理信息系统上实现的一种基于积分思想的矢量格式向栅格格式转换算法。为说明边界代数转换法的原理,先考虑图4-23所示单个多边形简单情况。模仿积分求多边形区域面积的过程,初始化的栅格阵列各栅格值为零,欲填充多边形编号为a的区域,,山西农业大学资源环境学院,56,边界代数算法2,4.5.1 矢量数据结构向栅格数据结构的转换,山西农业大学资源环境学院,57,边界代数算法3,4.5.1 矢量数据结构向栅格数据结构的转换,为说明边界代数转换法的原理,先考虑图4-23所示单个多边形简单情况。模仿积分求多边形区域面积的过程,初始化的栅格阵列各栅格值为零,欲填充多边形编号为a的区域,即将区域内栅格
34、点的值变为a,而区域外各点仍保持原值零。转换时,以栅格行列为参考坐标轴,由多边形边界上某点为起点顺时针搜索边界线,当边界线段为上行时,位于搜索边界多边形边界曲线左侧的具有相同行坐标的所有栅格点被减去一个值a。当边界线段为下行时,则将边界左边(从曲线前进方向看为右侧)所有具有相同行坐标点的栅格点加上一个值a,当沿边界搜索运算一周回到起始点后,所有多边形内部的栅格点都被赋值a,而多边形外的栅格点的值不变。,山西农业大学资源环境学院,58,边界代数算法4,4.5.1 矢量数据结构向栅格数据结构的转换,事实上,每幅地图都是由多个多边形区域组成的。如果把不属于任何多边形的区域(包括无穷远点)看成一个编号
35、为零的特殊区域,则每一条边界弧段都与两个不同编号的多边形相邻,按边界弧段的前进方向分别称为左、右多边形。对图4-24所示的3个多边形的6条边,有如表4-8所示的多边形编号。对多边形n1:线I上行n1,下行+n1;线上行+n1;线下行+n1;对多边形n2;线上行+n2,下行n2;线IV上行n2;线上行n2; 对多边形n3;线下行n3;线上行+n3;线下行n3;上行+n3。,山西农业大学资源环境学院,59,边界代数算法5,4.5.1 矢量数据结构向栅格数据结构的转换,山西农业大学资源环境学院,60,边界代数算法6,4.5.1 矢量数据结构向栅格数据结构的转换,对所有运算按线号进行排列,把图外区域作
36、为编号为零的区域参加计算,下面括号内标出的为相应线的左或右多边形。 线I 上行:+0(左) -n1(右); 下行:-0(左) +nl(右) 线 上行:+n2(左) -0(右); 下行:-n2(左) +0(右) 线 上行:+n3(左) -n2(右); 线 上行:+n1(左) -n2 (右); 线 上行:+n3(左) -0(右); 下行:-n3(左) +0(右) 线 下行:-n3(左) +n1(右),山西农业大学资源环境学院,61,边界代数算法7,4.5.1 矢量数据结构向栅格数据结构的转换,由上述分析得到边界代数算法的基本思想:对每幅地图的全部具有左右多边形编号的边界弧段,沿其前进的方向逐个搜索
37、,当边界上行时,将边界线位置与左图框之间的网格点加上一个值(左多边形编号)(右多边形编号);当边界线下行时,将边界线位置与左图框的栅格加上一个值(有多边形编号)(左多边形编号),而不管边界线的排列顺序。,山西农业大学资源环境学院,62,边界代数算法8,4.5 .1矢量数据结构向栅格数据结构的转换,边界代数法与其他算法的不同之处:在于它不是逐点搜寻判别边界,而是根据边界的拓扑信息,通过简单的加减代数运算将拓扑信息动态地赋予各栅格点,实现了矢量格式到栅格格式的转换。由于不需考虑边界与搜索轨迹之间的关系,因此算法简单,可靠性好,而且由于仅采用加减代数运算,每条边界仅计算一次,免去了公共边界重复运算,
38、又可不考虑边界存放的顺序,因此运算速度快,同时较少受内存容量的限制,特别适用于微机地理信息系统。,山西农业大学资源环境学院,63,两个相邻多边形的边界代数转换过程及结果示意图1,4.5 矢量数据结构与栅格数据结构的转换,山西农业大学资源环境学院,64,两个相邻多边形的边界代数转换过程及结果示意图2,4.5 矢量数据结构与栅格数据结构的转换,山西农业大学资源环境学院,65,栅格数据结构向矢量数据结构的转换1,4.5 矢量数据结构与栅格数据结构的转换,栅格格式向矢量格式转换的目的:一是为了将栅格数据分析的结果,通过矢量绘图装置输出;二是为了数据压缩的需要,将大量的面状栅格数据转换为由少量数据表示的
39、多边形的边界;三是为了将自动扫描仪获取的栅格数据加入矢量形式的数据库。 多边形栅格格式向矢量格式转换,就是提取以相同编号的栅格集合表示的多边形区边界和边界的拓扑关系,并表示成多个小直线段的矢量格式边界线的过程。,山西农业大学资源环境学院,66,栅格数据结构向矢量数据结构的转换2,4.5 矢量数据结构与栅格数据结构的转换,栅格格式向矢量格式转换通常包括以下四个步骤:(1)多边形边界提取(2)边界线追踪(3)拓扑关系生成(4)去除多余点及曲线圆滑,山西农业大学资源环境学院,67,栅格数据结构向矢量数据结构的转换3,4.5 矢量数据结构与栅格数据结构的转换,栅格向矢量转换最为困难的是边界线搜索、拓扑
40、结构生成和多余点去除。双边界直接搜索算法,较好地解决了上述问题。 双边界直接搜索算法的基本思想是通过边界提取,将左右多边形信息保存在边界点上,每条边界弧段由两个并行的边界链组成,分别记录该边界弧段的左右多边形编号。边界线搜索采用2*2栅格窗口,在每个窗口内的四个数据的模式可以唯一地确定下一个窗口的搜索方向和该弧段的拓扑关系。具体步骤如下:(1)边界点和节点提取; (2)边界搜索与左右多边形信息记录,山西农业大学资源环境学院,68,4.6 矢量、栅格一体化数据结构,概念 分离式矢栅一体化数据结构 基于线性四叉树的一体化数据结构 Peuauet矢栅一体化数据结构,4 空间数据结构,山西农业大学资源
41、环境学院,69,概念1,4.6 矢量、栅格一体化数据结构,(一)栅格和矢量数据结构的比较与选择空间数据的栅格结构和矢量结构是模拟地理信息的截然不同的两种方法,各自都有一定的优点和局限性。因此二者同时存在,不能相互代替。 (二) 矢量、栅格一体化数据结构栅格数据结构和矢量数据结构可以互相补充,所以现代GIS中(ARC/INFO)既含有栅格结构又保持矢量结构,形成一种混合数据结构,两者的合属性数据的关系如表4-8所示。,山西农业大学资源环境学院,70,概念2,4.6 矢量、栅格一体化数据结构,山西农业大学资源环境学院,71,概念3,4.6 矢量、栅格一体化数据结构,矢栅一体化的概念对于面状地物,矢
42、量数据用边界表达的方法将其定义为多边形的边界和一内部点,多边形的中间区域是空洞。而在基于栅格的GIS中,一般用元子空间充填表达的方法将多边形内任一点都直接与某一个或某一类地物联系。显然,后者是一种数据直接表达目标的理想方式。对线状目标,以往人们仅用矢量方法表示。,山西农业大学资源环境学院,72,概念4,4.6 矢量、栅格一体化数据结构,事实上,如果将矢量方法表示的线状地物也用元子空间充填表达的话,就能将矢量和栅格的概念辨证统一起来,进而发展矢量栅格一体化的数据结构。假设在对一个线状目标数字化采集时,恰好在路径所经过的栅格内部获得了取样点,这样的取样数据就具有矢量和栅格双重性质。一方面,它保留了
43、矢量的全部性质,以目标为单元直接聚集所有的位置信息,并能建立拓扑关系;另一方面,它建立了栅格与地物的关系,即路径上的任一点都直接与目标建立了联系。,山西农业大学资源环境学院,73,概念5,4.6 矢量、栅格一体化数据结构,山西农业大学资源环境学院,74,概念6,4.6 矢量、栅格一体化数据结构,因此,可采用填满线状目标路径和充填面状目标空间的表达方法作为一体化数据结构的基础。每个线状目标除记录原始取样点外,还记录路径所通过的栅格;每个面状地物除记录它的多边形周边以外,还包括中间的面域栅格。无论是点状地物、线状地物、还是面状地物均采用面向目标的描述方法,因而它可以完全保持矢量的特性,而元子空间充
44、填表达建立了位置与地物的联系,使之具有栅格的性质。这就是一体化数据结构的基本概念(图4-28)。从原理上说,这是一种以矢量的方式来组织栅格数据的数据结构。,山西农业大学资源环境学院,75,分离式矢量、栅格一体化数据结构1,4.6 矢量、栅格一体化数据结构,矢量栅格混合数据结构有多种形式。最简单最直接的形式是矢量栅格数据不作任何特殊处理,分别与它们各自的数据结构存储,需要时将它们调入到内存,进行统一的显示、查询和分析。 比较高级的功能是栅格层不仅可以是以byte存储的影像,而且可以是任意数值或字符的地物编码,这样可以进行矢量栅格的联合查询与分析。,山西农业大学资源环境学院,76,分离式矢量、栅格
45、一体化数据结构2,4.6 矢量、栅格一体化数据结构,山西农业大学资源环境学院,77,线形四叉树数据结构1,4.6.3 基于线形四叉树的一体化数据结构,基本思想:不需记录中间结点和使用指针,仅记录叶结 点,并用地址码表示叶结点的位置。线性四叉树有四进制和十进制两种,四进制四叉树的地址码又称Morton码。 为了得到线性四叉树的地址码,首先将二维栅格数据的行列号转化为二进制数,然后交叉放入Morton码中,即为线性四叉树的地址码。,山西农业大学资源环境学院,78,线形四叉树数据结构2,4.6.3 基于线形四叉树的一体化数据结构,把一幅2n2n的图像压缩成线性四叉树的过程为: 1、按Morton码把
46、图象读入一维数组。 2、相邻的四个象元比较,一致的合并,只记录第一个象元的Morton码。 3、比较所形成的大块,相同的再合并,直到不能合并为止。 对用上述线性四叉树的编码方法所形成的数据还可进一步用游程长度编码压缩。压缩时只记录第一个象元的Morton码。解码时,根据Morton码就可知道象元在图像中的位置(左上角),本Morton码和下一个Morton码之差即为象元个数。知道了象元的个数和象元的位置就可恢复出图像了。,山西农业大学资源环境学院,79,线形四叉树数据结构3,4.6.3 基于线形四叉树的一体化数据结构,线性四叉树数据结构基本思想是:不需记录中间结点和使用指针,仅记录叶结 点,并
47、用地址码表示叶结点的位置。线性四叉树有四进制和十进制两种,四进制四叉树的地址码又称Morton码。 为了得到线性四叉树的地址码,首先将二维栅格数据的行列号转化为二进制数,然后交叉放入Morton码中,即为线性四叉树的地址码。,山西农业大学资源环境学院,80,线形四叉树编码1,4.6.3 基于线形四叉树的一体化数据结构,线性四叉树只存储最后叶结点的信息,即结点的位置、大小和灰度。 叶结点位置采用基于四进制的Morton码表示(加拿大学者Morton于1966年提出);叶结点的大小用结点的深度或层次表示。Morton码又称为M码。 在M码的基础上生成线性四叉树的方法有两种: (1)自顶向下(top
48、-down)的分割方法: 按常规四叉树的方法进行,并直接生成M码; (2)从底向上(down-top)的合并方法;,山西农业大学资源环境学院,81,线形四叉树编码2,4.6.3 基于线形四叉树的一体化数据结构,从底向上(down-top)的合并方法:首先按M码的升序排列方式依次检查四个相邻M码对应的属性值,如果相同,则合并为一个大块,否则,存储四个格网的参数值(M码、深度、属性值)。 第一轮合并完成后,再依次检查四个大块的值(此时,仅需检查每个大块中的第一个值),若其中有一个值不同或某子块已存储,则不作合并而记盘。 通过上述方法,直到没有能够合并的子块为止。在合并过程中,扫描顺序如图4-30所
49、示。,山西农业大学资源环境学院,82,线形四叉树编码3,4.6.3 基于线形四叉树的一体化数据结构,山西农业大学资源环境学院,83,线形四叉树编码4,4.6.3 基于线形四叉树的一体化数据结构,线性四叉树编码: 优点是:压缩效率高,压缩和解压缩比较方便,阵列各部分的分辨率可不同,既可精确地表示图形结构,又可减少存贮量,易于进行大部分图形操作和运算。 缺点是:不利于形状分析和模式识别,即具有图形编码的不定性,如同一形状和大小的多边形可得出完全不同的四叉树结构。,山西农业大学资源环境学院,84,Peuauet矢栅一体化数据结构,4.6 矢量、栅格一体化数据结构,Peuauet于1981年发明了种混合结构,称Vaster Data Model,是Vector与Raster数据结构的组合。它同时兼有矢量和栅格结构的特点。 这些数据结构的基本逻辑单元是条带,当数据按栅格方式组织时,每一个条带在Y方向有固定的宽度,并对应着一组邻接的线划,每个条带包含有栅格成分,也有矢量成分。 这两种成分用同样的栅格分辨率进行记录,每个条带的前沿(最小Y值)记录为栅格格式的单个扫描行,并作为条带的索引记录;其中包含每根线条的标识符和交点的X、Y坐标,所使用的栅格编码模式包含了地图线划在同一个记录中的所有交点,这样便于在一个条带的栅格部分与矢量部分之间作有效的连接。,