MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}}); function MyAutoRun() {    var topp=$(window).height()/2; if($(window).height()>450){ jQuery(".outline_switch_td").css({ position : "fixed", top:topp+"px" }); }  }    window.onload=MyAutoRun; $(window).resize(function(){ var bodyw=$win.width(); var _leftPaneInner_width = jQuery(".rich_html_content #leftPaneInner").width(); var _main_article_body = jQuery(".rich_html_content #main_article_body").width(); var rightw=bodyw-_leftPaneInner_width-_main_article_body-25;   var topp=$(window).height()/2; if(rightw<0||$(window).height()<455){ $("#nav-article-page").hide(); $(".outline_switch_td").hide(); }else{ $("#nav-article-page").show(); $(".outline_switch_td").show(); var topp=$(window).height()/2; jQuery(".outline_switch_td").css({ position : "fixed", top:topp+"px" }); } }); 一种全球尺度三维大气数据可视化系统
  软件学报  2016, Vol. 27 Issue (5): 1140-1150   PDF    
一种全球尺度三维大气数据可视化系统
梅鸿辉, 陈海东, 肇昕, 刘昊南, 朱标, 陈为     
CAD & CG国家重点实验室(浙江大学), 浙江杭州 310058
摘要: 气象数据具有时变、多源、多维度、数据量大和多尺度等特征,常规的气象数据可视化方法难以满足气象预报与气象研究中的需求.描述了一个新的全球尺度三维大气数据可视化系统——AVIS.系统实现了面向各类密度场、向量场、张量场和非空间数据的可视化方法,设计了适用于大气数据的球面体绘制和混合绘制方法.系统还实现了一套跨平台并行可视化及分析构架,支持在浏览器中或其他显示和交互设备上使用,并利用后端计算集群加速数据的计算与绘制过程.案例分析表明,该系统可以全方位地展现气象数据中的信息,帮助用户综合多种气象信息进行分析.
关键词: 可视化系统    气象数据    体绘制    并行可视化    
Visualization System of 3D Global Scale Meteorological Data
MEI Hong-Hui, CHEN Hai-Dong, ZHAO Xin, LIU Hao-Nan, ZHU Biao, CHEN Wei     
State Key Laboratory of CAD & CG(Zhejiang University), Hangzhou 310058, China
Abstract: Meteorological data are multisource, multidimensional, large-scaled and multi-scaled. As a result, it is hard to display a complicated 3d scene in meteorology using traditional visualization methods. This paper presents a visualization system, called AVIS for global scale meteorological data. AVIS employs several standard methods for visualizing density fields, vector fields and tensor fields, as well as non-spatial data. AVIS implements spherical volume rendering and hybrid rendering to support the study of internal structures. AVIS also utilizes a cross-platform and parallel framework to support the visualization both in browsers and on other platforms. The framework benefits from a back-end computing cluster and can accelerate the efficiency of computation and rendering. Use cases verify that the presented system can show meteorological data from many aspects and help users analyze multiple types of data comprehensively.
Key words: visualization system    meteorological data    volume rendering    parallel visualization    

气象数据具有多源性、多维性、数据量大和多尺度特征等特点.由于不同地空环境具有不同的物理属性,且其空间尺度、时间跨度呈现多样性,在这类复杂地空环境下仿真多源大气信息加剧了大气信息处理的难度,对其建模更显挑战性与重要性.研究和开发三维时变的大规模大气数据可视化系统成为当务之急.目前,相关三维可视化技术和理论体系比较完善,在生物、医学、地质、大气等领域已有很多成功的应用,关系数据库已有比较成熟的理论技术和广泛的应用,并行计算架构以及GPU及其用于通用计算的技术的出现和发展,为通过GPU集群进行大规模气象数据处理和实时可视化的研发提供了强有力的支持.

气象信息种类繁多,数据规模庞大,而根据气象信息的地理属性,需要在统一信系中整合不同可视化方法来满足各种各样的应用需求.从地理信息开发的角度来看,必须有一个高效、鲁棒且易于扩展的地理信息可视化平台,这个平台与领域之间具有低耦合度,可以通过层次化、组件的架构满足扩展性和通用性需求.从气象领域来看,在此平台上搭建的气象数据可视化平台可以提供更加直观的数据分析和展示,给予气象工作人员极大的帮助,也可以作为一个向大众普及气象科学的平台.

我们与中国气象局国家卫星气象中心合作,实现了一个新的全球尺度三维大气数据可视化系统——AVIS.系统支持各类密度场、向量场、张量场和非空间数据的可视化,同时,特别设计了适用于大气数据的球面体绘制和混合绘制方法.系统实现了一套跨平台并行可视化及分析构架,支持在浏览器中或其他显示和交互设备上使用,并利用后端计算集群加速数据的计算与绘制过程.

1. 相关工作与背景知识 1.1 气象数据可视化

随着计算机在气象领域中的应用,20世纪70年代,一些气象信息显示分析软件和开发工具面世,如NCAR[1]气象数据绘图包和基于脚本语言的GrADS[2]系统.20世纪90年代之后,气象数据日益剧增,同时,气象地理信息技术也发展迅速,中国气象局则开始使用自行研制的Micaps[3]系统进行数据的分析和处理,给气象工作者提供了极大的便利.三维的气象信息分析系统以Wisconsin大学空间科学工程中心SSEC开发的Vis5D[4]系统为代表,5D是指在地理的三维上加上时间和数据要素.

气象数据三维可视化近年来发展迅速,该领域比较有影响的是来自美国宇航局(NASA)的开源软件WorldWind[5],它能够跟踪全球范围内的近期事件、天气变化,展示NASA提供的一系列模拟全球飓风动态、季节变迁等活动的演示动画,并能根据用户指定时间范围,从网站获取气温、云量、降水等数据进行展示.

1.2 基于网页的可视化

信息可视化研究者们对于在网页上进行基本的数据可视化的尝试已进行了多年,但大多还仅局限于传统的图表如直方图、散点图等,科学领域的三维可视化技术应用则更为有限.受限于浏览器的运算和绘制能力[6],大数据规模、包含复杂图形绘制的可视化系统仍需设计成独立的客户端程序,或者通过服务器端进行绘制.通过Ajax(异步JavaScript和XML)技术的应用,可以将复杂的绘制请求传递给服务器,由服务器绘制完成后将结果以图片的形式异步传回并绘制在屏幕上.这样的做法将交互与绘制和计算分离开,使得三维场景的绘制不再受限于浏览器的性能限制.

另一方面,在HTML5的基础上,WebGL也已有了长足的发展,简单的三维场景已经能够直接通过浏览器进行实时绘制.目前已经有许多开源的WebGL库可以使用,如最广泛使用的通用WebGL库Three.js[7],用于游戏开发、数据可视化和创意代码的框架PhiloGL[8]和可以简化向量和矩阵使用的GLMatrix[9]等.

使用HTML5编写的网页应用优势在于使用方便,不需要安装和部署,任何人通过网络就能访问.随着iPhone和Android等智能手机的崛起,应用程序的跨平台化越发显得重要,而HTML5有着天然的跨平台优势,WebGL与HTML5配合可以轻易地生成跨平台的三维绘制程序.

2. 地理信息表达和气象数据可视化

AVIS系统通过在地形和地表影像等基本地理信息绘制结果的基础上叠加三维气象数据可视化结果,提供具有真实感的结果供用户对数据进行观察研究.本节介绍地理信息的表达方式、三维气象数据的可视化方法以及将多种可视化结果的混合绘制.

2.1 地理信息表达

为了展现地球的三维真实场景,通常采用将卫星影像和地形数据结合进行可视化的方法.在场景的交互中,加入以用户为心的视点角度,使得用户可以自由在地表遨游,增强用户体验.

大规模的地理场景构建中包括了大量的数据采样点以及大量的卫星影像数据和地形数据,本文主要使用了多分辨率的地形场景模型和基于视点的场景剪裁,以达到快速实时的场景绘制.

在数据预处理阶段,采用了基于影像的LOD的方式对原始数据进行分层和分块处理.按照地表影像数据将地表分块分层后,地球整体的绘制则转化为地表分块集合的绘制.同时,根据视点进行剪裁,只对视锥体内的相应地形分块选择适当的层级进行绘制.本文系统采用静态完全四叉树[10]来组织地表分块,不仅提高了绘制速度,而且保证了绘制效果,实现了自适应层次细节和基于视点的快速场景层次选择.

2.2 三维气象数据可视化

按照每个数据点测量值的维度,可以将气象数据分为标量场数据(一维)、矢量场数据(二维)、张量场数据(n维).其中,标量场主要包括温度场、气压场、湿度场、云场(云水混合比)等数据,矢量场数据主要包括风场、洋流场等数据,它们使用平行于地面的两个维度方向的数据进行表示.本文系统主要对标量场数据和矢量场数据的可视化.

2.2.1 标量场数据可视化

针对三维标量场数据,平台提供等值线[11]、等值面[12]、直接体绘制、切片绘制等可视化方法.传统的体绘制方法以立方体、长方体或者圆柱构造三维体数据的代理几何,相比之下,AVIS使用的新型球面体绘制方法使用球形作为代理几何,更符合气象数据的特点,且支持三维体数据内部视点漫游.

球面体绘制方法基于传统的光线投射算法,采用球面坐标表达构造一个球形代理几何,并以球面坐标系下的3个空间维度坐标作为纹理坐标,以归一化后的三维体数据作为纹理数据,以所述球形代理几何作为载体构造三维体数据的三维体纹理.而在绘制过程前,又将球面坐标转换回直角坐标表达,通过求解二次方程计算投射光线与代理几何的交点.

设当前相机视点位置为(x0,y0,z0),光线方向为单位向量(xd,yd,zd),则得到其参数化方程:$$\displaylines{ x = {x_0} + {x_d} \times t{\text{,}} \cr y = {y_0} + {y_d} \times t{\text{,}} \cr z = {z_0} + {z_d} \times t{\text{.}} \cr} $$

由于球形代理几何中心点为(0,0,0),可以由方程$x_s^2 + y_s^2 + z_s^2 = {R^2}$来表达.将投射光线参数化方程带入,得到: 其中,$$A = x_d^2 + y_d^2 + z_d^2 = 1,B = 2 \times ({x_0}{x_d} + {y_0}{y_d} + {z_0}{z_d}),C = 2 \times (x_0^2 + y_0^2 + z_0^2{\text{ }}) - {R^2}.$$

若二次方程无解,则相机视点在球体外且投射光线与代理几何不相交;若有解,则根据解的情况计算不同的光线积分的初始点和光线积分的终止点(如图1所示),再从光线积分的起始点开始,沿光线迭代地、递进地计算当前光线位置,并将其转化为球面坐标表达,以便将转化后的以球面坐标表达的当前光线位置作为纹理坐标进行三维体纹理查询,获得对应的三维体数据值,然后进行传输函数纹理查询[13],混合每个迭代步的颜色和不透明度,直至光线积分的终止点,获得最终的体绘制图像,达 到体数据内部视点漫游的效果.

图1 投射光线与代理几何交点的3种情况 Fig.1 Three types of intersection points of casted ray and proxy geometry

压缩域体绘制:AVIS将球面体绘制和一套基于HVQ和PSH的体数据压缩域体绘制方法[14]相结合,对体数据进行高压缩比的近似无损压缩.对数据进行压缩及在压缩域进行体绘制解决了有限的存储资源、有限的CPU与GPU传输带宽和不断增加的体数据尺度以及领域专家对于高压缩质量的实时压缩域体绘制的需求之间的矛盾.该方法充分利用GPU的优势,降低了网络带宽的要求,可满足在线实时渲染的性能要求.

2.2.2 矢量场数据可视化

针对三维矢量场数据,平台提供箭矢图、流线[15]、线积分卷积(line integral convolution,简称LIC)[16]等传统矢量场可视化方法.除此之外,本文系统还设计了粒子对流方法用动画表达矢量场数据.

粒子对流通过粒子在矢量场中的流动,动画地表达某一时刻的矢量场数据,直观、动态地展现矢量场的特征.粒子对流技术首先在矢量场中播撒粒子,在每一帧绘制时,使粒子沿所在位置的矢量方向移动,移动速度与矢量长度成正比,粒子连续移动形成轨迹曲线,轨迹随时间逐渐淡化,形成类似于彗星彗尾的渐变曲线.在具体实现中,本文系统通过GPU加速降低视角切换时重新计算矢量场分布所需的时间,提高了动画的流畅度.

2.3 混合绘制

大气场景中包含点、线、面、体等不同的可视表达模型,以及多种观测与计算的气象属性.在传统实现中,一般针对不同的场景分别采用不同的可视化方法和可视化流程,并以二维切片的方式,按距离视点远近设置透明度进行叠加显示.这种方法实现简单,但简单的透明度混合无法处理对象间交错等情况,难以刻画复杂场景的内部规律[14].

为了达到混合可视化的效果,本文系统采用深度剥离技术[17]来渲染场景中的半透明物体,经过多层渲染,提取出多种半透明物体的不同层次的可视化结果.在深度剥离的结果的基础上,按照片元的深度顺序实现了几何、面、体的多属性混合,适用于场景中同时具有不透明几何体、半透明几何体和体绘制对象的应用情形.

具体的步骤如下:

· 步骤1:挂载一张与绘制输出窗口同等大小的颜色纹理和一张与绘制输出窗口同等大小的深度纹理作为绘制输出的颜色缓冲区和深度缓冲区,然后直接绘制场景中的不透明几何体,得到一张颜色纹理和一张深度纹理.

· 步骤2:采用深度剥离技术对场景中的半透明几何体进行多次深度剥离,每次剥离过程得到一张与绘制输出窗口同等大小的颜色纹理和一张与绘制输出窗口同等大小的深度纹理.

· 步骤3:构造场景中体数据的三维体纹理和体数据的代理几何体.

· 步骤4:根据步骤1的绘制结果和步骤2生成的深度剥离结果,在绘制窗口中的每个像素位置上,对属于该像素的一组片断按保存在深度纹理中的深度值进行排序,同时,将所有片断从窗口坐标系变换到世界坐标系.

· 步骤5:根据用户指定的传输函数,在绘制窗口中的每个像素位置上分别投射一条从视点出发的光线,采用经典的光线投射算法,逐步累积光线经过体素的颜色值和不透明度值,并判断当前光线是否刚穿过该位置上的某个片断,将穿过的片断与当前体素的累积结果进行混合,或者继续累积体素的颜色值和不透明度值,直至满足给定终止条件[18](如图2所示).

图2 在体绘制的光线积分中采用了基于像素的深度排序,可以对交错的对象进行正确的混合绘制 Fig.2 In ray casting steps of volume rendering,per-pixel depth sorting is applied to blend interlaced objects

通过上述步骤,可以对一个场景中的多个可视化结果进行混合,使得用户可以同时对多个可视化结果进行观察,从而综合更多的气象信息进行分析判断(如图3所示).

图3 混合绘制结果,图中场景混合了矢量场的流线表达、等值面和体绘制 Fig.3 Hybrid rendering result containing streamlines,isosurface and volume rendering

我们对混合绘制的效率进行了测试.测试机器使用Intel(R) Core(TM) i7-4770 CPU,内存32G,显卡为NVIDIA GeForce GTX 550 Ti,操作系统使用Microsoft Windows 7旗舰版.对比在不同复杂度场景下开启混合绘制前后的绘制帧率(见表1)发现,采用混合绘制在复杂场景下会造成10FPS左右的帧率下降.实验结果表明,本文系统采用的混合绘制方法并没有导致太过高昂的额外开销,能够在大幅度提高场景真实感的同时,仍然保证一定的流畅度.

表1 加入混合绘制后的帧率变化 Table 1 Variation of frame rate under hyper rendering
3. 跨平台并行可视化构架

AVIS并行可视化引擎支持C/S(客户端/服务器)和B/S(浏览器/服务器)模式,支持超大分辨率屏幕显示.系统既可以部署于普通PC机,作为客户端程序运行于本机;也可以运行于并行可视化系统的节点机器,为基于浏览器和大屏可视化系统提供基本的可视化服务.

3.1 后端构架

后端计算集群的主要功能是获取数据,完成数据的预计算,以及为浏览器和大屏的可视化系统提供基本的可视化服务.其中,服务器按功能可以分为网页服务器、数据管理服务器和GPU计算集群.

网页服务器负责解析浏览器和大屏可视化系统发出的可视化任务,然后将任务交于部署了后端计算程序的CPU/GPU集群完成可视化,并返回相应的可视化结果.可视化期间所需要的数据由数据库提供,数据管理服务器实时获取最新的气象数据,并对原始数据进行定标、金字塔切片等初步处理后存入数据库中.GPU计算集群由具有多个GPU和CPU的NV高密度GPU主机作为集群计算节点组成,而单台主机则作为可视化计算节点加入整个集群系统中,构成可视化计算集群.GPU集群负责从数据库服务器中获取最新的气象数据,并对数据进行预处理,提取等值线、流线、LIC等数据场的几何与拓扑特征,并对体数据进行压缩.

3.2 C/S构架

本文客户端以Qt作为界面框架,并利用Qt提供的数据库连接、OpenGL、网络传输与多线程等功能实现.

3.2.1 客户端实现

客户端可视化的流程主要包括数据预处理与场景的实时绘制:在数据预处理阶段,需要对地理信息数据构建基于LOD多分辨率模型的存储,将体数据解析,并根据用户的交互选择体绘制;在实时绘制阶段,提供给用户基于视点的交互,根据用户的交互结果变换视点,做基于视点的场景剪裁,然后调度数据.数据加载完成后,加入场景进行绘制.

3.2.2 界面设计与交互流程

C/S的界面以三维主视图的窗口为主,配合工具栏,工具窗口等界面组成系统的界面(如图4所示).用户可以通过数据和可视化方法选择面板(如图4(a)所示)灵活地选择不同的可视化方法来分析特定的气象变量,并可在可视化对象控制面板(如图4(d)所示)中查看前系统的可视化模块的信息,并对可视化模块进行显示、隐藏、删除等管理操作.此外,还有可视范围的二维显示(如图4(b)所示)和二维地理信息视图(如图4(c)所示)等辅助视图和工具.

图4 系统界面.图中的可视化结果混合了风场的流线表达、温度场的海拔切片和相对湿度的体绘制结果 Fig.4 System interface. This scene contains streamlines of wind field,horizontal slice of temperature filed and volume rendering of relative humidity

系统提供了丰富而有效的交互以帮助用户更加灵活、便捷地使用系统,用户在定制数据、可视化方法、可视化参数等同时,还可以实现动画帧的控制、拾取、剖切等操作,配合二三维联动的系统界面,对气象数据内容有更加精确的了解和探究.

用户通过使用二维、三维联动(如图4(b)图4(c)所示)可以精确地得到相应的地理位置信息.精确的地理信息是一切气象数据探究的基础,同时,可以通过切换相机进行视点的切换、旋转等操作.系统提供了点拾取、廓线拾取、精确地理位置拾取这3种拾取方法,可以对具体地理位置的数据的具体数值进行直观的观察和统计,具有准确性和实时性.系统实现了剖切操作,以帮助用户针对多层的气象数据进行经纬方向的剖切操作,观察体数据的剖面特征,辅以等值线、箭矢图等方法丰富剖切操作的可视化结果.这些交互都对用户更好地观测、分析气象数据起着明显的帮助作用.

此外,系统还提供视频录制、截屏等操作,以帮助用户管理可视化结果,增强系统的可拓展性.

3.3 B/S架构

B/S架构的浏览器端界面由三维主窗口为主,配合工具栏、弹出窗口构成系统的交互界面(如图5所示).

图5 通过浏览器访问的系统页面.图中为风云2E卫星遥感数据及气压的等值线 Fig.5 Web page of online system. This scene contains remote sensing data from FY2E and isolines of atmospheric pressure

在实现上,B/S构架使用了HTML5和WebGL技术,运行代码主要由JavaScript编写,功能设计及实现方式与客户端基本相同.但由于浏览器性能的限制,浏览器端代码在资源管理上进行了特殊处理,以保证其性能和可靠性.同时,现行的浏览器无法很好地支持体绘制和混合绘制等复杂场景的绘制,因此,本文采用了服务器远端绘制的方法,以牺牲一定的实时性为代价实现复杂场景的绘制工作.

浏览器资源管理:系统可能用到的资源包括下载的数据、用于绘制的内容和计算的结果等.由于网页占用过多内存会导致浏览器运行效率下降[19],在进行绘制的同时,要及时释放没有使用的数据、已经过期的内容和中间计算结果等无用资源.但另一方面,太过频繁的内存释放会导致资源的复用性下降,带来额外的网络传输和计算开销.因此,需要有资源管理机制控制数据下载、资源复用和释放内存,以提高系统的运行效率.

资源管理机制包括下载管理和资源请求管理.下载管理提供统一的数据下载接口,这样可以最大程度地利用浏览器自身的缓存机制,避免数据重复下载.资源请求管理提供统一的接口供系统的其他模块创建和使用资源,在重复请求相同资源时做到资源复用,减少下载和计算的开销.管理器还会定期销毁长时间不用的资源,释放其所占内存,绘制和计算模块也可以锁定重要资源以防止其被销毁.

服务器端并行绘制:在目前的浏览器发展水平下,webGL的绘制能力与PC端OpenGL仍有一定的差距,同时,考虑到浏览器内代码的运行效率,体绘制、混合绘制等复杂绘制场景在浏览器端难以实现.本文系统采取了由后端服务器绘制后,以图像传回显示的方法实现了对上述复杂情况的绘制功能.当用户需要绘制或更新一个复杂绘制对象时,浏览器代码向服务器端发送一个请求,请求中包含了需要绘制的数据编号、相机相关参数和可视化方法所需的参数等.服务器接收到请求后,按所给参数调用GPU计算集群进行数据的计算和绘制,绘制结果以图像的形式发还给浏览器端.随后,浏览器端代码会将这个图像与系统中的其他对象进行混合显示.服务器端使用了并行绘制构架Equalizer[20],对场景进行分割绘制并重新组合绘制结果.进行分割绘制有利于进行负载均衡的分配,提高了服务器端处理并发请求的能力,充分利用了后端集群的运算能力.

3.4 跨平台构架的优点

本文系统使用的跨平台构架在数据预处理、数据高效压缩传输和数据组织调度这3个方面的优点如下:

· 在绘制三维气象数据之前,需要消耗巨大的网络带宽和CPU时间用于数据下载和预处理.为了减轻客户端的压力,服务器在更新三维气象数据的同时,会对其进行预处理,计算并提取出三维气象数据场的等值线、流线、LIC等特征信息,并存入数据服务器中.用户能够直接从服务器获取这些特征信息并直接进行可视化分析,节省了网络带宽、传输时间以及运行时间.

· 对于大尺度、高分辨率的海量三维气象体数据,采用了一种近似无损的三维体数据压缩方法,拥有较高的压缩比的同时,保证了高压缩质量,有效地节省了存储空间和网络带宽,极大地提高了网络传输的效率,有效处理了体数据尺度与领域专家对高质量体绘制的需求之间的矛盾.

· 数据组织包括分类组织、分层组织与分块组织这3种不同的策略.分类组织使得每类对象都只是整个数据库很小的一部分,并有利于聚合特征相近的对象,从而极大地提高数据选择、重组和处理的效率.分层组织将数据表现和组织控制在一定层次内,提高了数据检索与存取的效率.分块组织通过减少每次调度的工作量来提高计算速度和绘制效率,从而提高了系统的实时性.

4. 案例分析与专家意见 4.1 数据来源

本文系统涉及的气象数据由中国气象局提供,主要分为遥感数据、遥感产品、数值预报产品、预报云图、融合数据以及常规资料这6个大类的数据(见表2).

表2 数据类别及说明 Table 2 Data categories and specifications

数据涵盖了卫星云图、风场、相对湿度、温度、位势高度、比湿、离散传感器数据等多种气象变量,采集渠道也包含遥感卫星、传感器等多个来源.数据范围为全球尺度的高分辨率气象数据,包括单一层级和多层级的数据类别.

4.2 卫星云图

系统数据库提供多个遥感卫星数据,用户可以通过访问系统网页在线地查看这些遥感数据,遥感数据以用户指定的颜色映射表达,同时还支持以播放动画的形式表现时序性卫星数据.

图5是用户在通过观察带透明度通道的卫星云图可视化结果,观测卫星遥感数据的演变趋势、极值特征区域等数据特征,进而分析卫星数据的对应的通道的数据.在图中可以看到一个非常明显的云层聚集的区域,通过播放动画,还能观察到这片区域中的云层正在逆时针旋转,并且添加等值线后观察发现,此处是低气压中心,这可能是热带气旋正在生成的标志.用户通过动画控制器,可以灵活地控制动画进行暂停、前进、后退、跳转等操作.

4.3 多变量场混合

通过混合相同时间范围内风场、温度场的可视化结果(如图4所示),用户可以观察风场和温度场之间的相互影响关系,风场的演化趋势会影响温度场寒流、暖流的变化趋势;继续混合同一时间的遥感数据云图、相对湿度的体绘制结果及温度场在海拔方向的颜色映射切片,可以发现卫星云图与相对湿度的一致性;通过叠加温度场等值线和切片结果,可以观察温度场的具体的数值信息.

4.4 与现有系统的对比

表3列出了几种常用的可视化软件与本文系统所支持功能的比较,从中可以看出,本文系统不仅支持三维地理信息可视化与二维的气象信息可视化功能,而且在该基础上支持了三维的气象信息可视化.在支持的数据类型方面,本文系统支持多维度数据可视化和时序数据的动画展示,并且能够灵活地将其混合展示.

表3 与现有气象可视化软件的对比 Table 3 Comparison to existing climate visualization softwares

与现有的其他软件相比,本文系统拥有完整的基础功能,能够对各种不同类型的气象数据提供合适的可视化展示方法,包含常用的各种可视化技术.在此基础上还添加了更多的特性,如时序数据的动画演示、多种数据场的混合绘制和数据场内部视点漫游等.另一方面,本文系统针对C/S和B/S构架进行了计算和绘制方法的优化,充分利用服务器和GPU的性能.综上所述,本文系统是对当前该领域软件的进一步提升.

4.5 专家意见和建议

本文系统已经在中国气象局国家卫星气象中心部署使用,得到了气象专家的广泛好评.根据专家的反馈意见,系统中的所有地理信息、气象数据均能单独选择是否显示、修改颜色和透明度等;同时,动画功能除常规的顺序播放外,提供倒放、单帧前进、指定跳转等控制控件.专家认为,这样的功能使得在使用本系统进行气象分析时更加方便与实用.

美国国家环境预报中心(NCEP)IMSG有限公司、美国国家海洋和大气局(NOAA)吴克勤博士对该系统做了如下评述:这是一个快速而有效的大尺度三维气象数据可视化系统.系统为各种天气数据提供多样的先进可视化技术,同时为其目标用户群体进行了很好的定制,使其更加易用.相对于现有的其他类似产品,如谷歌地球的可视化应用、基于VTK的可视化系统及商业气象可视系统等,本系统的强项在于大规模实时数据的可视化.其中,快速高质量的体绘制和对流流线尤为出色.

5. 总结与未来工作

本文从气象领域的实际需求出发,提出了一个跨平台气象可视化的系统构架,实现了对地理信息和三维气象数据的可视化展示.本文引入和设计了一系列三维气象可视化中所用到的关键技术,如球面体绘制、压缩域体绘制等,实现了从数据预处理到三维气象数据实时绘制的全部过程,并通过混合绘制的方法展现多种数据.本文实现了基于GPU集群进行后端并行计算和绘制,实现了浏览器端多变量复杂气象数据可视化展示,从而无需安装便可使用,降低了用户的使用难度. 致谢 感谢中国气象局国家卫星气象中心提供的数据支持和需求分析.

参考文献
[1] Zhao YD, Wang PX. NCAR drawing software programming on Windows. Journal of Nanjing Institute of Meteorology, 2001,24(2):269-274(in Chinese with English abstract).
[2] Gao WL, Liu XY, Zeng XD. Skills on utilization of GrADS. Journal of Sichuan Meteorology, 2002,22(4):57-60(in Chinese).
[3] Jia XR, Qian P. MICAPS system and its applications. Chinese Journal of Agrometeorology, 1998,19(2):46-48(in Chinese with English abstract).
[4] Hibbard B, Santek DA. The VIS5D system for easy interactive visualization. In:Proc. of the 1st Conf. on Visualization 1990. IEEE Computer Society Press, 1990. 28-35.
[5] Bell DG, Kuehnel F, Maxwell C, Kim R, Kasraie K, Gaskins T, Hogan P, Coughlan J. NASA world wind:Opensource GIS for mission operations. In:Proc. of the Aerospace Conf. 2007. 1-9.[doi:10.1109/AERO.2007.352954]
[6] Johnson D, Jankun-Kelly T. A scalability study of Web-native information visualization. In:Proc. of the Graphics Interface. 2008. D780-D786.
[7] three.js-Javascript 3D library. http://mrdoob.github.io/three.js/
[8] PhiloGL:A WebGL framework for data visualization, creative coding and game development. http://www.senchalabs.org/philogl/
[9] glMatrix. http://glmatrix.net/
[10] Pajarola. Large scale terrain visualization using the restricted quadtree triangulation. In:Proc. of the IEEE Visualization. 1998. 19-26.[doi:10.1109/VISUAL.1998.745280]
[11] Shi JY, Cai WL. Visualization in Scientific Computing:Algorithms and Systems. Beijing:Science Press, 1996. 58-76(in Chinese).
[12] Levoy M. Display of surfaces from volume data. IEEE Trans. on Visualization and Computer Graphics, 1988,8(3):29-37.[doi:10. 1109/38.511]
[13] Li X, Chen WF, Tao YB, Ding ZY. Efficient quadratic reconstruction and visualization of tetrahedral volume datasets. Journal of Visualization, 2014,17(3):167-179.[doi:10.1007/s12650-014-0211-8]
[14] Ding ZY, Tan JG, Wu XY, Chen WF, Wu FR, Li X, Chen W. A near lossless compression domain volume rendering algorithm for floating-point time-varying volume data. Journal of Visualization, 2015,18(2):147-157.[doi:10.1007/s12650-014-0268-4]
[15] Ueng S, Sikorski CA, Ma K. Efficient streamline, treamribbon, and streamtube constructions on unstructured grids. IEEE Trans. on Visualization and Computer Graphics, 1996,2(2):100-110.[http://www.computer.org/]
[16] Cabral B, Leedom LC. Imaging vector fields using line integral convolution. In:Proc. of the ACM SIGGRAPH. 1993. 263-270.[doi:10.1145/166117.166151]
[17] Everitt C. Interactive order-independent transparency. In:Bavoil L, Myers K, eds. Proc. of the Order Independent Transparency with Dual Depth Peeling. NVIDIA OpenGL SDK, 2008.
[18] Myers K, Bavoil L, Cebenoyan MC. Method for depth peeling and blending. US Patent 8,094,152, 2012.
[19] Optimizing JavaScript code. http://developers.google.com/speed/articles/optimizing-javascript
[20] Eilemann S, Makhinya M, Pajarola R. Equalizer:A scalable parallel rendering framework. IEEE Trans. on Visualization and Computer Graphics, 2009,15(3):436-452.[doi:10.1109/TVCG.2008.104]
[1] 赵远东,王盘兴.NCAR绘图软件在Windows下的编程.南京气象学院学报,2001,24(2):269-274.
[2] 高文良,刘晓燕,曾小东.气象绘图软件GrADS高级使用技巧.四川气象,2002,22(4):57-60.
[3] 贾锡荣,钱平.MICAPS系统及其应用.中国农业气象,1998,19(2):46-48.
[11] 石教英,蔡文立.科学计算可视化算法与系统.北京:科学出版社,1996. 58-76.