空间数据结构.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 空间数据结构 数据结构即指数据组织的形式,是适合于计算机存储、管理和处理的数据逻辑结构。地理信息系统空间数据结构是指空间数据在系统内的组织和编码形式(GIS数据结构也可称为图形数据格式),它是指适合于计算机系统存储、管理和处理地理图形的逻辑结构。GIS中,空间数据一般有着较为复杂的数据结构,目前,主要有两种数据模型表示空间数据,即矢量数据模型和栅格数据模型。 4.1 栅格数据结构 概述 栅格数据是计算机和其它信息输入输出设备广泛使用的一种数据模型,如电视机、显示器、打印机等的空间寻址。甚至专门用于矢量图形的输入输出设备,如数字化仪、矢量绘图仪及扫描仪等,其内部结构实质上是栅格的。遥感数据也是采用特殊扫描平台获得的栅格数据。 栅格数据就是用数字表示的像元阵列,其中,栅格的行和列规定了实体所在的坐标空间,而数字矩阵本身则描述了实体的属性或属性编码。栅格数据最显著的特点就是存在着最小的、不能再分的栅格单元,在形式上常表现为整齐的数字矩阵,因而便于计算机进行处理,特别是存储和显示。 编码方案 以图4-1为例,介绍几种编码方法的编码思路、方案和特点。 AA A A A A A A A R R A A A A A R R A A A A A A A R A A A A G G G A R A A A A G G G G G G G A A A R A G A G G A A A R G A G G A A A R A A A A A R A A A 游程长度编码 地理数据往往有较强的相关性,也就是说相邻象元的值往往是相同的。游程长度编码的基本思想是:按行扫描,将相邻等值的象元合并,并记录代码的重复个数。游程长度编码的数据结构: 行号,属性,重复次数。图4-1的游程长度编码为: 1,A,4,R,1,A,6… 对于游程长度编码,区域越大,数据的相关性越强,则压缩越大。其特点是,压缩效率较高,叠加、合并等运算简单,编码和解码运算快。 块式编码 块式编码是将游程扩大到二维情况,把多边形范围划分成若干具有同一属性的正方形,然后对各个正方形进行编码。块式编码的基本思想:由初始位置(行列号)、半径和属性代码组成。图4-1的块状编码为: (1,1,3,A),(1,5,1,R),(1,6,2,A),… 块状编码对大而简单的多边形更为有效,对一些虽不较多的复杂多边形效果并不好。块状编码在合并、插入、检查延伸型、计算面积等操作时有明显的优越性,而对某些运算不适应,必须在转换成简单的数据形式才能顺利进行运算。 四叉树编码 四叉树编码是最有效的栅格数据压缩编码方法之一,是一种可变分率的非均匀网格系统,在GIS中有广泛的应用。其基本思路为:2n×2n象元组成的图像(不足的用背景补上)按四个象限进行递归分割,直到子象限的数据单调为止,最后得到一棵四分叉的倒向树(图4-1)。四叉树有两种,一种是常规四叉树,在子节点与父节点之间设立指针,由于指针占用空间较大,难以达到数据压缩的目的。所以,常规四叉树并不广泛用于存储数据,其价值在于建立索引文件,进行数据检索。另一种是线性四叉树,它不需要记录中间节点和使用指针,仅记录叶节点,并用地址码表示叶节点的位置。因而,线性四叉树广泛应用于数据压缩和GIS中的数据结构。下面介绍最常用的线性四叉树编码。 图4-1 四分叉的倒向树 线性四叉树编码的基本思想是:不需记录中间结点和使用指针,仅记录叶结点,并用地址码(定位码、Morton码)表示叶结点的位置——深度(几次分割)和属性。为了得到线性四叉树的地址码,首先将二维栅格数据的行列号转化为二进制数,然后交叉放入Morton码中,即为线性四叉树的地址码。实质上是按左上、右上、左下、右下的顺序,从零开始对每个栅格进行自然编码。这样,在一个2n×2n的图像中,每个像元点都给出一个Morton码,当n=3时即为(表3—1): 行表3—1 Morton码 行 列 列 0 1 2 3 4 5 6 7 0 0 1 4 5 16 17 20 21 1 2 3 6 7 18 19 22 23 2 8 9 12 13 24 25 28 29 3 10 11 14 15 26 27 30 31 4 32 33 36 37 48 49 52 53 5 34 35 38 39 50 51 54 55 6 40 41 44 45 56 57 60 61 7 42 43 46 47 58 59 62 63 这样就可将用行列表示的二维图像,用Morton码写成一维数据,通过Morton码就可知道象元的位置。把一幅2n×2n的图像压缩成线性四叉树的过程为: 1、按Morton码把图象读入一维数组。第一维为Morton码,第二维为象元值。 2、相邻的四个象元比较,一致的合并,只记录第一个象元的Morton码。循环

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档