本文共 19119 字,大约阅读时间需要 63 分钟。
GIS 空间数据模型(空间认知三层模型)由概念数据模型、逻辑数据模型和物理数据模型三个不同的层次组成。
空间认知三层模型 |
---|
- 网络权正值表示阻碍度,负值表示不连通。
- 一个几何网络只有一个默认网络权,但可以有多个绑定字段网络权。
- 根据网络权数据类型不同,可以分为 5 种:short 型、long 型、float 型、double 型、byte 型,默认网络权的数据类型为 double 型。
- 在几何网络中可以有多个网络权,分为两种,一种是可以直接指定网络元素的网络权值,一个几何网络只有一个默认网络权;另一种是用户通过修改网络要素的网络权绑定字段的属性值去改变网络元素的网络权值,称为绑定字段网络权,一个几何网络可以用多个绑定字段。根据网络权字段属性值拆分策略不同,可以分为比例网络权和绝对网络权两种类型。
- 网络需求正值表示资源消耗,负值表示资源补给。
- 一个几何网络只有一个默认网络需求,并且也只有一个绑定字段网络需求。
- 默认网络需求和绑定字段网络需求的数据类型为双精度型。
- 几何网络的边要素和点要素相互联系,一条边连接两个点,一个点可以连接大量的边。边要素可以在二维空间中交叉而不相交,如立交桥。几何网络中的要素表示网络地理实体,如道路、车站、航线等。
- 几何网络主要包括:网络要素的几何信息和属性信息;网络要素类信息;网络权信息;网络权字段绑定信息;网络需求字段绑定信息;使能状态字段绑定信息;指示方向字段绑定信息;连接规则。
逻辑网络:是由边和结点组成的纯粹的网络元素集合,是一种数据表组织(与几何网络对应),一种连接关系(存储边线和交点),以及一些附加信息(用于网络分析)。
- 网络元素:当生成一个几何网络后,系统将自动产生和维护一个逻辑网络。一般而言,网络分析功能只涉及逻辑网络。逻辑网络中的边和结点没有几何信息,所以它们被称为网络元素。逻辑网络是网络元素的集合,是由结点元素和边线元素相连构成的系统。网络元素没有几何特征,因此称为元素,区别于要素。
- 逻辑网络包括:逻辑网络属性信息;连通信息;使能状态信息;权值信息;默认网络权值信息;网络需求信息;默认网络需求信息;指示方向信息和流向信息。
一个几何网络总对应一个逻辑网络,几何网络的要素和逻辑网络的元素是一对一或者一对多的关联关系。逻辑网络依附于几何网络,当编辑几何网络的要素时,相应的逻辑网络元素会自动更新。逻辑网络中的元素没有空间特性,即没有坐标值。逻辑网络存储网络的连通信息,是网络分析的基础。
逻辑网络的网络元素组成:5 个,边线元素、结点元素、中心元素、站点元素及沿线元素组成。
5种,属性规则、空间规则、拓扑规则、关系规则和连接规则。
有效性规则:对象特性的一个特殊表现是某些属性的取值往往存在边界条件,对象之间的关系(包括空间关系)甚至关系本身存在某种约束条件。所有这些限制条件统称为有效性规则
像元:亦称像素点或像元点,是组成数字化影像的最小单元,在GIS中,通常将工作区域的平面表象按一定的行和列的规则划分,最终形成许多网格,每个网格单元就称为一个像元。
灰度值:像元用于表示网格中不同元素各自所代表的实体的属性差异。
网格中每个元素的代码代表了实体的属性或属性的编码,根据所表示实体的表象信息差异,各像元可用不同的"灰度值"来表示。若每个像元规定为 N 比特,则其灰度值范围可在 0~2N−1 之间;
把白—灰色—黑的连续变化量化为 8 比特(bit),则其灰度值范围在 0~255 之间,共256 级;若每个像元只规定 1 比特,则灰度值仅为 0 和 1,这就是所谓的二值图像,0 代表背景,1 代表前景。
栅格数据:栅格数据结构其实就是像元阵列(像元按矩阵形式的集合)。
栅格中的每个像元是栅格数据中最基本的信息存储单元,其坐标位置可以用行号和列号来确定。由于栅格数据是按一定规则排列的,所以表示的实体位置关系是隐含在行号、列号之中的。
实体可分为点实体、线实体和面实体。
点实体在栅格数据中表示为一个像元;线实体则表示为在一定方向上连接成串的相邻像元集合;面实体由聚集在一起的相邻像元集合表示。这种数据结构便于计算机处理面状要素。
图 2-15 栅格数据结构对观测值的影响 |
---|
注意:用栅格数据表示的地表是不连续的,是量化和近似离散的数据,这意味着地表在一定面积内(像元地面分辨率范围内)地理数据的近似性。 |
地理数据在栅格数据结构中必须分层组织存储,每层构成单一的属性数据层或专题信息层。通常根据不同的使用目的,来确定需要建立哪些层及需要建立哪些描述性属性。
图 2-16 栅格数据的分层与叠加 |
---|
举例:一个包含有植被、土壤、地形等地理要素的实体,可以将植被组织为一个专题层,土壤组织为一个专题层,地形组织为一个专题层,分别对应于各自的栅格数据层,然后对不同的栅格数据层进行叠加分析而得到分析结论。 |
例如,在 16 bit/子的系统中,如果按照每个像素 8 bit的数据对待,则可以把相邻两个像素分别存储在上 8 bit和下 8 bit中;如果按照每个像素 4 bit的数据对待,则一个字长可以连续存储 4 个像素的数据;如果按每个像素 1 bit的数据对待,则一个字长可以存储 16 个像素的数据。
例如,对于 n bit的图像,需要有 n 个比特面,在比特面 k 中(k=0,1,…,n-1),存储的是以二维形式排列的各个像素值的第 k 比特(0 或1,因为bit位的值不是0就是1)的数据。
以 bit 面作为单位进行处理时,其优点是能够在各面间进行高效率的逻辑运算,存储设备利用率高等,但也存在对图像的处理上耗费时间的问题。
图 2-17 组合方式和比特面方式 |
---|
其实二维数组存储方式,在系统内部也是以一维数组的方式进行存储的。
也有其他方法,即不存储栅格数据全体,而只是把应该存储的像素的信息,按照一定规则存储到一维数组中。这种方法主要在栅格数据中用来存储图形轮廓线信息等,具体来讲是坐标序列、链码等。
图 2-18 把栅格数据(二维数组)存储到一维数组中 |
---|
栅格数据有 3 种组织方法,其目的是为了实现:最优数据存取、最少存储空间、最短处理过程。
图 2-20 栅格数据取值方法 |
---|
直接栅格编码是最简单、最直观而又非常重要的一种栅格结构编码方法,通常又称这种方法为图像文件或栅格文件。
当每个像元都有唯一一个属性值时,一层内的编码就需要m(行) × n(列)个存储单元,如果一个多边形(或制图单元)内的每个像元都具有相同的属性值,就有可能大大节省栅格数据的存储需要量。
例如影像:
在系统内是一个 4x4 阶的矩阵,但在外部设备上,是按照左上角开始逐行逐列进行存储。上述的直接栅格编码的存储顺序为: A A A A A B B B A B B B A A A B
栅格结构不论采用直接栅格编码方法还是压缩编码方法,其逻辑原型都是直接编码的网格文件。
4 种:链式编码、行程编码(游程长度编码)、块式编码、四叉树编码。
又称弗里曼链码或边界链码,在多边形中可以表示为:由某一原点开始并按某些基本方向确定的单位矢量链。
图 2-21 栅格地图的简单区域 |
---|
基本方向可定义为:东=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-22 多区域栅格地图 |
---|
沿行方向使用行程编码(方式一):
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);
沿列方向进行行程编码(方式二):
column 1: (1,3),(3,1);column 2: (1,3),(4,1);column 3: (1,3),(5,1);column 4: (1,4),(2,3),(5,1);column 5: (1,4),(4,3),(6,2),(7,1);column 6: (1,4),(4,2);column 7: (1,4),(4,2);column 8: (1,4),(3,2);
沿行方向使用行程编码(方式三):
row 1:(1,3,3),(4,8,4);row 2:(1,4,3),(5,8,4);row 3:(1,1,1),(2,4,3),(5,7,4),(8,8,2);row 4:(1,2,1),(3,5,3),(6,8,2);row 5:(1,4,1),(5,5,3),(6,8,2);row 6:(1,4,1),(5,8,2);row 7:(1,5,1),(6,8,2);row 8:(1,5,1),(6,8,2);
将行程编码扩大到二维的情况,把多边形划分成像元组成的正方形,然后对各个正方形进行编码。块式编码数据结构包括 3 类数据:块的原点坐标(块中心或左上角像元的行号和列号)、块的大小(半径)和属性和记录单元的代码组成。
图 2-23 块式编码分解示意图(对) 图 2-22 多区域栅格地图(进行说明) |
---|
/*格式:(行号,列号,半径,属性)*/(1,1,2,3);(1,3,1,3);(1,4,1,4);(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,7,3,2);(7,5,1,1);(8,5,1,1);
一个多边形所能包含的正方形越大,多边形的边界越简单,块式编码的效果就越好。行程和块式编码都对大而简单的多边形更有效,而对那些碎部仅比像元大几倍的复杂多边形效果并不好。块式编码即中轴变换的优点是多边形之间求并及求交都方便,探测多边形的延伸特征也较容易。但对某些运算不适应,必须再转换成简单栅格数据形式才能顺利进行。
图 2-24 四叉树对栅格数据进行分解 |
---|
分解步骤:将图像区域按 4 个大小相同的象限 4 等分,每个象限又可根据一定规则判断是否继续等分为次一层的 4 个象限,无论分割到哪层象限,只要子象限上仅含一种属性代码或符合既定要求的少数几种属性,则停止继续分割,否则一直分割到单个像元为止。 |
分解结果:按照象限递归分割的原则,所分图像区域的栅格阵列应为 2n×2n(n 为分割的层数)的形式。 |
图 2-25 四叉树结构图 |
---|
第 1 种,指针四叉树编码。
指针四叉树编码在子结点和父结点之间通过指针建立起整个结构。 指针四叉树编码压缩栅格数据,会在四叉树的每个结点存储 6 个量,4 个子结点指针,1 个父节点和该结点的属性代码。这种方法一般除了要记录叶子结点之外,还要记录中间结点,从而使得内存占用相对较大。
第 2 种,线性四叉树编码。
不使用指针,不用记录中间结点,仅记录叶子结点,并用地址码表示叶子结点的位置。因此,其编码包括叶子结点的地址码和本节点的属性和灰度值,并且地址码隐含了叶结点的位置和深度信息。
图 2-26 基于深度和层次的线性四叉树编码示意图(二进制代码) |
---|
第 4 个结点深度为 3,第一层处于 SE 象限,第二层处于 SW 象限,第三层处于 NW 象限 |
图 2-27(b) 所示为对图 2-27(a)进行分割,由上而下生成四进制 Morton 码 |
---|
如图 2-27(b) 所示为对图 2-27(a)进行第一次分隔后得到 4 个区域(0,1,2,3),即每位均用一个小于 4 的四进制数来表示位置。因此,该码的位数表示分隔的次数。进行第二次分隔后得到“B”的地址编码为“03”。 |
Morton 码:给出两个数,把它们的二进制位和十进制相等。
例如,给出 3 和 4,有:(0000 0011)2 = (3)10 和 (0000 0100)2=(4)10 ;它们的 Morton 码是:(0000 0010 0101)2 =(37)10
第一个数的第
i
位对应 Morton 码的第2*i-1
位,第二个数的第j
位对应 Morton 码的第2*j
位。其中,i 和 j 从 1 开始。在一个 n×n 的图像阵列中,每个像元点都相应地给出一个 Morton 码。
图 2-28 8x8 图像阵列的每个像元的 Morton 码 |
---|
该表中第 7 列 5 行的 Morton 码为 55 ,即行号 7 和列号 5 的二进制数分别为 (0000 0111)2 和 (0000 0101)2 |
两个二进制数换位后的结果为 (0011 0111)2 =(55)10 ,从而将行、列表示的二维图像,成功地改用 Morton 码(如,表中)写成一维数据,通过 Morton 码就可知道像元的位置 |
作用:将一幅 2n×2n 的图像压缩成线性四叉树。
步骤:图 2-30 是图 2-29 所示图像阵列的 Morton 码 |
---|
该栅格图像的压缩处理过程如下: |
1. 按 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 |
2. 将 4 个相邻像元合并,只记录第一个像元的 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 |
3. 若不能进一步合并,则可用行程长度编码压缩: 0 3 4 6 8 12 A B A B A B |
PS:在解码时,根据 Morton 码可知像元在图像中的位置(左上角),本 Morton 码和下一个 Morton 码之差即为像元个数。知道了像元的个数和像元的位置就可恢复出原始图像。 |
优点:
缺点:四叉树编码存在转换的不定性,同一形状和大小的多边形可能得出多种不同的 四叉树结构,故不利于形状分析和模式识别。
有向线段用一系列有序特征点表示,有向线段集合即构成了图形,因此矢量数据就是地图图形的各离散点平面坐标(x, y)的有序集合。
图 2-31 点实体数据结构基本内容 |
---|
图 2-32 线实体数据结构基本内容 |
---|
唯一标识码是系统排列序号;线标识码可以标识线的类型;起始点和终止点可以用点号或直接用坐标表示;显示信息是显示时的文本或符号等;与线相连的非几何属性可以直接存储于线文件中,也可单独存储,而由标识码连接查找。 |
面实体数据结构基本内容 |
---|
包括多边形的形状、周长、面积,且都是唯一的,并且包括多边形的位置、属性及区域之间的拓扑关系 |
点:用一对(x,y)表示;线:用一组有序 (x,y) 坐标对表示;面:用一组有序但首尾坐标相同的(x,y)坐标表示。
任何点、线、面实体都可以用直角坐标点 x, y 来表示,这里的 x, y 可以对应地面坐标的经纬度,也可以对应数字化时所建立的平面坐标系 x, y 。这些点都是由光滑曲线的隔点采样而来的,同样的曲线长度,取点越多,以后恢复时越接近原来的曲线;反之,取点越少,恢复时就会成为折现。
图 2-33 点、线、面实体的坐标表示(a)和坐标点编码文件(b) |
---|
点实体:指包括有单独一对 x,y 坐标定位的一切地理或制图实体,在空间上是不可再分的实体,可以是具体的也可以是抽象的,例如地物点、文本位置点或线段网络的节点等。
线实体:指由两对 x,y 坐标定义的直线元素所组成的各种线性要素,曲线则是由多个直线元素所组成的,x,y 的坐标数量越多,就越逼近曲线。例如,公路、水系、山脊线等线状地物以及符号线和多边形边界等。
面实体:也称为区域,一个区域或一幅地图可以划分成许多多边形,每个多边形由一条或若干条弧段组成,每条弧段由一串有序的 x,y 坐标对组成。例如,行政区、土地类型、植被分布等,也有用等值线描述的,如地形、降雨量等。
图 2-35 空间几何实体的拓扑关系 |
---|
拓扑邻接:存在于空间图形的同类元素之间的拓扑关系。例如(a),结点邻接关系有 N1/N4,N1/N2 等,多边形邻接关系有 P1/P2,P2/P3 等。 |
拓扑关联:存在于空间图形的不同类元素之间的拓扑关系。例如(a),结点与弧段关联关系有 N1/C1,C3,C6,N2/C1,C2,C5 等,多边形与线段的关联关系有 P1/C1,C5,C6,P2/C2,C4,C5,C7 等。 |
拓扑包含:存在于空间图形的同类但不同级的元素之间的拓扑关系。例如(b),P1 包含 P2 和 P3 。 |
拓扑学:研究图形在连续变形的情况下不变的整体性质。
刚体几何学:在欧几里得几何学中,只允许图形做刚体运动(平移、旋转、反射),在这种运动中,图形上任意两点间的距离保持不变,因此,这里的几何性质是指那些在刚体运动中保持不变的性质,因而欧几里得几何学可称作“刚体几何学”。
弹性几何学:拓扑学中的运动可以称作“弹性运动”,对图形可以任意伸张、扭曲、收缩,但图形中不同的各点仍为不同的点,不可能使不同的两点合并成一点。当且仅当一个图形做弹性运动使其与另一个图形重合,则称这两个图形是“拓扑等价”的(见图 2-34)。
图形的拓扑性质就是那些在弹性运动中保持不变的性质,一个图形的任何弹性运动都丝毫不会改变图形的拓扑性质,所以拓扑学也叫作“弹性几何学”。例如,在地图图形的连续变换中,长度、角度和相对距离等会发生变化,但另一些性质则保持不变,如邻接性、包含性、相交性和空间目标的几何类型(点、线、面特征类型)等,这类在连续变形中保持不变的属性称为拓扑属性,也就是拓扑性质。
图 23-1 拓扑关系的基本原理 |
---|
此处:"—"表示边的方向为逆时针,"0"为含洞的弧段。 |
图 23-2 空间几何实体图形 |
---|
根据图 23-1 定义的拓扑关系基本原理对图 23-2 的图形进行的拓扑关系描述:表 2-1 表 2-2 表 2-3 表 2-4 |
索引式数据结构:指根据多边形边界索引文件,来检索多边形边界的坐标数据的一种数据组织形式。 |
---|
DIME 数据结构:即双重独立地图编码(Dual Independent Map Encoding),一种把几何量度信息(直角坐标)与拓扑逻辑信息结合起来的系统。 |
---|
最初是由美国人口调查局建立起来的为人口调查而设计的一种拓扑编码方法,也可用于土地利用等多种信息系统的编码和分析。 |
链状双重独立式数据结构:是 DIME 数据结构的一种改进。 |
---|
在 DIME 中,一条边只能用直线端点的序号及相邻的面域来表示,而在链式数据结构中,一条边可以由许多点组成,这样在寻找两个多边形之间的公共界线时,只要查询链名就行,与这条界线的长短和复杂程度无关。 |
面条数据结构(spaghetti):只记录空间对象的位置坐标和属性信息,不记录拓扑关系。 |
---|
存储方式 1 - 独立存储:物体以独立的实体存贮,不存贮点、线、面原始空间关系,只存几何特征。空间对象位置直接跟随空间对象 |
存储方式 2 - 点位字典:点坐标独立存储,线、面由点号组成 |
特征:1、无拓扑关系,主要用于显示、输出及一般查询;2、公共边重复存储,存在数据冗余,难以保证数据独立性和一致性;3、多边形分解和合并不易进行,邻域处理较复杂;4、处理嵌套多边形比较麻烦 |
适用范围:制图及一般查询,不适合复杂的空间分析 |
栅格数据结构和矢量数据结构都有一定的局限性,一般来说,大范围小比例的自然资源、环境、农业、林业、地质等区域问题的研究,城市总体规划阶段的战略性布局研究等,使用栅格数据比较合适;城市分区或详细规划、土地管理、公用事业管理等方面的应用,矢量数据结构比较合适。
概念:三维边界表示法,通过制定顶点位置、构成边的顶点以及构成面的边来表示三维物体的方法。
例如,一个长方体由 6 个面围成,对应有 6 个环,每个环由 4 条 边界定,每条边又由两个端点定义。
特点
体元模型可以按体元的面数分为四面体(Tetrahedral)、六面体(Hexahedral)、棱柱体(Prismatic)和多面体(Polyhedral)共 4 种类型,也可以根据体元的规整性分为规则体元和非规则体元两个大类。
规则体元:包括 CSG-tree、Voxel、Octree、Needle 和 Regular Block 共 5 种模型。
规则体元通常用于水体、污染和环境问题构模,其中 Voxel、Octree 模型是一种无采样约束的面向场物质(如重力场、磁场)的连续空间的标准分割方法,Needle 和 Regular Block 可用于简单地质构模。
非规则体元:包括 TEN、Pyramid、TP、Geocellular、Irregular Block、Solid、3D-Voronoi 和 GTP 共 8 种模型。
非规则体元均是有采样约束的、基于地质地层界面和地质构造的面向实体的三维模型。
图 2-28 在三维空间上划分实体 图 2-39 层层划分,便得到八叉树 |
---|
四面体网格数据的组织:四面体格网由点、线、面和体 4 类基本元素组合而成。整个格网的几何变换可以变为每个四面体变换后的组合,这一特性便于许多复杂的空间数据分析。
图 2-41 对图 2-40 的四面体格网中的点、线、面、体进行数据描述 |
---|
- 两种模型的数据是分开存储的。
- 为了实现 TIN 与 CSG 的集成,在 TIN 模型的形成过程中,将建筑物的地面轮廓作为内部约束,同时把 CSG 模型中建筑物的编号作为 TIN 模型中建筑物的地面轮廓多边形的属性,并且将两种模型集成在一个用户界面中。
- 这种集成是一种表面上的集成方式,一个目标只由一种模型来表示,然后通过公共边界来连接,因此其操作与显示都是分开进行的。
这种模型以 TIN 表达三维空间物体的表面,以 Octree 表达内部结构,用指针建立 TIN 和Octree 之间的联系,其中 TIN 主要用于可视化与拓扑关系表达。这种模型集中了 TIN 和 Octree 的优点,使拓扑关系搜索很有效,而且可以充分利用映射和光线跟踪等可视化技术。缺点是,Octree 模型数据必须随 TIN 数据的变化而改变,否则会引起指针混乱,导致数据维护困难。
这种模型以 Wire Frame 模型来表达目标轮廓、地质或开挖边界,以 Block 模型来填充其内部。为提高边界区域的模拟精度,可按某种规则对 Block 进行细分,如以 Wire Frame 的三角形面与 Block 体的截割角度为准则来确定 Block 的细分次数(每次可沿一个方向或多个方向将尺寸减半)。该模型实用效率不高,即每次开挖或地质边界的变化都需要进一步分割 Block 体,即修改一次模型。
这个结构中,用八叉树(Octree)进行全局描述,而在八叉树的部分栅格内嵌入不规则四面体(TEN)进行局部描述。这种结构特别适合于表达内部破碎、表面规整的二维对象,但对于表面也不规整的对象则不合适。
考虑将适合于表达实体内部破碎复杂结构的不规则四面体网和适合于表达表面不规整的八叉树层次结构有机结合起来,形成统一的三维集成数据结构。这种结构用八叉树结构表达对象表面及其内部完整部分,并在八叉树的特殊标识结点内嵌入不规则四面体网表达对象内部的破碎部分,整个结构用一棵经过有机集成的八叉树表达。不规则四面体网和三级矢量化八叉树有机结合的统一三维集成数据结构,可用图 2-44、图 2-45 表示。图 2-44 传统八叉树与 TEN 结合 | 图 2-45 面八叉树与 TEN 结合 |
---|---|
一个三维空间数据模型应具有目标的几何、语义和拓扑描述,具有矢量和栅格数据结构,能够从已有的二维 GIS 获取数据以及三维显示和表示复杂目标的能力。矢量栅格集成的三维空间数据模型,如图 2-46 所示。
图 2-46 矢量栅格集成的三维空间数据模型 |
---|
在这个模型中,空间目标分为四大类,即点(0D)、线(1D)、面(2D)和体(3D)。 |
其中,目标的位置信息包含在空间坐标中,形状和大小信息包含在线、面和体中,目标的拓扑信息包含在目标的几何要素和几何要素之间的联系中,而且模型中包含矢量和栅格结构。 |
模型中包含的各种目标及其数据模型是全面的,对具体的系统用什么样的数据模型可视需要而定。 |
四面体格网数据模型的本质是二维三角形网(Triangulation Irregular Network,TIN)数据结构在三维空间中的扩展。目前,主要有三种生成三角形网的算法,即三角形网生成算法、逐点插入法和分治算法。
在数据场中先构建一个四面体,然后以四面体的某个面向外扩展生成新的四面体,直至全部离散点均已连成网为止。
将未处理的点加入到已经存在的四面体格网中,每次插入一个点,然后对四面体格网进行优化。
LOP 算法(Local Optimization Procedure):生成四面体格网的优化过程,其思想是运用四面体格网的性质,对由两个公共面的四面体组成的六面体进行判断,如果其中一个四面体的外接球面包含第 5 个顶点,则将这个六面体的公共面交换。
首先将数据排序,即将点集 V 按升序排列使(xi,yi,zi)<(xi+1,yi+1,zi+1),不等式成立的条件是 xi≤xi+1 且 yi≤yi+1且 zi<zi+1,然后递归地分割数据点集,直至子集中只包含 4 个点,从而形成四面体,然后自下而上地逐级合并生成最终的四面体格网。
在合并 VL 和 VR 中两个四面体格网的过程中,在建立第一个四面体,以及逐步扩展四面体时,均是在与已有数据点相连的顶点中寻找。
图 2-43 合并 VL 和 VR 的示意图 |
---|
如图 2-43,在合并 VL和 VR 时,先找到第一个三角形△P1P2P3,然后从与 P1,P2,P3 相连的顶点中找到点 P4,即生成由 P1P2P3P4 这 4 个点所组成的四面体。然后分别从△P1P2P4 和△P1P3P4 向外扩展,对于△P1P2P4,是在与点 P1,P2,P4 相连的点中寻找第 4 个点,而对于△P1P3P4,是在与点 P1,P3,P4 相连的点中寻找第 4 个点。每找到一个点,必须确认四面体之间无交叉重叠,若出现这种情况,则放弃这个点,认为该三角形不能再扩展。 |
如果 VL 中包含 4~7 个点,则建立 VL 的四面体格网,否则调用 lee(VL);
如果 VR 中包含 4~7 个点,则建立 VR 的四面体格网,否则调用 lee(VR);
转载地址:http://xrhwi.baihongyu.com/