(精品)第四章 空间数据结构.ppt
《(精品)第四章 空间数据结构.ppt》由会员分享,可在线阅读,更多相关《(精品)第四章 空间数据结构.ppt(132页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章 空间数据结构 数据结构数据结构即数据的组织形式,是适用于计算机存储、管理、处理的数据逻辑表达。换句话说,是指数据以什么形式在计算机中存储和处理。空间数据结构空间数据结构是空间逻辑数据模型在计算机中的组织关系和编排方式。包括基于矢量模型的矢量数据结构、基于栅格模型的栅格数据结构和基于不规则镶嵌模型的TIN的曲面数据结构等。4.1矢量数据结构 矢量数据结构矢量数据结构是对矢量数据模型进行数据的组织,通过记录坐标的方式尽可能精确地表示点、线、多边形等地理实体,坐标空间设为连续,允许任意位置、长度和面积的精确定义。其精度仅受数字化设备的精度和数值记录字精度仅受数字化设备的精度和数值记录字长的限
2、制。长的限制。矢量数据矢量数据矢量数据的类型Buildings.PolygonStreams,LineWells,PointRoads,LineZoning,PolygonMAP SHEETS 矢量结构允许最复杂的数据以最小的数据冗余进行存储,相对栅格结构来说,数据精度高,数据存储的冗余小,是高效的空间数据结构。分为实体数据结构实体数据结构和拓扑数据结构拓扑数据结构。4.1.1实体数据结构 实体数据结构中,空间数据按照基本的空间对象(点、线或多边形)为单元进行单独的组织,其中不包含拓扑关系信息,最典型的是所谓的面条(spaghetti)结构,又称为坐标序列法。常采用这种数据结构的有ArcGIS
3、中的Shape文件和MapInfo的Tab文件等。(49页)点的表示线的表示面的表示矢量数据模型中单一空间实体的表达矢量数据模型中单一空间实体的表达坐标序列法(坐标序列法(Spaghetti方式)示例方式)示例图形数据10:x1,y1;x2,y2;x3,y3;x4,y4;x5,y5;x6,y6;x7,y7;x8,y8;x9,y9;x10,y10;x11,y11;x1,y1。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;x
4、9,y9;x10,y10;x11,y11;x1,y1。编码数据坐标序列法的优缺点坐标序列法的优缺点优点:文件结构简单,易于实现以多边形为单位的运算和显示 缺点:1)对于相连的线,交叉点要重复输入和存储;对于多边形其公共边也要重复输入和存储,从而产生数据冗余和分析处理不便的问题;2)对于复杂多边形,不能解决多边形中“岛”、“洞”之类的镶套问题,“岛”或“洞”只能作为单个的多边形来构造,没有和周围的多边形建立关系;3)很难检查多边形的边界正确与否,即多边形的完整性;4)每个多边形自成体系,缺少有关邻域的信息,使拓扑关系,即相邻关系很难跟踪。适用范围:制图及一般查询,不适合复杂的空间分析适用范围:制
5、图及一般查询,不适合复杂的空间分析4.1.2 拓扑结构编码法具有拓扑关系的矢量数据结构就是拓扑数据结构。拓扑数据模型是一种基于矢量的比较有效的数据模型,ArcGIS的Coverage就是一种拓扑数据结构。拓扑数据结构包括树状索引编码法、双重独立编码结构、链状双重独立编码结构等。其其实质是通过地实质是通过地理实体之间的空间关系表示来线和多边形理实体之间的空间关系表示来线和多边形。基本概念弧段:构成多边形的线称为弧段,每个弧段可以有许多中间点。节点:两条以上弧段相交的点称为节点岛:由一条弧段组成的多边形称为岛或洞。简单多边形:多边形图中不含岛的多边形称为简单多边形。复合多边形:含岛的多边形称为复合
6、多边形,包括为边界和内边界,岛可以看做复合多边形的内边界。1 树状索引编码法(层次索引法、索引式结构)采用树状索引以减少数据冗余并间接增加邻域信息,方法是对所有边界点进行数字化,将坐标对对所有边界点进行数字化,将坐标对以顺序方式存储,由点索引与边界线号相联系,以以顺序方式存储,由点索引与边界线号相联系,以线索引与各多边形相联系,形成树状索引结构线索引与各多边形相联系,形成树状索引结构 树状索引编码法示例树状索引编码法示例图形数据树状索引编码法示例树状索引编码法示例线与多边形之间的树状索引树状索引编码法示例树状索引编码法示例点与边界线之间的树状索引 树状索引编码法示例树状索引编码法示例形成的文件
7、记录索引式 线与多边形之间的树状索引线与多边形之间的树状索引 点与多边形之间的树状索引点与多边形之间的树状索引 树状索引编码消除了相邻多边形边界的数据冗余和不一致的问题,在简化过于复杂的边界线或合并相邻多边形时可不必改造索引表,邻域信息和岛状信息可以通过对多边形文件的线索引处理得到,但是但是比较繁琐,因而给相邻函数运算,消除无用边,处理岛状信息以及检查拓扑关系带来一定的困难,而且两个编码表都需要以人工方式建立,工作量大且容易出错。2.双重独立编码结构 美国人口调查局于1980年建立的双重独立地图编码系统。简称DIME(Dual Independent Map Encoding),这种结构最适合
8、于城市地理信息系统。线文件是双重独立编码结构的基本对象。线文件由线标识码、起始节点、终止节点、左多边形和右多边形组成;节点文件由节点的标识码、节点坐标及与该节点连接的线的标识码等;多边形文件由多边形标识码、组成该多边形的线标识码组成。C4N4C8C6P3P3C7N6C10N3C3N1P1P1C2N2C1P2P2C5N5P4P4P5P5C9N7线号线号线号线号起结点起结点起结点起结点终结点终结点终结点终结点左多边形左多边形左多边形左多边形右多边形右多边形右多边形右多边形C C1 1N N1 1N N2 2P P2 2P P1 1C C2 2N N3 3N N2 2P P1 1P P4 4C C3
9、 3N N1 1N N3 3P P1 1C C4 4N N1 1N N4 4P P2 2C C5 5N N2 2N N5 5P P2 2P P4 4C C6 6N N4 4N N5 5P P3 3P P2 2多边形:多边形由一系列的相互连结的线组成,并通过其内部的唯一标识点来标识。标识点的标识码和该多边形属性表中的标识码相一致,由此建立的多边形空间信息和属性信息的关系。多边形线IDP1C1,C2,C3P2C1,C5,C4P3C6,C7,C8P4C5,C7,C10,C2.C4N4C8C6P3P3C7N6C10N3C3N1P1P1C2N2C1P2P2C5N5P4P4P5P5C9N7面拓扑节点坐标线
10、N1X1,y1C1,C4,C3N2X2,y2C1,C5,C2N3X3,y3C2,C3,C10N4X4,y4C4,C6,C8.C4N4C8C6P3P3C7N6C10N3C3N1P1P1C2N2C1P2P2C5N5P4P4P5P5C9N7点拓扑补充:基于双重独立编码的拓扑检查1.从线文件中,找出与当前编辑的多边形相关的所有记录。如对上例中的P1进行检查,先在线文件中找出与p1有关的所有记录:线号线号线号线号起结点起结点起结点起结点终结点终结点终结点终结点左多边形左多边形左多边形左多边形右多边形右多边形右多边形右多边形C C1 1N N1 1N N2 2P P2 2P P1 1C C2 2N N3
11、3N N2 2P P1 1P P4 4C C3 3N N1 1N N3 3P P1 1C4N4C8C6P3P3C7N6C10N3C3N1P1P1C2N2C1 P2P2C5N5P4P4P5P5C9N7补充:基于双重独立编码的拓扑检查2.如果P1在左(右)多边形的位置,将之与处在右(左)多边形处位置的多边形号相交换,同时也将该记录的节点号位置相应的交换;反之,顺序不变。线号线号线号线号起结点起结点起结点起结点终结点终结点终结点终结点左多边形左多边形左多边形左多边形右多边形右多边形右多边形右多边形C C1 1N N1 1N N2 2P P2 2P P1 1C C2 2N N2 2N N3 3P P4
12、 4P P1 1C C3 3N N3 3N N1 1P P1 1C4N4C8C6P3P3C7N6C10N3C3N1P1P1C2N2C1 P2P2C5N5P4P4P5P5C9N7补充:基于双重独立编码的拓扑检查3.从经过代码位置转换的记录中,任取一个起始节点作为起点,顺序连接各节点,使得节点能自行封闭,即 N1 N2 N3 N1。如果不能自动封闭,则说明出现记录缺损或多余,线文件有错误。线号线号线号线号起结点起结点起结点起结点终结点终结点终结点终结点左多边形左多边形左多边形左多边形右多边形右多边形右多边形右多边形C C1 1N N1 1N N2 2P P2 2P P1 1C C2 2N N2 2
13、N N3 3P P4 4P P1 1C C3 3N N3 3N N1 1P P1 1C4N4C8C6P3P3C7N6C10N3C3N1P1P1C2N2C1 P2P2C5N5P4P4P5P5C9N73.链式双重独立编码结构 链式双重独立编码是DIME数据结构的一种改进。在DIME中,一条边只能用直线两端点的序号及相邻多边形表示,而在链状数据结构中,将若干条直线段合为一个弧段(或链段),每个弧段可以有许多中间点。ARCGIS中的Coverage数据模型就是采用链式双重独立编码结构。拓扑结构的特点是拓扑结构的特点是:除结点外,每个空间对象都是由更基本的对象组成的。只有点的坐标是被实际存储的,其他复杂
14、空间对象的坐标信息实际上是逻辑构成的。任一复杂对象能分解为一组结点及其拓扑关系的定义。这样,一个图层中存储的全部坐标信息就是结点的坐标,建立其他对象只是建立对这些坐标的引用。虽然建立拓扑结构需要额外的存储数据,但对坐标数据的存储却没有数据冗余的问题。拓扑结构编码是某些空间分析的基础。小结小结 矢量数据结构特点:定位明显,属性隐含矢量数据结构特点:定位明显,属性隐含。其定位是根据坐标直接存储的,无需任何推算;属性则一般存于文件头或数据结构中某些特定的位置上。这种特点使得矢量数据结构在图形运算的算法总体上比栅格数据结构复杂的多,在叠加运算、邻域搜索等操作时比较困难,有些甚至难以实现,但其也有便利和
15、独到之处,在计算长度、面积、形状和图形编辑、几何变换操作中,矢量结构有很高的效率和精度。4.2 栅格数据结构 栅格结构是最简单最直接的空间数据结构,是指将地球表面划分为大小均匀紧密相邻的网格阵列,每个网格作为一个象元或象素由行、列定义,并包含一个代码表示该象素的属性类型或量值,或仅仅包括指向其属性记录的指针。栅格数据编码方法分为两大类:直接栅格编码(完全栅格数据结构)压缩编码方法(压缩栅格数据结构)链码链码 游程长度编码游程长度编码 块码块码 四叉树四叉树 二维行程编码二维行程编码4.2.1 直接栅格编码直接编码就是将栅格数据看作一个数据矩阵,逐行(或逐列)逐个记录代码,可以每行都从左到右逐个
16、象元进行记录,也可以奇数行地从左到右而偶数行地从右向左记录,为了特定目的还可采用其他特殊的顺序 一些常用的栅格排列顺序4.2.2 压缩编码方式 压缩编码的目的就是用尽可能少的数据量记录尽可能多的信息,其类型分为信息无损编码:编码过程中没有任何信息损失,通过解码操作可以完全恢复原来的信息信息有损编码:为了提高编码效率,最大限度地压缩数据,在压缩过程中损失一部分相对不太重要的信息,解码时这部分难以恢复 在地理信息系统中的压缩编码多采用信息无损编码,而对在地理信息系统中的压缩编码多采用信息无损编码,而对原始遥感影像进行压缩时也可以采取有损压缩编码方法。原始遥感影像进行压缩时也可以采取有损压缩编码方法
17、。链码(链码(Chain CodesChain Codes)链式编码又称为弗里曼链码(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 表示起点为第十行第一列,从第三个
18、数字开始每个数字表示单位矢量的方向,八个方向以07 的整数代表。5555443355554432555553225555552276614433777144332221111122555551练习练习链码(链码(Chain Codes)优缺点)优缺点优点:链式编码对多边形的表示具有很强的数据压缩能力,且具有一定的运算功能,如面积和周长计算等,探测边界急弯和凹进部分等都比较容易,比较适于存储图形数据。缺点:对叠置运算如组合、相交等则很难实施,对局部修改将改变整体结构,效率较低,而且由于链码以每个区域为单位存储边界,相邻区域的公共边界被重复存储会产生冗余。游程长度编码游程长度编码(Run-Leng
19、th Codes)它的基本思路是:对于一幅栅格图像,常常有行(或列)方向上相邻的若干点具有相同的属性代码,因而可采取某种方法压缩那些重复的记录内容。所谓的游程(行程)游程(行程)是指栅格矩阵内相邻同值栅格的数量。游程长度编码(Run-Length Codes)其实现方法有两种一种编码方案是,只在各行(或列)数据的代码发生变化时依次记录该代码以及相同的代码重复的个数,从而实现数据的压缩。另一种游程长度编码方案就是逐个记录各行(或列)代码发生变化的位置和相应代码 游程长度编码示例按第一种编码方法(左上角坐标,沿行方向),此数据游程长度编码:(0,1),(4,2),(7,5);(4,5),(7,3)
20、;(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)。用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)。按第二种编码方法,记录各行(或记录各行(或列)代码发生变
21、化的位置和相应代码列)代码发生变化的位置和相应代码此数据游程长度编码(左上角坐标,沿列方向):游程编码能否压缩数据量,主要取决于栅格数据的性质,通常可以通过事先测试,估计数据冗余度Re:Re=1-Q/mn 式中:Q表示相邻属性值变化次数的累加和 m表示行数 n表示列数 当Re的值大于1/5时,表示栅格数据的压缩可取的明显的效果其压缩效果可以由压缩比来表征:S=mn/K 式中:K为游程总数 m表示行数 n表示列数 压缩比越大,表示压缩效果越好游程长度编码优缺点优点压缩效率较高,且易于进行检索,叠加合并等操作,运算简单,适用于机器存储容量小,数据需大量压缩,而又要避免复杂的编码解码运算增加处理和操
22、作时间的情况 缺点对于图斑破碎,属性和边界多变的数据压缩效率较低,甚至压缩后的数据量比原始数据还大。块码(块码(Chain CodesChain Codes)块码是游程长度编码扩展到二维的情况,采用方形区域作为记录单元,每个记录单元包括相邻的若干栅格,数据结构由初始位置(行、列号)和半径,再加上记录单位的代码组成。块码编码示例其块码编码为:(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)
23、,(3,4,1,4),(3,5,2,8),(3,7,2,7),(4,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)。四叉树四叉树编码编码四叉树编码将整个图像区逐步分解为四叉树编码将整个图像区逐步分解为一系列仅包含单一类型的方形区域,最一系列仅包含单一类型的方形区域,最小的方形区域为一个栅格象元。小的方形区域为一个栅格象元。四叉树编码 其基本分割方法是将一幅栅格地图或图像等
24、分等分为四部分。逐块检查其栅格属性值(或灰度)。如果某个子区的所有栅格值都具有相同的值。则这个子区就不再继续分割,否则还要把这个子区再分割成四个子区。这样依次地分割,直到每个子块都只含有相同的属性值或灰度为止。四叉树编码示例 四叉树编码要求 采用四叉树编码时,为了保证四叉树分解能不断地进行下去,要求图像必须为2n2 n的栅格阵列,对于非标准尺寸的图像需首先通过增加背景的方法将图像扩充为2 n 2 n的图像。生成四叉树主要有两种方法,即自上而下(top-down)和自下而上(bottton-up)。由上而下的方法运算量大,耗时较长。因而实践中可以采用从下而上的方法建立四叉树编码。对栅格数据按Mo
25、rton码的顺序进行检测:如果每相邻四个栅格值相同则进行合并,逐次往上递归合并,直到符合四叉树的原则为止。这种方法重复计算较少,运算速度较快。四叉树的生成四叉树的生成四叉树结构的编码方式四叉树结构按其编码的方法不同分为常规四叉树和线性四叉树:常规四叉树常规四叉树:除了记录叶结点之外,还要记录中间结点。结点之间借助指针联系,每个结点需要用六个量表达:四个叶结点指针,一个父结点指四个叶结点指针,一个父结点指针和一个结点的属性或灰度值针和一个结点的属性或灰度值。这些指针不仅增加了数据贮存量,而且增加了操作的复杂性。常规四叉树主要在数据索引和图幅索引数据索引和图幅索引等方面应用。四叉树结构的编码方式线
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品第四章 空间数据结构 精品 第四 空间 数据结构
限制150内