第三章空间数据模型课件.ppt

上传人:小飞机 文档编号:1526183 上传时间:2022-12-03 格式:PPT 页数:57 大小:2.40MB
返回 下载 相关 举报
第三章空间数据模型课件.ppt_第1页
第1页 / 共57页
第三章空间数据模型课件.ppt_第2页
第2页 / 共57页
第三章空间数据模型课件.ppt_第3页
第3页 / 共57页
第三章空间数据模型课件.ppt_第4页
第4页 / 共57页
第三章空间数据模型课件.ppt_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《第三章空间数据模型课件.ppt》由会员分享,可在线阅读,更多相关《第三章空间数据模型课件.ppt(57页珍藏版)》请在三一办公上搜索。

1、第三章 空间数据模型,主讲:刘瑞娟,3.1 地理空间与空间抽象,一、地理空间与空间实体地理空间(geographic space):指地球表面及近地表空间,是地球上大气圈、水圈、生物圈、岩石圈和智慧圈交互作用的区域。地理空间实体:对复杂地理事物和现象进行简化和抽象得到的结果。空间位置特征属性特征时间特征空间关系特征:拓扑关系、顺序关系、度量关系,二、空间认知和抽象概念模型逻辑数据模型物理数据模型,3.1 地理空间与空间抽象,3.2 数据概念模型,概念模型:概念模型是地理空间中地理事物与现象的抽象概念集,是地理数据的语义解释,是系统抽象的最高层。目前地理空间数据的概念模型大体上分为三类,即对象模

2、型、网络模型和场模型。,对象模型,网络模型,场模型,一、对象模型对象模型:也称作要素模型,将研究的整个地理空间看成一个空域,地理现象和空间实体作为独立的对象分布在该空域中。按照其空间特征分为点、线、面、体四种基本对象。适于对具有明确边界的地理现象建模。(单个地理现象),3.2 数据概念模型,二、场模型场模型:也称作域(field)模型,是把地理空间中的现象作为连续的变量或体来看待。如大气污染程度、地表温度二维场 Af(x,y)三维场 Af(x,y,z),3.2 数据概念模型,(a) 规则分布的点 (b) 不规则分布的点 (c)规则矩形区 (d) 不规则多边形区 (e) 不规则三角形区 (f)

3、等值线 场模型的6种表示,三、网络模型网络模型:从本质上看与对象模型没有本质的区别,因此网络模型也可以看成对象模型的一个特例,它是由点对象和线对象之间的拓扑空间关系构成的。,3.2 数据概念模型,四、 概念模型的选择 地理现象既可以采用对象模型也可以采用场模型建模,其选择主要取决于应用要求和习惯。场模型:连续空间变化趋势的现象;对象模型:单个的地理现象。,松树,冷杉,槐树,(0,0),(0,4),(0,7),(3,0),(7,0),x,“松树”,0 x4;4y7f (x,y)= “冷杉”,0 x3;0y4 “槐树”,3x7;0y4,多种林分的森林,按对象模型的林分建模,(c) 按场模型的林分建

4、模,森林的两类模型对比,y,3.3 基于对象模型的空间关系分析,一、欧氏(Euclidean)空间中地物要素 在对象模型中,所有的地理实体可以抽象成三类地物要素对象,即点对象、线对象和多边形对象。,1、点状实体,点或节点、点状实体。点:有特定位置,维数为0的物体。,4)角点、节点Vertex:表示线段和弧段上的连接点。,1)实体点:用来代表一个实体。,2)注记点:用于定位注记。,3)内点:用于负载多边形的属性,存在于多边形内。,2、线状实体,1)实体长度:从起点到终点的总长。2)弯曲度:用于表示像道路拐弯时弯曲的程度。3)方向性:如:水流方向,上游下游, 公路,单、双向之分。,具有相同属性的点

5、的轨迹,线或折线,由一系列的有序坐标表示,并有如下特性:,线状实体包括:线段,边界、链、弧段、网络等。,3、面状实体(多边形),面状实体的如下特征:1)面积范围 2)周长3)独立性或与其它地物相邻如中国及其周边国家4)内岛屿或锯齿状外形:如岛屿的海岸线封闭所围成的区域。叠。,是对湖泊、岛屿、地块等一类现象的描述。在数据库中由一封闭曲线加内点来表示。,4、实体类型组合,现实世界的各种现象比较复杂,往往由不同的空间单元组合而成,例如根据某些空间单元或几种空间单元的组合将空间问题表达出来,复杂实体由简单实体组合表达。点、线、面按一定的地理意义组成区域。点、线、面两两之间组合表达复杂的空间问题:如:线

6、-面 面-面,可见,用各要素之间的空间关系,可描述诸多空间问题。空间关系是GIS数据描述和表达的重要内容,一方面它为GIS数据库的有效建立,空间查询,空间分析,辅助决策等提供了最基本的关系,另一方面有助于形成标准的SQL空间查询语言,便于空间特征的存储,提取,查询,更新等。,线面,返回,1、区域包含线:计算区域内线的密度,某省的水系分布情况。2、线通过区域:公路上否通过某县。3、线环绕区域:区域边界,搜索左右区域名称,中国与哪些国家接壤。,面面,1、 包含:岛,某省的湖泊分布。2、 相合:重叠,学校服务范围与菜场服务范围重叠区。3、 相邻:计算相邻边界性质和长度,公共连接边界。4、分离:计算距

7、离。,返回,学校,菜场,三、空间关系拓扑空间关系:用来描述实体间的相邻、连通、包含和相交等关系;方向空间关系:用于描述实体在地理空间上的排列顺序,如实体之间前后、上下、左右和东、南、西、北等方位关系;度量空间关系:用于描述空间实体之间的距离远近等关系。,3.3 基于对象模型的空间关系分析,1、拓扑关系定义:指图形保持连续状态下变形,但图形关系不变的性质。将橡皮任意拉伸,压缩,但不能扭转或折叠。,3.3 基于对象模型的空间关系分析,定义,种类,3.3 基于对象模型的空间关系分析,1)关联性: (不同类要素之间)结点与弧段:如V9与L5,L6,L3多边形与弧段:P2与L3,L5,L22)邻接性:

8、(同类元素之间)多边形之间、结点之间。邻接矩阵 重叠:- 邻接:1 不邻接:0,3)连通性:与邻接性相类似,指对弧段连接的判别,如用于网络分析中确定路径、街道是否相通。,连通矩阵:重叠:- 连通:1 不连通:0,4)拓扑包含:指面状实体包含了哪些线、点或面状实体。,主要的拓扑关系:拓扑邻接、拓扑关联、拓扑包含。,P2,P1,P1,P2,P3,P2,P1,P2,拓扑关系具体可由4个关系表来表示:(1) 面-链关系: 面 构成面的弧段(2) 链-结点关系: 链 链两端的结点(3) 结点-链关系: 结点 通过该结点的链(4) 链面关系: 链 左面 右面,拓扑关系的表达,返回,P1,P4,拓扑关系的意

9、义,对于数据处理和GIS空间分析具有重要的意义,因为:1)拓扑关系能清楚地反映实体之间的逻辑结构关系,它比几何关系具有更大的稳定性,不随地图投影而变化。2)有助于空间要素的查询,利用拓扑关系可以解决许多实际问题。如某县的邻接县,-面面相邻问题。又如供水管网系统中某段水管破裂找关闭它的阀门,就需要查询该线(管道)与哪些点(阀门)关联。3)根据拓扑关系可重建地理实体。,2、方向空间关系方向关系又称为方位关系、延伸关系,它定义了地物对象之间的方位 。,3、度量空间关系度量空间关系主要指空间实体间的距离关系。包含点/点、点/线、点/面、线/线、线/面、面/面之间的距离。距离的度量可以是定量的,如按欧几

10、里德距离计算得出A实体距离B实体500m,也可以应用与距离概念相关的概念如远近等进行定性地描述。,3.4 空间逻辑数据模型,逻辑数据模型:GIS描述概念模型中实体及其关系的逻辑结构,是系统抽象的中间层。矢量数据模型栅格数据模型矢量栅格一体化数据模型镶嵌数据模型面向对象数据模型,一、矢量数据模型,3.4 空间逻辑数据模型,矢量数据模型适合于用对象模型抽象的地理空间对象。点实体用一对空间坐标表示,二维空间中对应为(x,y); 线实体由一串坐标对组成,二维空间中表示为(x1,y1),(x2,y2)(xn,yn); 面由其边界线表示,表示为首尾相连的坐标串,二维空间中对应为(x1,y1),(x2,y2

11、)(xn,yn),(x1,y1)。,电力塔,空间对象的矢量数据模型,5610000,5810000,二、栅格数据模型 在栅格数据模型中,点实体是一个栅格单元(cell)或像元,线实体由一串彼此相连的像元构成,面实体则由一系列相邻的像元构成,像元的大小是一致的。栅格单元的属性值:代表地理实体的属性。地理实体的不同属性分层存储。空间分辨率:栅格单元的大小,指一个像元在地面所代表的实际面积大小。,3.4 空间逻辑数据模型,点,线,面,栅格数据结构示例,(a)点 (b)线 (c)面,全栅格数据文件qs.txt,9 9 9 9 1 1 1 1 9 9 9 1 1 1 1 1 1 9 9 1 7 7 1

12、1 1 1 1 1 7 7 1 1 1 1 1 1 7 7 7 7 1 1 1 1 7 7 7 7 1 1 1 1 7 7 7 7 1 1 1 1 7 7 7 7,三、矢栅一体化数据模型在矢量栅格数据模型中,对地理空间实体同时按矢量数据模型和栅格数据模型来表述:面状实体的边界采用矢量数据模型描述,而其内部采用栅格数据模型表达;线状实体一般采用矢量数据模型表达,同时将线所经过位置以栅格单元进行充填;点实体则同时描述其空间坐标以及栅格单元位置。,3.4 空间逻辑数据模型,四、镶嵌数据模型 镶嵌(Tessellation)数据模型采用规则或不规则的小面块集合来逼近自然界不规则的地理单元,适合于用场模

13、型抽象的地理现象1.规则镶嵌数据模型规则镶嵌数据模型,即用规则的小面块集合来逼近自然界不规则的地理单元。(栅格数据模型)优点:主要优点在于其数据结构为通常的二维矩阵结构,每个网格单元表示二维空间的一个位置,不管是沿水平方向还是沿垂直方向均能方便地遍历这种结构。,3.4 空间逻辑数据模型,2.不规则镶嵌数据模型不规则镶嵌数据结构是指用来进行镶嵌的小面块具有不规则的形状或边界。最典型的不规则镶嵌数据模型有Voronoi图(也称作Thiessen多边形或Dirichlet图 )和不规则三角网(Triangular Irregular Network,简称TIN)模型,3.4 空间逻辑数据模型,TIN

14、和Voronoi多边形数据模型,Voronoi多边形的特点:组成多边形的边总是与两相邻样点的连线垂直多边形内的任何位置总是离该多边形内样点的距离最近,离相邻多边形内样点的距离远每个多边形内包含且仅包含一个样点。,小资料:泰森多边形荷兰气候学家AHThiessen提出了一种根据离散分布的气象站的降雨量来计算平均降雨量的方法,即将所有相邻气象站连成三角形,作这些三角形各边的垂直平分线,于是每个气象站周围的若干垂直平分线便围成一个多边形。用这个多边形内所包含的一个唯一气象站的降雨强度来表示这个多边形区域内的降雨强度,并称这个多边形为泰森多边形。 泰森多边形可用于定性分析、统计分析、邻近分析等。例如,

15、可以用离散点的性质来描述泰森多边形区域的性质;可用离散点的数据来计算泰森多边形区域的数据;判断一个离散点与其它哪些离散点相邻时,可根据泰森多边形直接得出,且若泰森多边形是n边形,则就与n个离散点相邻;当某一数据点落入某一泰森多边形中时,它与相应的离散点最邻近,无需计算距离。,TIN数据模型 TIN能较好的表达地理现象的空间变化,三角形大小随样点密度的变化自动变化,所有样点都称为三角形的顶点,当样点密集时生成的三角形小,而样点较稀时则三角形较大。TIN在表示不连续地理现象时也具有优势,如用TIN表示地形的变化,3.4 空间逻辑数据模型,Voronoi图的生成 Voronoi图有很多种生成方法,矢

16、量方法主要有对偶生成法、增添法、部件合成法等。对偶生成法 主要是指生成V图时,先生成其对偶元Delaunay三角网,再通过做三角网每一三角形三条边的中垂线,形成以每一三角形顶点为生成元的多边形网。,对偶生成法的关键是Delaunay三角网的生成。Delaunay三角网的特性:满足最大空圆准则任一三角形外接圆内不包含其他样点;所有三角形的最小角度的总和是最大的;使三角网总边长最小;在确定的n个点上,构造的Delaunay三角网网形唯一。,方案一,小资料:Delaunay三角网格的Bowyer-Watson算法自动生成步骤,Step 1、建立初始网格: 假设给定点集 ,首先找到一个包含该点的外接的

17、外接矩形 称为辅助窗。一般保证矩形边框长度为点集最大边界长度的三倍。当选好辅助窗,就连接其任一条对角线,形成两个三角形,并对它们标号,把它们作为初始Delaunay三角网。Step 2、逐点插入: 假设原先已经有一个Delaunay三角网T,现在欲往里插入一个新点P。此时首先需要找出所有外接圆包含P点的三角形,并删除P点最近的边,开成一个Delaunay腔,随后连接新插入点与空腔的每一个顶点,如图2所示: Step 3、删除计算区域以外的点: 当点集中全部的点插入到三角网格后,删除计算区域以外的三角形,并确保界面的正确三角剖分。对于简单的凸单连通区域,删除与辅助窗顶点 相连的所有三角形即可。如

18、图3所示:当删去辅助窗并修正了网格边界后,Delaunay三角网格的核心生成部分即已全部完成。,using System;using System.Collections.Generic;using System.Text;using System.Windows.Forms;namespace Delaunaypublic struct dVertexpublic long x;public long y;public long z;public struct dTrianglepublic long vv0;public long vv1;public long vv2;,用C#语言实现的

19、Delaunay三角网算法,public class Delaunaypublic const int MaxVertices = 500;public const int MaxTriangles = 1000;public dVertex Vertex = new dVertexMaxVertices;public dTriangle Triangle = new dTriangleMaxTriangles;private bool InCircle(long xp, long yp, long x1, long y1, long x2, long y2, long x3, long y3

20、, double xc, double yc, double r)double eps;double m1;double m2;double mx1;double mx2;double my1;double my2;double dx;double dy;double rsqr;double drsqr;eps = 0.000000001;,if (Math.Abs(y1 - y2) eps ,elsem1 = (-(Convert.ToDouble(x2) - Convert.ToDouble(x1) / (Convert.ToDouble(y2) - Convert.ToDouble(y1

21、);m2 = (-(Convert.ToDouble(x3) - Convert.ToDouble(x2) / (Convert.ToDouble(y3) - Convert.ToDouble(y2);mx1 = Convert.ToDouble(x1 + x2) / 2.0);mx2 = Convert.ToDouble(x2 + x3) / 2.0);my1 = Convert.ToDouble(y1 + y2) / 2.0);my2 = Convert.ToDouble(y2 + y3) / 2.0);xc = Convert.ToDouble(m1 * mx1 - m2 * mx2 +

22、 my2 - my1) / (m1 - m2);yc = Convert.ToDouble(m1 * (xc - mx1) + my1);dx = (Convert.ToDouble(x2) - Convert.ToDouble(xc);dy = (Convert.ToDouble(y2) - Convert.ToDouble(yc);rsqr = Convert.ToDouble(dx * dx + dy * dy);r = Convert.ToDouble(Math.Sqrt(rsqr);dx = Convert.ToDouble(xp - xc);dy = Convert.ToDoubl

23、e(yp - yc);drsqr = Convert.ToDouble(dx * dx + dy * dy);,if (drsqr 0)return -1;/WhichSide = -1;,else if (equation = 0)return 0; elsereturn 1; public int Triangulate(int nvert)bool Complete = new boolMaxTriangles;long, Edges = new long3, MaxTriangles * 3+1;long Nedge;long xmin;long xmax;long ymin;long

24、 ymax;long xmid;long ymid;double dx;,double dy;double dmax;int i;int j;int k;int ntri;double xc = 0.0;double yc = 0.0;double r = 0.0;bool inc;xmin = Vertex1.x;ymin = Vertex1.y;xmax = xmin;ymax = ymin;for (i = 2; i = nvert; i+)if (Vertexi.x xmin)xmin = Vertexi.x;,if (Vertexi.x xmax)xmax = Vertexi.x;i

25、f (Vertexi.y ymax)ymax = Vertexi.y;dx = Convert.ToDouble(xmax) - Convert.ToDouble(xmin);dy = Convert.ToDouble(ymax) - Convert.ToDouble(ymin);if (dx dy)dmax = dx;elsedmax = dy;,xmid = (xmax + xmin) / 2;ymid = (ymax + ymin) / 2;Vertexnvert + 1.x = Convert.ToInt64(xmid - 2 * dmax);Vertexnvert + 1.y = C

26、onvert.ToInt64(ymid - dmax);Vertexnvert + 2.x = xmid;Vertexnvert + 2.y = Convert.ToInt64(ymid + 2 * dmax);Vertexnvert + 3.x = Convert.ToInt64(xmid + 2 * dmax);Vertexnvert + 3.y = Convert.ToInt64(ymid - dmax);Triangle1.vv0 = nvert + 1;Triangle1.vv1 = nvert + 2;Triangle1.vv2 = nvert + 3;Complete1 = fa

27、lse;ntri = 1;for (i = 1; i = nvert; i+)Nedge = 0;j = 0;doj = j + 1;if (Completej != true)inc = InCircle(Vertexi.x, Vertexi.y, VertexTrianglej.vv0.x, VertexTrianglej.vv0.y, VertexTriangle,Trianglej.vv1.x, VertexTrianglej.vv1.y, VertexTrianglej.vv2.x, VertexTrianglej.vv2.y, xc, yc, r);if (inc)Edges1,

28、Nedge + 1 = Trianglej.vv0;Edges2, Nedge + 1 = Trianglej.vv1;Edges1, Nedge + 2 = Trianglej.vv1;Edges2, Nedge + 2 = Trianglej.vv2;Edges1, Nedge + 3 = Trianglej.vv2;Edges2, Nedge + 3 = Trianglej.vv0;Nedge = Nedge + 3;Trianglej.vv0 = Trianglentri.vv0;Trianglej.vv1 = Trianglentri.vv1;Trianglej.vv2 = Tria

29、nglentri.vv2;Completej = Completentri;j = j - 1;ntri = ntri - 1;while (j ntri);,for (j = 1; j = Nedge - 1; j+)if (Edges1, j != 0 ,i = 0;doi = i + 1;if (Trianglei.vv0 nvert | Trianglei.vv1 nvert | Trianglei.vv2 nvert)Trianglei.vv0 = Trianglentri.vv0;Trianglei.vv1 = Trianglentri.vv1;Trianglei.vv2 = Trianglentri.vv2;i = i - 1;ntri = ntri - 1;while (i ntri);return ntri;,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号