三维虚拟地球软件中空间动态粒子模型建立与可视化方法与流程

文档序号:15965841发布日期:2018-11-16 23:10阅读:660来源:国知局

本发明涉及一种三维虚拟地球软件中空间动态粒子模型建立与可视化方法。

背景技术

空间向量场数据可视化,向量场数据在科学计算和工程应用中占有非常重要的地位,如飞机设计、气象预报、桥梁设计、海洋大气建模、计算流体动力学模拟和电磁场分析等。向量场的每个采样点处理的数据是一个向量,表达的方向性催生了与标量场完全不同的可视化方法。

向量场可视化的主要目标是:展示场的导向趋势信息;表达场中的模式;识别关键特征区域。通常,向量场数据来源于数据值模拟,如计算流体力学(cfd)产生的数据,也有部分来源于测量设备,如实际风向、水流方向与速度。

二维或三维流场记录了水流、空气等流动过程中的方向信息,是应用最广泛、研究最深入的向量场。因此,流场的可视化是向量场可视化中最重要的组成部分,然而,目前的空间向量场数据的可视化多存在用户交互体验差,算法复杂,运行效率低,还原性差的问题。



技术实现要素:

本发明为了解决上述问题,提出了一种三维虚拟地球软件中空间动态粒子模型建立与可视化方法,本发明将流场数据融合进三维虚拟地球软件进行三维动态展示,具有良好的用户交互体验,运行效率高,渲染清晰流畅,高精度的还原流场的瞬时状态与粒子运动轨迹。

为了实现上述目的,本发明采用如下技术方案:

一种三维虚拟地球软件中空间动态粒子模型建立与可视化方法,包括以下步骤:

获取网格数据参数;

获取空间粒子在网格中的位置信息,并对其进行插值处理,实现粒子连续运动,构建向量场;

在三维虚拟地球软件中创建三维场景,通过交互式操作,驱动空间粒子模型创建粒子;

根据设定的时间间隔,不断更新粒子状态与位置,实现空间向量场数据的动态展示。

进一步的,使用json作为网格数据交换格式。

进一步的,网格数据参数具体包括网格起始经度、起始纬度、终止经度、终止纬度、横向网格数、纵向网格数,以及每个网格中向量的横纵分量值。

进一步的,在任意时刻提供任意一点的速度分量值,相当于为粒子提供动力,如果向量场的某一点的速度为零,则粒子将在此处停止运动并湮灭。

进一步的,利用双线性插值法对粒子模型进行操作,实现在任意一点取值并实现粒子连续运动。

进一步的,根据空间粒子的当前位置所在网格,获取与其网格相邻的四个网格值,进行插值运算,得到空间粒子的当前位置的插值点。

进一步的,三维虚拟地球软件中创建三维场景后,其三维粒子的创建过程包括:在向量场范围内随机生成粒子经纬度与生存期,根据当前三维虚拟地球软件的视图范围进行经纬度坐标与画布坐标的转换,如果获得的粒子画布坐标不在当前画布范围内则删除该粒子。

进一步的,数据更新的过程包括当前三维虚拟地球软件的缩放高度,设定粒子的位移因子,利用位移因子控制粒子运动快慢,确定粒子位移因子之后确定粒子的移动距离,并判断移动之后的粒子是否已超出视图范围,如果超出则不显示该粒子。

更进一步的,判断过程包括:

式中lon0、lat0为当前三维视图的中心点经纬度坐标,px、py为当前粒子位置经纬度坐标,当d≥0时,表示当前粒子位于当前三维视图内。

进一步的,数据更新的过程还包括对粒子进行绘制,遍历所有粒子实例,每个粒子实例都会记录其本身的当前位置及其上一个历史位置,将当前位置点与历史位置点进行连线,在画布上形成粒子运动的路径。

与现有技术相比,本发明的有益效果为:

1、本发明将流场数据融合进三维虚拟地球软件中进行三维动态展示,具有良好的用户交互体验,运行效率高,渲染清晰流畅,高精度的还原流场的瞬时状态与粒子运动轨迹;

2、本发明具有较为广泛的应用,可用于风场、洋流等空间向量场数据的三维动态效果的展示,通过粒子在虚拟三维地理空间环境下的运动状态,模拟各种类型的场数据随时间的变化情况。

具体实施方式:

下面结合实施例对本发明作进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

在本发明中,术语如“上”、“下”、“左”、“右”、“前”、“后”、“竖直”、“水平”、“侧”、“底”等指示的方位或位置关系只是为了便于叙述本发明各部件或元件结构关系而确定的关系词,并非特指本发明中任一部件或元件,不能理解为对本发明的限制。

本发明中,术语如“固接”、“相连”、“连接”等应做广义理解,表示可以是固定连接,也可以是一体地连接或可拆卸连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的相关科研或技术人员,可以根据具体情况确定上述术语在本发明中的具体含义,不能理解为对本发明的限制。

地理信息系统(gis)是一种特定的十分重要的空间信息系统,它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。从20世纪中叶开始,人们就开始开发出许多计算机信息系统,这些系统采用各种技术手段来处理地理信息,主要包括:数字化技术、存储技术、空间分析技术、环境预测与模拟技术、可视化技术,与传统的地图相比,地理信息系统通过运用这些技术手段,可以将数据的存储与数据的表达进行分离,基于相同的基础数据能够产生出各种不同的产品,广泛应用于环境变化监测、资源调查与管理、城市规划等领域。

由于传统二维gis不能完整地反映三维世界,随着计算机技术的高速发展,web3d技术与gis技术相结合而成的三维webgis也成为了gis发展的一个重要方向。

在本实施方案中,以cesium为三维虚拟地球软件的一种具体应用实例。

cesium是开源的javascript库,其实现了在浏览器中展示三维虚拟地球的功能。同时,cesium采用b/s架构且遵循webgl三维绘图标准,具有二三维一体化、跨平台、计算精度高等优点。

空间向量场数据可视化,向量场数据在科学计算和工程应用中占有非常重要的地位,如飞机设计、气象预报、桥梁设计、海洋大气建模、计算流体动力学模拟和电磁场分析等。向量场的每个采样点处理的数据是一个向量,表达的方向性催生了与标量场完全不同的可视化方法。向量场可视化的主要目标是:展示场的导向趋势信息;表达场中的模式;识别关键特征区域。通常,向量场数据来源于数据值模拟,如计算流体力学(cfd)产生的数据,也有部分来源于测量设备,如实际风向、水流方向与速度。二维或三维流场记录了水流、空气等流动过程中的方向信息,是应用最广泛、研究最深入的向量场。因此,流场的可视化是向量场可视化中最重要的组成部分。因此,本发明具有较好的应用前景。

本发明提供一种空间向量场数据模型的建立与可视化方法,该方法将流场数据融合进cesium进行三维动态展示,具有良好的用户交互体验,运行效率高,渲染清晰流畅,高精度的还原流场的瞬时状态与粒子运动轨迹。

具体包括以下步骤:

步骤一、读取json格式的网格数据:其中,利用date表示获取时间,x0、y0、x1、y1分别表示网格起始经度、起始纬度、终止经度、终止纬度,gridwidth、gridheight分别表示横向网格数、纵向网格数,field表示每个网格中向量的横纵分量值;

步骤二、通过空间粒子模型构建向量场;

步骤三、创建cesium三维场景,通过cesium交互式操作,驱动空间粒子模型创建粒子;

步骤四、根据设定的时间间隔,刷新粒子状态与位置,实现空间向量场数据的可视化。

进一步的,在步骤一中,使用json作为数据交换格式,易于解析,并能有效的提升网络传输效率。

进一步的,在步骤二中,空间粒子模型所构建的向量场主要的功能是:在任意时刻提供任意一点的速度分量值,相当于为粒子提供动力,如果向量场的某一点的速度为零,则粒子将在此处停止运动并湮灭。由于向量场本身是网格化非连续的,要做到在任意一点取值并实现粒子连续运动必须要做插值处理,此处用的双线性插值法,具体步骤为:首先根据当前位置(x,y)所在网格获取与其相邻的左上、左下、右上、右下四个网格值,分别为f(x1,y1)、f(x1,y2)、f(x2,y1)、f(x2,y2),则待插值点(x,y)值为:

f(x,y)=f(x1,y1)(x2-x)(y2-y)+f(x2,y1)(x-x1)(y2-y)+f(x1,y2)(x2-x)(y-y1)+f(x2,y2)(x-x1)(y-y1)

进一步的,在步骤三中,cesium交互式操作包括放大、缩小、平移、点击,除去点击,其它三种操作都涉及到三维场景的刷新、粒子的创建与更新。

三维场景的刷新由cesium完成,每次刷新是都会触发canvas.clearrect方法;粒子的创建由motiondisplay的makeparticle方法完成,具体步骤为:首先在向量场范围内随机生成粒子经纬度与生存期,然后根据当前cesium的视图范围进行经纬度坐标与画布坐标的转换,此过程由cesium的内置函数cesium.cartesian3.fromdegrees与cesium.scenetransforms.wgs84towindowcoordinates完成,如果获得的粒子画布坐标不在当前画布范围内则删除该粒子。

进一步的,在步骤四中,模型的默认刷新频率是0.04秒,刷新过程分两步进行,包括粒子位置移动(motiondisplay.movethings)与绘制(motiondisplay.draw),具体步骤为:粒子的移动速度与当前cesium的缩放级别有关,由于三维地图的缩放不同于二维,camera可以位于整个场景的任意一点,不存在缩放层级的概念,所以这里采用cesium的getmagnitude计算当前camera高度,设定粒子的位移因子,该因子用于控制粒子运动快慢,优化动画效果;确定粒子位移因子之后确定粒子的移动距离,并判断移动之后的粒子是否已超出视图范围,否则不予显示,例如三维球背后的粒子,判断方法如下:

式中lon0、lat0为当前三维视图的中心点经纬度坐标,px、py为当前粒子位置经纬度坐标,当d≥0时,表示当前粒子位于当前三维视图内;下一步获取当前粒子所在位置对应的向量场x、y方向分量值,分别与给定的位移因子相乘,得到x、y方向的位移距离,再与当前粒子的位置进行累加,完成该粒子的位置更新,同时削减其生存时间,直至湮灭;粒子的状态更新需要进行可视化表达,即粒子的出现、位置连续移动动态过程、消失,这些事件需要画布进行绘制,每一个粒子都需要完整的展现,这些工作由叠加在cesium之上的canvas完成。

粒子的绘制由motiondisplay.draw方法完成,该方法首先遍历所有粒子实例,每个粒子实例都会记录其本身的当前位置及其上一个历史位置,motiondisplay.draw方法就是将当前位置点与历史位置点进行连线,在画布上形成粒子运动的路径。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

上述虽然对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1