第三章 空间数据结构

《第三章 空间数据结构》由会员分享,可在线阅读,更多相关《第三章 空间数据结构(64页珍藏版)》请在文档大全上搜索。
1、6/1/20221地理信息系统基础主讲教师:王卫红主讲教师:王卫红6/1/20222GIS基本功能的实现过程文件图表数据获取 原始数据存储检索空间查询空间分析数据编辑投影变换数据输出 制图、表格 交互展示 GIS数据空间数据库6/1/20223第三章第三章 空间数据结构空间数据结构数据结构是指数据组织的形式,是适合于计算机存储、管理和处理的数据逻辑结构;对空间数据而言则是地理实体的空间排列方式和相互关系的抽象描述,是对数据的一种理解和解释。不说明数据结构的数据是毫无用处的,不仅用户无法理解,计算机程序也不能正确处理。第一节 栅格数据结构第二节 矢量数据结构第三节 两种数据结构的比较和转换第四节
2、 其他数据结构6/1/20224第一节 栅格数据结构 栅格数据:栅格数据结构,又称为网格结构或像元结构。实际就是像元阵列,每个像元由行列确定它的位置。由于栅格结构是按一定的规则排列的,所表示的实体位置很容易隐含在数据文件的存储结构中,且行列坐标可以很容易地转为其它坐标系下的坐标。每个像元包含一个代码,代码本身明确地代表了实体的属性类型或量值,或仅仅包含指向其属性记录的指针。 6/1/20225点线面点:为一个像元线:在一定方向上连接成串的相邻像元集合。面:聚集在一起的相邻像元集合。B,B,B,B,B,R,B,B,E,E, B,E,H,B,R,B,B,B,E,E, B,E,B,B,R,P,P,B
3、, E,B, E,B,B,B,R,P,P,B,B,B, B,B,B,R,P,P,B,B,B,B, B,B,B,R,B,B,B,B,B,B, B,B,B,R,B,B,B,B,B,B, B,B,R,B,B,B,B,B,H,B, B,B,R,B,B,B,B,B,B,B, B,R,R,B,B,B,B,B,B,B返回6/1/20226获得栅格结构数据的途径 目读法:在地图上均匀划分网格,逐个网格地确定其代码; 矢量数字化法:用数字化仪得到矢量数据结构后,再转换成栅格结构; 扫描数字化:逐点扫描地图,将扫描数据进行重采样和再编码; 分类影像输入:将经过分类解译的遥感影像数据直接或重采样后输入系统。6/1/
4、20227栅格数据结构特点 离散的量化栅格值表示空间对象。 位置隐含,属性明显。 数据结构简单,易于扩充、修改,特别易于与遥感数据结合,但数据量大。 适合于高级语言作文件或矩阵处理。 存在几何和属性误差。6/1/20228栅格数据的几何误差 在下图中,在下图中,acac的距离应为的距离应为5 5,但在栅格结构中,如以像元,但在栅格结构中,如以像元边线计算则为边线计算则为7 7,以像元为单位则为,以像元为单位则为4 4。 三角形三角形abcabc的面积应为的面积应为6 6个平方单位,而在栅格结构中则为个平方单位,而在栅格结构中则为7 7个个平方单位,这种误差随像元的增大而增加。平方单位,这种误差
5、随像元的增大而增加。abc345abcac距离距离: 7 (5)abc面积面积: 76/1/20229栅格数据的属性误差 在一个栅格的地表范围内,可能存在具有不同属性的地理实体,如可能存在多于一种的地物,而表示在相应的栅格结构中常常只能是一个代码,因此出现属性误差。6/1/202210栅格数据单元属性值确定栅格数据单元属性值确定CAB百分比法面积占优重要性中心点法A连续分布地理要素C具有特殊意义的较小地物A分类较细、地物斑块较小AB为了逼近原始数据精度,除了采用这几种取值方法外,还可以采用缩小单个栅格单元的面积,增加栅格单元总数的方法 。6/1/202211栅格数据压缩存储的编码方法(1)链式
6、编码(Chain Codes)又称为弗里曼链码(Freeman)或边界链码。该方法将线状地物和面状地物的边界表示为:由某一起点开始并按某些基本方向确定的单位矢量链。链式编码的前两位数字表示起点的行、列数,从第三个数字开始表示单位矢量的方向。如果右图中面状地物的起点为像元(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。 012345676/1/202212栅格数据压缩存储的编码方法(2)游程长度编码(RunLength Codes) 对
7、左图进行的游程长度编码是(9,4), (0,4), (9,3), (0,5), (0,1), (9,2), (0,1), (7,2), (0,2), (0,4), (7,2), (0,2), (0,4), (7,4), (0,4), (7,4), (0,4), (7,4), (0,4), (7,4)。 游程长度编码只在各行(或列)数据的代码发生变化时依次记录该代码以及相同代码重复的个数。6/1/202213栅格数据压缩存储的编码方法(3)块式编码(Block Codes) 块式编码是将游程长度编码扩大到二维的情况,把多边形范围划分成由像元组成的正方形,然后对各个正方形进行编码。如图:块式编码的
8、数据结构由初始位置(行号,列号)和边长,再加上记录单元的代码组成。根据这一编码原则,上述多边形只需12个单位正方形。5个4单位的正方形和2个16单位的正方形就能完整表示,总共要41个数据,其中19对坐标,3个块的半径。 具体编码如下(1,1,2,9),(1,3,1,9),(1,4,1,9),(1,5,2,0),(1,7,2,0),(2,3,1,9)6/1/202214栅格数据压缩存储的编码方法(4)四叉树编码(Quadtree Encoding) 四叉树编码又称为四分树、四元树编码,是一种更有效地压编数据的方法。它将 像元阵列连续进行4等分,如果某正方形的所有格网值相同,则该正方形就不再继续分
9、割,否则还要把它再分割成四个正方形,如下图。也可采用从下而上的方法建立,对栅格数据按如下的顺序进行检测:如果每相邻四个格网值相同则进行合并,逐次向上递归合并,直到符合四叉树的原则为止。后者与前者相比,运算速度较快。9999000099090000900977000000770000007777000077770000777700007777999900000009999900707000000777777000000077777777000077007070000007007099 9 9 0 0 9 0 0 9000NWNESWSEn2n2父结点、本结点、叶(子)结点6/1/202215 6
10、/1/2022166/1/202217例如:对于第例如:对于第5行、第行、第7列的列的Morton码为:码为: 行数行数 = 5(0 1 0 1) ,列数,列数 = 7 (0 1 1 1)Morton码码 = 0 0 1 1 0 1 1 1 = 556/1/202218码与行列号(i,j)间存在有函数关系, 如果找到这种函数关系,则可使二维地址码变为一维,可进行简单的排序、快速扫描。可将网格代码值直接赋给以码为下标的数组单元。解码时,由码找出对应的行列号,将代码填回网格。完成代码的存储和回放。6/1/2022196/1/2022206/1/202221二维行程编码二维行程编码 在生成的线性四叉
11、树表中,仍存在前后叶结点的值相同的情况,因而可以采取进一步的压缩表达,即将格网值相同的前后结点合并成一个值,形成二维行程编码(Two Dimen- sional Run Encoding,简称 2DRE)表。在这种二维行程编码中,前后两个地址码之差表达了该行程段的格网数,它可以表示该子块的大小。6/1/202222栅格数据的各种压缩编码方式的比较压缩编码方式特 点链式编码 对线状和面状地理实体的表示有很强的压缩能力;具有一定的运算功能;探测边界急弯和凹进部分等比较容易;类似矢量数据结构,比较适合存储图形数据。 对叠置运算很难实施;对局部修改将改变整体结构;效率较低;相邻多边形的边界被重复存储从