并行算法设计与实现任务指导书.docx

PAGE \* MERGEFORMAT 13 空间信息处理并行算法设计与实现任务指导书 课题目的 通过对HPC、Linux、并行计算基础、MPI变成模型的理论讲授,以及对应的上机实践,同学们已经为如何利用HPC技术,尤其是MPI并行编程方法实现空间信息领域的典型空间信息处理算法并行化奠定了一定的基础。这部分课题设计就是检验同学们对前面知识的整体掌握程度而设计的。 课题介绍 本次课题设计算法是基于格网的栅格数据(DEM栅格影像数据)生成等高线(矢量数据结构,Shapefile格式)算法的并行化实现。该算法涉及地理空间信息系统常见的两种数据格式:栅格数据、矢量数据结构,属于数据格式转化算法中的一类(栅格数据转换成矢量数据)。因为等高线生成算法是一个比较典型的栅格-矢量数据转化算法,是GIS的常见空间分析算法之一,具有较为广泛的应用领域。随着获取栅格数据,尤其是DEM数据能力的提高,该算法需要处理的数据越来越大;另一方面,该算法本身处理极为耗时,是一个典型的集数据密集、计算密集型的空间信息处理算法。 因此,选择该算法作为研究空间信息处理算法在不同HPC计算手段下的研究对象是适合的;通过该并行算法设计,对探索其他地学计算的算法并行化研究具有较为重要的作用。 课题任务 设计并实现基于高性能集群平台的MPI版本的等高线生成并行算法,以及并行算法的测试、性能分析报告。最后提交《实验报告》(参见附件中的“电子科技大学标准实验报告模板”文件进行)。 课题要求 提交的《标准实验报告》(纸质版和电子版)。提交报告的内容部分需包含串行算法原理、热点分析、并行算法设计、并行算法编码实现、并行算法测试、并行算法优化改进(可选)、系统测试等部分。 提交对应的源代码(电子版); 必须独立完成,避免抄袭(会用相关代码克隆检测软件进行扫描,务必引起重视); 同时也请提交平时上机练习的作业代码; 上机时间:2016年6月22日,地点请查看系统;请大家提前准备好相关材料,上机的时候统一提交给我。 课题实现 在具体实施该课题时,提供对应的基础知识与大体的思路与方法,以及列出在实现过程中需要注意的问题,以供同学们参考使用。 等高线串行算法原理 目前,获取等高线的手段多种多样,其中通过地形数据自动生成等高线,如通过纸质地图扫描矢量化生成等高线,DEM栅格数据转换成生成等高线等多种途径和方法。其中利用DEM栅格数据通过算法自动生成等高线(图1)是获取等高线的最主要手段,该途径既是利用DEM进行地形分析的重要部分,也是GIS自动制图的一个重要研究内容。此外,空间数据转换既是GIS数据处理的一项重要任务,也是GIS的技术难题之一。有时候,为了方便分析和应用,需要将矢量数据转换成栅格数据,或者将栅格数据转换为矢量数据,而由栅格数据生成等高线则是数据格式转换中的一类。 图1 栅格DEM生成等高线传统DEM数据获取主要通过航空摄影测量、卫星遥感、已有地形图矢量化等手段完成,随着先进空间数据获取技术的进步与发展,尤其是LiDAR (light detection and ranging)技术的革命性发展,使快速、低成本、自动处理获取大面积、高精度的DEM 图1 栅格DEM生成等高线 目前,应用得最为广泛的栅格生成等高线算法采用的是等值线传播算法,隶属于网格法这一类,该算法的时间复杂度为O(N)。等值线传播算的基本原理是:为了得到某一高程值的等高线,首先找到一个有对应等高线穿过的格网作为初始格网;然后由这个初始格网开始向邻近的栅格(上、下、左、右)传播这条等高线;当某一条等高线穿过格网时,可通过线性内插方法求出等高点;同时利用下述公理判断其下一个传播方向: 公理1:单元格网的边与等高线交点的个数为0,2或4 ; 公理2:已知等高线与单元格网的边有4个交点,则在单元格网内中心点和两个顶点同号的对角线与等高线没有交点。 直至所有栅格单元遍历一遍,再利用相同方法进行下一条等高线的获取。一个完整的可实现的栅格数据生成等高线算法的描述如下: (1)标志栅格图像的栅格。 设置一个标志,用来说明该栅格是否需要再被搜索,初始值与说明不再对该栅格进行搜索的标志值不同,被标志后直至等高线高程发生变化后,标志才会失效。 (2)构成栅格矩形。 图2 栅格格网设置将待搜索的栅格与其右,右下,下方各栅格一起组成栅格矩形。如图 图2 栅格格网设置 (3)判断栅格点间等高线是否穿过。 如上图所示,以点0和1为例,设点0高程为Z0,点1高程为Z1,判断它们之间是否有高程值为level的等高线穿过,只需判断level-Z0level- (4)插入等高线矢量点。 对于每条等高线,依次搜索栅格图像的各个栅格,对每一栅格,判断该点是否出界及是否已被标记不再搜索。如果均否,则判断相邻两栅格之间是否有等高线穿过(如图

文档评论(0)

1亿VIP精品文档

相关文档