基于VR及手势交互技术的全球气候矢量场数据可视化方法与流程

文档序号:11250434阅读:538来源:国知局
基于VR及手势交互技术的全球气候矢量场数据可视化方法与流程

本发明涉及计算机图形学技术领域,特别是涉及基于vr及手势交互技术的全球气候矢量场数据可视化方法。



背景技术:

全球气候矢量数据可视化方法为传统气象矢量数据的显示提供了另一种直观清晰的表达方式,为相关人员提供了对气候数据进行分析的便利工具。

气候数据一般有风、洋流等矢量场数据,针对三维矢量场数据,一般提供箭矢图、流图、线积分卷积等传统矢量场可视化方法,常用的还有图标法、几何法以及纹理法等。对于预报员而言,通过这些复杂的图文来获得对整个大气情况的理解是很难的。三维大气数据可视化方法,尤其是矢量数据的可视化,有设计粒子对流方法用动画表达矢量场数据,meihh,chenhd,zhaox,liuhn,zhub,chenw.visualizationsystemof3dglobalscalemeteorologicaldata.ruanjianxuebao/journalofsoftware,2016,27(5):1140-1150(inchinese)。本文在粒子对流方法模拟矢量风数据的同时,并且结合当前火热的vr,通过使用oculusriftdk2设备在将气象数据可视化在沉浸式虚拟环境中,并通过预先设定leapmotion中手势动作的定义,增强了交互性。

leapmotion是面向pc以及mac的体感控制器制造公司leap于2013年2月27日发布的体感控制器。支持windows7、windows8以及macosx10.7及10.8,leapmotion控制器可追踪全部10只手指,精度高达1/100毫米,以超过每秒200帧的速度追踪您的手部移动。

近年来,随着虚拟现实(vr)被广泛接受,其描述为用户被三维计算机生成的表示包围的一种体验,用户能够在其中移动,从不同的角度查看它,并有能力重塑它。除了直观的交互,虚拟环境也可以允许用户的更大程度的移动。通过使用vr,数据可以变得更容易理解,记住和参考。用户操作或观察,同时沉浸,可以形成用户的叙事,从而增强召回的能力数据。用户命令和输入可以立即修改虚拟世界并描绘每个变化的影响,从而创造一个动态模型。实时交互是一个vr的关键特征,例如气象学家可以使用它来形成对气象数据的动态分析,比单独使用图表更快。vr对于进一步提高可视化数据的可读性有显著效果,大量可视化研究中采用vr,irenekatsouri,aimiliatzanavari,kyriakosherakleous,andcharalambospoullis.2015.visualizingandassessinghypothesesformarinearchaeologyinavrcaveenvironment.acmj.comput.cult.herit.8,2,article10(march2015),18pages开发了一个使用vrcave的沉浸式3d可视化应用程序,旨在使研究人员能够挖掘这个古代沉船所提供的丰富的信息,也有对考古数据在虚拟现实环境中可视化的研究,但在虚拟现实环境中对三维大气数据可视化的研究鲜有。



技术实现要素:

针对现有技术中存在的上述问题,本发明的目的在于提供基于vr及手势交互技术的全球气候矢量场数据可视化方法。

所述的基于vr及手势交互技术的全球气候矢量场数据可视化方法,其特征在于该方法包括以下步骤:

步骤1)搭建3d环境,设计一个场景并根据球面体绘制方法构造一个球形代理几何;

步骤2)获取由naturalearth提供的地图数据,并对地图数据进行预处理,再绘制到步骤1)设计场景中的球体上;

步骤3)获取由美国国家气象局操作的全球预报系统生成的天气数据,并对天气数据进行预处理,预测每天生成四次,可从nomads下载,这些文件是grib2格式,包含超过300条记录;

步骤4)对步骤3)中的数据进行风向快速参考,用于转换向量风分量、风速和风向;

步骤5)对经步骤4)处理后获得转换后的向量风分量再进行地转风近似求解;

步骤6)将步骤5)处理后的数据投影到步骤2)的球体上;

步骤7)有限差分近似用于在步骤6)插值过程期间估计该失真,确保风粒子路径被正确渲染,得到可视化结果;

步骤8)交互设计,根据需求采用手势交互技术定义各种操作手势,实现全球气候矢量场数据可视化,操作手势包括水平竖直移动、旋转、放大及缩小。

所述的基于vr及手势交互技术的全球气候矢量场数据可视化方法,其特征在于步骤1)的球面体绘制方法如下:球面体绘制方法基于传统的光线投射算法,采用球面坐标表达构造一个球形代理几何,并以球面坐标系的三个空间维度坐标作为纹理坐标,以归一化后的三维体数据作为纹理坐标,以所述球形代理几何作为载体构造三维体数据的三维体纹理,而在绘制过程前,又将球面坐标转换回直角坐标表达,通过求解二次方程计算投射光线与代理几何的交点,具体为:

设当前相机视点位置为(x0,y0,z0),光线方位为单位向量(xd,yd,zd),则得到其参数化方程:

x=x0+xd×t

y=y0+yd×t

z=z0+zd×t

由于球形代理几何中心点为(0,0,0),可以由方程来表达,将投射光线参数化方程带入,得到:a×t2+b×t2+c=0,其中,

若二次方程无解,则相机视点在球体外且投射光线与代理几何不相交;若有解,则根据解得情况计算不同的光线积分的初始点和光线积分的终止点,获得当前光线位置转化为球面坐标。

所述的基于vr及手势交互技术的全球气候矢量场数据可视化方法,其特征在于步骤2)中的地图数据预处理方法如下:将所获取的地图数据为geojson格式转换为d3.js适用的topojson格式,即首先在processing中安装gdal和topojson,然后将geojson数据文件中边界线记录次数改为一次,且将浮点数据转换为整数形式。

所述的基于vr及手势交互技术的全球气候矢量场数据可视化方法,其特征在于步骤4)中的风向快速参考方法如下:由于所得到的气象风数据以角度表示,为方便计算,将角度转化成度,通过乘以dperr(180/π=57.29578)将角度转换为度,并通过乘以rperd(π/180=0.01745329)将角度转换为弧度:

地理风坐标系:ugeo,vgeo;

+ugeo分量代表风向东,即西风;-ugeo表示风向西,即东风;

+vgeo是风向北,即南风;

地理风向:dirgeo是相对于真正北方的方向,其中0=北,90=东,180=南,270=西,dirgeo=atan2(-ugeo,-vgeo)*dperr=270-(atan2(vgeo,ugeo)*dperr);

水平风速spd:spd=sqrt(ugeo*ugeo+vgeo*ugeo);要从dirgeo和spd转换为ugeo和vgeo:ugeo=-spd*sin(dirgeo*rperd);vgeo=-spd*cos(dirgeo*rperd)。

所述的基于vr及手势交互技术的全球气候矢量场数据可视化方法,其特征在于步骤5)中的地转风近似求解如下:步骤4)的风向快速参考转换了向量风分量,近似被分解成其两个水平分量u和v,u分量表示风的东西分量,v分量表示南北分量,风的u分量和v分量的两个公式如下:

u=((y1-y0)×r×tavg×ln(p0/p1))/(2×omega×sin(lat)×(d^(2))),

v=((x1-x0)×r×tavg×ln(p1/p0))/(2*omega×sin(lat)×(d^(2)))

其中:(y1-y0)为当前位置和另一个参考点之间的距离的南北分量的差值,以米为单位;

(x1-x0)为当前位置和另一个参考点之间的东西向分量的差值,以米为单位;

r为干燥空气的平均气体常数,为287焦耳/千克*开氏度;

tavg为当前位置和另一个参考点之间的平均温度,单位为开氏温标;

p0为当前所在位置的大气压力;

p1为另一个参考点处的大气压力;

omega为地球旋转的角速度=7.292×10^(-5)倒数秒;

sin(lat)为当前所在位置的纬度的sin函数;

d为当前位置与另一个参考点之间的距离,以米为单位。

所述的基于vr及手势交互技术的全球气候矢量场数据可视化方法,其特征在于步骤6)中的矢量风数据投影方法如下:采用双线性内插先在x轴上执行线性插值,然后再在y轴上执行线性插值,尽管每个步骤在采样值和位置中是线性的,但是内插作为整体不是线性的,而是在采样位置的二次方,为了获取函数f在点(x,y)上的值,已知四个点q11=(x1,y1),q12=(x1,y2),q21=(x2,y1)和q22=(x2,y2)的f的值,我们首先在x方向进行线性插值,产生:

再通过在y方向上内插来获得期望的估计:

所述的基于vr及手势交互技术的全球气候矢量场数据可视化方法,其特征在于步骤7)中的有限差分近似如下:首先投影坐标(x,y)相对于球面坐标(lat,lon)的所有四个一阶导数=(phi,lambda):dx/d(phi),dx/d(lambda),dy/d(phi),dy/d(lambda),在距离h=10-5.2弧度处使用一阶中心有限差分估计,要在点(phi,lambda)获得dx/d(phi),投影点

(phi-h/2,lambda)-->(x0,y0)

(phi+h/2,lambda)-->(x1,y1)

使用估计值

dx/d(phi)=(x1-x0)/h

dy/d(phi)=(y1-y0)/h

同样,投影点

(phi,lambda-h/2)-->(x2,y2)

(phi,lambda+h/2)-->(x3,y3)

并使用估计

dx/d(lambda)=(x3-x2)/h

dy/d(lambda)=(y3-y2)/h,

从上述衍生物连同斯奈德公式,可以获得在(phi,lambda)的tissotindicatrix的轴的长度及其方向;根据地图的大小来确定比例因子,找到地图上的典型ti的大小,并缩放,使得那些ti将大约为地图的6%;以相同的量重新缩放所有的ti,因此它们可以被比较,并且将每个重新缩放在其自己的中心附近(其通过第五投影(phi,lambda)→(x,y)。

所述的基于vr及手势交互技术的全球气候矢量场数据可视化方法,其特征在于步骤8)中的手势交互技术如下:

1)leapmotion首先从双目摄像头采集操作者手势动作的左右视觉图像;

2)经过立体标定后获取经过校准的立体图像对后,进行立体匹配,获得视差图像;

3)再利用摄像机的内参数及外参数进行三角计算获取深度图像,然后对左或右视觉图像使用手势分割算法处理,分割出人手所在的初始位置信息;

4)预先设定阈值,当人手左右水平移动超过阈值,即对地球进行水平移动;当人手竖直移动超过阈值,即对地球进行竖直移动;人手五指握拳,实现缩小操作;人手由拳展开,实现放大操作;手掌旋转超过阈值角度,即对地球进行旋转。

通过采用上述技术,与现有技术相比,本发明的有益效果如下:

本发明针对现有的气象数据可视化的局限性,依据设计方案,通过采用leapmotion增强了沉浸式环境下的交互性,实现了手势操作的相关交互设定,结合vr技术能够利用计算机生成较为真实的虚拟环境,借助于processing的可视化三维技术,更加逼真地模拟了全球气候变化,突破了传统的二维显示的局限性,增加了模型和数据的感知性和真实性,获得更高层次的信息细节,使用者不仅能够真实的感觉到研究的对象近在眼前,而且还能通过手势操作研究对象,从而构建了一个直观的空间数据可视化分析环境,它针对三维矢量场数据,设计了粒子对流方法用动画表达矢量场数据,最后实验可视化效果明显。本发明的方法更加逼真地模拟了全球气候变化,突破了传统的二维显示的局限性,增加了模型和数据的感知性和真实性,获得更高层次的信息细节,使用者不仅能够真实的感觉到研究的对象近在眼前,而且还能通过手势操作研究对象,从而构建了一个直观的空间数据可视化分析环境。

附图说明

图1是本发明方法的流程图;

图2是本发明可视化案例示意图;

图3是本发明手势定义图。

具体实施方式

下面结合说明书附图对本发明的基于vr及手势交互技术的全球气候矢量场数据可视化方法进行详细说明。

如图1所示,本发明的基于vr及手势交互技术的全球气候矢量场数据可视化方法,其矢量场数据包括矢量风、洋流等,由于洋流的可视化方法与矢量风近似,下面仅以对矢量风可视化实施过程进行说明。它包括在processing中导入oculusrift库,然后搭建一个3d环境,设计包含一个地球和宇宙背景的场景,将从naturalearth获取的地图数据添加到所设计的地球上,然后从美国国家气象局操作的全球预报系统(gfs)上下载所需的矢量风数据,对获得的数据文件进行解码,随后对数据进行风向快速参考,用于转换向量风分量、速度和方向,进行地转风近似求解,网格点采用双线性插值,将矢量风投影到所设计的地球上,有限差分近似用于在插值过程期间估计该失真,确保风粒子路径被正确渲染,最后在processing中导入leapmotion的库,根据需要定义各种手势实现交互八个步骤。具体如下:

步骤1)导入用于processing的oculusrift库:oculusrift.pde,该库目前是以pde格式发布的。搭建3d环境,设计了一个场景并根据球面体绘制方法构造一个球形代理几何,所述球面体绘制方法如下:球面体绘制方法基于传统的光线投射算法,采用球面坐标表达构造一个球形代理几何,并以球面坐标系的三个空间维度坐标作为纹理坐标,以归一化后的三维体数据作为纹理坐标,以所述球形代理几何作为载体构造三维体数据的三维体纹理,而在绘制过程前,又将球面坐标转换回直角坐标表达,通过求解二次方程计算投射光线与代理几何的交点;

步骤2)获取地图数据,并对地图数据进行预处理,再绘制到步骤1)设计场景中的球体上,对步骤1)设计场景中的球体,地图数据由naturalearth提供,但必须转换为topojson格式,同时需安装gdal和topojson;所述的地图数据预处理方法如下:将所获取的地图数据为geojson格式转换为d3.js适用的topojson格式,即首先在processing中安装gdal和topojson,然后将geojson数据文件中边界线记录次数改为一次,且将浮点数据转换为整数形式;

步骤3)获取可视化的矢量风数据;

天气数据由美国国家气象局操作的全球预报系统(gfs)生成。预测每天生成四次,可从nomads下载。这些文件是grib2格式,包含超过300条记录。选择这些记录中的几个来可视化特定等压线上的风力数据,对天气数据预处理,将步骤(3)中气象数据grib2文件的数据解码为json,需使用netcdf-javagrib解码器;

步骤4)对步骤3)中的数据进行风向快速参考,用于转换向量风分量,速度和方向,所述风向快速参考方法如下:由于所得到的气象风数据以角度表示,为方便计算,将角度转化成度,通过乘以dperr(180/π=57.29578)将角度转换为度,并通过乘以rperd(π/180=0.01745329)将角度转换为弧度:

地理风坐标系:ugeo,vgeo;

+ugeo分量代表风向东,即西风;-ugeo表示风向西,即东风;

+vgeo是风向北,即南风;

地理风向:dirgeo是相对于真正北方的方向,其中0=北,90=东,180=南,270=西,dirgeo=atan2(-ugeo,-vgeo)*dperr=270-(atan2(vgeo,ugeo)*dperr);

水平风速spd:spd=sqrt(ugeo*ugeo+vgeo*ugeo);要从dirgeo和spd转换为ugeo和vgeo:ugeo=-spd*sin(dirgeo*rperd);vgeo=-spd*cos(dirgeo*rperd);

步骤5)对经步骤4)处理后获得转换后的向量风分量再进行地转风近似求解,所述地转风近似求解如下:步骤4)的风向快速参考转换了向量风分量,近似被分解成其两个水平分量u和v,u分量表示风的东西分量,v分量表示南北分量,风的u分量和v分量的两个公式如下:

u=((y1-y0)×r×tavg×ln(p0/p1))/(2×omega×sin(lat)×(d^(2))),

v=((x1-x0)×r×tavg×ln(p1/p0))/(2*omega×sin(lat)×(d^(2)))

其中:(y1-y0)为当前位置和另一个参考点之间的距离的南北分量的差值,以米为单位;

(x1-x0)为当前位置和另一个参考点之间的东西向分量的差值,以米为单位;

r为干燥空气的平均气体常数,为287焦耳/千克*开氏度;

tavg为当前位置和另一个参考点之间的平均温度,单位为开氏温标;

p0为当前所在位置的大气压力;

p1为另一个参考点处的大气压力;

omega为地球旋转的角速度=7.292×10^(-5)倒数秒;

sin(lat)为当前所在位置的纬度的sin函数;

d为当前位置与另一个参考点之间的距离,以米为单位;

步骤6)将步骤5)处理后的数据投影到步骤2)的球体上,该的矢量风数据投影方法如下:采用双线性内插先在x轴上执行线性插值,然后再在y轴上执行线性插值,尽管每个步骤在采样值和位置中是线性的,但是内插作为整体不是线性的,而是在采样位置的二次方,为了获取函数f在点(x,y)上的值,已知四个点q11=(x1,y1),q12=(x1,y2),q21=(x2,y1)和q22=(x2,y2)的f的值,我们首先在x方向进行线性插值,产生:

再通过在y方向上内插来获得期望的估计:

步骤7)有限差分近似用于在步骤(7)插值过程期间估计该失真,确保风粒子路径被正确渲染,得到可视化结果;

需要投影坐标(x,y)相对于球面坐标(lat,lon)的所有四个一阶导数=(phi,lambda):dx/d(phi),dx/d(lambda);dy/d(phi),dy/d(lambda)。关于tissotindicatrix(天梭指示线)的其它信息是根据这些(使用一些算术和三角函数:余弦,主反正弦和主反正切)计算的。计算需要描述地球的形状,为了获得最大精度,使用具有半长轴a和偏心率e的椭圆体基准;

步骤7)的有限差分近似风粒子路径方法如下:

步骤7-1)使用一阶中心有限差分估计在距离h=10^(-5.2)弧度;

步骤7-2)在点(phi,lambda)获得dx/d(phi),让投影点

(phi-h/2,lambda)-->(x0,y0)

(phi+h/2,lambda)-->(x1,y1)

使用估计值

dx/d(phi)=(x1-x0)/h

dy/d(phi)=(y1-y0)/h

同样,投影点

(phi,lambda-h/2)-->(x2,y2)

(phi,lambda+h/2)-->(x3,y3)

并使用估计

dx/d(lambda)=(x3-x2)/h

dy/d(lambda)=(y3-y2)/h

步骤7-3)从上述衍生物连同斯奈德公式,可以获得在(phi,lambda)的tissotindicatrix的轴的长度及其方向;

步骤7-4)根据地图的大小来确定比例因子,找到地图上的典型ti的大小,并缩放,使得那些ti将大约为地图的6%;

步骤7-5)以相同的量重新缩放所有的ti,因此它们可以被比较,并且将每个重新缩放在其自己的中心附近(其通过第五投影(phi,lambda)→(x,y));

步骤8,交互设计,在processing中导入leapmotion的库,根据需求采用手势交互技术定义各种操作手势,实现全球气候矢量场数据可视化,操作手势包括水平竖直移动、旋转、放大及缩小;

1)经过立体标定后获取经过校准的立体图像对后,进行立体匹配,获得视差图像;

2)再利用摄像机的内参数及外参数进行三角计算获取深度图像,然后对左或右视觉图像使用手势分割算法处理,分割出人手所在的初始位置信息;

3)预先设定阈值,当人手左右水平移动超过阈值,即对地球进行水平移动;当人手竖直移动超过阈值,即对地球进行竖直移动;人手五指握拳,实现缩小操作;人手由拳展开,实现放大操作;手掌旋转超过阈值角度,即对地球进行旋转。

leapmotion手势设置如下:手掌左右水平移动控制地球水平移动;手掌上下竖直移动控制地球竖直移动;手掌五指握拳控制地球收缩;手掌五指展开控制地球放大;手掌转动控制地球旋转。

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