面向区域尺度土壤侵蚀建模的地形因子并行计算方法

文档序号:6638044阅读:538来源:国知局
面向区域尺度土壤侵蚀建模的地形因子并行计算方法
【专利摘要】本发明公开了一种面向区域尺度土壤侵蚀建模的地形因子并行计算方法,属于计算机和信息【技术领域】。该方法包括以下过程:(1)确定数据划分策略,根据并行节点数目,采用行带缓冲区划分方法对原始地形数据进行等行划分,同时每个子数据块包含了数据区、缓冲区以及控制点三个要素;(2)按照数据划分策略,基于预处理后的DEM数据,进行坡度并行计算、水流方向计算、汇流累积计算、河网提取计算、坡长计算以及坡度坡长因子计算六步。本发明在并行算法设计过程中充分考虑了串行算法的计算特征,针对局部型算法和全局型算法分别设计了不同的并行化策略,有效提高了算法的并行效率,实现了基于海量地形数据的地形因子快速准确计算。
【专利说明】面向区域尺度土壤侵蚀建模的地形因子并行计算方法

【技术领域】
[0001] 本发明属于计算机和信息【技术领域】,特别涉及一种面向区域土壤侵蚀建模的地形 因子并行计算方法。

【背景技术】
[0002] 土壤侵蚀是全人类共同面对的重大环境问题,而地形要素对土壤侵蚀发生发展具 有重要的控制作用,也是现有土壤侵蚀模型中不可或缺的因子之一。当前学者普通采用坡 度坡长因子以表达地形要素对土壤侵蚀的影响。坡度坡长因子包含了坡度因子和坡长因子 两部分,其中坡长的提取是一个难点。Hickey, Van Remortel,张宏鸣等学者基于数字高程 模型产品(^Digital Elevation Models,缩写为DEM)提出并发展了面向侵蚀过程的坡长提 取方法,并已经在坡面尺度和流域尺度的土壤侵蚀预测中得到广泛应用。
[0003] 近年来为服务于区域水土保持宏观决策、生态环境综合治理、全球变化等问题,在 已有的坡面尺度、流域尺度土壤侵蚀研究的基础上,区域尺度土壤侵蚀相关研究得到越来 越多的重视,相关学者开发了一系列的区域土壤侵蚀模型。在区域尺度土壤侵蚀预测与模 拟中,由于大区域高精度数据较难获取,同时由于计算机存储、计算等能力的限制,现有研 究通常采用以下两种方式求取适用于区域尺度土壤侵蚀定量评价的地形指标。一是根据侵 蚀地貌学理论拟订替代指标,间接表示坡度坡长因子,如地形起伏度等。二是对基于中低 分辨率DEM提取的地形因子进行尺度变换,以满足土壤侵蚀建模的需要。然而这两种方法 都只是权宜之计,目前在区域土壤侵蚀建模中,基于高精度地形数据的坡度坡长因子高效 计算已成为制约其应用与发展的关键问题。
[0004] 随着地理数据采集方式的进步,特别是LiDAR、INSAR等技术的应用,大区域高精 度DEM数据越来越丰富。数据来源的不断扩展更加凸显了现有计算方式的落后,运用并行 计算方法实现对区域尺度的坡度坡长因子提取是解决这一问题的有效方法。目前并行计算 在数字地形分析领域已经得到了广泛的应用,特别是在流域分析方面,基于并行计算提取 河网、进行流域划分已有大量研究。然而,目前现有针对坡度坡长因子的计算还采用串行方 法,并行计算在流域分析中的成功运用可以借鉴到坡度坡长因子计算中。


【发明内容】

[0005] 本发明所要解决的技术问题在于,针对现有串行算法无法高效提取面向区域尺度 土壤侵蚀建模的地形因子,提出了一种多核集群环境下坡度坡长因子并行计算方法,为区 域尺度的土壤侵蚀预测与模拟提供技术支撑。
[0006] 针对上述发明目的,本发明所采用的技术方案如下:
[0007] 面向区域尺度土壤侵蚀建模的地形因子并行计算方法,包括以下过程:
[0008] (1)确定数据划分策略,其划分方式为:根据并行节点数目,采用行带缓冲区划分 方法对原始地形数据进行等行划分,同时每个子数据块包含了三个要素:a)数据区:本计 算节点所分配的数据区;b)缓冲区:每个子数据块附加了上下两个缓冲区,对于第一子数 据块只有下缓冲区,对于最后一个数据块只有上缓冲区;C)控制点:用于定位每个数据块 的起始读写位置;
[0009] (2)按照步骤(1)的数据划分策略,基于预处理后的DEM数据,进行坡度并行计 算;
[0010] (3)按照步骤(1)的数据划分策略,基于预处理后的DEM数据,进行坡长并行计算; 具体包含了以下几个子算法:a)基于预处理后的DEM数据,进行水流方向并行计算;b)基 于水流方向计算结果进行汇流累积并行计算;c)基于汇流累积计算结果和设定的河网阈 值,进行河网提取并行计算;d)基于水流方向计算结果进行坡长并行计算,同时此步骤需 要坡度数据用于坡度截断栅格判断,河网水系数据用于河网截断栅格判断;
[0011] (4)按照步骤(1)的数据划分策略,基于坡度和坡长计算结果,进行坡度坡长因子 并行计算。
[0012]上述步骤(2)具体的计算流程如下:
[0013] 步骤21.根据数据划分策略,对输入的DEM数据进行数据划分,并创建结果数据文 件;
[0014] 步骤22.各子节点遍历输入的DEM数据,并执行坡度算法,计算完成后将计算结果 写入结果文件。
[0015] 上述步骤(3)具体的计算流程如下:
[0016] 步骤31.根据数据划分策略,对输入的DEM数据进行数据划分,并创建结果数据文 件;各子节点遍历输入的DEM数据,并执行水流方向算法,计算完成后将计算结果写入结果 文件;
[0017] 步骤32.根据数据划分策略,对水流方向矩阵进行数据划分,并创建汇流累积结 果文件;各子节点遍历输入的水流方向矩阵,将源点栅格赋值为〇同时入栈,非源点栅格赋 值为-m,m为邻接汇入栅格数目,遍历完成后依次取出栈内栅格并沿流向计算其下游栅格 汇流累积值,当栈内元素为空时计算结束;
[0018] 步骤33.数据块间更新缓冲区信息,各子数据块已更新后的缓冲区栅格为源点栅 格依次更新本数据区汇流累积值;一次更新计算完成后,遍历各子数据块边界行数据,若全 部栅格完成计算则计算结束,否则需要重复步骤33;计算完成后各子节点将计算结果写入 已创建的汇流累积文件;
[0019]步骤34.根据数据划分策略,对输入的汇流累积数据进行数据划分,并创建结果 数据文件;各子节点遍历输入数据,并执行河网提取算法,计算完成后将计算结果写入结果 文件;
[0020] 步骤35.根据数据划分策略,分别对河网矩阵、坡度矩阵、水流方向矩阵进行数据 划分,并创建坡长结果文件;各子节点遍历输入数据,根据侵蚀学坡长算法定义分别执行栅 格点标识、非累积坡长计算、累积坡长计算步骤;
[0021] 步骤36.数据块间更新缓冲区信息,各子数据块以更新后的缓冲区栅格为源点栅 格依次更新本数据区的坡长值;一次更新计算完成后,遍历各子数据块边界行数据,若全部 栅格完成计算则计算结束,否则需要重复步骤36 ;计算完成后各子节点将计算结果写入已 创建的坡长文件。
[0022] 上述步骤⑷具体的计算流程如下:
[0023] 步骤41.根据数据划分策略,对输入的坡度、坡长数据进行数据划分,并创建结果 数据文件;
[0024] 步骤42.各子节点遍历输入数据,并执行坡度坡长因子算法,计算完成后将计算 结果写入结果文件。
[0025] 本发明具有以下两点优势:
[0026] (1)将现有的小流域尺度的土壤侵蚀模型地形因子计算方法扩展到了区域尺度, 运用并行技术克服了现有串行算法面对大区域海量高精度数据处理能力的瓶颈,为区域尺 度土壤侵蚀模拟提供有力支持。
[0027] (2)并行算法设计过程中充分考虑了串行算法的计算特征,针对局部型算法和全 局型算法分别设计了不同的并行化策略,有效提高了算法的并行效率。实现了基于海量地 形数据的地形因子快速准确计算。

【专利附图】

【附图说明】
[0028] 图1是本发明中数据划分示意图;
[0029] 图2是全局型算法数据依赖示意图,图2(a)是水流方向矩阵,图2(b)是计算源点 栅格示意图,图2(c)是数据分块导致的计算未完成示意图;
[0030] 图3是本发明中缓冲区更新计算策略示意图,图3(a)是进程间更新缓冲区示意 图,图3(b)是缓冲区更新后各进程分别计算示意图;
[0031] 图4是本发明中算法并行化策略示意图;
[0032] 图5是本发明中并行化流程示意图;
[0033] 图6是实施例中输入DEM数据;
[0034] 图7是实施例中输出的坡度坡长因子结果。

【具体实施方式】
[0035] 下面结合附图和具体实施例,对本发明作进一步详细说明。
[0036] 一、数据划分策略
[0037] 本发明采用的是一种条带划分方式,其基本思想是根据并行算法的进程数,将原 始数据划分为等数据行的子数据块,每个子数据块主要包含三个元素:(1)数据区:本计算 节点所能分配的数据区域;(2)控制点:用于定位每个数据块的起始读写位置;(3)缓冲区: 每个子数据块附加了上下两个缓冲区(对于第一子数据块只有下缓冲区,最后一个数据块 只有上缓冲区)。缓冲区一方面可解决跨数据访问数据的问题,同时也可用于进程间计算结 果的传递。(如图1所示)
[0038] 二、算法并行策略
[0039] 本发明涉及的六个子算法,根据其计算特征可分为局部型算法和全局型算法两 类。对于局部型算法,每一个栅格的计算都是相对独立的,即计算过程中栅格之间的计算结 果不具有依赖性。对于局部型算法并行化,数据划分后各子数据块之间不存在数据依赖,因 此不需要数据块间的通信。而对于全局型算法,数据划分后各子数据块之间需要信息传递 以消除依赖关系。
[0040] 局部型算法可进一步划分为:(1)点运算,如河网提取和因子计算两类算法,每个 栅格计算是完全独立的;(2)窗口运算,如坡度和水流方向两类算法,每个栅格计算时需要 开辟一个分析窗口,在本发明中采用的是3*3窗口。具体实施时,局部型算法的并行化策略 如下所示:
[0041] (1)程序初始化,获取进程数及算法相关参数。
[0042] (2)根据进程数拆分DEM数据。
[0043] (3)读取数据,各进程根据定位信息读取本节点数据及缓冲区数据。
[0044] (4)算法计算,根据具体算法对各进程的数据进行计算。
[0045] (5)写出数据,根据定位点信息,各进程分别将计算结果写入结果文件。
[0046] (6)释放内存,并行计算任务完成。
[0047] 局部型算法的并行化策略的伪代码如表1所示:
[0048]表1局部型算法的并行化策略的伪代码

【权利要求】
1. 面向区域尺度土壤侵蚀建模的地形因子并行计算方法,其特征在于,包括以下过 程: (1) 确定数据划分策略,其划分方式为:根据并行节点数目,采用行带缓冲区划分方法 对原始地形数据进行等行划分,同时每个子数据块包含了三个要素:a)数据区:本计算节 点所分配的数据区;b)缓冲区:每个子数据块附加了上下两个缓冲区,对于第一子数据块 只有下缓冲区,对于最后一个数据块只有上缓冲区;c)控制点:用于定位每个数据块的起 始读写位置; (2) 按照步骤(1)的数据划分策略,基于预处理后的DEM数据,进行坡度并行计算; (3) 按照步骤(1)的数据划分策略,基于预处理后的DEM数据,进行坡长并行计算;其 中包含了水流方向计算、汇流累积计算、河网提取计算以及坡长计算四个子计算流程; (4) 按照步骤(1)的数据划分策略,基于坡度和坡长计算结果,进行坡度坡长因子并行 计算。
2. 根据权利要求1所述面向区域尺度土壤侵蚀建模的地形因子并行计算方法,其特征 在于,步骤(2)具体的计算流程如下: 步骤21.根据数据划分策略,对输入的DEM数据进行数据划分,并创建结果数据文件; 步骤22.各子节点遍历输入的DEM数据,并执行坡度算法,计算完成后将计算结果写入 结果文件。
3. 根据权利要求1所述面向区域尺度土壤侵蚀建模的地形因子并行计算方法,其特征 在于,步骤(3)具体的计算流程如下: 步骤31.根据数据划分策略,对输入的DEM数据进行数据划分,并创建结果数据文件; 各子节点遍历输入的DEM数据,并执行水流方向算法,计算完成后将计算结果写入结果文 件; 步骤32.根据数据划分策略,对水流方向矩阵进行数据划分,并创建汇流累积结果文 件;各子节点遍历输入的水流方向矩阵,将源点栅格赋值为〇同时入栈,非源点栅格赋值 为_m,m为邻接汇入栅格数目,遍历完成后依次取出栈内栅格并沿流向计算其下游栅格汇 流累积值,当栈内元素为空时计算结束; 步骤33.数据块间更新缓冲区信息,各子数据块已更新后的缓冲区栅格为源点栅格依 次更新本数据区汇流累积值;一次更新计算完成后,遍历各子数据块边界行数据,若全部栅 格完成计算则计算结束,否则需要重复步骤33 ;计算完成后各子节点将计算结果写入已创 建的汇流累积文件; 步骤34.根据数据划分策略,对输入的汇流累积数据进行数据划分,并创建结果数据 文件;各子节点遍历输入数据,并执行河网提取算法,计算完成后将计算结果写入结果文 件; 步骤35.根据数据划分策略,分别对河网矩阵、坡度矩阵、水流方向矩阵进行数据划 分,并创建坡长结果文件;各子节点遍历输入数据,根据侵蚀学坡长算法定义分别执行栅格 点标识、非累积坡长计算、累积坡长计算步骤; 步骤36.数据块间更新缓冲区信息,各子数据块以更新后的缓冲区栅格为源点栅格依 次更新本数据区的坡长值;一次更新计算完成后,遍历各子数据块边界行数据,若全部栅格 完成计算则计算结束,否则需要重复步骤36 ;计算完成后各子节点将计算结果写入已创建 的坡长文件。
4.根据权利要求1所述面向区域尺度土壤侵蚀建模的地形因子并行计算方法,其特征 在于,步骤(4)具体的计算流程如下: 步骤41.根据数据划分策略,对输入的坡度、坡长数据进行数据划分,并创建结果数据 文件; 步骤42.各子节点遍历输入数据,并执行坡度坡长因子算法,计算完成后将计算结果 写入结果文件。
【文档编号】G06F19/00GK104392147SQ201410754205
【公开日】2015年3月4日 申请日期:2014年12月10日 优先权日:2014年12月10日
【发明者】汤国安, 刘凯, 江岭, 蒋如乔, 黄骁力 申请人:南京师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1