收藏 分享(赏)

第三章 空间数据结构.ppt

上传人:nacm35 文档编号:6488068 上传时间:2019-04-14 格式:PPT 页数:137 大小:1.96MB
下载 相关 举报
第三章 空间数据结构.ppt_第1页
第1页 / 共137页
第三章 空间数据结构.ppt_第2页
第2页 / 共137页
第三章 空间数据结构.ppt_第3页
第3页 / 共137页
第三章 空间数据结构.ppt_第4页
第4页 / 共137页
第三章 空间数据结构.ppt_第5页
第5页 / 共137页
点击查看更多>>
资源描述

1、第三章 空间数据结构与编码,栅格数据结构及编码矢量数据结构及编码矢栅数据结构转换矢栅一体化数据结构,空间数据结构与数据编码,1.概念空间数据结构:指适合于计算机系统存储、管理和处理的地学图形的逻辑结构,是地理实体的空间排列方式和相互关系的抽象描述。 空间数据编码:为实现空间数据的计算机存储、处理和管理,将空间实体的一定的数据结构转换为适合计算机操作的过程。,栅格数据结构:应用与图像处理系统和GIS中。 矢量数据结构:主导了CAD系统和有着强大制图功能的GIS。,一、基于规则格网空间数据模型的数据 结构 (栅格数据结构),(一)概念 栅格数据结构是最简单最直观的空间数据结构,又称网格结构或像元结

2、构。将地球表面划分为大小均匀紧密相邻的网格阵列,每个网格作为一个像元或者像素,有行、列号定义,并包含一个代码,表示该网格的属性值或者量值,或者仅仅包含指向其它属性记录的指针。,(一)概念,栅格数据结构实际就是像元阵列,每个像元由行列确定它的位置。由于栅格结构是按照一定的规则排列的,所表示的实体的位置很容易隐含在文件的存储结构中,且行列坐标可以很容易的转为其他坐标系下的坐标。在文件中每个代码本身明确代表实体的属性或属性编码。,点用一个栅格单元表示; 线状地物沿线走向的一组相邻栅格单元表示,每个栅格单元最多只有两个相邻单元在线上; 面或区域用记有区域属性的相邻栅格单元的集合表示,每个栅格单元可有多

3、于两个的相邻单元同属一个区域。,(一)概念,(二)基本特征,点有大小、地理空间离散。大小由行列号决定,划分程度决定点大小、点数多少、表达内容的复杂程度及精度高低。 属性特征显性表示。可以直接看到属性,并多以颜色、代码或灰度表示。 面向位置、感觉微观 位置由行列号决定,每个位置都有相应的数据。,(三)栅格数据的组织,不同类型的地理实体分层编排,每层只有单一的类型。 一个栅格单元只有一个属性代码。,组织方法,(三)栅格数据的组织,(四)栅格结构的建立,1、 手工获取,专题图上划分均匀网格,逐个决定其网格代码。 2、扫描仪扫描专题图的图像数据行、列、颜色(灰度),定义颜色与属性对应表,用相应属性代替

4、相应颜色,得到(行、列、属性)再进行栅格编码、存贮,即得该专题图的栅格数据。 3、 由矢量数据转换而来。 4、 遥感影像数据,对地面景象的辐射和反射能量的扫描抽样,并按不同的光谱段量化后,以数字形式记录下来的象素值序列。 5、 格网DEM数据,当属性值为地面高程,则为格网DEM,通过DEM内插得到。,一)建立途径,(四)栅格结构的建立,二)栅格系统的建立,1、 栅格坐标系的确定 表示具有空间分布特征的地理要素,不论采用什么编码系统,什么数据结构都应在统一的坐标系统下,而坐标系的确定实质是坐标系原点和坐标轴的确定。由于栅格编码一般用于区域性GIS,原点的选择常具有局部性质,但为了便于区域的拼接,

5、栅格系统的起始坐标应与国家基本比例尺地形图公里网的交点相一致,并分别采用公里网的纵横坐标轴作为栅格系统的坐标轴。,(四)栅格结构的建立,二)栅格系统的建立,2、 栅格单元的尺寸,1)原则:应能有效地逼近空间对象的分布特征,又减少数据的冗余度。格网太大,忽略较小图斑,信息丢失。 2)方法:用保证最小多边形的精度标准来确定尺寸经验公式:h为栅格单元边长 Ai为区域所有多边形的面积。,每个栅格元素只能取一个值,实际上一个栅格可能对应于实体中几种不同属性值,存在栅格数据取值问题,(四)栅格结构的建立,三)栅格属性值的确定,1、中心点法 用处于栅格中心处的地物类型或现象特性决定栅格代码。中心点法常用于具

6、有连续分布特性的地理要素,如降雨量分布、人口密度图等 。,三)栅格属性值的确定,2、面积占优法 以占矩形区域面积最大的地物类型或现象特性决定栅格单元的代码 。用于分类较细,地物类别斑块较小的情况。,三)栅格属性值的确定,3、长度占优法 将网格中心画一横线,用横线所占最长部分属性值作为栅格属性,三)栅格属性值的确定,4、重要性法 突出某些主要属性,只要在栅格中出现就把该属性作为栅格属性,三)栅格属性值的确定,5、百分比法 根据矩形区域内各地理要素所占面积的百分比数确定单元的取值。,三)栅格属性值的确定,(五)栅格数据编码方式,直接栅格编码压缩编码方法链码(Chain Encoding)游程编码(

7、Run-length Encoding)块状编码(Block Encoding)四叉树编码(Quandtree Encoding),(五)栅格数据结构类型,(1)直接栅格编码 最简单最直观而又非常重要的一种栅格结构编码方法。把规则格网平面作为一个二维矩阵进行数学表达,每个栅格是具有行、列位置的矩阵元素,该空间实体属性编码值赋予矩阵元素。 逐行或逐列记录代码。,(1)直接栅格编码,(1,1,2),(1,2,2),(1,3,2), (1,4,1),(1,5,1),(1,6,7), (1,7,7),(1,8,7), (2,1,2),(2,2,2),(2,3,2), ,如果行列号记录在专门文件中,则只

8、记录属性值: (2,2,2,1,1,7,7,7,2,2,2,2,1,7,7,7),优点: 1易于实现用循环语句编程,实现快速运算 2易于实现空间属性的分解与分类,易于实现空间分析中叠加等操作,缺点: 数据存储量大,基本要素包括:行,列,属性值(N,M,Xij)其中行、列值隐性,属性值显性。,(1)直接栅格编码,(2)费尔曼链码 (边界编码),将线状地物或区域边界表示为:由某一起始点和某些基本方向上的单位矢量链组成。前两个字母表示起点的行列号,从第三个数字开始每个数字表示单位矢量的方向。,单位矢量的长度为一个栅格单元,后续点可能位于前继点8个基本方向上。,(2)费尔曼链码 (边界编码),具体编码

9、过程:起始点的寻找一般遵守从上到下、从左到右的原则。当发现没有记录过的点且数值也不为零时,就是这一条线或边界的起点,记下该地物的特征码和行列号;然后按顺时针方向寻找,找到相邻的等值点,并按八个方向编码。如遇到不能闭合的线段,结束后可返回到起始点再开始寻找下一个线段。已记录过的栅格单元,可将属性代码置零,以免重复编码。,(2)费尔曼链码 (边界编码),4,5,4,5,4,5,4,2,4,4,6,5,6,7,0,2,2,1,(2)费尔曼链码 (边界编码),优缺点: 数据压缩率强,便于计算长度,面积,转折方向的凸凹度,易于储存。 但难于实现叠置运算,不便于合并插入操作。对局部改动涉及到整体结构。,适

10、于对曲线和边界进行编码。,(2)费尔曼链码 (边界编码),(3)游程(行程)编码,基本思路:对一个栅格图形,常常有行(列)方向上相邻的若干栅格单元具有相同的属性代码,因而可采用某种方法压缩那些重复代码内容。 编码方案:只是在各行(列)栅格单元的代码发生变化时依次记录该代码以及相同代码重复的个数或者记录代码发生变化的位置。,(3)游程(行程)编码,游程:栅格数据矩阵中相邻并属性相同的栅格视为一游程,以游程为单位记录数据。,第一行:4个游程 第二行:3个游程,适于对块状地物的栅格数据进行压缩编码,编码方式:(gk,lk) gk栅格属性值 lk 游程终止列号或长度 K=1,2,3,4m(mn),分为

11、游程终止编码和游程长度编码,(3)游程(行程)编码,(0,1) (4,3) (7,8) (4,5) (7,8) (4,4) (8,6) (7,8) (0,2) (4,3) (8,6) (7,8) (0,2) (8,6) (7,7)(8,8) (0,3) (8,8) (0,4) (8,8) (0,5) (8,8),游程终止编码,(3)游程(行程)编码,(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,3)

12、,游程长度编码:,(3)游程(行程)编码,特点:属性的变化愈少,游程愈长,即压缩比的大小与图的复杂程度成反比。 优点:数据压缩率高,易于实现叠加,检索和合并运算。缺点:适合类型区面积较大的专题图、遥感影像分类集中的分类图,不适合类型连续变化或类型区分散的分类图。,(3)游程(行程)编码,(4)块状编码,是将游程长度编码扩展到二维的情况,采用正方形区域为单元对块状地物的栅格数据进行编码,实质是把栅格阵列中同一属性方形区域各元素映射成一个元素系列。每个记录单元包含相邻若干栅格,数据结构由初始位置和半径,在加上记录单元的代码组成。,编码方式:(行号,列号,半径,代码),(1,1,1,0),(1,2,

13、2,2), (1,4,1,5),(1,5,1,5), (1,6,2,5),(1,8,1,5); (2,1,1,2),(2,4,1,2), (2,5,1,2),(2,8,1,5); (3,3,1,2),(3,4,1,2), (3,5,2,3),(3,7,2,5); (4,1,2,0),(4,3,1,2), (4,4,1,3);(5,3,1,3), (5,4,2,3),(5,6,1,3), (5,7,1,5),(5,8,1,3); (6,1,3,0),(6,6,3,3); (7,4,1,0),(7,5,1,3); (8,4,1,0),(8,5,1,0)。,(4)块状编码,特点: 1、面状地物所能包

14、含的正方形越大,多边形边界越简单,块码编码效率超高; 2、图形比较碎,多边形边界复杂的图形,数据压缩率低; 3、利于计算面积、合并插入等操作。,(4)块状编码,(5)四叉树编码(Quadtree Code),四叉树概述:四叉树又称为四元树或四分树,是最有效的栅格数据压缩编码方法之一,绝大部分图形操作和运算都可以直接在四叉树结构上实现,四叉树编码即压缩了数据量,又可大大提高图形操作的效率。,1、基本思想:将2n2n象元组成的图像(不足的用背景补上) 按四个象限进行递归分割,并判断属性是否单一, 单一:不分。 不单一:递归分割。 最后得到一颗四分叉的倒向树。,(5)四叉树编码(Quadtree C

15、ode),2、四叉树的树形表示: 用一倒立树表示分割和分割结果。 根:整个区域 高:深度、分几级,几次分割 叶:不能再分割的块 树叉:还需分割的块。,1)常规四叉树及编码,原始栅格,四叉树图,1)常规四叉树及编码,记录这棵树的叶结点外,中间结点,结点之间的联系用指针联系, 每个结点需要6个变量:父结点指针、四个子结点的指针和本结点的属性值。,对一幅2N 2N的栅格阵列,最大深度为N,可能有的层次为0,1,2,N,最大层数为N+1.那么,每层的栅格宽度为:2(最大深度-当前层次) 反映了所在叶结点表示的正方形集合的大小。,1)常规四叉树 及编码,缺点: 所占空间比较大,不仅要记录每个结点,还要记

16、录一个前趋结点和四个后继点,以及反映结点之间联系,对栅格数据进行运算时,还要作遍历树结点的运算,增加操作复杂性。,1)常规四叉树及编码,指针不仅增加了数据的存储量,还增加了操作的复杂性:如层次数(分割次数)由从父结点移到根结点的次数来确定,结点所代表的图像块的位置需要从根节点开始逐步推算下来。所以,常规四叉树并不广泛用于存储数据,其价值在于建立索引文件,进行数据检索。,2)线性四叉树及编码,以四叉树的方式组织数据,但不以四叉树方式存储数据。 通过编码四叉树的叶结点表示数据的层次和空间关系。叶结点具有一个反映位置的关键字,亦称位置码。实质是把原来大小相等的栅格集合转换成大小不等的正方形集合,对不

17、同尺寸和位置的正方形集合赋予一个位置码。,2)线性四叉树及编码,只存贮最后叶结点信息。包括:结点号、结点位置、深度、本节点的属性或灰度值象限划分:,2)线性四叉树及编码,2)线性四叉树及编码,(1)基于深度和层次码的线性四叉树编码它通过记录叶结点的深度码和层次码来描述叶结点的位置,2N为层次码。如图中叶结点(7)的编码为:,置码十进制值=243+相应的属性代码值,(2)基于四进制的线性四叉树编码,对每个栅格进行编码得表a。检查相邻4个m码的属性值,如相同进行合并,除去最低值,。经过一次检测后,再检测上层相邻四个块编码的属性值,如相同再合并。循环到没有能合并的子块为止,得表b。,首先将栅格阵列的

18、行列值分别转换成二进制码,得二进制行号Ib ,列号 Jb,然后求出四进制四叉树码 MQ=2* Ib + Jb,2)线性四叉树及编码,表a,表b,四进制的线性四叉树编码,四进制线性四叉树编码的特点: 优点是便于实现行列值及其编码之间的转换; 缺点是存储开销大,且一般软件都不支持四进制。,(2)基于四进制的线性四叉树编码,2)线性四叉树及编码,(3)基于十进制的线性四叉树编码,编码:将二进制的行列号按位交错排列,可得到四叉树叶结点的二进制地址码,进而将二进制码转成十进制码,得到四叉树编码。,0 0 1 1 1 0,行号=011,010=列号,MD=14,2)线性四叉树及编码,表a经自下而上归并得表

19、b。依次检查表a中四个相邻叶结点的属性代码是否相同。若相同则归并成一个父结点,记下地址及代码。否则不予归并。然后再归并更高一层父结点,如此循环,直到不能归并为止。,(3)基于十进制的线性四叉树编码,2)线性四叉树及编码,表a,表b,四叉树游程编码,特点:比四进制节省储存空间,且前后两个MD码之间差代表了叶结点的大小,还可进一步利用游程编码对数据进行压缩。 优点:具有可变分辨率,能精确表示图形的细节部分,编码效率高;具有区域性质,适合于图形图像的分析运算;便于岛的分析。,(3)基于十进制的线性四叉树编码,2)线性四叉树及编码,(三)四叉树优缺点,优点: 1)对于团块图像,四叉树表示法占用空间比网

20、络法要少得多,四叉树表示法基本上是一种非冗余表示法。 2)四叉树具有可变率或多重分辩率的特点使得它有很好的应用前景,适用于处理凝聚性或呈块状分布的空间数据,特别适用于处理分布不均匀的块状空间数据,但不适用于连续表面(如地形)或线状地物。 此外,目前应用四叉树还存下列问题: 1) 矢/栅正反变换还不理想。 2) 建立四叉树耗费机时很多。 3) 四叉树虽可修改,但很费事(具体的数据结构中会提到),(三)四叉树优缺点,4) 四叉树未能直接表示物体间的拓扑关系。,5) 与非树表示法比较,四叉树表示法的缺点在于转换的不稳定性或叫滑动变异 例如,两个图像的差异仅由于平移,就会构成极为不同的四叉树,因而很难

21、根据四叉树来判断这两个图像是否全同,故不利于做形状分析和模式识别,,6) 一个物体的图像在构成四叉树时会被分割到若干个象限中,使它失去了内在的相关性。,二、矢量数据结构-概念,(一)概念矢量结构是表达空间数据的另一种常见 数据结构,通过记录坐标的方式尽可能精 确地表示点、线、多边形等地理实体 。,二、矢量数据结构- (二)基本特征,点无大小、地理空间连续。 属性特征隐性表示。几何位置、属性数据、拓扑关系分别存储。 指向地物、感觉宏观 几何实体无论大小,每个实体均匀一条数据记录存储,一条记录指向一个地物。,二、矢量数据结构-(三)编码内容,唯一标识符空间位置:(x, y)坐标对拓扑关系 属性特征

22、时间特征,二、矢量数据结构- (三)编码内容,(3.1)点实体编码内容点实体包括单独一对(x,y)坐标定位的一切地 理或制图实体。点是空间上不能再分的地理实体,可以是具体 的或抽象的 。,二、矢量数据结构- (三)编码内容,(3.1)点实体,二、矢量数据结构- (三)编码内容,(3.2)线实体,由直线元素构成的各种线性要素。线实体主要用来表示线状地物符号线和多边形边界,有时也称为“弧”、“链”、“串”等 。,线实体编码基本内容,二、矢量数据结构- (三)编码内容,(3.3)多边形,区域实体中,具有名称属性和分类属性,多用多边形表示 。多边形矢量编码不但要表示位置和属性,更为重要的是要能表达区域

23、的拓扑性质 。,二、矢量数据结构- (四)矢量数据结构编码,编码方法:,无拓扑关系的编码方法:仅记录空间目标的位置和属性信息,而不记录拓扑关系。拓扑关系的编码方法:不仅记录空间目标的位置和属性信息, 而且记录拓扑关系。,二、矢量数据结构- (四)矢量数据结构编码,(4.1)坐标序列法,以多边形为单元进行组织。由多边形边界的x, y坐标对集合组成。 边界坐标数据与多边形单元实体一一对应,各个多边形的边界都有单独编码和数字化。,二、矢量数据结构- (四)矢量数据结构编码,(4.1)坐标序列法,10:x1,y1;x2,y2;x3,y3;x4,y4;x5,y5;x6,y6;x7,y7;x8,y8;x9

24、,y9;x10,y10;x11,y11;20:x1,y1;x12,y12;x13,y13;x14,y14;x15,y15; x16,y16;x17,y17;x18,y18;x19,y19;x20,y20;x21,y21;x22,y22;x23,y23;x8,y8;x9,y9;x10,y10;x11,y11;30:x33,y33;x34,y34;x35,y35;x36,y36;x37,y37;x38,y38;x39,y39;x40,y40;40:x19,y19;x20,y20;x21,y21;x28,y28;x29,y29;x30,y30;x31,y31;x32,y32;50:x21,y21;x

25、22,y22;x23,y23;x8,y8;x7,y7;x6,y6;x24,y24;x25,y25;x26,y26;x27,y27;x28,y28;,二、矢量数据结构- (四)矢量数据结构编码,(4.1)坐标序列法,优点:编码容易、数字化操作简单、数据编排直观。缺点:多边形之间公共边界数字化两遍,数据冗余存储,多边形边界容易出现间隙或重叠。缺少的多边形的邻域信息和图形的拓扑关系。岛作为一个单独的图形,没有建立与外界多边形的联系。,二、矢量数据结构- (四)矢量数据结构编码,(4.2)树状索引结构编码,采用树状索引,以减少数据冗余并间接增加邻域信息。 具体方法:对所有边界点进行数字化,将坐标对以顺

26、序方式存储,由点索引与边界号相联系,以线索引与各多边形相联系,形成树状索引结构。,二、矢量数据结构- (四)矢量数据结构编码,(4.2)树状索引结构编码,数据记录形式:,多边形文件 多边形与线索引文件 线文件 边界线与点索引文件 点文件,点文件:点号x,y坐标 线文件:线号起点终点点号序列 多边形文件:多边形号边界线号序列,例:P148-P149,索引式,线与多边形之间的树状索引,点与边界线之间的树状索引,二、矢量数据结构- (四)矢量数据结构编码,(4.2)树状索引结构编码,优点:数据冗余小、编排直观、邻域信息和岛状信息可以得到一定处理。 缺点:运算繁琐。邻接与包含关系处理困难。编码表要人工

27、建立,工作量大、易出错。,二、矢量数据结构- (四)矢量数据结构编码,(4.3)双重独立结构编码(DIME),采用拓扑编码结构,以线文件为编码主体。 数据记录形式:,点文件:点号x,y坐标 线文件:线号起点终点左多边形号右多边形号,特点:数据冗余进一步缩小,数据检核、更新和检索方便,能自动生产多边形文件。,二、矢量数据结构- (四)矢量数据结构编码,(4.3)双重独立结构编码,线文件,二、矢量数据结构- (四)矢量数据结构编码,(4.4)链状双重独立结构,是对DIME方法的一种改进。 DIME 中一条边只能由直线两端点及相邻面域表示,而这种方法可以将若干线段合为一个弧段,每个弧段有许多中间点,

28、其端点则为弧段的交点或起始点。,二、矢量数据结构- (四)矢量数据结构编码,(4.4)链状双重独立结构,弧段坐标文件:一系列点的位置坐标组成。 弧段文件:弧记录组成(记录弧的起止点号和左右多边形号)。 多边形文件:多边形记录组成(多边形号、有关弧段号,周长、面积、中心点坐标、岛状区域信息)。,二、矢量数据结构- (四)矢量数据结构编码,弧段坐标文件,弧段文件,多边形文件,三、栅格-矢量数据一体化结构-比较,(3.1) 两种数据结构的比较,三、栅格-矢量数据一体化结构-比较,三、栅格-矢量数据一体化结构-互换,(3.2) 两种数据结构的互换,一、点的转换 矢量结构:(X,Y) 坐标精度的变化 栅

29、格结构:(行,列),二、线的转换 矢量结构 点的内插 栅格结构 :数据精度降低 栅格结构 点的压缩 矢量结构 :坐标精度提高,三、面的转换 矢量结构 栅格结构 :多边形填充 栅格结构 矢量结构 :矢量化,(3.2) 两种数据结构的互换-矢量向栅格转换,矢量数据的坐标是直角坐标,原点为图的左下方; 栅格数据的坐标是行列坐标,原点在图的左上方。 在进行两种坐标数据转换时,通常使直角坐标的 x,y轴分别同栅格数据的行、列平行。,(3.2) 两种数据结构的互换-矢量向栅格转换, 确定栅格单元的大小,矢量数据向栅格数据转换时,首先必须确定栅格元素的大小,即分辨率。 根据原矢量图的大小,精度要求、所研究问

30、题的性质和存储空间,确定栅格的分辨率。,(3.2) 两种数据结构的互换-矢量向栅格转换,(3.2) 两种数据结构的互换-矢量向栅格转换, 点的转换,点的转换实质上是将点的矢量坐标转换成栅格数据中行列值i和j,从而得到点所在栅格元素的位置。,坐标精度的变化,(3.2) 两种数据结构的互换-矢量向栅格转换, 线的转换,曲线可用折线来表示的,也就是当折线上取点足够多时,所画的折线在视觉上成为曲线。因此,线的变换实质上是完成相邻两点之间直线的转换。,其转换过程不仅包括坐标点A,B分别从点矢量数据转换成栅格数据,还包括求出直线AB所经过的中间栅格数据。,(3.2) 两种数据结构的互换-矢量向栅格转换,

31、线的转换,具体转换过程:利用上述点转换法,将点A(x1,y1),B(x2,y2)分别转换成栅格数据,求出相应的栅格的行、列值。由上述行列值求出直线所在行列值的范围。确定直线经过的中间栅格列值。,(3.2) 两种数据结构的互换-矢量向栅格转换, 线的转换,1)求出相应i行中心处同直线相交的y值 。,2)用直线方程求出对应y值的点的x值 。,3)从x,y值按公式求出相应i行的列值j。,(3.2) 两种数据结构的互换-矢量向栅格转换, 线的转换,依据上述过程,依次求出直线经过的每个网格单元,并用直线的属性值去填充这些网格,就完成了线的转换。整个曲线或多边形边界经分段连续运算即可以完成转换。,于此类似

32、,可以先计算出两个端点的列值,知道直线要经过的列,然后计算各列中心线的Y值,再求出相应的行数I。,(3.2) 两种数据结构的互换-矢量向栅格转换, 面的填充,矢量数据结构中面域用边界线表示,面域内部是空心的;栅格数据结构中整个面域都要用属性值填充,因此,边界线转换完以后,必须进行面域属性值的填充。 常用算法:1.内部点扩散算法 2.复数积分算法 3.射线法 4.扫描算法 5.边界代数算法,(3.2) 两种数据结构的互换-矢量向栅格转换, 面的填充内部点扩散算法,该算法由每个多边形一个内部点(种子点)开始,向其八个方向的邻点扩散,判断各个新加入点是否在多边形边界上,如果是边界上,则该新加入点不作

33、为种子点,否则把非边界点的邻点作为新的种子点与原有种子点一起进行新的扩散运算,并将该种子点赋以该多边形的编号。,(3.2) 两种数据结构的互换-矢量向栅格转换, 面的填充复数积分算法,对全部栅格阵列逐个栅格单元地判断该栅格归属的多边形编码,判别方法是由待判点对每个多边形的封闭边界计算复数积分,对某个多边形,如果积分值为2i,则该待判点属于此多边形,赋以多边形编号,否则在此多边形外部,不属于该多边形。,(3.2) 两种数据结构的互换-矢量向栅格转换, 面的填充射线算法,射线算法可逐点判断数据栅格点在某多边形之外或在多边形内,由待判点向图外某点引射线,判断该射线与某多边形所有边界相交的总次数,如相

34、交偶数次,则待判点在该多边形外部,如为奇数次,则待判点在该多边形内部 采用射线算法,要注意的是:射线与多边形边界相交时,有一些特殊情况会影响交点的个数,必须予以排除。,射线算法,射线算法的特殊情况,(3.2) 两种数据结构的互换-矢量向栅格转换, 面的填充扫描算法,扫描算法是射线算法的改进,将射线改为沿栅格阵列,列或行方向扫描线,常用的方法有:平行线扫描法和铅垂线跌落法。,(3.2) 两种数据结构的互换-矢量向栅格转换, 面的填充扫描算法,平行线扫描法:从待检验的栅格单元作一平行于x 轴的扫描线,当与多边形相交的点数为偶数时,则该栅格在多边形之外,当交点为奇数时,该栅格在多边形之内。 有时也会

35、出现极值点的情况,就会出现错误判断。,Y,X,(3.2) 两种数据结构的互换-矢量向栅格转换, 面的填充扫描算法,铅垂线跌落法:从待检验的栅格单元作一垂直于x 轴的直线,检查它与多边形边界交点的点数,偶数时在多边形之外,奇数时在多边形之内。 为了避免错误可同时采用这两种算法,只要一种方法交点为奇数,该点就在多边形之内。,X,(3.2) 两种数据结构的互换-矢量向栅格转换, 面的填充边界代数算法任伏虎, 单个多边形,初始化栅格阵列,所有单元赋值为0。欲填充多边形值为a。以栅格行列为参考坐标轴,以多边形边界上某一点为起始点顺时针方向搜索边界。边界上行时,左侧同行栅格单元值-a。边界下行时,左侧同行

36、栅格单元值+a。回到起点,形成栅格多边形。,(3.2) 两种数据结构的互换-矢量向栅格转换,(3.2) 两种数据结构的互换-矢量向栅格转换, 面的填充边界代数算法, 多个多边形,对每幅地图的全部具有左右多边形编号的边界弧段,沿其前进的方向逐个搜索,当边界上行时,将边界线位置与左图框之间的网格点加上一个值=(左多边形编号-右多边形编号);当边界下行时,将边界线位置与左图框之间的网格点加上一个值=(右多边形编号-左多边形编号);当边界平行栅格行行走时,不做运算。,(3.2) 两种数据结构的互换-矢量向栅格转换,(3.2) 两种数据结构的互换-栅格向矢量转换,从栅格单元转换到几何图形的过程称为矢量化

37、。矢量化过程中,达到某个单元值与周围均不同,则该单元代表一个点。如果具有某一属性值的单元是连续的可将它们搜索出来,并细化处理,取中间的单元连接成的位置作为一条线。对面状图形的处理要复杂一些。,基于图像处理的矢量化 基于窗口匹配的矢量化,(3.2) 两种数据结构的互换-栅格向矢量转换,一种是本身为遥感影像图或栅格化的分类图,矢量化之前必须进行边界提取,再将其处理成近似线划图的二值图像,才能转换成矢量数据。一种是线划图扫描得到的栅格图,二值化后的线划宽度往往占据多个栅格,此时需要细化处理后才能矢量化。,基于图像处理的矢量化,二值化 将图像中的灰度取一个阈值,凡高于阈值的灰度取1,低于阈值的灰度取0

38、。设阈值为 ,则二值化后的像元灰度值为:式中f(i,j)为原像元灰度。 二值图像中的图形用1表示,背景用0表示。,(3.2) 两种数据结构的互换-栅格向矢量转换,细化也称为栅格数据的轴化,就是将占用多个栅格宽度的 图形要素缩减为只有单个栅格宽度的图形要素的过程。 剥皮法 骨架法,(3.2) 两种数据结构的互换-栅格向矢量转换,(1)剥 皮 法,概念:剥皮法就是每次删掉外层的一些栅格,直到最后留下彼此连通的由单个栅格组成的图形。 具体做法:用一个3*3的栅格窗口,在栅格图上逐个检查每个栅格元。被查栅格能否删去,由以该栅格为中心的组合图来决定。 原则:不允许剥去会导致图形不连通的栅格,也不能在图形

39、中形成孔。,栅格组合图,2、3、4、5、10、11、12、16、21、24、28、33、34、35、38、42、43、46、50,可将中心点剥去的组合格式有19种:,具体做法 扫描全图,凡是像元值为1的栅格都用V值取代。V值是该栅格与北、东和北东三个相邻栅格像元值之和,即 在V值图上保留最大V值的栅格,删去其他栅格,但必须保证连通。因为最大V值的栅格只能分布在图形的中心线上(骨架上),因此选取最大值栅格的过程就是细化的过程。,(2)骨 架 法,跟 踪,细化后的二值图像形成了骨架图,跟踪就是把骨架转换为矢量图形的坐标序列。,类似于栅格采用链码的栅格跟踪过程,找出线段经过的栅格。将栅格(i,j)坐

40、标转换成直角坐标(X,Y),格网中心点坐标:,跟 踪,其基本步骤为: 1.从左向右,从上向下搜索线划起始点,并记 下坐标。 2.朝该点的8个方向追踪点,若没有,则本条线 的追踪结束,转(1)进行下条线的追踪;否则记 下坐标。 3.把搜索点移到新取的点上,转2。,(3.2) 两种数据结构的互换-栅格向矢量转换, 基本步骤: 多边形(面实体)的栅格数据向矢量数据的转换实质上就是将空间具有相同属性代码的栅格象元集合表示为以边界弧段以及边界的拓扑信息所确定的多边形区域。 多边形边界提取 边界线追踪 拓扑关系生成 去除多余点及曲线圆滑,基于窗口匹配的矢量化,(3.2) 两种数据结构的互换-栅格向矢量转换

41、, 双边界搜索算法 基本思想:通过边界提取,将左右多边形信息保存 在边界点上,每条边界弧段由两个并行的边界链组 成,以分别记录该边界弧段的左右多边形编号。具体步骤:边界点和结点的提取。边界线搜索与左右多边形信息记录。多余点去除。,(3.2) 两种数据结构的互换-栅格向矢量转换, 边界点和结点的提取:,以2*2栅格阵列作为活动窗口,沿行、列方向扫描全 图,由此区域内的四个栅格数据的组合形式判定。1)若四个栅格仅有两个不同编号且对角线上编号不完全相同,则为边界点,并保留各栅格所有多边形编号。2)若四个栅格有三个或四个不同的编号为结点。3)若四个栅格有二个不同的编号且对角线上编号完全相同为结点。,(

42、3.2) 两种数据结构的互换-栅格向矢量转换, 边界点和结点的提取:,边界点的6种情况,结点的8种情况,(3.2) 两种数据结构的互换-栅格向矢量转换, 边界线的搜索与左右多边形信息记录:,以某一个结点为起始点,向任一相邻单位搜索,搜索方向由进入方向和本单位结构决定,到达另一结点形成一条弧段,结点坐标由组成结点的四个栅格单元的行列号决定,弧段左右多边形信息由边界点决定。, 多余点的去除:,某一弧段上连续三点,若满足直线方程,则中间一点予以去除。,(3.2) 两种数据结构的互换-栅格向矢量转换,(3.2) 两种数据结构的互换-栅格向矢量转换,栅格多边形,边界点和结点,多余点去除,边界搜索,(3.

43、3)栅格-矢量数据一体化结构,矢量与栅格数据,按照传统的观念,认为是两类完全不同性质的数据结构,当利用它们来表达空间目标时,对于线状实体,人们习惯使用矢量数据结构。对于面状实体,在基于矢量的GIS中,主要使用边界表达法,而在基于栅格的GIS中,一般用元子空间填充表达法。由此,人们联想到对用矢量方法表示的线状实体,是不是也可以采用元子空间填充法来表示,即在数字化一个线状实体时,除记录原始取样点外,还记录所通过的栅格。同样,每个面状地物除记录它的多边形边界外,还记录中间包含的栅格。,为了建立矢量与栅格一体化数据结构,要对点、线、 面目标数据结构的存储要求作如下的统一约定:,(1)对点状目标,因为没

44、有形状和面积,在计算机内部只需要表示该 点的一个位置数据及与结点关联的弧段信息。(2)对线状目标,它有形状,但没有面积,在计算机内部需用一组元 子来填满整个路径,并表示该弧段相关的拓扑信息。(3)对面状目标,它既有形状,又有面积,在计算机内部需表示由元 子填满路径的组边界和由边界组成的紧凑空间 。,(3.3)栅格-矢量数据一体化结构,由于栅格数据结构的精度较低,需利用细分格网的方法,来提高点、线和面状目标边界线的数据表达精度。在有点、线目标通过的基本格网内,再细分成256256个细格网。当精度要求较低时,也可以细分成16l6个细格网 。,(3.3)栅格-矢量数据一体化结构,为使数据格式一致,基

45、本格网和细分格网都采用线性四叉树的编码方法,将采样点和线性目标与基本格网的交点用两个Morton码表示(均用十进制Morton码,简称M码)。 其中,M1表示该点(取样点或附加的交叉点)所在的基本格网地址码,M2表示该点对应的细分格网的Morton码,即M1和M2是将同一对X、Y坐标转换成的两个Morton码。,(3.3)栅格-矢量数据一体化结构,1、点状地物和结点的数据结构,(3.3)栅格-矢量数据一体化结构设计,点状地物仅有位置、没有形状和面积,不必将点状地物作为一个覆盖层分解为四叉树,只要将点的坐标转化为地址码M1 和M2 ,而不管整个构形是否为四叉树。,这种结构简单灵活,便于点的插入和

46、删除,还能处理一个栅格内包含多个点状目标的情况。所有点状地物以及弧段之间的结点可以用一个文件表示。,1、点状地物和结点的数据结构,(3.3)栅格-矢量数据一体化结构设计,2、线状地物的数据结构,(3.3)栅格-矢量数据一体化结构设计,线状地物有形状没有面积,和点状地物一样不必用一个完全的覆盖层分解四叉树,而只要用一串数据表达每个线状地物的路径即可。,2、线状地物的数据结构,(3.3)栅格-矢量数据一体化结构设计,一个线状地物可能有几条弧段组成,所以应先建立 一个弧段数据文件 。一条弧段的中间点不仅包含原始取样点,而且要将 该线状地物经过的所有栅格的地址全部记录下来。,2、线状地物的数据结构,(

47、3.3)栅格-矢量数据一体化结构设计,2、线状地物的数据结构,(3.3)栅格-矢量数据一体化结构设计,这种数据结构比单纯的矢量结构增加了一定的存储 量,但它解决了线状地物的四叉树表达问题,使它与点 状、面状地物一起建立统一的基于线性四叉树编码的数 据结构体系。这对于点状地物与线状地物相交,线状地 物之间的相交,以及线状地物与面状地物相交的查询问 题变得相当简便和快速。,3、面状地物的数据结构,(3.3)栅格-矢量数据一体化结构设计,根据对面状地物的约定,一个面状地物应记录边界 和边界所包围的整个面域。其中边界由弧段组成,它同 样引用弧段结构表的弧段信息。面域信息则由线性四叉 树或二维行程编码表

48、示。,(3.3)栅格-矢量数据一体化结构设计,(3.3)栅格-矢量数据一体化结构设计,(3.3)栅格-矢量数据一体化结构设计,带指针的二维行程表,弧段文件,面文件,(3.3)栅格-矢量数据一体化结构设计,这种数据结构是面向地物的,具有矢量的特点。通过面状地物的标识号可以找到它的边界弧段并顺着指针提取所有的中间面块。同时它又具有栅格的全部特性,二维行程本身就是面向位置的结构,Morton码表达了位置的相互关系,前后M码之差隐含了该子块的大小。给出任意一点的位置都可在带指针的二维行程表中顺着指针找到面状地物的标识号确定是哪一个地物。,4、复杂地物的数据结构,(3.3)栅格-矢量数据一体化结构设计,由几个或几种点、线、面状简单地物组成的地物称为复杂地物。 例如将一条公路上的中心线、交通灯、立交桥等组合为一个复杂地物,用一个标识号表示。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 职业教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报