用激光雷达数据创建不规则三角网的新计算方法
摘要:不规则三角网(TIN)模型是基于规则格网地表表示之外的一种替代方法,应用于众多的数字化制图和地理信息系统中。在不规则三角网中,不规则空间分布的采样点模拟地形时,粗糙地形用更多的点,平坦地形则采用较少的点表示。尽管它简单,但是构建一个地区的TIN模型,需要进行样点选取、连接采样点构建三角形,以及用三角形进行表面建模三个步骤。大部分样点选取可行算法都使用一个密集的数字高程模型(DEM)或一组数字化的等高线作为输入。现在,光探测和测距(LIDAR)设备能够获得点云,它的可用性以及推广需要一种从新数据中进行样点选取的新计算方法。本文阐述了用激光雷达(LiDAR)数据创建不规则三角网时样点选取的新计算方法。 关键词:三角剖分,TIN,LiDAR,DEM,地形表面 1 引言与研究背景
数字地形建模提供了一种健全的数字模式地形表述,非常重要,能够很容易的包含到数字制图与地理信息系统中。数字地形模型(DTM)是用某种数字数据结构来表达地球表面的方法。最常见的数字地形模型是数字高程模型(DEM),包括规则格网模型和不规则格网模型。常见的数字地形模型是用摄影测量以手动或者自动方式得到;然而,不管是手动还是自动方式,样点都不是随机选择的。那么,规则格网模型(如:数字高程模型)能在何种程度表达地形?同时,如果想更新DEM将会怎样?TIN与DEM不同,是对地形表面的连续表达。在GIS中,数字地形表达大部分能够用来分析和可视化研究。不同的表达能够用来提供地形表面的数字模型,包括等高线图,数字高程模型以及不规则三角网模型。等高线图用等高线来连接等高程点,进而描述地形表面。等高线存储于“有序表”文件中。尽管这种数据结构简单,但是长等高线可能有成千上万个点,所以会产生一个很大的“有序表”文件。数字高程模型是地表点高度基于格网的表示。规则格网模型是最简单而且最常见的地表数字表示形式。DEM网格大小或者分辨率在确定地表描述可信度非常重要的参数。通常想得到高分辨率的DEM,但是粗糙地形建模时DEM高分辨率更重要。
图1 实验研究区域和LiDAR点子集
TIN模型用分布密集点表达地形粗糙区域,较少点来表达地形平坦区,所以其不规则空间分布点对地形的表达可信度跟高。TIN模型由于其连续性,模型的三角面都用于数字化表达中,所以适合可视化目的的建模。此外,与DEM不同的是,由于对三角网模型还没有一个全面的分析方法,所以不能从TIN得到很多的信息。在TIN模型中,样点简单的通过线连接形成三角形,通过对地形连续描述的平面来表示。构建TIN,尽管简单,却需要知道怎样从原始数据集中选取样点,怎样三角化。说到样点三角化,一些三角化方法在构建TIN是可行的。在现存使用中的三角化方法中,Delauney三角网方法尽管产生的三角形没有层次,但是其结构非常严谨,所以很常见而且很流行。作为构建TIN模型的第一步,可以从很多种包含云点的数据中选择样点,如:DEM,等高线图层。然后连接选择的样点形成常见的Delauney三角网。本文阐述了用LiDAR数据创建不规则三角网时样点选取的新计算方法。 LiDAR使用激光脉冲来对地形表面进行制图,是一种地形数据获取技术。LiDAR扫描仪通常与惯性导航系统以及全球定位系统一起搭载于航天飞机上,通过处理每次激光脉冲返回时间来计算距离,同时进一步为制图区域内的云点形成三维定位信息。LiDAR系统已经声明了绘制不同地表类型的可行性,包括裸露地表、城市区、山区以及林冠。本研究中以及本文所陈述的LiDAR数据集是Erie湖沿岸1平方英里的研究区。该LiDAR数据集由机载LiDAR海
岸侵蚀评估项目获取(USGS,NOAA,NASA)。地面点密度高度变异的,但是代表性的点密度都是30个每100平方米。密度的变化是由于沿路径边缘以及两路径的重叠区域点更多。由于航天飞机的纬度的不确定性,平均水平精度为75厘米,垂直精度约为50厘米。 2 点集三角化
用n个点组成的点集构建TIN,有很多种三角化方法可用,但是Delauney三角网是最严谨的方法。Delauney三角网的主要特征是任何一个三角形内部不包含点集中其他点,如图2。如果点集中没有四个点是共圆的话,三角化是唯一的。Delauney三角网(DT)可以在O(n log n)时间内构建,隐含的数据结构可以在O(log n)时间内搜索到并进行更新。同时,DT对基于凸坐标的内插线性规则很简单。如果我们采集到具有属性的任意点点集,我们需要生成能够最适合数据点并且反应真实地表行为的数字地形图,在此种情况下哪种模型最合适呢?DEM还是TIN?最好的方式就是将点集三角化,生成TIN(不需要DT)。问题是在这种情况下为什么大部分分更喜欢生成格网表面而不是三角面?原因之一可能是格网模型已经有很多开发好的建模工具以及格网分析工具。这些通过地图代数操作可以得到。另一方面,三角网地形表面就没有此类的开发好的工具可用。对一给定的随机点集有很多三角化方法(DT,Greedy,Optimal,以及arbitrary);因此没有唯一的数据结构。基于近端顺序类型(自然邻点、Optimal,以及arbitrary),可以定义一个具体的三角网数据结构。需要一种与格网地形表面进行地图代数类似的TIN空间建模操作环境。
图2 六个点的Delauney三角网
数据获取技术的先进性使更多的成本合理的系统可以随机获取点模式数据,如,LiDAR。同时,由于TIN密切表现了现实地形,所以在地表表达方面比规则格网更有效。在这种TIN建模环境形成之前,需要说明以下问题:1)给定数据点的所有可能三角网唯一数据结构标识;2)给定TIN模型边界标识“我们并非指凸包,因为我们知道DT的外部面就是点集的凸包”;3)给定三角网的类型标识。 三角网的这三种数据结构包括三角形、索引数据结构以及索引拓扑数据结构列表。在三角形结构列表中,存储了每个三角形的几何信息和三个顶点(点的空间位置、面法向量等)。这种方法的不足之处在于,每个三角形都会重复顶点,导致内存消耗呈线性增长。索引数据结构包括顶点和三角形两个列表。对每个顶点,存储了几何信息,对每个三角形存储的是三个顶点的参照。由于三角形顶点的参照需要log n字节,所以需要O(n log n)的时间。索
引拓扑数据结构与索引数据类似,但是它进一步包含对其相邻三个三角形的参照。由于每个三角形参照需(log n+1)个字节,所以所需时间为O(n log n+n)。 3 Delauney三角网特征
Delauney三角网是voronoi图的对偶图。voronoi图也称为泰森多边形,将空间细分为一组凸多边形,多边形边界是相邻数据点的垂直平分线,因此,例证了邻接概念。基于这一特征,voronoi图能帮助检测集群。对于每个三角形顶点与其最近的相邻点连接的一组点,DT与voronoi图的对偶关系提供了所有最近相邻点问题的直接解决方案。voronoi图常见算法之一是每次在图中插入一个点。每次插入一个新点,需要一下三个步骤:1)弄清楚哪个现存voronoi多边形包含新点;2)沿新点泰森区域边界依次查询,将新边插入图中;3)删除所有插入新区域的旧边。尽管这一算法耗时为O(n2),但是已被证实如果不考虑所给点集的情况,而且是随机插入点的话,耗时将仅为O(n log n)。
另外一种算法是分治算法,将点平分为两部分,左边n/2个点用蓝色表示,右边n/2个点用红色表示。递归计算voronoi图的两部分点,然后通过找出红色与蓝色点分界线将两部分合并。最后一步可以通过运用“漫步蚂蚁”算法在线性时间内完成。一只蚂蚁开始在无穷远,沿着某蓝色点和红色点间的路径向上走,想一直向上走到无限远处,尽可能的远离点。只要蚂蚁到达红色voronoi图边界,则离开新红点,当遇到蓝色voronoi图边界,则离开新蓝点。DT与其最小支撑树(MST)的关系是一个有趣的特性。对于平面中n个点的点集,我们可以将点看成是定义了一个边为不同点无向对欧几里得图,以及权重为n个点集两点间的欧几里得距离。MST是将点连接成自由树的n-1条边,其边的总权重值最小。计算MST的广泛使用的算法是Kruskal算法,该算法首先将边分类,每次插入一条边,总耗时为O(n2 log n)。 本实验中运用的DT构建算法是随机化的增量算法,每次将点按随机顺序插入图中。每插入一次,三角网更新一次。按照其他增量算法,我们需要跟踪新插入点在图中的哪个位置。当我们增加下一点时,问题在于将目前的DT转为包含这一点的新DT。这通过构建包含该点的非DT完成,然后对三角网修改,使其保持Delauney特征。该算法的两个主要的步骤是1)插入点:首先标识包含新点的三角形,然后插入边,再对周围的边进行修改;2)测试是否满足Delauney特征,然后在对边适当的修改。该算法的运行时间是O(n log n)。 4 利用LiDAR数据构建TIN的新方法
大多数情况下,将LiDAR数据作为构建三角网模型的输入,提供了一个过度表达兴趣区的密集点云。例如,如果该区域相对的平坦,就没有必要构建成百上千个坡度与坡向都相似三角形来表达该区域。因此,一个全新的从原始LiDAR数据点云选择点构建区域三角网的计算方法就显得尤为重要。在这一节中,我们陈述了一个利用LiDAR数据构建TIN的全新计算方法。。我们的方法是基于DT与voronoi图之间的图论对偶性。以下就是本文方法: 1) 运用先前章节所提的分治算法构建voronoi图。
2) 利用voronoi图评估LiDAR点的局部密度以及在用户定义的水平以上标识集群。找到了
集群也就相当于对给定点集中的一部分点划出子集,根据预先定义好的相似性标准,子
集内同级的成员类似,而不同级的成员不同。例如,稠密子集在小区域生成voronoi多边形,相似集群内多边形将有类似的几何形状。
3) 第二步中标识的集群中,在voronoi图区域内相同邻近区选出具有用户定义阈值内高程
的点。这一阈值可以使用不同的方法估计,例如,将LiDAR数据点构建成格网DEM后,通过构建一个趋势面或者移动平均窗口确定阈值。
4) 接下来,用“voronoi树”概念删除第三步中选择的点,并更新voronoi图。Voronoi树
记录了分治构建voronoi图历史。Voronoi树叶将点限于字母表顺序。 5) 然后,用上节陈述的随机化增量算法构建最终DT。

