威尼斯wns·8885556(vns认证网站)-BinG百科

当前位置:首页 > 新闻资讯 > 技术动向

数据可视化之风场分布图

发布者:威尼斯wns·8885556    时间:2020-11-03 13:27:08

风是由太阳辐射热引起的一种空气流动现象,是影响天气和气候变化的重要因子,同时也是气候分析和风电场管理等诸多领域的关键因素。因此利用三维可视化实时监测风的变化情况至关重要。




风场,亦是一种向量场,把空间中的每一点指派到一个向量的映射。风场效果图由两部分组成,即风场流线图和风场分布图,风场流线图反应风向变化,风场分布图反应风速大小,此处我们主要以风场分布图展开介绍。


1.png

图1 向量场示意图



这里我们将风场分布可视化主要流程分为数据解析、数据编码、数据解码、数据渲染四部分。为提高渲染效率及精度,我们将全球风场数据编码并以纹理方式传入着色器,再通过纹理采样,解码风场数据,并利用双线性插值算法,计算全球各位置风速,实现全球逐像素着色,从而渲染出高精度、平滑的风场分布图。




数据解析:本文数据来源于以美国气象局每隔3个小时以经度/纬度网格的形式,发布的一种全球气象数据,数据格式大致如下:

7.png


数据将全球划分为361×181网格,其中lo1、la1为网格原点经纬度,lo2、la2为网格终点经纬度,dx、dy为经纬网格步长,nx、ny为经纬网格数,data为对应网格点风场数据,分别表示经度、纬度方向上风速大小。




数据编码:由于风场数据以361×181经纬网格方式存储,且数据在-255~255之间,因此本文以361×181像素大小、RGBA颜色数据格式纹理存储各网格风场数据,RGB通道存储风场数据数值,A通道存储风场数据符号位,从而分别将在经纬两方向上的风场数据编码转化为纹理图片,提高数据精度。 





数据解码:利用构建地球顶点数据,计算各像素对应的经纬坐标,并计算相邻的4经纬网格坐标,并进行归一化作为风场数据纹理坐标,通过纹理采样,提取相邻风场数据,并利用双线性插值算法,获取当前位置风场数据值,并计算当前像素颜色值。




Step1: 计算纹理坐标,通过世界笛卡尔坐标转化为经纬坐标(i+△i,j+△j),如图2所示获取当前位置相邻的4个经纬网格坐标(i,j)、(i+1,j)、(i,j+1)、(i+1,j+1),则对应纹理坐标分别为(i/361,j/181)、((i+1)/361,j/181)、(i/361,(j+1)/181)、((i+1)/361,(j+1)/181);


2.png

图2 纹理坐标计算示意图



Step2: 提取数据,通过Step1计算的纹理坐标进行采样,获取当前经纬坐标相邻风场数据值f(i,j)、f(i+1,j)、f(i,j+1)、f(i+1,j+1),如图3所示,其中u为经纬方向偏移、v为纬度方向偏移;


3.jpg


图3 风场影响示意图



Step3:计算像素颜色值,通过Step2获取的风场值,并利用双线性插值算法计算该位置风场影响值,如下式所示,再利用风场影响值通过正、余弦计算RGB颜色值,提高风场变化的平滑度;


 f(i+u,j+v)=f(0,0)(1-u)(1-v)+f(1,0)x(1-v)+f(0,1)(1-u)y+f(1,1)uy 


4.jpg

图4 像素与纹理坐标映射关系图




数据渲染:利用影像瓦片渲染机制,实现风场分布全球着色,效果图如图5所示:


5.jpg


图5 风场分布效果图




通过上述风场分布效果的实现方式,我们可以渲染其他类似效果,实现地图数据与现实GIS数据可视化结合,如全球温度、湿度等。将数据以纹理方式传入着色器,再利用对应算法,计算像素颜色值,并予以着色渲染。



上一篇:OGC标准介绍
下一篇:OSG相机-基础篇

FreeX 产品微信公众号

威尼斯wns·8885556微信公众号

威尼斯wns·8885556视频号