地理信息系统电子教案第三章空间数据结构Word下载.docx

上传人:b****5 文档编号:19491634 上传时间:2023-01-06 格式:DOCX 页数:23 大小:406.11KB
下载 相关 举报
地理信息系统电子教案第三章空间数据结构Word下载.docx_第1页
第1页 / 共23页
地理信息系统电子教案第三章空间数据结构Word下载.docx_第2页
第2页 / 共23页
地理信息系统电子教案第三章空间数据结构Word下载.docx_第3页
第3页 / 共23页
地理信息系统电子教案第三章空间数据结构Word下载.docx_第4页
第4页 / 共23页
地理信息系统电子教案第三章空间数据结构Word下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

地理信息系统电子教案第三章空间数据结构Word下载.docx

《地理信息系统电子教案第三章空间数据结构Word下载.docx》由会员分享,可在线阅读,更多相关《地理信息系统电子教案第三章空间数据结构Word下载.docx(23页珍藏版)》请在冰豆网上搜索。

地理信息系统电子教案第三章空间数据结构Word下载.docx

栅格结构表示的地表是不连续的,是量化和近似离散的数据。

在栅格结构中,地表被分成相互邻接、规则排列的矩形方块(特殊的情况下也可以是三角形或菱形、六边形等(如图3-2所示),每个地块与一个栅格单元相对应。

栅格数据的比例尺就是栅格大小与地表相应单元大小之比。

在许多栅格数据处理时,常假设栅格所表示的量化表面是连续的,以便使用某些连续函数。

由于栅格结构对地表的量化,在计算面积、长度、距离、形状等空间指标时,若栅格尺寸较大,则会造成较大的误差,同时由于在一个栅格的地表范围内,可能存在多于一种的地物,而表示在相应的栅格结构中常常只能是一个代码。

这类似于遥感影像的混合象元问题,如landsatMSS卫星影像单个象元对应地表79×

79m2的矩形区域,影像上记录的光谱数据是每个象元所对应的地表区域内所有地物类型的光谱辐射的总和效果。

因而,这种误差不仅有形态上的畸变,还可能包括属性方面的偏差。

栅格结构数据主要可由四个途径得到,即

①目读法:

在专题图上均匀划分网格,逐个网格地决定其代码,最后形成栅格数字地图文件;

②数字化仪手扶或自动跟踪数字化地图,得到矢量结构数据后,再转换为栅格结构;

③扫描数字化:

逐点扫描专题地图,将扫描数据重采样和再编码得到栅格数据文件;

④分类影像输入:

将经过分类解译的遥感影像数据直接或重采样后输入系统,作为栅格数据结构的专题地图。

在转换和重新采样时,需尽可能保持原图或原始数据精度,通常有两种办法:

第一,在决定栅格代码时尽量保持地表的真实性,保证最大的信息容量。

图3-3所示的一块矩形地表区域。

内部含有A、B、C三种地物类型,O点为中心点,将这个矩形区域近似地表示为栅格结构中的一个栅格单元时,可根据需要,采取如下方案之一决定该栅格单元的代码:

图3-3栅格单元代码的确定

①中心点法:

用处于栅格中心处的地物类型或现象特性决定栅格代码。

在图3-3所示的矩形区域中,中心点O落在代码为C的地物范围内,按中心点法的规则,该矩形区域相应的栅格单元代码应为C,中心点法常用于具有连续分布特性的地理要素,如降雨量分布,人口密度图等。

②面积占优法:

以占矩形区域面积最大的地物类型或现象特性决定栅格单元的代码。

在图3-3所示的例中,显见B类地物所占面积最大,故相应栅格代码定为B。

面积占优法常用于分类较细,地物类别斑块较小的情况。

③重要性法:

根据栅格内不同地物的重要性,选取最重要的地物类型决定相应的栅格单元代码、假设图3-3中A类为最重要的地物类型,即A比B和C类更为重要,则栅格单元的代码应为A。

重要性法常用于具有特殊意义而面积较小的地理要素,特别是点、线状地理要素,如城镇、交通枢钮、交通线、河流水系等,在棚格中代码应尽量表示这些重要地物。

④百分比法:

根据矩形区域内各地理要素所占面积的百分比数确定栅格单元的代码参与,如可记面积最大的两类BA,也可根据B类和A类所占面积百分比数在代码中加入数字。

逼近原始精度的第二种方法是缩小单个栅格单元的面积,即增加栅格单元的总数,行列数也相应地增加。

这样,每个栅格单元可代表更为精细的地面矩形单元,混合单元减少。

混合类别和混合的面积都大大减小,可以大大提高量算的精度;

接近真实的形态,表现更细小的地物类型。

然而增加栅格个数、提高数据精度的同时也带来了一个严重的问题,那就是数据量的大幅度增加,数据冗余严重。

为了解决这个难题,已发展了一系列栅格数据压缩编码方法,如游程长度编码、块码和四叉树码等。

二、栅格数据的压缩编码方式

1、链式编码(ChainCodes)

图3-4链式编码的方向代码

链式编码又称为弗里曼链码(Freeman,1961)或边界链码。

链式编码主要是记录线状地物和面状地物的边界。

它把线状地物和面状地物的边界表示为:

由某一起始点开始并按某些基本方向确定的单位矢量链。

基本方向可定义为:

东=0,东南=l,南=2,西南=3,西=4,西北=5,北=6,东北=7等八个基本方向(如图3-4所示)。

如果对于图3-5所示的线状地物确定其起始点为像元(1,5),则其链式编码为:

图3-5链式编码示意图

1,5,3,3,3,3,3,3,3

对于图3-5所示的面状地物,假设其原起始点定为像元(5,8),则该多边形边界按顺时针方向的链式编码为:

5,8,3,2,4,4,6,6,7,6,0,2,1

链式编码的前两个数字表示起点的行、列数,从第三个数字开始的每个数字表示单位矢量的方向,八个方向以0—7的整数代表。

链式编码对线状和多边形的表示具有很强的数据压缩能力,且具有一定的运算功能,如面积和周长计算等,探测边界急弯和凹进部分等都比较容易,类似矢量数据结构,比较适于存储图形数据。

缺点是对叠置运算如组合、相交等则很难实施,对局部修改将改变整体结构,效率较低,而且由于链码以每个区域为单位存储边界,相邻区域的边界则被重复存储而产生冗余。

2、游程长度编码(run-lengthcode)

游程长度编码是栅格数据压缩的重要编码方法,它的基本思路是:

对于一幅栅格图像,常常有行(或列)方向上相邻的若干点具有相同的属性代码,因而可采取某种方法压缩那些重复的记录内容。

其编码方案是,只在各行(或列)数据的代码发生变化时依次记录该代码以及相同代码重复的个数,从而实现数据的压缩。

例如对图3-6(a)所示的栅格数据,可沿行方向进行如下游程长度编码:

(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)

游程长度编码对图3-6(a)只用了40个整数就可以表示,而如果用前述的直接编码却需要64个整数表示,可见游程长度编码压缩数据是十分有效又简便的。

事实上,压缩比的大小是与图的复杂程度成反比的,在变化多的部分,游程数就多,变化少的部分游程数就少,图件越简单,压缩效率就越高。

游程长度编码在栅格加密时,数据量没有明显增加,压缩效率较高,且易于检索,叠加合并等操作,运算简单,适用于机器存贮容量小,数据需大量压缩,而又要避免复杂的编码解码运算增加处理和操作时间的情况。

3、块状编码(blockcode)

块码是游程长度编码扩展到二维的情况,采用方形区域作为记录单元,每个记录单元包括相邻的若干栅格,数据结构由初始位置(行、列号)和半径,再加上记录单元的代码组成。

根据块状编码的原则,对图3-6(a)所示图像可以用12个单位正方形,5个4单位的正方形和2个16单位的正方形就能完整表示,具体编码如下:

(1,1,2,9),(1,3,1,9),(1,4,1,9),(1,5,2,0),(1,7,2,0),(2,3,1,9),(2,4,1,0),(3,1,1,0),(3,2,1,9),(3,3,1,9),(3,4,1,0),(3,5,2,7),(3,7,2,0),(4,4,1,0),(4,2,1,0),(4,3,1,0),(4,4,1,0),(5,1,4,0),(5,5,4,7)

一个多边形所包含的正方形越大,多边形的边界越简单,块状编码的效率就越好。

块状编码对大而简单的多边形更为有效,而对那些碎部较多的复杂多边形效果并不好。

块状编码在合并、插入、检查延伸性、计算面积等操作时有明显的优越性。

然而对某些运算不适应,必须在转换成简单数据形式才能顺利进行。

4、四叉树编码(quad-treecode)

四又树结构的基本思想是将一幅栅格地图或图像等分为四部分。

逐块检查其格网属性值(或灰度)。

如果某个子区的所有格网值都具有相同的值。

则这个子区就不再继续分割,否则还要把这个子区再分割成四个子区。

这样依次地分割,直到每个子块都只含有相同的属性值或灰度为止。

图3-6(b)表示对图3-6(a)的分割过程及其关系。

这四个等分区称为四个子象限,按左上(NW)、右上(NE)、左下(SW),右下(SE)。

用—个树结构表示如图3-7所示。

对一个由n*n(n=2*k,k>

1)的栅格方阵组成的区域P,它的四个子象限(Pa,Pb,Pc,Pd)分别为:

再下一层的子象限分别为:

图3-8区域P子象限的表示

其中a、b、c、d分别表示西北(NW)、东北(NE)、西南(SW)、东南(SE)四个子象限。

根据这些表达式可以求得任一层的某个子象限在全区的行列位置,并对这个位置范围内的网格值进行检测。

若数值单调,就不再细分,按照这种方法,可以完成整个区域四叉树的建立。

这种从上而下的分割需要大量的运算,因为大量数据需要重复检查才能确定划分。

当n*n的矩阵比较大,且区域内容要素又比较复杂时,建立这种四叉树的速度比较慢。

另一种是采用从下而上的方法建立。

对栅格数据按如下的顺序进行检测。

如果每相邻四个网格值相同则进行合并,逐次往上递归合并,直到符合四叉树的原则为止。

这种方法重复计算较少,运算速度较快。

从图中可以看出,为了保证四叉树能不断的分解下去,要求图象必须为2n*2n的栅格阵列,n为极限分割次数,n+1是四叉树的最大高度或最大层数。

对于非标准尺寸的图象需首先通过增加背景的方法将图象扩充为2n*2n的图象,也就是说在程序设计时,对不足的部分以0补足(在建树时,对于补足部分生成的叶结点不存储,这样存储量并不会增加)。

四叉树编码法有许多有趣的优点:

①容易而有效地计算多边形的数量特征;

②阵列各部分的分辨率是可变的,边界复杂部分四叉树较高即分级多,分辨率也高,而不需表示许多细节的部分则分级少,分辨率低,因而既可精确表示图形结构又可减少存贮量;

②栅格到四叉树及四叉树到简单栅格结构的转换比其它压缩方法容易;

④多边形中嵌套异类小多边形的表示较方便。

四叉树编码的最大缺点是转换的不定性,用同一形状和大小的多边形可能得出多种不同的四叉树结构,故不利于形状分析和模式识别。

但因它允许多边形中嵌套多边形即所谓“洞”这种结构存在,使越来越多的地理信息系统工作者都对四叉树结构很感兴趣。

上述这些压缩数据的方法应视图形的复杂情况合理选用,同时应在系统中备有相应的程序。

另外,用户的分析目的和分析方法也决定着压缩方法的选取。

四叉树结构按其编码的方法不同又分为常规四叉树和线性四叉树。

常规四叉树除了记录叶结点之外,还要记录中间结点。

结点之间借助指针联系,每个结点需要用六个量表达:

四个叶结点指针,一个父结点指针和一个结点的属性或灰度值。

这些指针不仅增加了数据贮存量,而且增加了操作的复杂性。

常规四叉树主要在数据索引和图幅索引等方面应用。

线性四叉树则只存贮最后叶结点的信息。

包括叶结点的位置、深度和本结点的属性或灰度值。

所谓深度是指处于四叉树的第几层上。

由深度可推知子区的大小。

线性四叉树叶结点的编号需要遵循一定的规则,这种编号称为地址码,它隐含了叶结点的位置和深度信息。

最常用的地址码是四进制或十进制的Morton码。

5、八叉树

八叉树结构(见图3-9)就是将空间区域不断地分解为八个同样大小的子区域(即将一个六面的立方体再分解为八个相同大小的小立方体),分解的次数越多,子区域就越小,一直到同—区域的属性单一为止。

按从下而上合并的方式来说,就是将研究区空间先按—定的分辨率将三维空间划分为三维栅格网,然后按规定的顺序每次比较3个相邻的栅格单元,如果其属性值相同则合并,否则就记盘。

依次递归运算,直到每个子区域均为单值为止。

八叉树同样可分为常规八叉树和线性八叉树。

常规八叉树的结点要记录十个位,即八个指向子结点的指针,—个指向父结点的指针和一个属性值(或标识号)。

而线性八叉树则只需要记录叶结点的地址码和属性值。

因此,它的主要优点是,其一节省存储空间,因为只需对叶结点编码,节省了大量中间结点的存储。

每个结点的指针也免除了,而从根到某一特定结点的方向和路径的信息隐含在定位码之中,定位码数字的个位数显示分辨率的高低或分解程度;

其次,线性八叉树可直接寻址,通过其坐标值则能计算出任何输入结点的定位码(称编码),而不必实际建立八叉树,并且定位码本身就是坐标的另—种形式,不必有意去存储坐标值。

若需要的话还能从定位码中获取其坐标值(称解码);

其三,在操作方面,所产生的定位码容易存储和执行,容易实现象集合、相加等组合操作。

图3-9八叉树编码图解(n=3)

八叉树主要用来解决地理信息系统中的三维问题。

第二节矢量数据结构

地理信息系统中另一种最常见的图形数据结构为矢量结构,即通过记录坐标的方式尽可能精确地表示点、线、多边形等地理实体,坐标空间设为连续,允许任意位置、长度和面积的精确定义,事实上,因为如下原因,也不可能得到绝对精确的值:

1、表示坐标的计算机字长有限;

2、所有矢量输出设备包括绘图仪在内,尽管分辨率比栅格设备高,但也有一定的步长;

3、矢量法输入时曲线选取的点不可能太多;

4、人工输图中不可避免的定位误差。

在前面第二章中已知道,矢量数据存储是以隐式关系以最小的存储空间存储复杂的数据。

当然这只是相对而言,在地理信息系统中没有绝对“最好”的方法。

一、矢量数据结构编码的基本内容

1、点实体点实体包括由单独一对x,y坐标定位的一切地理或制图实体。

在矢量数据结构中,除点实体的x,y坐标外还应存储其它一些与点实体有关的数据来描述点实体的类型、制图符号和显示要求等。

点是空间上不可再分的地理实体,可以是具体的也可以是抽象的,如地物点、文本位置点或线段网络的结点等,如果点是一个与其它信息无关的符号,则记录时应包括符号类型、大小、方向等有关信息;

如果点是文本实体,记录的数据应包括字符大小、字体、排列方式、比例、方向以及与其它非图形属性的联系方式等信息。

对其它类型的点实体也应做相应的处理。

图3—10说明了点实体的矢量数据结构的一种组织方式。

图3-10点实体的矢量数据结构

2、线实体线实体可以定义为直线元素组成的各种线性要素,直线元素由两对以上的x,y坐标定义。

最简单的线实体只存储它的起止点坐标、属性、显示符等有关数据。

例如,线实体输出时可能用实线或虚线描绘,这类信息属符号信息,它说明线实体的输出方式。

虽然线实体并不是以虚线存储,仍可用虚线输出。

弧、链是n个坐标对的集合,这些坐标可以描述任何连续而又复杂的曲线。

组成曲线的线元素越短,x,y坐标数量越多,就越逼近于一条复杂曲线,既要节省存储空间,又要求较为精确地描绘曲线,唯一的办法是增加数据处理工作量。

亦即在线实体的纪录中加入一个指示字,当起动显示程序时,这个指示字告诉程序:

需要数学内插函数(例如样条函数)加密数据点且与原来的点匹配。

于是能在输出设备上得到较精确的曲线。

不过,数据内插工作却增加了。

弧和链的存储记录中也要加入线的符号类型等信息。

线的网络结构。

简单的线或链携带彼此互相连接的空间信息,而这种连接信息又是供排水网和道路网分析中必不可少的信息。

因此要在数据结构中建立指针系统才能让计算机在复杂的线网结构中逐线跟踪每一条线。

指针的建立要以结点为基础。

如建立水网中每条支流之间连接关系时必须使用这种指针系统。

指针系统包括结点指向线的指针。

每条从结点出发的线汇于结点处的角度等,从而完整地定义线网络的拓扑关系。

图3-11线实体矢量编码的基本内容

如上所述,线实体主要用来表示线状地物(公路、水系、山脊线)、符号线和多边形边界,有时也称为“弧”、“链”、“串”等,其矢量编码包括以下内容:

其中唯一标识是系统排列序号:

线标识码可以标识线的类型;

起始点和终止点可以用点号或直接用坐标表示;

显示信息是显示线的文本或符号等;

与线相联的非几何属性可以直接存储于线文件中,也可单独存储,而由标识码联接查找。

3、面实体

多边形(有时称为区域)数据是描述地理空间信息的最重要的一类数据。

在区域实体中,具有名称属性和分类属性的,多用多边形表示,如行政区、土地类型、植被分布等;

具有标量属性的有时也用等值线描述(如地形、降雨量等)。

多边形矢量编码,不但要表示位置和属性,更重要的是能表达区域的拓扑特征,如形状、邻域和层次结构等,以便使这些基本的空间单元可以作为专题图的资料进行显示和操作,由于要表达的信息十分丰富,基于多边形的运算多而复杂,因此多边形矢量编码比点和线实体的矢量编码要复杂得多,也更为重要。

在讨论多边形数据结构编码的时候,首先对多边形网提出如下的要求:

(1)组成地图的每个多边形应有唯一的形状、周长和面积。

它们不象栅格结构那样具有简单而标准的基本单元。

即使大多数美国的规划街区也不能设想它们具有完全一样的形状和大小。

对土壤或地质图上的多边形来说更不可能有相同的形状和大小。

(2)地理分析要求的数据结构应能够记录每个多边形的邻域关系,其方法与水系网中记录连接关系一样。

(3)专题地图上的多边形并不都是同一等级的多边形,而可能是多边形内嵌套小的多边形(次一级)。

例如,湖泊的水涯线在土地利用图上可算是个岛状多边形,而湖中的岛屿为“岛中之岛”。

这种所谓“岛”或“洞”的结构是多边形关系中较难处理的问题。

二、矢量数据结构编码的方法

矢量数据结构的编码形式,按照其功能和方法可分为:

实体式、索引式、双重独立式和链状双重独立式。

1、实体式

图3-12多边形原始数据

实体式数据结构是指构成多边形边界的各个线段,以多边形为单元进行组织。

按照这种数据结构,边界坐标数据和多边形单元实体一一对应,各个多边形边界都单独编码和数字化。

例如对图3-12所示的多边形A、B、C、D、E,可以用表3-1的数据来表示。

表3-1多边形数据文件

多边形

数据项

A

(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5),(x6,y6),(x7,y7),(x8,y8),(x9,y9),(x1,y1)

B

(x1,y1),(x9,y9),(x8,y8),(x17,y17),(x16,y16),(x15,y15),(x14,y14),(x13,y13),(x12,y12),(x11,y11),(x10,y10),(x1,y1)

C

(x24,y24),(x25,y25),(x26,y26),(x27,y27),(x28,y28),(x29,y29),(x30,y30),(x31,y31),(x24,y24)

D

(x19,y19),(x20,y20),(x21,y21),(x22,y22),(x23,y23),(x15,y15),(x16,y16),(x19,y19)

E

(x5,y5),(x18,y18),(x19,y19),(x16,y16),(x17,y17),(x8,y8),(x7,y7),(x6,y6),(x5,y5)

这种数据结构具有编码容易、数字化操作简单和数据编排直观等优点。

但这种方法也有以下明显缺点:

(1)相邻多边形的公共边界要数字化两遍,造成数据冗余存储,可能导致输出的公共边界出现间隙或重叠;

(2)缺少多边形的邻域信息和图形的拓扑关系;

(3)岛只作为一个单个图形,没有建立与外界多边形的联系。

因此,实体式编码只用在简单的系统中。

2、索引式

索引式数据结构采用树状索引以减少数据冗余并间接增加邻域信息,具体方法是对所有边界点进行数字化,将坐标对以顺序方式存储,由点索引与边界线号相联系,以线索引与各多边形相联系,形成树状索引结构。

图3-13线与多边形之间的树状索引

树状索引结构消除了相邻多边形边界的数据冗余和不一致的问题,在简化过于复杂的边界线或合并多边形时可不必改造索引表,邻域信息和岛状信息可以通过对多边形文件的线索引处理得到,但是比较繁琐,因而给邻域函数运算、消除无用边、处理岛状信息以及检查拓扑关系等带来一定的困难,而且两个编码表都要以人工方式建立,工作量大且容易出错。

图3-14点与线之间的树状索引

图3-13、3-14分别为图3-12的多边形文件和线文件树状索引图。

图3-15多边形原始数据

3、双重独立式

这种数据结构最早是由美国人口统计局研制来进行人口普查分析和制图的,简称为DIME(DuallndependentMapEncoding)系统或双重独立式的地图编码法。

它以城市街道为编码的主体。

其特点是采用了拓扑编码结构。

双重独立式数据结构是对图上网状或面状要素的任何一条线段,用其两端的节点及相邻面域来予以定义。

例如对图3-15所示的多边形数据,用双重独立数据结构表示如表3-2所示:

表中的第一行表示线段a的方向是从节点1到节点8,其左侧面域为O,右侧面域为A。

在双重独立式数据结构中,节点与节点或者面域与面域之间为邻接关系,节点与线段或者面域与线段之间为关联关系。

这种邻接和关联的关系称为拓朴关系。

利用这种拓朴关系来组织数据,可以有效地进行数据存储正确性检查,同时便于对数据进行更新和检索。

因为在这种数据结构中,当编码数据经过计算机编辑处理以后,面域单元的第一个始节点

表3-2双重

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

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1