浅谈Delaunay三角网的并行构建和更新论文

2017-03-20

三角网是由一系列连续三角形构成的网状的平面控制图形,是三角测量中布设连续三角形的两种主要扩展形式,同时向各方向扩展而构成网状.适用于地势起伏大,通视条件比较好的场地。以下是小编为大家精心准备的:浅谈Delaunay三角网的并行构建和更新相关论文。内容仅供参考,欢迎阅读!

浅谈Delaunay三角网的并行构建和更新全文如下:

随着测量技术的发展和新型测量设备的出现,空间数据的获取变得更加容易和快捷,与此同时,数据量也呈爆炸性的增长。如何利用这些海量的空间数据实现数字地面模型DTM 的高效构建是当前空间分析及应用领域亟需解决的问题之一。Delaunay 三角网以其唯一性、空圆性、能以不同分辨率表达地形、适合各种分布的数据等诸多优点而被广泛地应用于DTM 建模中。

长久以来,国内外学者对Delaunay 三角网的构建提出了多种算法。这些算法按实现过程大致可以分为三类:逐点插入法、分治法和扫描线法。陈楚江等提出了实现三角网局部更新的方法。陈少勤等提出利用多源数据实现不规则三角网的动态更新。但这些算法都是基于串行程序实现,不支持点并行的插入和删除。

随着多核计算机的普及,并行为解决大数据量的不规则三角网(TIN)构建和更新提供了新的思路。不少学者也对此做了研究,李坚等提出将分治算法与流数据处理方法相结合,利用多核处理器平台进行并行运算。张真[7]提出一种适用于并行计算的归并构网方法。这些算法满足于Delaunay 三角网的并行构建,但不适用于三角网的并行动态更新。因为在这些算法在开始之前,点集必须是确定的,而三角网更新时,被插入(删除)点是不确定的。

文章提出一种单机多核环境下Delaunay 三角网并行构建算法,该算法将数据进行格网划分,每一个数据块作为一个工作单元。同时为解决内存共享带来的问题,可以为各工作单元分配独立的内存空间,工作单元之间相对独立,因此可以很好的实现三角网的并行构建和更新。

并行算法采用数据分块[8]的思想,首先将点数据按给定阈值(实验中发现阈值选择受实验环境影响)进行格网划分,每一个数据块形成一个独立的工作单元。每一个工作单元只负责所属区域内三角网的构建更新。利用计算机单机多核的优势,可以同时将多个工作单元分配给计算机进行处理。最后将相邻的区域进行合并,最终完成三角网的构建。每一个工作单元所负责的工作主要有三方面:初始三角网的构建、点的插入和删除,下面将分别阐述。

1 初始三角网构建

主线程对队列中的所用点进行扫描,如果点位于某一个工作单元负责的区域,则将点移动到该工作单元的私有队列中。工作单元根据负责区域的四个角点坐标形成两个初始三角形,然后从自己的私有队列中取点进行插入构网。主要步骤如下:

(1)先找到包含点集中所有点的初始三角形,即将数据块的边界线向外扩大某个值d,然后连接任意一条对角线,形成两个超三角形,并对其进行标号;

(2)取点集中的任意一点v,查找v 点所在的三角形,如果v 在三角形内则连接v 和三角形的三个顶点,如果点v 在三角形边上,则连接该边相对的一个或两个顶点,如果该点与三角形顶点重合则放弃该点;

(3)调用Lop 优化算法,判断点的影响区域,对局部三角网进行更新;

(4)重复(2)到(3)步,直到所有点插入三角网;

(5)删除包含超三角形顶点的所有三角形,算法结束。

2 点的插入或删除

对生成的初始三角网进行更新,主要是通过插入和删除点来完成。对于需要插入的点集P,主线程首先对其进行扫描,将点分配到所属区域的私有队列P1、P2、P3…中。然后将工作单元分配到各个处理器上进行执行。单点插入过程主要步骤如下:(1)找到包含插入点v 的三角形t;(2)检索所有与t 关联的三角形,找到外接圆中包含点v 的三角形集D (v);(3)D (v)的外边界相连形成一个多边形P(v);(4)将P(v)内的三角形边删除;(5)连接P(v)的顶点和v 形成新的Delaunay 三角网D (v);(6)用D (v)取代D (v)形成新的Delaunay 三角网,完成一点插入。删除点时只需要找到对应的点,然后将与之关联的点重新构造三角网即可。

3 内存管理

在多线程程序中,多个线程同时对内存进行访问,在创建(删除)三角形或点时,每一个线程都需要调用内核进行内存的分配(释放)。这时会因为存在大量的锁竞争而花费很高比例的时间,这对于追求高效率的并行目的是不符的。为了避免这种情况的发生,可以为每一个线程分配独立的内存空间,线程在其中创建数据块,如果数据被删除,则把它还给自己的内存池。当内存池中空间不足时,线程才会调用内核申请新的内存块。

4 实验和分析

由于点集中数据点的分布状态对一个算法的速度和精度都有很大的影响,所以我们采用三种典型的数据分布对算法进行测试,分别为:线性分布、标准分布和均匀分布。

实验环境为6 核12 线程Intel Core i7 4930k CUP(3.4GHz)、16G 内存。分别将15M 不同分布状态的点数据在多个线程上运行。用加速比来衡量并行程序的性能和效果。

结果表明并行算法能很大的提高构网的速度,且并行数越多,速度越快。分布状态不同的数据对于串行算法执行时间影响更大,而对于并行算法,随着并行数增加,这种影响就越小。这也说明并行算法对于复杂地形的数据有很好的适应性。

5 结束语

Delaunay 三角网对DTM 模型建立和分析的一种重要手段。文章针对海量数据并行构建三角网的要求,提出一种基于数据分块的并行构网方法。该方法构网前不需要对元数据进行删重、排序等预处理,实现点的并行插入和删除,而且对不同分布状态的数据有很好的适应性。由于算法可以动态的对三角网进行更新,因此可以方便的对模型进行实时编辑,并用于工程计算和分析,如土石方量计算、建立DTM 模型、等高线绘制等。

【浅谈Delaunay三角网的并行构建和更新】相关文章:

1.浅谈大数据思维下示范中心网站信息系统的构建论文

2.浅谈百货连锁企业如何构建物流战略联盟论文

更多相关阅读

最新发布的文章