850 likes | 1k Views
第三节 空间数据库设计. 一、空间数据库设计概述 二、数据库设计内容. 一、空间数据库设计概述. 现实世界. 计算机世界. 信息世界. 数据库设计的步骤. 二、数据库设计内容. 1. 需求分析 需求分析是整个数据库设计与建立的基础 , 它主要包括 调查用户的需求和数据的收集和分析以及编制用户需求说明书。 2. 概念设计 对需求分析阶段所搜集的信息和数据进行分析、整理 , 确定地理实体、属性及它们之间的联系 , 将各用户的局部视图合并成一个全局视图 , 形成独立于计算机的反映用户需求的概念模型。 3. 逻辑设计
E N D
第三节 空间数据库设计 • 一、空间数据库设计概述 • 二、数据库设计内容
一、空间数据库设计概述 现实世界 计算机世界 信息世界 数据库设计的步骤
二、数据库设计内容 1. 需求分析 需求分析是整个数据库设计与建立的基础, 它主要包括调查用户的需求和数据的收集和分析以及编制用户需求说明书。 2. 概念设计 对需求分析阶段所搜集的信息和数据进行分析、整理 , 确定地理实体、属性及它们之间的联系,将各用户的局部视图合并成一个全局视图, 形成独立于计算机的反映用户需求的概念模型。 3. 逻辑设计 数据库逻辑设计的任务是: 把信息世界中的概念模型利用数据库管理系统所提供的工具映射为数据库管理系统所支持的数据模型, 并用数据描述语言表达出来。 逻辑设计又称为数据模型映射。例如将上述概念设计所获得的实体一联系模型转换成关系数据库模型。 4. 物理设计 数据库的物理设计指数据库存储结构和存储路径的设计, 即将数据库的逻辑模型在实际的物理存储设备上加以实现,
第四节 土地信息的数据结构 空间数据的拓扑关系 矢量数据结构 栅格数据结构
一、空间数据的拓扑关系 • 拓扑的基本概念 • 空间数据的拓扑关系 • 拓扑关系的关联表达
1、拓扑的基本概念 空间目标的描述可用两种不同的几何术语来表示: • 在几何形态方面,常用解析几何方法,主要涉及目标的坐标、角度、方向、距离、周长和面积等 • 在空间关系方面,采用拓扑几何来描述,主要涉及目标与周围其他地物 “相连”、“相邻”、“包含“等
拓扑学 拓扑学(Topolog y):研究空间实体的拓扑关系的科学 拓扑关系是明确定义空间结构的一种数学方法,它表示要素间的邻接关系和包含关系,这些信息在地图上借助图形来识别和解释,而在计算机中则利用拓扑关系对各种数据加以完善严密地组织,帮助系统进行空间分析工作,因而拓扑关系是LIS(GIS)数据中一个重要内容
图形中各种类型元素的概念 • 点:(x、y) • 线(line):一组(x、y)坐标组成 • 区(Polygon):封闭的一组(x、y)坐标组成 • 结点(node):坐标链的交(端)点 • 弧段(Arc): 区的周边线 • 岛:起始结点与终点结点相同
从拓扑观点出发, 关心的是空间的点、线、面之间的联结关系, 而不管实际图形的形状。因此, 几何结构相差很大的图形,其拓扑关系可能相同。 a a e b b e c d d c 不同结点之间的拓扑关系
不同多边形之间的拓扑关系 a b c d
LIS(GIS)中拓扑关系的意义 • 根据拓扑关系,不需要坐标和距离,即可确定一个地理实体相对另一个地理实体的位置关系; • 拓扑关系较几何数据有更大的稳定性,它不随地图投影而改变; • 有利于空间分析及查询:例如邻里分析、最佳路径计算等
2、空间数据的拓扑关系 (1)拓扑关联性:拓扑关联性表示空间图形中不同类型元素, 如结点、弧段及多边形之间的拓扑关系。如图4-12所示的图形, 具有多边形和弧段之间的关联性,也有弧段和结点之间的关联性。即从图形的关联性出发, 图4-12可用关联表来表示。 N3
用关联表来表示图的优点是每条弧段所包含的坐标点只需存储一次, 如果不考虑它们之间的关联性而以每个多边形的全部封闭弧段的坐标点来存储数据, 不仅数据量大, 还无法反应空间关系。
(2) 拓扑邻接性 拓扑邻接性表示图形中同类元素之间的拓扑关系。如多边形之间的邻接性、弧段之间的邻接性以及结点之间的邻接性(连通性)。由于弧段的走向是有向的, 因此, 通常用弧段的左右多边形来表示并求出多边形的邻接性, 如图4-12所示。用弧段的左右多边形表示时, 得到表4-5。显然, 同一弧段的左右多边形必然邻接, 从而得到如表4-5b所示的邻接矩阵表,表中值为1处, 所对应多边形临界。根据表4-5b整理得到多边形邻接性表, 如表4-5c 。 多边形之间的邻接性
同理, 从图 4-12 可得到如表4-6所示的弧段和结点之间的关系表。由于同一弧段上两个结点必连通, 同一结点上的各弧段必相邻, 所以分别得弧段之间邻接矩阵和结点之间连通性矩阵如表4-7a、表4-7b所示。 弧段和结点之间的关系表
弧段之间的邻接性及结点之间的连通性 a 弧段的邻接矩阵 b 结点的连通矩阵
(3) 拓扑包含性 • 拓扑包含性是表示空间图形中, 面状实体所包含的其他面状实体或线状、点实体的关系。面状实体中包含面状实体的情况又分三种, 即: 简单包含、多层包含和等价包含。如图4一13的a、b和C所示。 P1 P2 P2 P3 P1 P2 P1 P3 a b c
3. 拓扑关系的关联表达 拓扑关系的关联表达是指采用什么样的拓扑关联来表达空间位置数据间的关系。在土地信息系统中,通常可采用全显式表达和半隐式表达方式。 (1)全显式表达。全显式表达不仅明确表示空间数据一弧段一点之间的拓扑关系, 同时还明显表达了点一弧段一多边形之间的关系。为了描述图4- 1所示图及其拓扑关系, 可用关联表4-8 到表4-l来表示。 a4
4-8 多边形一弧段的拓扑关联表 4-9 弧段一结点的拓扑关联表 4-11 弧段一多边形拓扑关联表 4-10 结点一弧段的拓扑关联表
(2) 半隐式表示。分析表4-8到4-1可知:从表4-9可以推导出表4-10; 同样, 从表中4-10推导出表4-9, 而且, 这种推导相当简单; 同时, 从表4-8和表4-9也可推导出表4-11, 但这种推导关系比较复杂。基于上述原因, 为了简化拓扑关联表达, 又便于使用, 常常选择表4-a表4-9和表4-10中的一个以及表4一11来表达矢量数据结构中不同元素的拓扑关联性。在此基础上, 还可以进一步把表进行合并, 形成如表4-12所示的半隐式表示。 Arc/Info 中弧段数据结构
二、矢量数据结构 空间实体的表达: • 地理空间实体必须进行数据表达,计算机才能进行处理 • 对空间实体表达时,点是构成地理空间实体的基本元素,所以关键是对点元素的表达。 • 如果采用一个没有大小的点(坐标)来表达基本点元素,称为矢量表示法;如果采用一个有固定大小的点(面元)来表达基本点元素,称为栅格表示法,它们分别对应矢量数据模型和栅格数据模型 • 两种数据模型代表着从信息世界观点对现实世界空间目标的两种不同的数据表达方法,它们在功能、使用方法和应用对象上都有一定的差异,这在一定程度上反映出GIS表示现实世界的不同概念,也是人类悟性的产物。
矢量数据结构特点 • 基于矢量数据模型的数据结构简称为矢量数据结构 • 矢量数据结构的优点是: 数据占存贮空间小, 空间位置精度高, 空间关系描述全面, 容易建立拓扑关系, 空间和属性数据综合查询更新方便。 • 矢量数据结构的主要缺点是: 数据结构复杂, 处理位置关系(包括相交、通过、包含等)费时, 地图叠加分析较困难, 边界复杂模糊的事物难以描述, 不能直接处理图像信息, 与DTM和RS结合困难等。
一般常用的几种矢量数据结构为 (1)完整多边形结构 (Whole Polygon Structure); (2) 二元独立地图编码文件结构 [Dual Independent Map Encoding (DIME)File Structure]; (3) 弧一结点结构 (Arc - Node Structure); (4) 关系结构 (Relational Structure); (5) 数字化线图形 (Digital Line Graph)
(一) 完整多边形结构 6 4 • 该法文件结构简单, 易于实现以多边形为单位进行的运算和显示 , 但是也有如下缺点 : • 多边形之间的公共边被数字化和 存贮两次, 由此产生数据冗余和边界不重合 • (2) 每个多边形自成体系而缺少相邻多边形信息, 难以进行邻域处理, 如合并同类时要消除共边。 • (3)“岛”只作为一个单个图形构造, 没有与其外包多边形的联系。 • (4)不易对边界的拓扑关系进行检查。 2 0 2 4 6 多边形 II 2,2 4,2 4,0 1,0 多边形 HI 6,4 7,2 6,1 4,0 4,3 多边形 I 1,4 4,3 4,2 2,2
(二) 二元独立地图编码结构 二元独立地图编码结构或二元独立地图编码文件结构, 是由美国人口普查局开发使用的。它设计成结合关于城市区块的拓扑信息以便用于人口统计分析。 1.DIME 编码的特点 (1) 以线段为主的记录方式, 线段用起始结点、终止结点及相邻的左多边形和右多边形作为基本代码形成拓扑关系。线段本身的空间坐标位置数据常置于另一层数据结构中。 (2) 它是一种具有拓扑功能的编码方法。把研究对象看成由点、线和面组成的简单几何图形。通过基于图论的拓扑编辑不仅实现上述三要素的自动编辑, 还可以不断查出数据组织中的错误。 由于DIME编码系统的上述特点, 尤其是它的拓扑编码方法和拓扑编辑功能, 使它在土地信息系统中应用很广。在它的基础上发展的综合拓扑地理编码参考系统TIGER(Topologically Integratedgraphic Encode Reference)及Arc/Info系统矢量编码方法等尽管在记录方式上各不相同, 然而其基本概念是相类似的。
2. DIME 编码结构 DIME编码文件, 开始用于人口统计, 其编码文件由线段组成。每条线段包括线段名、线段的起始结点和终止结点、线段的左区号和右区号及线段所表示街道两边的地址范围。 其文件结构为: (l) 基本要素: 线段名、线段的起始结点、线段的左右街区号码; (2) 专用要素: 地址范围、地区码、人口统计、地段码 : (3) 其他要素: 邮政分区代码, 选择分区代码等
3. DIME 的拓扑编辑 • DIME的拓扑编辑可实现拓扑关系的半自动和自动编辑, 其中分多边形编辑和结点编辑两种。 • 特点:在编辑过程中不断检查线段代码各项特性是否正确, 若不正确可指出错误的线段码, 以便修正。
(1)多边形编辑 • 假设对图4-14并结合表4-12中多边形P4进行编辑, 其步骤为:第一步, 从图4-14的线段记录中找出含有多边形P4的全部线段, 并组成表4-13a
第二步 , 逐一检查表4-13a中各线段, 使线段走向确保其左多边形为P4(这样编辑得到多边形以逆时针走向闭合), 从而得到表4-13b。要实现这个目标,需要将弧段a2 调整方向
第三步, 调整线段顺序号, 以保证连成的多边形各结点顺序相连 , 如本例中将a8, a7线段互换位置, 从而得到如表4-13c中虚线所示的排列结合。 • 系统由此可检查出多边形的错误:当编辑过程中出现多边形不闭合、多余线段、 代码遗漏等问题, 即编辑出现错误, 应检查原始线段记录文件的错误, 并进行修正后再进行编辑, 直到正确为止。
(2) 结点的编辑 • 结点编辑的目的是从图4一14及表4←12线段记录文件中找到某结点周围的线段号, 并以一定方向如逆时针方向进行排列。下面以结点N3为例对其进行编辑。 • 第一步, 从图4一14的线段记录中找出含有结点N3的全部线段, 并组成表4-14a
第二步, 逐一检查表中各线段走向, 使终结点均为N3得表4-14b
第三步, 调整线段的顺序号, 以保证该结点周围的多边形顺序联结。为此 , 本例中将a5 、a8线段互换位置, 得到表 4-14c, 从而得到与结点N3相连的多边形号以逆时针方向为 P2- P1- P3- P4–P2, 即该结点的第一区P2与最后一个区P2号一致, 表示该结点符合拓扑要求, 编码无误。 若建立过程中有多余线段产生, 或结点无法联结, 则表示编辑有误, 应检查错误原因, 重新编辑, 直到正确为止。
4. 多边形编码及拓扑关系的自动生成 在矢量数据结构的土地信息系统中, 通常用不规则多边形来描述面状地物的区域。 这样, 把一幅地图中许多图斑看成许多多边形, 每个多边形的边界轮廓由一条或若干条线段或弧段组成, 每个弧段含首尾两个结点, 每个结点联结两条或两条以上的弧段。这种数据结构形成了以面、线、点三元素组成的网络数据结构, 其核心是建立各元素之间的拓扑关系, 为空间数据的处理和分析提供了基础。 多边形数据文件 图幅文件 图形数据 属性数据 属性文件 多边形文件 弧文件 结点文件 多边形编码系统数据文件结构
三、栅格数据结构 • 基于栅格数据模型的数据结构简称为栅格数据结构 • 栅格数据结构的优点是: 数据结构简单, 叠加分析方便, 容易描述边界复杂模糊的事物, 能直接处理数字图像信息, 能直接用栅格设备输出图形。 • 栅格数据结构的缺点是: 数据贮存量大, 空间位置精度低, 输出地图不美观。 为减小栅格数据的存贮量, 主要有以下几种不同的数据结构和编码方法。
2、 四叉树MD码(Quad-Tree Code) • 游程编码的压缩只是在一个方向上,纵向或横向,在另一个方向上并未进行任何压缩。希望找到更有效的方法。 2.1、四叉树: • 四叉树数据结构是一种广受关注,被学者进行了大量研究的数据结构。它在20世纪60年代中期就被应用到加拿大地理信息系统中。代表性的研究学者有Klinger等人。 • 将图件覆盖的区域按照四个象限进行递归分割,直到子象限的属性码值变为单一为止或达到预定精度的网格大小为止。(对于达到预定精度的网格其覆盖的属性编码未能单一,则按占据面积大者的属性编码为该网格的属性编码);凡数值是单一的单元,无论单元大小,均作为最后的存储单元。这就是常规四叉树的建立过程。
四叉树压缩编码原理 2 3 树根代表整个图件,树的每个结点有四个分支或端点,没有分枝的端点称为叶节点,叶节点对应图件上区域分割时不在继续分割的子象限。 1 4 5 7 8 11 9 10 6 12 13 (a)四叉划分递归过程 1 6 2 3 4 5 (b)四叉树存储结构 11 12 13 图2-21 四叉树压缩编码原理图 7 8 9 10
编码过程 地址编码
四叉树的分割方法 • 从上而下建立(top-down) 先检查全区域,内容不同的再四分割,往下逐次递归。这种方法需要大量的运算,因为大量的数据需要重复检查才能确定划分。例如7、8、9、10等格网需要检查4次。 • 从下而上建立(bottom-up) 对栅格数据按一定的顺序进行检测,如果相邻的四个格的网值相同,则进行合并,逐次向上递归。
四叉树特点 (1)不能再分的结点为终止结点(叶子结点),叶子结点可能落在不同层上,叶结点下的数字表示该子象限区域的属性代码,结点的上方数字表示该子象限的地址编号。例如01表示第一次分割为0区,第二次分割为1区。 (2)叶子结点的数目即为图象被分的象限数目(本例为43个) (3)每个象限的大小可以一样,也可以不一样
(4)四叉树编码方法能自动地依照实际图形区域的地物分部情况而调整象限的尺寸,从而产生较高压缩比(4)四叉树编码方法能自动地依照实际图形区域的地物分部情况而调整象限的尺寸,从而产生较高压缩比 地物分布与层、象限尺寸的关系: 层高----分割次数少-----象限尺寸大-----地物单一 层低----分割次数多---象限尺寸小--------地物复杂 四叉树编码具有压缩数据灵活、高效率的优点,是一最有效的栅格数据压缩方法之一。绝大部分的图操作和运算均可在上直接实现。
四叉树法可分为两种: • 常规四叉树方法:除了记录叶结点外,还要记录中间结点。结点的命名可以不按严格的规则,结点之间的联系主要靠指针表达。每个结点需要6个量表达:父结点指针(前趋),四个子结点指针(后继)和本结点的代码值。这些指针不仅增加了存储量,而且增加了操作的复杂性。常规四叉树在数据索引和图幅索引等方面得到应用,而在数据压缩和GIS数据结构领域人们则多采用线性四叉树方法。 • 线性四叉树(Linear Quadtree,LQ):线性四叉树只存储最后叶结点的信息,包括叶结点的位置、大小和网格值。叶结点的编号需要按照一定的规则,这种编号称为地址码,隐含了叶结点的位置信息。最常用的是四进制或十进制的Morton码。
2.2 、MD码 列序号(i) 列 i 0 1 2 3 4 5 6 7 8 9 10 11 12 • 由于这种编码方法是Morton给出的,所以称为Morton码。十进制的编码写为MD(Morton Digital Code)。 MD If 0 1 4 5 16 17 20 21 64 65 68 69 80 行 j 相同 Jf 0 0 0 1 4 5 16 17 20 21 64 65 68 69 80 22 23 1 2 2 3 6 7 18 19 71 2 8 8 9 12 13 3 10 10 11 14 15 27 31 4 32 32 5 34 34 6 40 40 图2-22 P62 7 42 42 8 128 128 9 130 130 199 210
由MD码原理图可以得出 • 线性四叉树的建立可有两种方法:一是用自上而下分裂的方式在建立四叉树的过程中逐步产生Morton码;另一种方法是先计算每个网格的Morton码,然后按一定的扫描方式采用自下而上的合并方式建立四叉树。 • 4个MD组成的正方形的编号与四叉树图件区域划分是一致的。 • MD码正是自下而上合并过程的顺序编号,按自然数顺序的线性表扫描即可产生四叉树。 MD码与行列号(i,j)间存在有函数关系, 如果找到这种函数关系,则可使二维地址码变为一维,可进行简单的排序、快速扫描。可将网格代码值直接赋给以MD码为下标的数组单元。解码时,有MD码找出对应的行列号,将代码填回网格。完成代码的存储和回放。 栅格数据存储过程:将网格代码值合理存储和正确填回的过程
由MD码原理图可得出 1、行序号(j)与列序号(i) 2、行、列序号内侧,给出I0, J0 3、 Jf (j)=2If (j) (2-24) 4、MD(i,j) = If + Jf (2-25) 5、If = f(i); Jf = f(j) (2-26) 如能找到式(2-26)的函数关系,就可根据式(2-25)得到MD(i,j) 码与任一坐标(i,j) 的转换关系。
If与i 的关系 通过对If与i 关系的解析,可以得出以下结论 I0 = i Ik = INT(Ik-1/2) kmax If = ∑MOD(Ik,2)×4k (2-27) K=0 Kmax=INT(log2 i) 式中: • INT为取整函数 • MOD 为求余函数算符,即后括号中Ik被2除,除尽则MOD为零,余1则MOD为1
例: i=12 I0 = 12; Kmax=INT(log2 12)=3 I1 = INT(I0/2)= INT(12/2)=6 I2 = INT(I1/2)= INT(6/2)=3 I3 = INT(I2/2)= INT(3/2)=1 3 If = ∑MOD(Ik,2)×4k K=0 =0 ×40+0 ×41+1 ×42+ 1×43=80 这个结果与图2-22标的结果相同 I0 = i • Ik = INT(Ik-1/2) • kmax • If = ∑MOD(Ik,2)×4k • K=0
根据式(2-24),将任意值j代入(2-27),可得Jf与J的关系根据式(2-24),将任意值j代入(2-27),可得Jf与J的关系 J0 =j JL = INT(JL-1/2) Lmax Jf = 2 × ∑MOD(JL,2)×4L (2-28) L=0 Lmax=INT(log2 j)