CN109063279B - 基于粒子流轨迹追踪算法的三维空间风场动态模拟方法 - Google Patents
基于粒子流轨迹追踪算法的三维空间风场动态模拟方法 Download PDFInfo
- Publication number
- CN109063279B CN109063279B CN201810775573.XA CN201810775573A CN109063279B CN 109063279 B CN109063279 B CN 109063279B CN 201810775573 A CN201810775573 A CN 201810775573A CN 109063279 B CN109063279 B CN 109063279B
- Authority
- CN
- China
- Prior art keywords
- particle
- field
- wind field
- grid
- moment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Graphics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种三维空间风场动态模拟方法,该方法包括:(1)基于读入的空间风场数据形成空间网格场;(2)在网格场内随机生成多个风场粒子并初始化,且生成粒子管理器以存储粒子的移动轨迹、步长和生命值;(3)当粒子当前时刻的步长不超过最大步长且生命值小于生命周期时,基于当前时刻的位置利用三线性插值法计算粒子下一时刻的位置并存入粒子管理器的移动轨迹存储器中,且使步长和生命值加一;反之则标记粒子死亡并删除死亡粒子;(4)在各个时刻,依据每一粒子的移动轨迹存储器中存储的位置,绘制出不闭合多线段并刷新。本发明可以更加直观、高效地动态模拟出三维空间风场,并很好地展示出三维风场的立体空间结构。
Description
技术领域
本发明涉及一种三维空间风场模拟方法,尤其涉及一种根据预处理好的气象研究预报模式WRF(The Weather Research and Forecasting Model)数据基于粒子流轨迹追踪算法来实现三维空间风场模拟的方法。
背景技术
随着气象系统的发展、环境监测业务的开拓以及遥测基站的建设,越来越多的气象数据得以更加快捷便利的获取。这些获取的数据规模是海量的、多维的、多时空的。同时,时空数据挖掘技术、地学信息技术以及科学计算可视化技术的不断成熟发展也使得研究利用这些海量数据成为可能。其中,对气象数据进行可视化,目的在于简化体量,优化结构,使得气象数据得以简单直观地展现出其内部隐藏的一些特征信息,有利于气象从业者和相关领域研究人员得以快速直观地获取所需的分析结果。气象WRF数据作为气象系统的中尺度预报模式数据,具有多层次、格网化等结构特点,在天气预报、要素分析和自然景观研究中都占有非常重要的位置。风场数据是WRF模式中典型的矢量场数据。通过科学可视化技术,对风场数据进行三维空间的动态展示,可以直观展示不同气压层、不同时间、不同剖面的风场运动结构与趋势,从而有利于揭示风场运动的空间运动结构,同时也有助于相关研究人员更好地分析天气现象,对未来时空的风场变化做出预警预报。
目前,风场可视化技术对三维空间场的动态显示在直观性、效率性能和立体空间上仍显得不足,这主要是因为在建模方法上有待改进。现有的方法包括:点符号法、纹理法、切片法和粒子系统法等。点符号法、纹理法和切片法仍是二维的静止风场模拟,而粒子系统法则很依赖于点的数量,过少的点也无法模拟出整个风场的运动趋势。不同的建模方法使得最终展示的结果差距很大,也不直观;过于复杂的模型和实时性的要求也导致了计算机性能的不足。此外,如何在虚拟地球上进行风场运动的趋势预测和风速大小的计算仍是研究的问题之一。
发明内容
发明目的:针对现有的风场模拟算法中不直观、效率低、无法展示立体空间结构等问题,本发明根据风场的物理特性提出一种更加直观高效的基于粒子流轨迹追踪算法的三维空间风场动态模拟方法。
技术方案:本发明的一种三维空间风场动态模拟方法包括如下步骤:(1)基于读入的空间风场数据形成空间网格场;(2)在网格场内随机生成多个风场粒子并初始化,且生成粒子管理器以存储粒子的移动轨迹、步长和生命值,所述移动轨迹记录粒子各个时刻的位置;(3)当粒子当前时刻的步长不超过最大步长且生命值小于生命周期时,基于当前时刻的位置利用三线性插值法计算粒子下一时刻的位置并存入粒子管理器的移动轨迹存储器中,且使步长和生命值加一;反之则标记粒子死亡并删除死亡粒子;(4)按一定时间间隔重复执行步骤(3),依据每一粒子在各个时刻的移动轨迹存储器中存储的位置,绘制出不闭合多线段并刷新。
进一步地,步骤(1)具体包括:根据读入的数据形成带有序号的空间网格场,对网格场的行、列和高度层进行标号,以通过标号对空间网格场进行索引。
进一步地,在步骤(3)中,基于当前时刻的位置通过插值法计算当前时刻的速度具体包括:(3.1)基于粒子的当前时刻的位置确定该粒子所属空间网格的索引值;(3.2)基于索引值确定所属空间网格的八个顶点的速度值分量,并通过插值法基于当前时刻的位置和速度值分量计算该粒子的当前时刻的速度。
进一步地,在步骤(3.1)中,根据以下式子获取该粒子所处的空间网格索引:
其中Ri、Ci、Hi分别表示该粒子所处网格的行索引、列索引和高度索引;X0、Y0、Z0分别表示空间场网格的经度、纬度和高度的最小值;Dx,Dy,Dz表示单位网格的长度、宽度和高度,且Dx,Dy的值相同,Dz是根据源数据的不同气压层进行相应调整的。
进一步地,在步骤(3.2)中,通过以下式子用三线性插值法计算粒子的当前时刻的速度:
其中,P为计算的当前时刻的速度,(x,y,z)为粒子初始位置的坐标,W0至W7为八个顶点的权值,VP0至VP7为八个顶点对应的速度值分量。
进一步地,在步骤(3)中,删除死亡粒子包括删除死亡粒子的粒子管理器。
进一步地,步骤(4)具体包括:(4.1)利用可视化工具VTK,在每一个时刻,依据每一粒子的粒子管理器中的移动轨迹存储器,绘制出不闭合多线段,将所有的线段集合成一个Actor对象;(4.2)在各个时刻,刷新Actor对象,使得不闭合多线段流动起来,以对三维空间风场进行动态渲染显示。
有益效果:相对于现有技术,本发明的模拟效果更为直观明显,不仅可以展示水平风场结构,也能模拟出垂直方向的结构,同时兼具较好的效率。这是因为:(1)本发明的建模方式更为优化,以流线的形式代替传统的点符号形式,提高风场的真实性,增强风场运动的趋势效果;(2)利用VTK可视化工具库,通过编码实时计算每一时刻风场粒子的路径,实现了风场的空间流动效果。
附图说明
图1为本发明的基于粒子流轨迹追踪算法的三维空间风场动态模拟方法的流程图;
图2为使用本发明的方法对700hPa的风场进行模拟得到的效果图;
图3为使用本发明的方法对500hPa的风场进行模拟得到的效果图;
图4为使用本发明的方法得到的经度剖面风场模拟效果图;
图5为使用本发明的方法得到的纬度剖面风场模拟效果图;
图6为使用本发明的方法得到的近景剖面风场模拟效果图。
具体实施方式
以下结合附图进一步对本发明进行详细说明。
如图1,本发明的三维空间风场动态模拟方法包括如下步骤:
Step 1:读入空间风场数据,根据数据形成带有序号的空间网格场,其中行号为Row,列号为Col,高度层为H,以此可通过Row,Col和H对空间网格进行索引。
Step 2:在网格场中随机生成W数量的初始风场粒子,包括用随机函数为每个粒子生成粒子属性的初始值。其中粒子属性包括当前时刻的位置(Xi,Yi,Zi)、步长(PathLength)和生命值(Age)。通过随机生成粒子属性的初始值,可以使最后模拟出的展现风场的线段看起来长短不一,更为美观。
同时,为每一粒子生成一个粒子管理器,将粒子的当前时刻的位置(Xi,Yi,Zi)、步长(PathLength)和生命值(Age)的初始值分别存储在粒子管理器中的移动轨迹存储器、当前步长存储器和当前生命值存储器中,并在粒子管理器中设定粒子的最大步长(MaxLength)和最大生命周期(Life)。
Step 3:更新粒子管理器:
对于每一粒子,当粒子当前时刻的步长(PathLength)不超过最大步长(MaxLength)且当前生命值(Age)不超过最大生命周期(Life)时,则保留该粒子,以便进行下一时刻的位置计算。
下一时刻的位置计算首先需要基于当前时刻的位置通过插值法计算当前时刻的速度。具体地,可以通过粒子当前时刻的位置(Xi,Yi,Zi)根据以下式子获取对应粒子所属的空间网格索引值:
其中Ri、Ci、Hi分别表示该粒子所处网格的行索引、列索引和高度索引。X0、Y0、Z0分别表示空间场网格的经度、纬度和高度的最小值。Dx,Dy,Dz表示单位网格的长度、宽度和高度,在本发明中Dx,Dy的值相同,Dz根据源数据的不同气压层进行相对应的调整。
之后,通过空间网格索引值确定粒子所属网格的八个顶点的风速值,再基于这些速度值分量,通过以下式子利用三线性插值法对粒子当前时刻的速度进行计算:
其中,P为插值点的计算结果,也就是计算得到的粒子当前时刻的速度;x、y、z为插值点的坐标,也就是粒子当前时刻的位置(Xi,Yi,Zi);W0至W7为P0至P7(P0至P7为粒子所属空间网格的八个顶点)的权值;VP0至VP7为P0至P7对应的风速值。
在计算得到粒子当前时刻的速度后,再基于当前时刻的位置和速度计算下一时刻的位置,并将下一时刻的位置存入移动轨迹存储器中,同时将当前步长存储器中存储的当前时刻的步长值(PathLength)和当前生命值存储器中存储的当前生命值(Age)加一。
如果粒子当前时刻的步长(PathLength)超过最大步长(MaxLength)或当前生命值(Age)超过最大生命周期(Life),则标记相应的粒子死亡并将其删除。其中删除死亡粒子包括删除死亡粒子的粒子管理器。
Step 4:按一定时间间隔重复执行Step 3,依据每一粒子在各个时刻的移动轨迹(Path)存储器中存储的各时刻的位置,利用可视化工具VTK绘制出不闭合多线段(Polydata),将所有的线段集合成一个Actor对象。在不同的时刻,刷新Actor对象,使得多线段流动起来,从而动态地模拟出三维风场。
本方法所使用的粒子流对象和粒子对象的伪代码如下:
粒子流对象:
最后,当读入新的风场数据时,旧风场数据对应的风场粒子会随着时间的推进而全部消失,而新的风场数据对应的风场粒子会代替旧的粒子。以此完成不同风场数据之间的动态切换效果。
以下分别针对本发明方法的可视化效果和效率进行说明:
1、可视化效果分析
利用WRF模式得到的D01网格数据,按照算法步骤,实现了不同高度层、不同位置的、不同时刻的剖面风场。图2和图3分别是700hPa和500hPa的风场模拟效果,从图中可明显看到风速较大区域风场的移动趋势,风速较小区域则显得流线较为稀疏。图4和图5为经度剖面和纬度剖面,可以看出,不同经纬度风场的垂直结构相差较大。由于数据源为2017年10月7日的数值结果,在图5中可以看到剖面上层的平流层风场,符合了实际情况。图6为剖面的近景效果。可以看到,某些地方出现了垂直涡旋现象,有的地方出现了湍流,而有些区域出现了流线汇集一条线,暗示该区域为凹槽或谷底等地。由此可发现,本发明可以动态直观地展示大气的水平和垂直运动结构。
2、效率评价
本发明以传统的粒子系统算法为基础,通过优化建模方式,将点改为多线段,利用VTK(Visualization Tool Kit)的GPU(Graphics Processing Unit)加速特性,模拟出风场移动效果,在性能上满足基本要求。表1为针对不同时间间隔和相同粒子数的条件下,采用本发明的方法所获得的模拟效果。
表1
根据计算机硬件条件不同,最后的模拟效果也有差距。本发明的实验用显卡是笔记本显卡,在性能上无法满足流畅效果下较多粒子数的绘制。在时间间隔为10毫秒时,即使3000个粒子也有卡顿,因为CPU无法在10毫秒内计算出这么多粒子的位置信息。只有当将粒子数降到1000时,整体的模拟效果才算流畅。但是稀疏的粒子流,已经无法展示整个风场的动态流动效果,缺少了精度。如果使用较新的台式机显卡,相同条件参数下,模拟效果会更好。
为了对比验证本算法的性能,分别对符号法、粒子系统法和曲线拟合法进行了实现,同时也记录了每种方法所需要的计算机资源。如表2为符号法、粒子系统法、曲线拟合法与粒子流轨迹追踪法的参数对比。
表2
通过上表可发现,符号法不具有动态效果,同时也无法展示三维结构,对计算机性能无过高要求。粒子系统法所消耗的系统资源较少,则相同计算成本下,该方法的运行效率是最高的,帧率为60帧每秒,同时也能在垂直方向上展示风场的结构,但是其流动趋势效果不好,高度依赖点的数量,否则无法显示出风场的流动效果。曲线拟合法虽然效率上比粒子系统法低,但是其运行计算量仍低于本发明所使用的算法,故帧数为47帧每秒,但该方法只能在二维平面上展开,无法展示三维风场的垂直结构,所以有一定的缺陷性。本发明的粒子流轨迹追踪算法,不仅可以展示水平风场结构,也能模拟出垂直方向的结构,且利用VTK图形库,完成了GPU的加速绘制,故在粒子数为8000时,保证了帧数的稳定,与曲线拟合法大致相当。
Claims (6)
1.一种三维空间风场动态模拟方法,其特征在于,包括如下步骤:
(1)基于读入的空间风场数据形成空间网格场;
(2)在网格场内随机生成多个风场粒子并初始化,且生成粒子管理器以存储粒子的移动轨迹、步长和生命值,所述移动轨迹记录粒子各个时刻的位置;
(3)当粒子当前时刻的步长不超过最大步长且生命值小于生命周期时,基于当前时刻的位置利用三线性插值法计算粒子当前时刻的速度,基于当前时刻的位置和速度计算下一时刻的位置,并将下一时刻的位置存入粒子管理器的移动轨迹存储器中,且使步长和生命值加一;反之则标记粒子死亡并删除死亡粒子;基于当前时刻的位置通过插值法计算当前时刻的速度具体包括:
(3.1)基于粒子的当前时刻的位置确定该粒子所属空间网格的索引值;
(3.2)基于索引值确定所属空间网格的八个顶点的速度值分量,并通过插值法基于当前时刻的位置和速度值分量计算该粒子的当前时刻的速度;
(4)按一定时间间隔重复执行步骤(3),依据各个时刻每一粒子的移动轨迹存储器中存储的位置,绘制出不闭合多线段并刷新;
步骤(4)具体包括:
(4.1)利用可视化工具VTK,在每一个时刻,依据每一粒子的粒子管理器中的移动轨迹存储器,绘制出不闭合多线段,将所有的线段集合成一个Actor对象;
(4.2)在各个时刻,刷新Actor对象,使得不闭合多线段流动起来,以对三维空间风场进行动态渲染显示。
2.根据权利要求1所述的三维空间风场动态模拟方法,其特征在于,步骤(1)具体包括:根据读入的数据形成带有序号的空间网格场,对网格场的行、列和高度层进行标号,以通过标号对空间网格场进行索引。
3.根据权利要求1所述的三维空间风场动态模拟方法,其特征在于,在步骤(2)中,对风场粒子初始化包括通过随机函数产生各个风场粒子的当前时刻的位置、步长和生命值的初始值。
6.根据权利要求1所述的三维空间风场动态模拟方法,其特征在于,在步骤(3)中,删除死亡粒子包括删除死亡粒子的粒子管理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810775573.XA CN109063279B (zh) | 2018-07-16 | 2018-07-16 | 基于粒子流轨迹追踪算法的三维空间风场动态模拟方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810775573.XA CN109063279B (zh) | 2018-07-16 | 2018-07-16 | 基于粒子流轨迹追踪算法的三维空间风场动态模拟方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109063279A CN109063279A (zh) | 2018-12-21 |
CN109063279B true CN109063279B (zh) | 2023-06-20 |
Family
ID=64816499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810775573.XA Active CN109063279B (zh) | 2018-07-16 | 2018-07-16 | 基于粒子流轨迹追踪算法的三维空间风场动态模拟方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109063279B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111815736A (zh) * | 2019-04-11 | 2020-10-23 | 阿里巴巴集团控股有限公司 | 飞线构建及显示方法和装置,计算机存储介质和电子设备 |
CN110008387B (zh) * | 2019-04-16 | 2020-09-01 | 成都四方伟业软件股份有限公司 | 流场可视化实现方法、装置及电子设备 |
WO2020219513A1 (en) * | 2019-04-24 | 2020-10-29 | St. Jude Medical, Cardiology Division, Inc. | System, method, and apparatus for visualizing cardiac activation |
CN111639426B (zh) * | 2020-05-27 | 2023-04-18 | 中国地质大学(武汉) | 一种风特征时空过程可视化方法 |
CN112634393B (zh) * | 2020-12-31 | 2023-09-05 | 中国科学院空天信息创新研究院 | 基于Web的临近空间大气风场实时自适应可视化方法 |
CN112559782A (zh) * | 2021-01-19 | 2021-03-26 | 成都四方伟业软件股份有限公司 | 一种网格化矢量数据可视化方法及装置 |
CN112765871B (zh) * | 2021-04-07 | 2021-06-18 | 中国人民解放军国防科技大学 | 一种基于曲线坐标的并行粒子追踪方法和装置 |
CN115578504B (zh) * | 2022-09-22 | 2023-05-30 | 中科三清科技有限公司 | 图像渲染方法、终端设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103606192A (zh) * | 2013-11-27 | 2014-02-26 | 国家电网公司 | 一种基于三维虚拟地球的风场可视化展示方法 |
-
2018
- 2018-07-16 CN CN201810775573.XA patent/CN109063279B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103606192A (zh) * | 2013-11-27 | 2014-02-26 | 国家电网公司 | 一种基于三维虚拟地球的风场可视化展示方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109063279A (zh) | 2018-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109063279B (zh) | 基于粒子流轨迹追踪算法的三维空间风场动态模拟方法 | |
Vanegas et al. | Modelling the appearance and behaviour of urban spaces | |
CN103472502B (zh) | 动态展示区域空气质量和气象场的方法 | |
CN102708227B (zh) | 基于sph算法的洪水溃坝过程仿真方法与仿真系统 | |
CN102117497B (zh) | 一种三维地形建模方法及系统 | |
US20080120075A1 (en) | Systems and methods for fast simulation and visualization of sparse fluids | |
CN108830926B (zh) | 三维虚拟地球软件中空间动态粒子模型建立与可视化方法 | |
Chang et al. | Legible simplification of textured urban models | |
CN113177372B (zh) | Cesium引擎下基于非结构化网格的海洋流场可视化方法 | |
CN103714575A (zh) | 一种sph与动态表面网格相结合的流体仿真方法 | |
CN105913475B (zh) | 一种时空变化过程动态可视化方法 | |
CN108629834A (zh) | 一种基于单张图片的三维头发重建方法 | |
Duarte et al. | Real-time simulation of cumulus clouds through skewt/logp diagrams | |
CN104299262B (zh) | 一种基于速度场流线的三维云模拟方法 | |
CN110400366B (zh) | 一种基于OpenGL的实时洪水灾害可视化仿真方法 | |
CN110232846A (zh) | 一种冲锋舟模拟驾驶方法、系统及相关装置 | |
CN104517299B (zh) | 视频流体物理驱动模型恢复及重新仿真的方法 | |
CN101937576B (zh) | 一种结合多物理属性的动态纹理瀑布建模方法 | |
CN108875275A (zh) | 一种基于大规模流线的矢量场实时仿真方法及系统 | |
CN111354061B (zh) | 基于图形学在gis系统模拟下雪场景处理方法及装置 | |
Xuexian et al. | High-performance navigation and rendering of very-large scale landscape and seascape | |
Ding et al. | Real-time rain and snow rendering | |
Yang et al. | Large scale terrain real-time rendering on GPU using double layers tile quad tree and cuboids bounding error metric | |
Raheja | Assessing the Performance of Procedurally Generated Terrains Using Houdini’s Clustering Method | |
Qiu et al. | A novel approach to simulate the interaction between grass and dynamic objects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |