一种基于gpu加速的多分辨率大规模森林演替过程仿真方法

文档序号:6360551阅读:329来源:国知局
专利名称:一种基于gpu加速的多分辨率大规模森林演替过程仿真方法
技术领域
本发明涉及森林动态模拟仿真领域,尤其是ー种大規模森林演替过程仿真方法。
背景技术
对于森林动态模拟仿真,国内外已经提出了很多生长模型,这些模型中,森林的动 态仿真大部分都基于以下几个环节种子分布阶段,萌芽阶段,生长阶段,死亡阶段。在这些阶段,其中包括光照模型的计算,环境资源计算,成年树生长计算,幼年树生长计算等。传统森林仿真不具有科学真实性,森林场景只由主观想象绘制的树木图像简单叠加而成,未充分体现出森林场景的复杂性与客观真实性。另ー方面,虽然有很多基于林学数学模型的计算机模拟森林动态仿真,但很多在森林场景的规模上都未达到很大規模,在达到大规模场森林场景的动态仿真时,其方法运行效率不高,通常需要耗费高代价的时间来获得模拟结果,其未能充分发挥现在PC计算机硬件的潜力,尤其是图形硬件GPU处理器上越来越通用的并行计算能力。现有方法对上述这些森林动态生长阶段的加速计算主要基于GPU基础上,对于种子分布阶段,本系列方法发明所借助的模型是2000年Philip T. LePage等人提出的WeiBull Function模型,由于对于某块样地的种子数量涉及整片森林场景的树木,因此其计算量是非常庞大的,现在已有的加速方法是基于在CPU上建立四叉树数据结构实现数据优化,进行计算的方法。对于成年树阶段,借助的生长模型是2009年K. David Coates等人提出的温带植物资源竞争模型。其中在该成年树生长模型中,对于计算机的模拟主要耗时的是成年树领域内树木竞争的计算与光照资源竞争的计算,在该模型中,其中成年树领域树的竞争以NCI指数所表示,光照资源以光照指数(GLI)所表示。对于成年树的光照指数(GLI)计算,现有使用基于光线与树冠求交的方法进行实现,即使在GPU上实现求交,由于场景规模的巨大,其计算量与所需线程量也相当庞大。现有多分辨率技术主要用于图形图像中的网格简化,通过构造原始网格模型的多个逼近表示,结合硬件资源的绘制能力和绘制误差选择最优的细节层次(level-of-detail, L0D)进行绘制,并在保证绘制速度的前提下尽可能提高绘制质量。随着计算机硬件的不断发展,GPU并行计算能力与通用性的提高,另外由于森林场景中树木个体之间具有相同的生长阶段,生长模型公式具有相同性,设计适用于GPU硬件架构的加速方法对于高效大規模的森林动态仿真具有很高的实用价值,对于高效的管理大片森林资源,预测未来发展趋势具有良好的应用价值。

发明内容
为了克服已有森林动态模拟仿真方法的正确性较差、运行效率较低的不足,本发明提供一种正确性良好、提升运行效率的基于GPU加速的多分辨率大規模森林演替过程仿真方法。本发明解决其技术问题所采用的技术方案是一种基于GPU加速的多分辨率大規模森林演替过程仿真方法,所述仿真方法包括以下步骤I),建立树木数据组织与样地数据组织; 根据GPU架构对树木数据进行组织,形成利于GPU计算的数数据组织结构所有计算的树木数据结构将被设计成数组形式;在多分辨率数据组成中聚类结点第k层与第k+1层的数据表示,对于第k层单位结点数据由m个k-1层结点数据累加而成,对于每个单位结点数据,由s种树种对应单位成年树结点数据构成;每棵成年树或者幼年树X的树冠被建模成圆柱体,它们在地表的投影都是ー个圆CU),设样地単元边长为r,则样地单元网格的面积即r2,对于投影完全包含k个样地単元网格的树木,则其暴露面积即为kr2,为正确计算不同树木发生遮挡时暴露面积,设树木树冠上顶面离地面距离为H(X),所有样地网格単元标记为Mu,在理想不想交投影区域,则如果某样地网格Mu完全包含在树木投影CU)中,则将Mu分配给树木X,否者不对其分配;在投影相交区域,对于样地网格Mij被多个投影所覆盖,该样地网格将会被分配给能够完全包含它的H(X)最大的那棵树木X ;对于整个样地単元建立一与样地网格大小相同的ニ维数组结构M,所有元素所记录的是所被分配的成年树ID或者未被分配标记;对于具有n棵树木的森林场景,首先遍历树木,遍历中对树木X投影所包含的所有样地网格単元M(i,j)进行分配,如果该网格単元未分配给任何树木,则将其分配给X ;如果该网格単元已经被分配给树木t,则通过X树木ID (X)获取树高H(X),通过记录数组获取t的树木ID⑴,利用ID⑴获取树高H (t),比较H(t)与H(X)大小,若H(X)大于H(t),则将该样地单元网格M(i,j)重新分配给树木x,否则不做任何变化;该方法的最大时间复杂度为0(kn),k为单棵树木最大可能覆盖的样地网格,在lm*lm的样地网格;2)线程分配设计根据模型公式⑴
权利要求
1. 一种基于GPU加速的多分辨率大規模森林演替过程仿真方法,其特征在于 所述仿真方法包括以下步骤 1),建立树木数据组织与样地数据组织; 根据GPU架构对树木数据进行组织,形成利于GPU计算的数数据组织结构所有计算的树木数据结构将被设计成数组形式;在多分辨率数据组成中聚类结点第k层与第k+1层的数据表示,对于第k层单位结点数据由m个k-1层结点数据累加而成,对于每个单位结点数据,由s种树种对应单位成年树结点数据构成; 每棵成年树或者幼年树X的树冠被建模成圆柱体,它们在地表的投影都是ー个圆CU),设样地単元边长为r,则样地单元网格的面积即r2,对于投影完全包含k个样地単元网格的树木,则其暴露面积即为kr2,为正确计算不同树木发生遮挡时暴露面积,设树木树冠上顶面离地面距离为H(X),所有样地网格単元标记为Mu,在理想不想交投影区域,则如果某样地网格Mu完全包含在树木投影CU)中,则将Mu分配给树木X,否者不对其分配;在投影相交区域,对于样地网格Mij被多个投影所覆盖,该样地网格将会被分配给能够完全包含它的H(X)最大的那棵树木X ; 对于整个样地单元建立一与样地网格大小相同的ニ维数组结构M,所有元素所记录的是所被分配的成年树ID或者未被分配标记;对于具有n棵树木的森林场景,首先遍历树木,遍历中对树木X投影所包含的所有样地网格単元M(i,j)进行分配,如果该网格単元未分配给任何树木,则将其分配给X ;如果该网格単元已经被分配给树木t,则通过X树木ID (X)获取树高H(X),通过记录数组获取t的树木ID(t),利用ID (t)获取树高H (t),比较H (t)与H(X)大小,若H(X)大于H(t),则将该样地单元网格M(i,j)重新分配给树木X,否则不做任何变化;该方法的最大时间复杂度为0(kn),k为单棵树木最大可能覆盖的样地网格,在lm* Im的样地网格; 2)线程分配设计根据模型公式(I) R1 = f STRj(I) 其中,Ri表示样地i的种子数量,U,STR, D,0,P都是与树种相关的常数參数,DBH为成年树树干胸径大小,由成年树胸径的大小及树种參数所决定,dik表示第k棵成年树距离样地i的实际物理距离,N为所有具有繁殖能力的成年树总数,通过对树种真实參数的代入可知,随着母树与样地的距离的dik不断増大,母树所对样地产生的种子数量Ri成单调递减趋势; 将姆棵树木的遍历转换成cuda内核中单位线程,计算plot[k]的种子分布情况,Y讳度值代表样地,对线程网格的纬度Y = k处,所有X纬度上的线程进行对样地K的种子分布影响计算; 对于样地plot(i, j)的种子分布计算,线程网格Y纟韦度为i+j*PlotWidth的计算其样地的种子分布情况,其中PlotWidth为样地的宽度,对于计算同一样地种子分布的线程划分,是根据邻域树木与样地的距离的不同,线程所计算的结点层次也不同; 3)种子分布内核方法具体流程如下 a获取线程所在块的Y纬度k,,获取线程在X维度上的值; b判断该线程所计算结点与线程所计算目标样地単元的距离d,根据不同距离尺度标准从而进行进行判断是否进行细分结点,第二层结点距离尺度标准为P 2,如果d大于P 2,则不进行划分,如果小于P 2,则进行细分结点; c如果结点为叶子结点或不需要细分结点,则直接获取线程所对应母结点聚类数据;通过上ー步所获得的母结点与目标样地距离进行种子密度的计算; d如果细分结点,则该线程将获取母聚类结点所对应子节聚类点数据进行计算,重复上面步骤b ; 成年树NCI方法GPU的内核方法,根据模型公式(6)
全文摘要
一种基于GPU加速的多分辨率大规模森林演替过程仿真方法,包括以下步骤1),建立树木数据组织与样地数据组织;根据GPU架构对树木数据进行组织,形成利于GPU计算的数数据组织结构,对于整个样地单元建立一与样地网格大小相同的二维数组结构M;2)将每棵树木的遍历转换成cuda内核中单位线程,计算plot[k]的种子分布情况,Y纬度值代表样地,对线程网格的纬度Y=k处,所有X纬度上的线程进行对样地K的种子分布影响计算;3)种子分布内核方法,成年树NCI方法GPU的内核方法以及成年树光照GLI内核方法。本发明提供一种正确性良好、提升运行效率的基于GPU加速的多分辨率大规模森林演替过程仿真方法。
文档编号G06T1/20GK102646261SQ20121004613
公开日2012年8月22日 申请日期2012年2月27日 优先权日2012年2月27日
发明者嵇海锋, 汤颖, 范菁, 董天阳 申请人:浙江工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1