目录
2. 空间数据结构
客观世界丰富多彩、无穷无尽,要研究、认识、利用和改造它们,必须将所有关注的局部世界加以简化和抽象,才能揭示出控制客观事物演变的基本规律,科学研究中一种普遍采用的方法是模型方法。一个模型是现实世界的表达或描述,用空间数据结构去表示我们希望了解的东西。空间数据结构就是指空间数据的编排方式和组织关系。空间数据编码是空间数据结构的实现,目的是将不同的空间实体按一定的数据结构转换为适用于计算机存储和处理的过程,不同的对象,其数据结构相差很大,同一对象,也可以用许多方式来组织数据,按不同的数据结构去处理,会得到截然不同的内容。计算机存储和处理数据的效率,在很大程度上取决于数据组织方式的优劣。
数据结构在GIS中对于数据采集、存储、查询、检索和应用分析等操作方式有着重要的影响;一种高效率的数据结构,应具备几方面的要求:
-
组织的数据能够表示要素之间的层次关系,便于不同数据联接和覆盖。
-
正确反映地理实体的空间排列方式和各实体间相互关系。
-
便于存取和检索。
-
节省存贮空间,减少数据冗余。
-
存取速度快,在运算速度较慢的微机上要达到快速响应。
-
具有足够的灵活性,数据组织应具有插入新的数据、删除或修改部分数据的基本功能。
2.1. 空间认知模型
2.1.1. 现实世界的认知过程
空间认知是一个信息加工过程。地理世界是非常复杂的,地理系统表现出来的各种各样的地理现象代表了现实世界。要正确认识和掌握现实世界这些复杂、海量的信息,需要进行去粗取精、去伪存真的加工,对复杂对象的认识是一个从感性认识到理性认识的一个抽象过程。通过对各种地理现象的观察、抽象、综合取舍,得到实体目标(有时也称为空间对象),然后对实体目标进行定义、编码结构化和模型化,以数据形式存入计算机内的过程。空间数据表示的基本任务就是将以图形模拟的空间物体表示成计算机能够接受的数字形式。这同时也是一个将客观世界的地理现象转化为抽象表达的数字世界相关信息的过程,这个过程涉及到三个层面:现实世界、概念世界和数字世界,如图2-1所示。
(1)现实世界是存在于人们头脑之外的客观世界,事物及其相互联系就处在这个世界之中。事物可分成“对象”与“性质”两大类,又分为“特殊事物”与“共同事物”两个重要级别。
(2)概念世界是现实世界在人们头脑中的反映。客观事物在概念世界中称为实体,反映事物联系的是实体模型。
(3)数字世界是概念世界中信息的数据化。现实世界中的事物及联系在这里用数据模型描述。
![](https://img-blog.csdnimg.cn/b90c609d470e4d07aac0217f5b48e526.gif)
2.1.2. 空间认知三层模型
地理信息系统是以数字形式表达的现实世界,是对特定地理环境的抽象和综合性表达。在现实世界与数字世界转换过程中,数据模型起着极其重要的作用。对现实世界进行抽象和综合后,首先必须选择一数据模型来对其进行数据组织,然后选择相应的数据结构和相应的存储结构,将现实世界对应的信息映射为实际存储的比特数据。一般而言,GIS空间数据模型由概念数据模型、逻辑数据模型和物理数据模型三个不同的层次组成。其中概念数据模型是关于实体和实体间联系的抽象概念集,逻辑数据模型表达概念模型中数据实体(或记录)及其间关系,而物理数据模型则描述数据在计算机中的物理组织、存储路径和数据库结构,三者间的相互关系如图2-2所示。
![](https://img-blog.csdnimg.cn/56baab15a2d8418da33de90b0fe1d7a6.gif)
空间概念数据模型
概念数据模型是人们对客观事实或现象的一种认识,有时也称为语义数据模型。不同的人,由于在所关心的问题、研究对象、期望的结果等方面存在着差异,对同一客观现象的抽象和描述会形成不同的用户视图,称为外模式。GIS概念数据模型是考虑用户需求的共性,用统一的语言描述、综合、集成的用户视图。目前存在的概念数据模型主要有矢量数据模型、栅格数据模型和矢量——栅格一体化数据模型,其中矢量数据模型和栅格数据模型应用最为广泛。
空间逻辑数据模型
逻辑数据模型将前面的概念数据模型确定的空间数据库信息内容(空间实体和空间关系),具体地表达为数据项、记录等之间的关系,这种表达有多种不同的实现方式。常用的数据模型包括层次模型、网络模型和关系模型。
层次模型和网络模型都能显式表达数据实体间的关系,层次模型能反映出实体间的隶属或层次关系,网络模型能反映出实体复杂的多对多关系,但这两种模型都存在结构复杂的缺点。关系数据模型使用二维表格来表达数据实体间的关系,通过关系操作来查询和提取数据实体间的关系,其优点是操作灵活,以关系代数和关系操作为基础,具有较好的描述的一致性,缺点是难以表达复杂对象关系,在效率、数据语义和模型扩展等方面还存在一些问题。
物理数据模型
逻辑数据模型并不涉及最底层的物理实现细节,而计算机处理的只能是二进制数据,所以必须将逻辑数据模型转换为物理数据模型,即要求完成空间数据的物理组织、空间存取方法和数据库总体存储结构等的设计工作。①物理表示组织。层次模型的物理表示方法有物理邻接法、表结构法、目录法。网络模型的物理表示方法有变长指针法、位图法和目录法等。关系模型的物理表示通常用关系表来完成。物理组织主要是考虑如何在外存储器上以最优的形式存储数据,通常要考虑操作效率、响应时间、空间利用和总的开销等因素。②空间数据的存取。常用的空间数据存取方法主要有文件结构法、索引文件和点索引结构三种。文件结构法包括顺序结构、表结构和随机结构。
2.2. 空间实体模型
2.2.1. 面向对象实体模型
空间实体是存在于自然世界中地理实体,与地理空间位置或特征相关联,在空间数据中不可再分的最小单元现象称为空间实体。 基本的空间实体有点(point)、线(1ine)、面(surface)和体(solid)四种类型。 空间数据适用于描述所有呈二维、三维甚至多维分布的关于区域的现象,空间数据不仅能够表示实体本身的空间位置及形态信息,而且还有表示实体属性和空间关系(如拓扑关系)的信息。 空间实体的空间关系比较复杂。根据几何坐标、空间位置以及实体间的相互关系,GIS中空间实体可以抽象为简单实体和复杂实体。简单实体是一个结构单一、性质相同的几何形体元素,在空间结构中不可再分。 复杂实体是相互独立的简单实体的集合,对外存在着一个封闭的边界。不同的软件系统中空间实体的定义与划分是不相同的。简单实体、复杂实体及其基本空间拓扑关系类型组成了空间概念的基本描述模型。
(1)点实体:表示O维空间实体,在空间数据库中表示对点状实体的抽象,可以具体指单独一个点位,如独立的地物,也可以表示小比例图中逻辑意义上不能再分的集中连片和分散状态,当从较大的空间规模上来观测这些地理现象时,就能把它们抽象成点状分布的空间实体,如村庄、城市等,但在大比例尺地图上同样的城市就可以描述十分详细的城市道路、建筑物分布等线状和面状实体。
(2)线实体:表示1维空间实体,有一定范围的点元素集合,表示相同专题点的连续轨迹。例如,可以把一条道路抽象为一条线,该线可以包含这条道路的长度、宽度、起点、终点以及道路等级等相关信息。道路、河流、地形线、区域边界等均属于线状实体。
(3)面实体:表示2维空间实体,表示平面区域大范围连续分布的特征,例如,土地利用中不同的地块、土壤不同的类型,大比例尺中的城市、农村等都可以认为是面状实体。有些面状目标有确切的边界,如建筑物、水塘等,有些面状目标在实地上没有明显的边界,如土壤。
(4)体实体:表示3维空间实体,体是3D空间中有界面的基本几何元素。在现实世界中,只有体才是真正的空间三维对象,现在对三维体空间的研究还处于初始阶段,以地质、大气、海洋污染等环境应用居多。
从地理现象到空间实体的抽象并不是一个可逆过程,同一个地理现象,它根据不同的抽象尺度(比例尺)、实际应用和视点被抽象成不同的空间实体。
对空间实体描述的有两种方法,一种是基于对象的描述,另一种是基于场的描述。基于对象的模型将研究的整个地理空间看成一个空域,地理实体和现象作为独立的对象分布在该空域中(崔铁军,2007)。 基于对象的空间模型强调个体现象,该现象以独立的方式或者以与其他现象之间的关系的方式来研究,主要描述不连续的地理现象。 任何现象,无论大小,都可以被确定为一个对象,假设它可以从概念上与其邻域现象相分离。实体可以由不同的对象所组成,而且它们可以与其他的相分离的对象有特殊的关系。 基于场模型是把地理空间的事物和现象作为连续的变量来看待。对于模拟具有一定空间内连续分布特点的现象来说,基于场的观点是合适的。 例如,空气中污染物的集中程度、地表的温度、土壤的湿度以及空气与水流动速度和方向。根据应用的不同,场可以表现为二维或三维。 一个二维场就是在二维空间中任何已知的点上都有一个值,而一个三维场就是在三维空间中对于任何位置来说都有一个值。
对象模型在计算机中常用矢量(vector)数据结构表示。矢量数据结构用空间离散点坐标来描述地理空间实体。场模型在计算机中常用栅格(raster)数据结构表示。 栅格数据结构把地理空间划分成均匀的网格。由于场值在空间上是自相关的(它们是连续的),所以每个栅格的值一般采用位于这个格子内所有场点的平均值表示。 这样,就可以利用代表值的矩阵来表示场函数。地理空间上的任何一点都直接联系到某一个或某一类地物。 但对于某一个具体的空间实体又没有直接聚集所有信息,只能通过遍历栅格矩阵逐一寻找,它也不能完整地建立地物之间的拓扑关系。
2.2.2. MAPGIS空间实体模型
概述
MAPGIS7的空间数据模型将现实世界中的各种现象抽象为对象、关系和规则,各种行为(操作)基于对象、关系和规则,模型更接近人类面向实体的思维方式。 该模型还综合了面向图形的空间数据模型的特点,使得模型表达能力强,广泛适应GIS的各种应用。该模型具有以下特点:
(1)真正的面向地理实体,全面支持对象、类、子类、子类型、关系、有效性规则、数据集、地理数据库等概念;
(2)对象类型覆盖GIS和CAD对模型的双重要求,包括:要素类、对象类、关系类、注记类、修饰类、动态类、几何网络;
(3)具备类视图概念,可通过属性条件、空间条件和子类型条件定义要素类视图、对象类视图、注记类视图和动态类视图。
(4)要素可描述任意几何复杂度的实体,如水系。
(5)完善的关系定义,可表达实体间的空间关系、拓扑关系和非空间关系。空间关系按照9交模型定义;拓扑关系支持结构表达方式和空间规则表达方式;完整地支持4类非空间关系,包括关联关系、继承关系(完全继承或部分继承)、组合关系(聚集关系或组成关系)、依赖关系。
(6)支持关系多重性,包括1-1、1-M、N-M。
(7)支持有效性规则的定义和维护,包括定义域规则、关系规则、拓扑规则、空间规则、网络连接规则。
(8)支持多层次数据组织,包括地理数据库、数据集、数据包、类、几何元素、几何实体、几何数据,如图2-3所示。
(9)几何数据支持向量表示法和解析表示法,包括折线、圆、椭圆、弧、矩形、样条、bezier曲线等形态。能够支持规划设计等应用领域。
![](https://img-blog.csdnimg.cn/8a95ae8ff2044760bdaa4b75ef1b6c65.gif)
空间参照系
空间参照系(SpatiaI Reference System)是平面坐标系和高程系的统称,用于确定地理目标的平面位置和高程。这包含两方面的内容:一是在把大地水准面上的测量成果换算到椭球体面上的计算工作中,所采用的椭球的大小;二是椭球体与大地水准面的相关位置不同,对同一点的地理坐标所计算的结果将有不同的值。因此,选定了一个一定大小的椭球体,并确定了它与大地水准面的相关位置,就确定了一个坐标系。
一个要素要进行定位,必须嵌入到一个空间参照系中。地面上任一点的位置,通常用经度和纬度来决定。经线和纬线是地球表面上两组正交(相交为90度)的曲线,这两组正交的曲线构成的坐标,称为地理坐标系。因为GIS所描述是位于地球表面的信息,所以根据地球椭球体建立的地理坐标(经纬网)可以作为所有要素的参照系统。
地球表面是不可展开的曲面,地理坐标是一种球面坐标,也就是说曲面上的各点不能直接表示在平面上。为了能够将其表面的内容显示在平面的显示器或纸面上,因此必须运用地图投影的方法,建立地球表面和平面上点的函数关系,使地球表面上任一个由地理坐标确定的点,在平面上必有一个与它相对应的点,即建立地球表面上的点与投影平面上点之间的一一对应关系。地图投影的使用保证了空间信息在地域上的联系和完整性,在各类地理信息系统的建立过程中,选择适当的地图投影系统是首先要考虑的问题。MAPGIS7.0提供了不同类型的地图投影以及相互转换的功能。使用者可根据需要,方便的建立不同的坐标系并进行相互之间的转换。
实体表达及分类
(1)对象
在MAPGIS7.0中,对象是现实世界中实体的表示。诸如房子、湖泊或顾客之类的实体,均可用对象表示。对象有属性、行为和一定的规则,以记录的形式存储对象。对象是各种实体一般性的抽象,特殊性对象包括要素、关系、注记、修饰符、轨迹、连接边、连接点等。
(2)对象类型、子类型
根据对象的行为和属性可以将对象划分成不同的类型,具有相同行为和属性的对象构成对象类,特殊的对象类包括要素类、关系类、注记类、修饰类、动态类、几何网络。不特别声明的情况下,对象类指没有空间特征的同类对象集。
子类型是对象类的轻量级分类,以表达相似对象,如供水管网中区分钢管、塑料管、水泥管等。不同类或子类型的对象可以有不同的属性缺省值和属性域。
(3)对象类
对象类是具有相同行为和属性的对象的集合。在空间数据模型中,一般情况下,对象类是指没有几何特征的对象(如房屋所有者、表格记录等)的集合;在忽略对象特殊性的情况下,对象类可以指任意一种类型的对象集。
(4)要素类
要素是具有几何特征的对象,要素包括属性、几何元素和图示化信息,几何元素是点、线、多边形等几何实体的组合。要素类是具有相同属性的要素的集合,是一种特殊的对象类,往往用于表达某种类型的地理实体,如道路、学校等。
(5)关系类
现实世界中的各种现象是普遍联系的,而联系本身也是一种特殊现象,具有多种表现形式。在面向实体的空间数据模型中,对象之间的联系被称作关系,是一种特殊的对象。
房屋所有者和房屋之间的产权关系,具有公共边界的行政区之间的相邻关系,甲乙双方之间的合同关系,都是对象之间关系的实例。
在该模型中,关系被分为空间关系和非空间关系。其中:
①空间关系与对象的位置和形态等空间特性有关,包括距离关系和拓扑关系。拓扑关系如水管和阀门的连接关系、两条道路的相交关系;
②非空间关系是对象属性之间存在的关系,如甲乙方之间的合同关系。
关系类是关系的集合,一般在对象类、要素类、注记类、修饰类的任意两者之间建立关系类。
(6)注记类
注记是一种标识要素的描述性文本,分为静态注记、属性注记和维注记。其中:
①静态注记是一种内容和位置固定的注记,包括注记和版面。
②属性注记的内容来自要素的属性值,显示属性注记时,动态地将属性值填入注记模板。因此也称为动态注记,属性注记直接和它要标注的要素相关联,移动要素时,注记跟随移动,注记的生命期受该要素的生命期控制。
③维注记是一种特殊类型的地图注记,仅用来表示特定的长度和距离。维分为平行维和线性维,平行维与基线平行,表示真实距离;线性维可以是垂直、水平或旋转的,并不表示真实距离。
注记的集合构成注记类。
(7)修饰类
修饰类用于存储修饰地图或者辅助制图的要素,包括几何图形、接图表、图例、指北针、图框、比例尺、贴片和块。其中:
①几何图形包括点、线、多边形。线和多边形边界可以是下列类型之一:折线、弧线、圆、椭圆、弧、矩形、样条、bezier曲线。几何图形主要考虑图面的要求、对平面拓扑和形态没有严格要求,如多边形的端点不要求严格重合,线可以自相交。
②图框分为内图框和外图框。
③贴片是一种带图示化信息的矩形框,用于遮盖不需要显示的图形。
④块是修饰类要素的组合,可以自由组合或拆散。
(8)动态类
动态类是一种特殊的对象类,是空间位置随时间变化的动态对象的集合。动态对象的位置随时间变化形成轨迹,动态类中记录轨迹的信息,包括x、y、z、t和属性。
(9)几何网络
几何网络是边要素和点要素组成的集合,边要素和点要素相互联系,一条边连接两个点,一个点可以连接大量的边。边要素可以在二维空间交叉而不相交,如立交桥。几何网络中的要素表示网络地理实体,如道路、车站、航线等。
每一个几何网络都有一个逻辑网络与之对应,逻辑网络依附于几何网络,由边元素、结点元素、转角元素以及连通性元素组成。
逻辑网络中的元素没有空间特性,即没有坐标值。逻辑网络存储网络的连通信息,是网络分析的基础。
要素类的数据组织方式
要素类由要素组成,每个要素包含属性、几何元素和图示化信息这三部分内容。几何元素有两种数据组织方式:
(1)直接存储简单点、简单线、简单多边形。这种组织方式使得该模型与传统的简单要素模型兼容;
(2)按照几何元素-几何实体-几何数据三个层次组织和存储空间信息。这种组织方式使该模型与传统的拓扑数据模型兼容,但表达能力更强,可描述几何形态较为复杂的地理实体,如水系。在三个层次中:
几何数据包含点和弧段,弧段可以是折线、圆、椭圆、弧、矩形、样条、bezier曲线之一,是地理实体的特征点或边界线。
几何实体分为点状、线状、面状。点状几何实体由几何数据层的1个点或多个点组成;线状几何实体由1到多条弧段有序组成;面状几何实体由1到多条弧段有序构成的多边形表示。
几何元素由任意多个点状、线状和面状几何实体组成,共同表达要素的几何特征。
几何元素的这种组织方式使得用户能够在同一个要素类中存储空间重叠的不同要素,如“铁路”要素类中京汉线和京广线;使用户能够按照语义对要素进行分类和组织,而不是按照几何形态对要素进行分类和组织。
通过在要素类上施加空间规则,可以限制要素类中一条弧段是否只能有左右多边形各一个。
视图
视图展现给用户的是对应类中的部分空间数据,部分属性数据,或者两者之一。MAPGIS7.0视图具有以下特点:
(1)MAPGIS7.0提供要素类、对象类、注记类、动态类的视图;
(2)视图是根据给定的空间条件、属性条件在原始类中选择数据,但是这些数据本身并没有复制,仅仅是逻辑上的拷贝;
(3)视图本身仅存储创建这个视图的空间条件和属性条件。空间条件包括矩形范围、类和子类型,属性条件包括纵向条件和横向条件,纵向条件限制视图所包含的字段,横向条件通过条件表达式(如:“面积<500”)限制视图的记录范围;
(4)MAPGIS7.0将视图分为只读视图和可读写视图。
空间关系定义
根据空间相关性,可将关系划分为空间关系和非空间关系。关系可以仅仅表示对象之间的联系,除此之外,没有其它含义,即关系没有属性;关系也可以有特定的含义,有属性的,如合同关系中每一条关系都与一份合同对应。
MAPGIS7.0提供了完整的关系支持,包括齐全的空间关系和非空间关系,如图2-4所示。
![](https://img-blog.csdnimg.cn/c6e8280c72a344e495028857759ed126.gif)
(1)空间关系
①距离关系
距离关系是最常见的空间关系之一,一般采用欧式距离。
②拓扑关系
拓扑关系是另一类空间关系,这种关系不随距离、角度的变化而变化。如相邻多边形与公共弧段之间的关系,几何网络中边-边的连接关系。
MAPGIS7.0按照九交模型定义拓扑关系,其中有现实意义的拓扑关系包括:相交、相接、相等、分离、包含、包含于、覆盖、被覆盖、交叠等九种。
MAPGIS7.0完全支持基于数据结构和基于空间规则的拓扑关系表达方式。基于数据结构的拓扑关系表达方式只能表达要素类内部要素之间的平面拓扑关系,但比较适用于地藉管理等应用领域。基于空间规则的拓扑关系表达方式灵活,容易表达同类要素之间的关系,也容易表达不同要素类之间的拓扑关系,如县级行政区必须包含于省级行政区。
(2)非空间关系
非空间关系是对象属性之间存在的关系,与对象的语义有关,包括:关联关系、继承关系、组合关系、依赖关系。其中:
①关联关系是最一般的关系,关系两端的对象相互独立,不存在依赖;
②继承关系包括完全继承和部分继承,完全继承是指子类继承父类的所有属性,部分继承是指子类只继承父类的部分属性,实际应用中,子类往往是父类的特例,如某地区属于沉积岩,也属于砂岩,砂岩继承了沉积岩的属性。
③组合关系是部分与整体的关系,组合关系分为聚集和组成。聚集是指组合体与各部分具有不同的生命期;组成则是指组合体与各部分具有相同的生命期,也就是同生共死。聚集关系如:计算机和它的外围设备,一台计算机可能连接到零台或者多台打印机,即使没有所连接的计算机,那台打印机也可以生存;组成关系如:电线杆(原始对象)和变压器(目的对象)之间可以构成一对多的组成关系,一旦电线杆被删除,变压器也要被删除;
④依赖关系由对象的语义引起,如某段行政边界以河流中心线为准。依赖关系也称为引用关系。
关系多重性
非空间关系具有多重性,具体表现为1-1、1-M、N-M。
有效性规则
对象特性的一个特殊表现是某些属性的取值往往存在边界条件,对象之间的关系(包括空间关系)甚至关系本身存在某种约束条件。所有这些限制条件统称为有效性规则。MAPGIS7.0中,有效性规则分为4种类型:属性规则,空间规则,连接规则,关系规则。有效性规则可以作用在类上,也可以作用在子类型上。
(1)属性规则与定义域
属性规则用于约定某个字段的缺省值,限定取值范围,设置合并和拆分策略。属性规则通过“定义域”来表达,取值范围分连续型和离散型,相应地把定义域分为范围域和编码域。
范围域适用于数值型、日期型、时间型等可连续取值的字段类型,编码域除了可以适用于连续取值类型外,还可用于字符串等类型的字段。
合并和拆分策略定义要素合并和拆分时属性字段的变化规则,合并策略包括:缺省、累加、加权平均,拆分策略包括:缺省、复制、按比例。如地块合并,合并后的要素属性“地价”可定义为“累加”策略。
(2)空间规则
空间规则作用于要素类或要素类之间,用于限定要素在某个空间参照系中的相互关系。空间规则如:
①要素类中每条弧段只能作为两个多边形的边界;
②要素类中多边形之间不能重叠;
③要素类中多边形之间不能有缝隙;
④“城镇”要素必须落在“行政区”要素内部;
⑤不能有悬挂线;
⑥线不能自相交;
⑦“阀门”必须与“水管”的端点重合;
(3)关系规则
关系规则随着关系的产生而产生,用于限定对象之间关系映射的数目。例如:原始类和目的类之间建立了N-M的关系,则通过关系规则可以限定关系的原始对象数是1-3,目的对象数是*-5,即原始类中的每个对象与目的类中至少1个、最多3个对象建立关系;而目的类中的对象可以和原始对象没关系,但最多只能与5个原始对象有关系。
(4)连接规则
连接规则主要使用在几何网络中,用以约束可能和其它要素相连的网络要素的类型,以及可能和其他任何特殊类型相连的要素的数量。有两种类型的连接规则:边对边连接规则、点对边连接规则。
边对边规则约束了哪一种类型的边通过一组结点可以与另一种类型的边相连。点对边规则约束了哪一种边类型可以和哪一种结点类型相连。
2.3. 栅格数据结构
2.3.1. 栅格数据的基本概念
将工作区域的平面表象按一定分解力作行和列的规则划分,形成许多格网,每个网格单元称为像素,栅格数据结构实际上就是像元阵列,即像元按矩阵形式的集合,栅格中的每个像元是栅格数据中最基本的信息存储单元,其坐标位置可以用行号和列号确定。由于栅格数据是按一定规则排列的,所以表示的实体位置关系是隐含在行号、列号之中的。网格中每个元素的代码代表了实体的属性或属性的编码,根据所表示实体的表象信息差异,各像元可用不同的“灰度值”来表示。若每个像元规定N比特,则其灰度值范围可在0到2N—1之间;把白~灰色~黑的连续变化量化成8比特(bit),其灰度值范围就允许在0~255之间,共256级;若每个像元只规定1比特,则灰度值仅为0和1,这就是所谓二值图像,0代表背景,1代表前景。实体可分为点实体、线实体和面实体。点实体在栅格数据中表示为一个像元;线实体则表示为在一定方向上连接成串的相邻像元集合;面实体由聚集在一起的相邻像元集合表示。这种数据结构便于计算机对面状要素的处理。
用栅格数据表示的地表是不连续的,是量化和近似离散的数据,这意味着地表一定面积内(像元地面分辨率范围内)地理数据的近似性,例如平均值、主成分值或按某种规则在像元内提取的值等。另一方面,栅格数据的比例尺就是栅格大小与地表相应单元大小之比。像元大小相对于所表示的面积较大时,对长度、面积等的度量有较大影响。这种影响除对像元的取舍外,还与计算长度面积的方法有关。如图2-5(a)中a点与c点之间的距离是5个单位,但在图2-5(b)中,ac之间的距离可能是7,也可能是4,取决于算法。如以像元边线计算则为7,以像元为单位计算则为4。同样,图2-5(a)中三角形的面积为6个平方单位,而图2-5(b)中则为7个平方单位,这种误差随像元的增大而增加。
![](https://img-blog.csdnimg.cn/52eb48a395644b70b83513502915deca.gif)
2.3.2. 栅格数据层的概念
地理信息系统对现实世界的描述可以以地理空间位置为基础,按道路、行政区域、土地使用、土壤、房屋、地下管线、自然地形等不同专题属性来组织地理信息。在栅格数据结构中,物体的空间位置就用其在笛卡尔平面网格中的行号和列号坐标表示,物体的属性用像元的取值表示,每个像元在一个网格中只能取值一次,同一像元要表示多重属性的事物就要用多个笛卡尔平面网格,每个笛卡尔平面网格表示一种属性或同一属性的不同特征,这种平面称为层。地理数据在栅格数据结构中必须分层组织存储,每一层构成单一的属性数据层或专题信息层,例如同样以线性特征表示的地理要素,河流可以组织为一个层,道路可以作为另一层,同样以多边形特征表示的地理要素,湖泊可以作为一个层,房屋可以作为另一层,根据使用目的不同,可以确定需要建立哪些层及需要建立哪些描述性属性。在图2-6中,左图是现实世界按专题内容的分层表示,第三层为植被,第二层为土壤,第一层为地形,中间是现实世界各专题层所对应的栅格数据层,右图是对不同栅格数据层进行叠加分析得出的分析结论。
![](https://img-blog.csdnimg.cn/f64c199f3fec4f4faa013e6833873ccf.jpeg)
2.3.3. 栅格数据结构的表示
二维数组
把栅格数据中各像素的值对应于二维数组相应的各元素加以存储的方式适合于灰度级大的浓淡图像的存储以及在通用计算机中的处理,所以是最常采用的一种方式。在采用二维数组的方式中,还有组合方式和比特面方式。
组合方式是在计算机的一个字长中存储多个像素的方式。从节约存储量的观点来考虑,经常在保存数据时采用。例如:16比特/字的计算机中,按每个像素8比特的数据对待的时候,如图2-7(a)所示,可以把相邻的两个像素数据分别存储到上8比特和下8比特中。同样,如果是按每个像素4比特数据,则一个字可以存储连续的4个像素的数据;如果是按每个像素1比特数据,则一个字可以存储16个像素的数据。
![](https://img-blog.csdnimg.cn/69bc7f067ccf4feaaacf5d346e1ecc8c.jpeg)
比特面方式,就是把数据存储到能按比特进行存取的二维数组(可以理解为1比特/1字)即比特面中的方式。对于n个比特的浓淡图像,如图2-7(b)所示,要准备n个比特面。在比特面k中(k=0,1,。。。,n-1),存储的是以二维形式排列着的各个像素值的第k比特(0或者1)的数据。另一方面,也有对于n比特/字的二维数组,把它作为n个比特面考虑,从而把二维图像存储到各比特面中的用法。以比特面作为单位进行处理时,其优点是能够在各面间进行高效率的逻辑运算,存储设备利用率高等,但也存在对浓淡图像的处理上耗费时间的问题。
一维数组
如果给栅格数据内的全体像素赋予按照某一顺序的一维的连续号码,则能够把栅格数据存储到一维数组中。上面的二维数组,在计算机内部如图2-8所示,实际上也变成为一维数组。
![](https://img-blog.csdnimg.cn/82fe858f16614e87982b6370995bb966.jpeg)
其次,也有不是存储栅格数据全体,而只是把应该存储的像素的信息,按照一定规则存储到一维数组中去的方法。这种方法主要是在栅格数据中用来存储图形轮廓线信息等。具体来讲是坐标序列、链码等。
2.3.4. 栅格数据的组织方法
假定基于笛卡尔坐标系上的一系列叠置层的栅格地图文件已建立起来,那么如何在计算机内组织这些数据才能达到最优数据存取、最少的存储空间、最短处理过程呢?如果每一层中每一个像元在数据库中都是独立单元即数据值、像元和位置之间存在着一对一的关系,按上述要求组织数据的可能方式有三种(图2-9)。
1.以像元为记录的序列。不同层上同一像元位置上的各属性值表示为一个列数组(2-9a)。
2.以层为基础。每一层又以像元为序记录它的坐标和属性值,一层记录完后再记录第二层(图2-9b)。这种方法较为简单,但需要的存储空间最大。
3.以层为基础,但每一层内则以多边形(也称制图单元)为序记录多边形的属性值和充满多边形的各像元的坐标(图2-9c)。
这三种方法中1节省了许多存储空间,因为N层中实际只存储了一层的像元坐标;方法3则节省了许多用于存储属性的空间,同一属性的制图单元的n个像元只记录一次属性值。它实际上是地图分析软件包中所使用的分级结构,这种多像元对应一种属性值的多对一的关系,相当于把相同属性的像元排列在一起,使地图分析和制图处理较为方便;方法2则是每层每个像元一一记录,它的形式最为简单。
![](https://img-blog.csdnimg.cn/4e5096a90a264c9687dbfd0d90e97d7a.gif)
2.3.5. 栅格数据取值方法
地图可以用来表示不同的专题属性,如何在地图上获取栅格数据,简单的方法是在专题地图上均匀地划分网格,或者将一张透明方格网叠置于地图上,每一网格覆盖部分的属性数据,即为该网格栅格数据的取值。但是常常会遇到一些特殊的情况,同一网格可能对应地图上多种专题属性,而每一个单元只允许取一个值,目前对于这种多重属性的网格,有不同的取值方法:
中心归属法:每个栅格单元的值以网格中心点对应的面域属性值来确定,如图2-10(a)所示。
长度占优法:每个栅格单元的值以网格中线(水平或垂直)的大部分长度所对应的面域的属性值来确定,如图2-10(b)所示。
面积占优法:每个栅格单元的值以在该网格单元中占据最大面积的属性值来确定,如图2-10(c)所示。
重要性法:根据栅格内不同地物的重要性程度,选取特别重要的空间实体决定对应的栅格单元值,如稀有金属矿产区,其所在区域尽管面积很小或不位于中心,也应采取保留的原则,如图2-10(d) 所示。
![](https://img-blog.csdnimg.cn/f2acdc3e4ad648828e9ee22b3e5389eb.gif)
2.3.6. 栅格数据存储的压缩编码
直接栅格编码是最简单最直观而又非常重要的一种栅格结构编码方法,通常称这种编码为图像文件或栅格文件。直接编码就是将栅格数据看作一个数据矩阵,逐行(或逐列)逐个记录代码,可以每行都从左到右逐像元记录,也可奇数据行从左到右,而偶数行由右向左记录,为了特定目的还可采用其它特殊的顺序。栅格结构不论采用何种压缩方法,其逻辑原型都是直接编码的网格文件。
当每个像元都有唯一一个属性值时,一层内的编码就需要m(行)×n(列)个存储单元。数字地面模型就属此种情况。如果一个多边形(或制图单元)内的每个像元都具有相同的属性值,就有可能大大节省栅格数据的存储需要量,关键是恰当地设计数据结构和编码方法。
链式编码
链式编码又称为弗里曼链码(Freeman,1961)或边界链码。考虑图2-11中的多边形。该多边形边界可以表示为:由某一原点开始并按某些基本方向确定的单位矢量链。基本方向可定义为:东=0,南=3,西=2,北=1等。如果再确定原点为像元(10,1),则该多边形界按顺时方向的链式编码为:
0,1,02,3,02,1,0,3,0,1,03,32,2,33,02,1,05,32,22,3,23,3,23,1,22,1,22,1,22,1,22,13
链式编码对多边形的表示具有很强的数据压缩能力,且具有一定的运算功能,如面积和周长计算等,探测边界急弯和凹进部分等都比较容易。但是,叠置运算如组合、相交等则很难实施,除非还原成栅格结构方可,况且公共边界需要存储两次,从而产生多余的数据。
行程编码
只在各行(或列)数据的代码发生变化时依次记录该代码以及相同代码重复的个数,即按(属性值,重复个数)编码,图2-12可沿行方向进行行程编码:
1行:(3,3),(4,5); 2行:(3,4),(4,4); 3行:(1,1),(3,3),(4,3),(2,1);4行:(1,2),(3,3),(2,3);5行:(1,4),(3,1),(2,3); 6行:(1,4),(2,4); 7行:(1,5),(2,3); 8行:(1,5),(2,3)。
逐个记录各行(或列)代码发生变化的位置和相应的代码,即按(位置,属性值)编码,图2-12可沿列方向进行行程编码:
1列:(1,3),(3,1); 2列:(1,3),(4,1); 3列:(1,3),(5,1);4列:(1,4),(2,3),(5,1); 5列:(1,4),(4,3),(6,2),(7,1);6列:(1,4),(4,2);7列:(1,4),(4,2);8列:(1,4),(3,2)。
按行(或列)记录相同代码的始末像元的列号(或行号)和相应的代码,即按(起位,止位,属性值)编码,图2-12可沿行方向进行程编码:
1行:(1,3,3),(4,8,4);2行:(3,4,3),(5,8,4); 3行:(1,1,1),(2,4,3),(5,7,4),(8,8,2); 4行:(1,2,1),(3,5,3),(6,8,2);5行:(1,4,1),(5,5,3),(6,8,2);6行:(1,4,1),(5,8,2);7行:(1,5,1),(6,8,2);8行:(1,5,1),(6,8,2)。
![](https://img-blog.csdnimg.cn/e682c76e7818479fb6879747f9af8949.jpeg)
![](https://img-blog.csdnimg.cn/837e554f9b6940a0998fca7b3f9c84ed.gif)
块式编码
块式编码是将行程编码扩大到二维的情况,把多边形范围划分成由像元组成的正方形,然后对各个正方形进行编码。块式编码数据结构中包括3个数字:块的原点坐标(可以是块的中心或块的左下角像元的行、列号)和块的大小(块包括的像元数),再加上记录单元的代码组成。图2-13说明如何对图2-12所示栅格地图进行分块,其块式编码如下:
(1,1,2,3),(1,3,1,3),(1,5,3,4),(1,8,1,4),(2,3,1,3),(2,4,1,3),(2,8,1,4),(3,1,1,1),(3,2,1,3),(3,3,2,3),(3,8,1,2),(4,1,1,1),(4,2,1,1),(4,5,1,3),(4,6,1,2),(4,7,2,2),(5,1,4,1),(5,5,1,3),(5,6,1,2),(6,5,1,2),(6,6,3,2),(7,5,1,1),(8,5,1,1)。
一个多边形所能包含的正方形越大,多边形的边界越简单,块式编码的效果就越好。行程和块式编码都对大而简单的多边形更有效,而对那些碎部仅比像元大几倍的复杂多边形效果并不好。 块式编码即中轴变换的优点是多边形之间求并及求交都方便;探测多边形的延伸特征也较容易。但对某些运算不适应,必须再转换成简单栅格数据形式才能顺利进行。
![](https://img-blog.csdnimg.cn/aa8a6937d28f45d5be2bb808f7feba56.jpeg)
![](https://img-blog.csdnimg.cn/547a592888694bdeac9170c60e0fa08a.jpeg)
![](https://img-blog.csdnimg.cn/919b150a16204688acba6fb4db3385b5.jpeg)
四叉树编码
将图像区域按四个大小相同的象限四等分,每个象限又可根据一定规则判断是否继续等分为次一层的四个象限,无论分割到哪一层象限,只要子象限上仅含一种属性代码或符合既定要求的少数几种属性时,则停止继续分割。否则就一直分割到单个像元为止。这种分块过程如图2-14所示。而块状结构则用四叉树来描述,如图2-15所示。按照象限递归分割的原则所分图像区域的栅格阵列应为2n×2n(n为分割的层数)的形式。
所谓四叉树结构,即把整个2n×2n像元组成的阵列当作树的根结点,树的高度为n级(最多为n级)。每个结点有分别代表南西(SW)、南东(SE)、北西(NW)、北东(NE)四个象限的四个分支。四个分支中要么是树叶,要么是树叉。树叶不能继续划分,说明该四分之一范围或全属多边形范围或全不属多边形范围,该结点代表子象限具有单一的代码;树叉不只包含一种代码,说明该四分之一范围内,部分在多边形内,另一部分在多边形外,因而必须继续划分,直到变成树叶为止。四叉树编码有指针四叉树编码和线性四叉树编码两种方法。
(1)指针四叉树
指针四叉树编码是通过在子结点与父结点之间设立指针的方式建立起整个结构。按这种方式,四叉树的每个结点通常存储6个量,即四个子结点指针、一个父结点指针和该结点的属性代码。这种方法除了要记录叶结点外,还要记录中间结点,一般要占用较大存储空间。
(2)线性四叉树
线性四叉树编码为美国马里兰大学地理信息系统中采用的编码方法,它的基本思想是:不需记录中间结点和使用指针,仅记录叶结点,并用地址码(如Morton码等)表示叶结点的位置。因此,其编码包括叶结点的地址码和本结点的属性或灰度值,并且地址码隐含了叶结点的位置和深度信息。最常见的地址码是四进制或十进制Morton码。
①基于深度和层次的线性四叉树编码
该编码记录每个终止结点(或叶结点)的地址和值,值就是子区的属性代码,其中地址包括两部分,共32位(二进制),最右边4位记录该叶结点的深度,即处于四叉树的第几层上,有了深度可以推知子区大小;左边的28位记录路径,从右边第五位往左记录从叶结点到根结点的路径,0,1,2,3分别表示SW、SE、NW、NE。如图2-16表示的第4个结点深度为3,第一层处于SE象限,第二层处于SW象限,第三层处于NW象限。
![](https://img-blog.csdnimg.cn/6b26b8c554df4468a6755dfddbd4ddcb.gif)
每层象限位置由二位二进制数表示,共6位,记录了各个叶子的地址,再记录相应代码值,就记录了整个图像。
②四进制地址码
该编码方法是从整体开始水平和垂直分隔,每分隔一次,增加一位数字。如图2-16(b)为对图2-16(a)进行第一次分隔后得到四个区域(0,1,2,3),即每一个位均是用一个小于4的四进制数来表示位置。因此,该码的位数表示分隔的次数。进行第二次分隔后得到“B”的地址编码为“03”。
②十进制地址码(Morton码)
Morton码是这样的:给出2个数,把它们的二进制位隔个放置,比如对于3和4,
( 0 0 0 0 0 0 1 1 )2 = (3)10,
( 0 0 0 0 0 1 0 0 )2 = (4)10,
则它们的Morton码是(0000 0000 0010 0101)2 = (37)10。第一个数的第i位对应Morton码的第(2*i-1)位,第二个数的第j位对应Morton码的第(2*j)位。其中,i和j从1开始。
在一个n×n的图像阵列中,每个像元点都相应的给出一个Morton码。如图2-18为8×8的图像阵列每一像元的Morton码。如第7列5行的Morton码为55,即(7)10=(0111)2,(5)10=(0101)2,两二进制交换位后为(00110111)2=(55)10。
![](https://img-blog.csdnimg.cn/8d841e97425c432aadd0cba2a0610ce1.gif)
这样就可将用行列表示的二维图像,用Morton码写成一维数据,通过Morton码就可知道象元的位置(臧淑英,2003)。
把一幅2n×2n的图像压缩成线性四叉树的过程为:
●按Morton码把图象读入一维数组;
●相邻的四个象元比较,一致的合并,只记录第一个象元的Morton码;
●比较所形成的大块,相同的再合并,直到不能合并为止。
对用上述线性四叉树的编码方法所形成的数据还可进一步用游程长度编码压缩。压缩时只记录第一个象元的Morton码。
如对于图2-20为图2-19所示图像的Morton。该栅格图像的压缩处理过程为:
![](https://img-blog.csdnimg.cn/23bf16609ffb4452ad9ee7954067eb93.gif)
![](https://img-blog.csdnimg.cn/c3f943bbda974640b8bd7444dd94315b.gif)
●按Morton码读入一维数组;
Morton码:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
象 元 值: A A A B A B B B A A A A B B B B
●四相邻象元合并,只记录第一个象元的Morton码。由于Morton码8,9,10,11的像元均为A,故只记录第一个Morton码8即可,从而达到压缩的目的;
0 1 2 3 4 5 6 7 8 12
A A A B A A B B A B
●由于不能进一步合并,则可用行程长度编码压缩。
0 3 4 6 8 12
A B A B A B
在解码时,根据Morton码就可知道象元在图像中的位置(左上角),本Morton码和下一个Morton码之差即为象元个数。知道了象元的个数和象元的位置就可恢复出原始图像。
四叉树编码法有许多有趣的优点:①容易而有效地计算多边形的数量特征;②阵列各部分的分辨率是可变的,边界复杂部分四叉树较高,即分级多,分辨率也高,而不需要表示许多细节的部分则分级少,分辨率低,因而既可精确表示图形结构又可减少存储量;③栅格到四叉树及四叉树到简单栅格结构的转换比其它压缩方法容易;④多边形中嵌套异类多边形的表示较方便。
四叉树编码的最大特点是转换的不定性,同一形状和大小的多边形可能得出多种不同的四叉树结构,故不利于形状分析和模式识别。但因它允许多边形中嵌套多边形即所谓“洞”的结构存在,使越来越多的GIS工作者对四叉树结构很感兴趣。上述这些压缩数据的方法应视图形的复杂情况合理选用,同时应在系统中备有相应的程序。另外,用户的分析目的和分析方法也决定着压缩方法的选取。
2.4. 矢量数据结构
矢量是具有一定大小和方向的量,数学上和物理上也叫向量。 在纸上用笔划一条线段,绘图机在纸上画一条线段,计算机图形中一条有向线段,都是一个直观的矢量。 线段长度表示大小,线段端点的顺序表示方向。 有向线段用一系列有序特征点表示,有向线段集合就构成了图形。 矢量数据就是代表地图图形的各离散点平面坐标(x,y)的有序集合,矢量数据结构是一种最常见的图形数据结构,主要用于表示地图图形元素几何数据之间及其与属性数据之间的相互关系。 通过记录坐标方式,尽可能地将点、线、面地理实体表现得精确无误。 其坐标空间假定为连续空间,不必象栅格数据结构那样进行量化处理,因此矢量数据更能精确地确定实体的空间位置。
2.4.1. 实体式数据结构
点实体
点实体包括由单独一对x,y坐标定位的一切地理或制图实体。 在矢量数据结构中,除点实体的x,y坐标外还应存储其它一些与点实体有关的数据来描述点实体的类型、制图符号和显示要求等。 点是空间上不可再分的地理实体,可以是具体的也可以是抽象的,如地物点、文本位置点或线段网络的结点等,如果点是一个与其它信息无关的符号,则记录时应包括符号类型、大小、方向等有关信息;如果点是文本实体,记录的数据应包括字符大小、字体、排列方式、比例、方向以及与其它非图形属性的联系方式等信息。 对其它类型的点实体也应做相应的处理。 图2-21说明点实体的矢量数据结构的一种组织方式。
![](https://img-blog.csdnimg.cn/58e48a7b89d448d08b4469b4a179b90d.gif)
线实体
线实体可以定义为直线元素组成的各种线性要素,直线元素由两对x,y坐标定义。 最简单的线实体只存储它的起止点坐标、属性、显示符等有关数据。 例如,线实体输出时可能用实线或虚线描绘,这类信息属符号信息,它说明线实体的输出方式。 虽然线实体并不是以虚线存储,仍可用虚线输出。
弧、链是n个坐标对的集合,这些坐标可以描述任何连续而又复杂的曲线。 组成曲线的线元素越短,x,y坐标数量越多,就越逼近于一条复杂的曲线。 既要节省存储空间,又要求较为精确地描绘曲线,唯一的办法是增加数据处理工作量。 亦即在线实体的纪录中加入一个指示字,当启动显示程序时,这个指示字告诉程序:需要数学内插函数(例如样条函数)加密数据点且与原来的点匹配,于是在输出设备上得到较精确的曲线。 不过,数据内插工作却增加了。 弧和链的存储记录中也要加入线的符号类型等信息。
线的网络结构。 简单的线或链没有携带彼此互相连接的空间信息,而这种连接信息又是供排水网和道路网分析中必不可少的信息。 因此要在数据结构中建立指针系统才能让计算机在复杂的线网结构中逐线跟综每一条线。 指针的建立要以结点为基础,如建立水网中每条支流之间连接关系时必须使用这种指针系统。 指针系统包括结点指向线的指针,每条从结点出发的线汇于结点处的角度等,从而完整地定义线网络的拓扑关系。
如上所述。 线实体主要用来表示线状地物(公路、水系、山脊线)、符号线和多边形边界,有时也称为“弧”、“链”、“串”等,其矢量编码的内容如图2-22所示。
![](https://img-blog.csdnimg.cn/b9b00993895e40368773565b217c8ba9.gif)
其中唯一标识是系统排列序号;线标识码可以标识线的类型;起始点和终止点可以用点号或直接用坐标表示;显示信息是显示时的文本或符号等;与线相联的非几何属性可以直接存储于线文件中,也可单独存储,而由标识码联接查找。
面实体
多边形(有时称为区域)数据是描述地理空间信息的最重要的一类数据。 在区域实体中,具有名称属性和分类属性的,多用多边形表示,如行政区、土地类型、植被分布等;具有标量属性的有时也用等值线描述(如地形、降雨量等)。
多边形矢量编码,不但要表示位置和属性,更重要的是能表达区域的拓扑特征,如形状、邻域和层次结构等,以便恢复这些基本的空间单元可以作为专题图的资料进行显示和操作,由于要表示的信息十分丰富,基于多边形的运算多而复杂,因此多边形矢量编码比点和线实体的矢量编码要复杂得多,也更为重要。
在讨论多边形数据结构编码的时候,首先对多边形网提出如下要求:
(1)组成地图的每个多边形应有唯一的形状、周长和面积。 它们不象栅格结构那样具有简单而标准的基本单元。 即使大多数美国的规划街区也不能设想它们具有完全一样的形状和大小。 对土壤或地质图上的多边形来说更不可能有相同的形状和大小。
(2)地理分析要求的数据结构应能够记录每个多边形的邻域关系,其方法与水系网中记录连接关系一样。
(3)专题地图上的多边形并不都是同一等级的多边形,而可能是多边形内嵌套小的多边形(次一级)。 例如,湖泊的水域线在土地用图上可算是个岛状多边形,而湖中的岛屿为“岛中之岛”。 这种所谓“岛”或“洞”的结构是多边形关系中较难处理的问题。
点、线、面实体坐标编码
任何点、线、面实体都可以用直角坐标点x,y来表示。 这里的x,y可以对应于地面坐标经度和纬度,也可以对应于数字化时所建立的平面坐标系x和y。 对于点则是一对(x,y)表示,对于线则是用一组有序的x,y坐标对表示,对于多边形则是用一组有序的但首尾坐标相同的坐标对表示,这些点是由光滑的曲线间隔采样而来。 同样的曲线长度,取点越多,以后恢复时越接近原来曲线,反之,取点过少,则恢复时就会成为折线。 图2-23为点线面的实体的坐标表示和坐标点编码文件。
![](https://img-blog.csdnimg.cn/3fa619b5477e45e99d46c14d451b7c10.jpeg)
2.4.2. 拓扑数据结构
拓扑学
![](https://img-blog.csdnimg.cn/5d08bb47745747a9ab31b12afc95b0c9.gif)
拓扑学(Topology)是一门新兴的几何学,作为几何学。 它仍是研究图形(或形状)的科学。 它之所以较新,是因为它研究的是图形在连续变形下的不变的整体性质。 与其它的几何学相比,它更为灵活和更具可塑性,所以有时又称做“橡皮板几何学”。 拓扑学与欧几里得几何学的不同之处在于它不涉及距离、方位或曲直等性质,即不涉及图形的量度性质。 例如,火车站的交通示意图、公共汽车站的路牌都可以看作拓扑图形,因为这些图形在比例、形状或位置方面均有着极大的变形。 在欧几里得几何学中,只允许图形做刚体运动(平移、旋转、反射),在这种运动中,图形上任意两点间的距离保持不变,因此,这里的几何性质就是指那些在刚体运动中保持不变的性质,因而欧几里得几何学可叫做“刚体几何学”。 拓扑学中的运动可以称作“弹性运动”,对图形可以任意伸张、扭曲、拉缩,但图形中不同的各点仍为不同的点,不可能使不同的两点合并成一点。 当且仅当一图形做弹性运动使其与另一图形重合,这两个图形是“拓扑等价”的(如图2-24),一个图形的拓扑性质是那些与此图形等价的图形都具有的性质。 因此,图形的拓扑性质就是那些在弹性运动中保持不变的性质,一图形的任何弹性运动都丝毫不改变图形的拓扑性质,所以拓扑学也叫“弹性几何学”。
拓扑关系
在地图上仅用距离和方向参数描述图上目标之间的关系是不圆满的。 因为图上两点间的距离或方向(在实地上是一定的)会随地图投影不同而发生变化。 因此仅用距离和方向参数还不可能确切地表示它们之间的空间关系。 并且,在地图图形的连续变换中,它的某些性质发生了变化,如长度、角度和相对距离,但另一些性质则保持不变,如邻接性、包含性、相交性和空间目标的几何类型(点、线、面特征类型)等保持不变。 这类在连续变形中保持不变的属性称为拓扑属性。
空间拓扑关系是讨论空间实体间拓扑属性,即在拓扑变换旋转、平移、缩放等下保持不变的空间关系,它是GIS中不可缺少的一种基本关系。 拓扑关系是不考虑度量和方向的空间实体之间的空间关系,拓扑学是研究图形在拓扑变换下不变的性质,因此拓扑学己成为空间拓扑关系研究的基础,为空间对象间的包含、覆盖、相离、和相接等空间关系的描述提供直接的理论依据。 地理空间中的点、线、面实体之间存在着各种各样的拓扑关系,因此表示拓扑关系的数据是空间数据的重要组成部分。 另外,空间拓扑关系是空间查询与分析的基础。 一方面它为地理信息系统数据库的有效建立、空间查询、空间分析、辅助决策等提供了最基础的关系,另一方面使空间拓扑关系理论应用于地理信息系统查询语言,形成一个标准的空间查询语言成为可能,从而通过应用程序进行空间特征的存储、提取、查询、更新等。
![](https://img-blog.csdnimg.cn/3d914a75d2bc45dca97f0122a68e0705.gif)
拓扑关系是指网结构元素结点、弧段、面域之间的空间关系,主要表现为下列三种关系:
(1)拓扑邻接
拓扑邻接指存在于空间图形的同类元素之间的拓扑关系。 如图2-25(a)所示,结点邻接关系有N1/N4,N1/N2···等;多边形邻接关系有P1/P3,P2/P3 ···等。
(2)拓扑关联
拓扑关联指存在于空间图形的不同类元素之间的拓扑关系。 如图2-25(a)所示,结点与弧段关联关系有N1/C1、C3、C6,N2/C1、C2、C5 ···等。 多边形与线段的关联关系有P1/C1、C5、C6,P2/C2、C4、C5、C7等。
(3)拓扑包含
拓扑包含指存在于空间图形的同类但不同级的元素之间的拓扑关系,如图2-25(b)所示,P1包含P2和P3。
空间数据拓扑关系对地理信息系统的数据处理和空间分析具有重要意义。 根据拓扑关系,不需要利用坐标或距离,可以确定一种地理实体相对于另一种地理实体的位置关系,拓扑数据也有利于空间要素的查询,例如,查询某铁路线有哪些车站,汇入某条主流的支流有哪些,以某个交通“结点”为中心,呈辐射状的道路各通向何地。
拓扑数据结构
在矢量拓扑数据结构中,空间数据不但要记录空间实体的位置,而且要记录空间实体间的拓扑关系,这是地理信息系统区别于其它数据库管理系统的重要标志。 建立拓扑关系是一种对空间结构关系进行明确定义的数学方法。 目前,空间数据的拓扑数据结构的表示方式没有固定的格式,也还没有形成标准,其基本原理是相同的。 因此,在矢量拓扑结构表示方法中,任何地理实体均可以用点、线、面来表示其特征,并且可根据各实体间的空间拓扑关系,解译出更多的信息。
对于二维空间数据而言,矢量数据可抽象为点(结点)、线(弧段或边)、面(多边形)三种要素,也称拓扑要素。 对三维而言,还要加上体。 其最基本的拓扑关系主要有拓扑邻接、拓扑关联、拓扑包含等几种。 拓扑数据结构中关键就是对这些拓扑要素间的拓扑关系进行表示,几何数据的表示可参照矢量数据的简单数据。 虽然,目前GIS中基本拓扑关系的表示方法不尽相同,但是只要能完整表达出拓扑要素间的基本拓扑关系就可以。
![](https://img-blog.csdnimg.cn/82ac2c876d614cc68583447d426229a4.gif)
根据图2-26所示的基本拓扑关系,图2-25(a)中的拓扑实体关系数据结构如表2-1所示。
目前,人们对拓扑关系的表达进行了大量研究,提出了更复杂的关联和邻接关系,但各种GIS软件对矢量空间数据拓扑关系的表达还没有超过使用上述所列的各种关系。
实际上,许多GIS系统在处理使用上述表格的方式有所不同,对于上述出现变长记录的表格(如结点关联的弧段),有的系统使用指针方法,有的则直接存储变长记录(如ArcGIS)。
弧段 | 弧段两端结点 | 弧段 | 左面 | 右面 | |
---|---|---|---|---|---|
C1 | N2,N1 | C1 | 0 | P1 | |
C2 | N3,N2 | C2 | 0 | P2 | |
C3 | N1,N3 | C3 | 0 | P3 | |
C4 | N4,N3 | C4 | P3 | P2 | |
C5 | N2,N4 | C5 | P1 | P2 | |
C6 | N1,N4 | C6 | P3 | P1 | |
C7 | N5,N5 | C7 | P4 | P2 |
拓扑数据结构的构建实际上大大增加了数据编辑的难度和复杂性。 以至于它成了一个引起广泛争议的问题。
显然,拓扑关系的存在为数据错误的查找和空间分析提供了必要的前提,但并不是所有的GIS应用、都必须具备这种预先存储的、耗费大量精力才能创建的数据结构。
许多GIS软件只使用其中几种最基本的拓扑关系,就能满足大多数的空间分析需要,但更复杂的空间分析,也许需要更多的拓扑关系。 一般地,建立的拓扑关系越多,数据编辑的维护难度就越大、越复杂, 但进行处理比较复杂的空间分析时就越方便,空间分析花费的时间就越少。 因此,究竟是否应预先存储拓扑关系、存储哪些拓扑关系就成为当前争论的焦点。
2.5. 矢量与栅格数据结构的比较
在计算机辅助制图和地理信息系统发展早期,最初引用的是矢量处理技术,栅格数据处理始于70年代中期。几年以前,这两种数据结构势不两立,很难兼容,因此给数据利用带来许多不便。 近年来,人们越来越清楚地认识到:原先把栅格和矢量数据结构的差别当成重要的概念差别,事实上都是技术问题。计算机技术的发展使运算速度、存储能力、地理数据的空间分辨率等大大提高。 为了更有效地利用GIS,人们面临的问题之一是栅格和矢量数据结构的选择。
2.5.1. 矢量与栅格数据结构的比较
地理信息系统的数据范围十分广泛,数据保存方式多种多样,数据结构类型复杂。空间数据的矢量结构和栅格结构是模拟地理信息系统的截然不同的两种方法,它们各有千秋,相互补充、相互促进。 矢量数据与栅格数据结构详细比较见表2-5。
矢量数据 | 栅格数据 |
---|---|
数据存储量小 | 数据存储量大 |
空间位置精度高 | 空间位置精度低 |
用网络连接法能完整描述拓扑关系 | 难于建立网络连接关系 |
输出简单容易,绘图细腻、精确、美观 | 输出速度快,但绘图粗糙、不美观 |
可对图形及其属性进行检索、更新和综合 | 便于面状数据处 |
数据结构复杂 | 数据结构简单 |
获取数据慢 | 快速获取大量数据 |
数学模拟困难 | 数学模拟方便 |
多种地图叠合分析困难 | 多种地图叠合分析方便 |
不能直接处理数字图像信息 | 能直接处理数字图像信息 |
空间分析不容易实现 | 空间分析易于进行 |
边界复杂、模糊的事物难以描述 | 容易描述边界复杂、模糊的事物 |
数据输出的费用较高 | 技术开发费用低 |
2.5.2. 矢量、栅格数据一体化
新一代集成化的地理信息系统,要求能够统一管理图形数据、属性数据、影像数据和数字高程模型(DEM)数据,称为四库合一。关于图形数据与属性数据的统一管理,近年来已取得突破性的进展, 不少GIS软件商先后推出各自的空间数据库引擎(SDE),初步解决了图形数据与属性数据的一体化管理。而矢量与栅格数据,按照传统的观念,认为是两类完全不同性质的数据结构, 当利用它们来表达空间目标时,对于线状实体,人们习惯使用矢量数据结构。对于面状实体,在基于矢量的GIS中,主要使用边界表达法,而在基于栅格的GIS中,一般用元子空间填充表达法。 因此,人们联想到对用矢量方法表示的线状实体,是不是也可以采用元子空间填充法来表示,即在数字化一个线状实体时,除记录原始取样点外,还记录所通过的栅格。 同样,每个面状地物除记录它的多边形边界外,还记录中间包含的栅格。一方面,它保留了矢量的全部性质,以目标为单元直接聚集所有的位置信息,并能建立拓扑关系;另一方面,它建立了栅格与地物的关系, 即路径上的任一点都直接与目标建立了联系。这样,既保持了矢量特性,又具有栅格的性质,就能将矢量与栅格统一起来,这就是矢量与栅格一体化数据结构的基本概念。
2.5.3. 矢量数据和栅格数据的选择
根据上述比较,在GIS建立过程中,应根据应用目的要求、实际应用特点、可能获得的数据精度以及地理信息系统软件和硬件配制情况,在矢量和栅格数据结构中选择合适的数据结构。 矢量数据结构是人们最熟悉的图形表达形式,对于线划地图来说,用矢量数据来记录往往比用栅格数据节省存贮空间。相互连接的线网络或多边形网络则只有矢量数据结构模式才能做到, 因此矢量结构更有利于网络分析(交通网,供、排水网,煤气管道,电缆等)和制图应用。矢量数据表示的数据精度高,并易于附加上对制图物体的属性所作的分门别类的描述。 矢量数据只能在矢量式数据绘图机上输出。目前解析几何被频繁地应用于矢量数据的处理中,对于一些直接与点位有关的处理以及有现成数学公式可循的针对个别符号的操作计算,用矢量数据有其独到的便利之处。 矢量数据便于产生各个独立的制图物体,并便于存贮各图形元素间的关系信息。
栅格数据结构是一种影像数据结构,适用于遥感图像的处理。它与制图物体的空间分布特征有着简单、直观而严格的对应关系,对于制图物体空间位置的可探性强,并为应用机器视觉提供了可能性, 对于探测物体之间的位置关系,栅格数据最为便捷。多边形数据结构的计算方法中常常采用栅格选择方案,而且在许多情况下,栅格方案还更有效。 例如,多边形周长、面积、总和、平均值的计算、从一点出发的半径等在栅格数据结构中都减化为简单的计数操作。又因为栅格坐标是规则的,删除和提取数据都可按位置确定窗口来实现, 比矢量数据结构方便得多。最近以矢量数据结构为基础发展起来的栅格算法表明存在着一种比以前想象中更为有效的方法去解决某些栅格结构曾经存在的问题。 例如,栅格结构的数据存储量过大的问题可用本章2.1节提出的压缩方法使其减少。
栅格结构和矢量结构都有一定的局限性。一般来说,大范围小比例的自然资源、环境、农业、林业、地质等区域问题的研究,城市总体规划阶段的战略性布局研究等,使用栅格模型比较合适。 城市分区或详细规划、土地管理、公用事业管理等方面的应用,矢量模型比较合适。当然,也可以把两种模型混合起来使用,在同一屏幕上同时显示两种方式的地图。
目前GIS的开发者和使用者都积极研究这两类数据结构的相互转换技术,而且已开发出栅格数据结构和矢量数据结构相互转换的软件。矢量到栅格的转换是简单的,有很多著名的程序可以完成这种转换。 而且有许多显示屏幕中可以自动完成转换工作。栅格到矢量的转换也很容易理解,但具体算法要复杂得多。实现两种数据结构的相互转换,可大大提高地理信息系统软件的通用性, 近年来,也有人在试验用一个软件同时实现栅格和矢量两种模型,以方便用户使用。
2.6. 三维空间数据模型及结构
近几年,很多人都在致力于三维数据模型的研究,虽然有三维GIS系统问世,但其功能远远不能满足人们分析问题的需要。原因主要是三维GIS理论不成熟,其拓扑关系模型一直没有解决, 另外三维基础上的数据量很大,很难建立一个有效的,易于编程实现的三维数据模型。尽管如此,本节仍将介绍当前在三维GIS上所采用的几种数据模型。
3D空间构模方法研究是目前3D GIS领域以及3D GMS领域研究的热点问题。许多专家学者在此领域做了有益的探索。地质、矿山领域的一些专家学者,围绕矿床地质、工程地质和矿山工程问题,对3D GMS的空间构建问题进行了卓有成效的理论与技术研究,加拿大、澳大利亚、英国、南非等国还相继推出了一批在矿山和工程地质领域得到推广应用的3D GMS软件。
过去十来年中,研究提出了20余种空间构模方法。若不区分准-3D和真-3D,则可以将现有空间构模方法归纳为基于面模型(facial model)、基于体模型(volumetric model)和基于混合模型(nixed model)的3大类构模体系,如表2-6所示。
![](https://img-blog.csdnimg.cn/260cfcf88643433ca36b871b628658c7.gif)
2.7. 三维矢量模型及结构
三维矢量模型是二维中点、线、面矢量模型在三维中的推广。它将三维空间中的实体抽象为三维空间中的点、线、面、体四种基本元素,然后以这四种基本几何元素的集合来构造更复杂的对象。以起点、终点来限定其边界,以一组型值点来限定其形状;以一个外边界环和若干内边界环来限定其边界,以一组型值曲线来限定其形状;以一组曲面来限定其边界和形状。矢量模型能精确表达三维的线状实体、面状实体和体状实体的不规则边界,数据存储格式紧凑、数据量小,并能直观地表达空间几何元素间的拓扑关系,空间查询、拓扑查询、邻接性分析、网络分析的能力较强,而且图形输出美观,容易实现几何变换等空间操作,不足之处是操作算法较为复杂,表达体内的不均一性的能力较差,叠加分析实现较为困难,不便于空间索引。
3D FDS模型
Molennar(1992)在原二维拓扑数据结构的基础上,定义了结点(Node)、弧(Arc)、边(Edge)和面(Face)四种几何元素之间的拓扑关系及其与点(Point)、线(Line)、面(Surface)和体(Solid)四种几何目标之间的拓扑关系,并显式地表达点和体、线和体、点和面、线和面间的is-in,is-on等拓扑关系,提出了—种基于3D矢量图的形式化数据结构(Formal Data Structure,FDS)(Pilout,Tempfli, Molenaar,1994),如图2-27所示。其特点是显式地表达目标几何组成和矢量元素之间的拓扑关系,有点类似于CAD中的BR表达与CSG表达的集成。
![](https://img-blog.csdnimg.cn/6bc88a7968d14e27879414cc055ee30b.gif)
这一模型的主要问题有三个:j仅考虑空间目标表面的划分和边界表达,没有考虑目标的内部结构,因此只适合于形状规则的简单空间目标,难以表达地质环境领域,和的没有规则边界的复杂目标;k没有对空间实体间的拓扑关系进行严格的定义和形式化描述;l由于显示地存贮几何元素间的拓扑关系,使得操作不便。
三维边界(B-Rep)表示法
在形形色色的三维物体中,平面多面体在表示与处理上均比较简单,而且又可以用它来逼近其它各种物体。平面多面体的每一个表面都可以看成是一个平面多边形。为了有效地表示它们,总要指定它的顶点位置以及有哪些点构成边,哪些边围成一个面这样一些几何与拓扑的信息。这种通过指定顶点位置、构成边的顶点以及构成面的边来表示三维物体的方法被称为三维边界表示法。
即三维边界(B-Rep)模型是通过面、环、边、点来定义形体的位置和形状,边界线可以是曲线,也可以是空间曲线。例如一个长方体由6个面围成,对应有6个环,每个环由4条边界定,每条边又由两个端点定义。
比较常用的三维边界表示法是采用三张表来提供点、边、面的信息,这三张表就是:顶点表,用来表示多面体各顶点的坐标;边表,指出构成多面体某边的两个顶点;面表,给出围成多面体某个面的各条边。对于后两个表,一般使用指针的方法来指出有关的边、点存放的位置。
三维边界模型的特点是:详细记录了构成物体形体的所有几何元素的几何信息及其相互连接关系,以便直接存取构成形体的各个面、面的边界以及各个顶点的定义参数,有利于以面、边、点为基础的各种几何运算和操作。边界表示构模在描述结构简单的3D物体时十分有效,但对于不规则3D地物则很不方便,且效率低下。
2.8. 三维体元模型及结构
真3D地学模拟、地面与地下空间的统一表达、陆地海洋的统一建模、3D拓扑描述、3D空间分析、3D动态地学过程模拟等问题,已成为地学与信息科学的交叉技术前沿和攻关热点。
体模型基于3D空间的体元分割和真3D实体表达,体元的属性可以独立描述和存储,因而可以进行3D空间操作和分析。体元模型可以按体元的面数分为四面体(Tetrahedral)、六面体(Hexahedral)、棱柱体(Prismatic)和多面体(Polyhedral)共四种类型,也可以根据体元的规整性分为规则体元和非规则体元两个大类。规则体元包括CSG-tree、Voxel、Octree、Needle和Regular Block共5种模型。规则体元通常用于水体、污染和环境问题构模,其中Voxel、Octree模型是一种无采样约束的面向场物质(如重力场、磁场)的连续空间的标准分割方法,Needle和Rugular Block可用于简单地质构模。非规则体元包括TEN、Pyramid、TP、Geocelluar、Irregular Block、Solid、3D-Voronoi和GTP共8种模型。非规则体元均是有采样约束的、基于地质地层界面和地质构造的面向实体的3D模型。
八叉树(Octree)数据结构
八叉树数据结构可以看成是二维栅格数据中的四叉树在三维空间的推广。该数据结构是将所要表示的三维空间V按X、Y、Z三个方向从中间进行分割,把V分割成八个立方
体;然后根据每个立方体中所含的目标来决定是否对各立方体继续进行八等分的划分,一直划分到每个立方体被一个目标所充满,或没有目标,或其大小已成为预先定义的不可再分的体素为止。
八叉树的主要优点在于可以非常方便地实现有广泛用途的集合运算(例如,可以求两个物体的并、交、差等运算),而这些恰是其它表示方法比较难以处理或者需要耗费许多计算资源的地方。不仅如此,由于这种方法的有序性及分层性,因而对显示精度和速度的平衡、隐线和隐面的消除等,带来了很大的方便,特别有用。
四面体格网(TEN)
从理论上讲,对任意的三维物体,只要它满足一定的条件,我们总可以找到一个合适的平面多面体来近似地表示这个三维物体,且使误差保持在一定的范围内。一般地讲,如果要表示某个三维物体,我们就须知道从这个物体表面S0上测得的一组点P1,P2,…PN的坐标。其次,就是要为这些点建立起某种关系,这种关系有时被称为这些点代表的物体的结构。
通常这种近似(或叫逼近)有两种形式,一种是以确定的平面多面体的表面作为原三维物体的表面S0的逼近;另一种则是给出一系列的四面体,这些四面体的集合(又称为四面体格网)就是对原三维物体的逼近。前者着眼于物体的边界表示(类似于三维曲面的表示),而后一类着眼于三维物体的分解,就象一个三维物体可以用体素来表示一样。
四面体格网(Tetrahedral Network-TEN)是将目标空间用紧密排列但不重叠的不规则四面体形成的格网来表示,其实质是2D TIN结构在3D空间上的扩展。在概念上首先将2D Voronoi格网扩展到3D,形成3D Vornonoi多面体,然后将TIN结构扩展到3D形成四面体格网。
1)四面体格网数据的组织
四面体格网由点、线、面和体四类基本元素组合而成。整个格网的几何变换可以变为每个四面体变换后的组合,这一特性便于许多复杂的空间数据分析。同时,四面体格网既具有体结构的优点,如:快速几何变换,快速显示,又可以看成是一种特殊的边界表示,具有一些边界表示的优点,如:拓扑关系的快速处理。
四面体网格数据结构是网格生成程序实现上一个非常重要的问题。网格数据结构的选择和建立,特别是能够满足各种各样网格生成算法要求的数据结构尤其显得重要。
2)四面体格网数据的生成算法
四面体格网(TEN)数据模型实质是二维三角形网(Triangulation Irregular Nework-TIN)数据结构在三维上的扩展。目前,主要有三种三角网生成的算法,即三角网生成算法[64],逐点插入法,以及分治算法。下面在分析三角网生成算法的基础上,给出了三个建立四面体格网的算法思想及步骤。
(1)四面体格网生成算法
该算法的思想是:在数据场中先构成第一个四面体,然后以四面体的某个面向外扩展生成新的四面体,直至全部离散点均已连成网为止。其步骤如下:
① 在数据场中选择最近两个点连线,作为第一个三角形的一条边。
② 选择第三个点构成第一个三角形。
③ 选择第四个点构成第一个四面体。
④ i=1, j=1(i为已构成的四面体个数,j为正扩展的四面体个数)。
⑤ 扩展第j个四面体生成新的四面体0~4个。
⑥ i=i+k(k=0,1,2,4),j=j+1。
⑦ i≥j则转向⑤。
⑧ 结束。
上述算法实现过程中,在步骤②中,选择第三个点的依据是Delauny的两个性质。其一是所选点与原两点一起所构成圆的圆心到原两点连线的“距离”最小;其二是所选点与原两点连线的夹角最大。在步骤③中,选择第四个点的依据是所选点与已产生的三角形的三个点一起所构成球面的球心到三角形所构成的面的“距离”最小。
(2)逐次插入算法
该算法思想是:将未处理的点加入到已经存在的四面体格网中,每次插入一个点,然后将四面体格网进行优化。其步骤如下:
① 生成包含所有数据点的立方体(即建立超四面体顶点)。
② 生成初始四面体格网。
③ 从数据中取出一点P加入到三角网中。
④ 搜寻包含点P的四面体,将P与此四面体的四个点相连,形成四个四面体。
⑤ 用LOP算法从里到外优化所有生成的四面体。
⑥ 重复③~⑤直至所有点处理完毕。
⑦ 删除所有包含一个或多个超四面体顶点的四面体。
![](https://img-blog.csdnimg.cn/2375a0d719664dcda9b9eca26997e026.gif)
上述步骤⑤中的LOP(Local Optimization Procedure)是生成四面体格网的优化过程,其思
想是运用四面体格网的性质,对由两个公共面的四面体组成的六面体进行判断,如果其中
一个四面体的外接球面包含第五个顶点,则将这个六面体的公共面交换,如图2-32所示。
(3)分治算法
该算法的思想是:首先将数据排序,即将点集V按升序排列使(xi,yi,zi) <(xi+1,yi+1,zi+1),不等式成立的条件是xi ≦xi+1且yi ≦yi+1 且zi <zi+1.然后递归地分割数据点集,直至子集中只包含四个点而形成四面体,然后自下而上地逐级合并生成最终的四面体格网。分治函数lee(V)内容如下:
① 把点集V分为近似相等的两个子集VL和VR。
② 分别在VL和VR中生成四面体格网。
如果VL中包含4~7个点,则建立VL的四面体格网;否则调用lee(VL)。
如果VR中包含4~7个点,则建立VR的四面体格网;否则调用lee(VR)。
③ 用局部优化算法LOP优化所产生的四面体格网。
④ 合并VL和VR中两个四面体格网。
分别生成VL和VR的凸多面体。
在两多面体的Z方向底线寻找一三角形,然后建立一四面体。
从该四面体逐步扩展直至整个四面体格网建立完毕。
![](https://img-blog.csdnimg.cn/b7d9f9536f584b109ef1ffee39c9153a.jpeg)
在合并VL和VR中两个四面体格网的过程中,在建立第一个四面体,以及逐步扩展四面体时,均是在与已有数据点相连的顶点中寻找。举例见图2-33,在合并VL和VR时,先找到第一个三角形⊿P1P2P3,然后从与P1,P2,P3相连的顶点中找到点P4,即生成由P1P2P3P4这四个点所组成的四面体。然后分别从⊿P1P2P4和⊿P1P3P4向外扩展,对于⊿P1P2P4是在与点P1,P2,P4相连的点中寻找第四个点,而⊿P1P3P4是在与点P1,P3,P4相连的点中寻找第四个点。每找到一个点,必须确认四面体之间无交叉重叠,若出现这种情况,则放弃这个点,认为该三角形不能再扩展。
在算法实现过程中,数据结构的组织形式是有效建立四面体格网的关键,需要深一步的研究和探讨。
2.9. 三维混合数据模型及结构
基于面模型的构模方法侧重于3D空间实体的表面表示,如地形表面、地质层面等,通过表面表示形成3D目标的空间轮廓,其优点是便于显示和数据更新,不足之处是难以进行空间分析。基于体模型的构模方法侧重于3D空间实体的边界与内部的整体表示,如地层、矿体、水体、建筑物等,通过对体的描述实现3D目标的空间表示,优点是易于进行空间操作和分析,但存储空间大,计算速度慢。混合模型的目的则是综合面模型和体模型的优点,以及综合规则体元与非规则体元的优点,取长补短。
TIN-CSG混合构模
这是当前城市3D GIS和3DCM构模的主要方式,即以TIN模型表示地形表面,以CSG模型表示城市建筑物,两种模型的数据是分开存储的。为了实现TIN与CSG的集成,在TIN模型的形成过程中将建筑物的地面轮廓作为内部约束,同时把CSG模型中建筑物的编号作为TIN模型中建筑物的地面轮廓多边形的属性,并且将两种模型集成在一个用户界面。这种集成是一种表面上的集成方式,一个目标只由一种模型来表示,然后通过公共边界来连接,因此其操作与显示都是分开进行。
TIN-Octree混合构模(Hybrid构模)
即以TIN表达3D空间物体的表面,以Octree表达内部结构。用指针建立TIN和Octree之间的联系,其中TIN主要用于可视化与拓扑关系表达。这种模型集中了TIN和Octree的优点,使拓扑关系搜索很有效,而且可以充分利用映射和光线跟踪等可视化技术。缺点是Octree模型数据必须随TIN数据的变化而改变,否则会引起指针混乱,导致数据维护困难。
Wire Frame-Block混合构模
即以Wire Frame模型来表达目标轮廓、地质或开挖边界,以Block模型来填充其内部。为提高边界区域的模拟精度,可按某种规则对Block进行细分,如以Wire Frame的三角面与Block体的截割角度为准则来确定Block的细分次数(每次可沿一个方向或多个方向将尺寸减半)。该模型实用效率不高,即每一次开挖或地质边界的变化都需进一步分割块体,即修改一次模型。
Octree-TEN混合构模
李德仁等曾提出过八又树(Octree)和不规则四面体(TEN)相结合的混合数据结构。在这个结构中,用八叉树作全局描述,而在八叉树的部分栅格内嵌入不规则四面体作局部描述。这种结构特别适合于表达内部破碎、表面规整的二维对象,但对于表面也不规整的对象则不合适。
考虑将适合于表达实体内部破碎复杂结构的不规则四面体网和适合于表达表面不规整的八叉树层次结构有机结合起来,形成统一的三维集成数据结构。这种结构用八叉树结构
表达对象表面及其内部完整部分,并在八叉树的特殊标识结点内嵌入不规则四面体网表达对象内部的破碎部分,整个结构用一棵经过有机集成的八叉树表达。
矢量与栅格集成模型
![](https://img-blog.csdnimg.cn/37b4a25e702f4bb6856a0c94058221db.gif)
一个三维空间数据模型应具有目标的几何、语义和拓扑描述;具有矢量和栅格数据结构;能够从已有的二维GIS获取数据以及三维显示和表示复杂目标的能力。矢量栅格集成的三维空间数据模型,如图2-36所示。
在这个模型中,空间目标分为四大类,即点(0D)、线(1D)、面(2D)和体(3D)。目标的位置、形状大小和拓扑信息都可以得到描述。其中目标的位置信息包含在空间坐标;目标的形状和大小信息包含在线、面和体目标;目标的拓扑信息包含在目标的几何要素和几何要素之间的联系中,而且模型中包含矢量和栅格结构。模型中包含的各种目标及其数据模型全面,但对具体的系统用什么样的数据模型可视需要而定。
2.10. 习题
1.什么叫像元、灰度值、栅格数据?
2.举例说明栅格数据层的概念。
3.栅格数据如何以数组的形式进行存储?
4.栅格数据有哪几种组织方法?各自有何优缺点?
5.栅格数据如何进行取值?
6.栅格数据存储压缩编码方法主要有哪几种?每种方法是如何进行压缩的?
7.什么叫矢量数据?点、线、面实体数据编码的基本内容是什么?
8.什么叫拓扑关系?举例说明拓扑关系有哪几种类型?
9.举例说明实体式数据结构。它有何缺点?
10.举例说明索引式数据结构、DIME数据结构、链状双重独立式数据结构。
11.地理数据的显式和隐式表示有何区别?
12.在实际工作中应如何对矢量和栅格数据结构进行有效的选择?
13.三维空间数据模型有哪些?其对应空间数据结构有什么特点?