李久松, 常晓峰, 田丰林, 纪鹏波
(1. 中国海洋大学 信息科学与工程学院, 山东 青岛 266100; 2. 中国海洋大学 体育系, 山东 青岛 266100)
海洋和大气数据多模式动态可视化系统的设计和实现
李久松1, 常晓峰2, 田丰林1, 纪鹏波1
(1. 中国海洋大学 信息科学与工程学院, 山东 青岛 266100; 2. 中国海洋大学 体育系, 山东 青岛 266100)
为了实现海洋和大气数据多模式动态可视化, 本系统使用VC++和CG着色语言进行开发, 渲染引擎基于 OpenGL三维图形标准。提出了一系列面向海洋和大气数据的模式分析方法, 包括: 探针功能、线模式、面模式、体模式、矢量模式和动态时间序列分析等, 实现了将海量多维海洋大气数据转换为三维空间或动态演变的图像, 同时完成用户交互处理操作。并将可视化技术应用于长时间序列的海洋大气数据, 通过实时动态的可视化图像来体现海洋大气数据的动态变化过程。结果表明, 该系统可实现常见海洋和大气数据的多模式动态可视化。
海洋大气数据; 多模式; 动态; 可视化
海洋大气环境是一个典型的多维动态变化环境,建立直观的模式数据可视化分析环境是对其内在规律进行分析和研究的重要方法。目前国内外已有很多海洋大气数据可视化系统的相关研究, 如NCAR Graphics和GrADS等。但这些可视化系统[1-3]往往局限于二维平面, 无法表达海洋大气这个三维空间分布的时间动态过程。Vis5D和McIDAS 等虽然支持多维图形的表达, 也实现了海洋大气数据的可视化,但这些软件在数据管理方面存在明显不足。Google于2009年初推出了Google Ocean, 基于三维地球球体实现了大范围的海底地形三维可视化, 但缺乏对海洋水体要素的可视化表达。除Google 以外, NASA的World Wind、ESRI 的ArcGlobe、Skyline 公司的Skyline 等平台提供了基于地球球体模型的海洋数据可视化表达, 但以上平台均基于整个地球模型,无法良好地展示局部海域的可视化效果。国家海洋信息中心以Skyline公司的TerraSuite系列软件为基础平台开发了“数字海洋”原型系统, 实现了中国海域海底、水体等海洋自然要素、自然现象及其变化过程的数字化重现和预现, 但其侧重于虚拟仿真, 对要素的分析功能较少。
本文提出的海洋和大气多模式动态可视化系统实现了常见海洋大气数据的三维动态可视化, 可视化数据采用网络通用的 NetCDF(Network Common Data Format)数据。在可视化方法方面, 提出了探针功能、线模式、面模式、体模式、矢量模式和动态时间序列分析等海洋大气数据可视化分析概念, 同时运用海量数据管理与调度, 矢量、标量可视化等关键技术以展现各研究对象在时间和空间上的变化情况。在此基础上, 系统实现了在同一可视化环境下,对两个不同的矢量、标量海洋大气要素(如海面气压、海面湿度与海面风场、海流)同时进行可视化, 最终完成了对常见海洋大气数据的可视化分析。
相对于以往传统的可视化相关软件, 本系统不仅可以实现对可视化图像任意放大、缩小、旋转、动画等一系列功能, 同时, 系统基于内存映射文件解决了大数据量的承载问题, 而且逼真的可视化区域地理底图, 使系统具有更好的交互性和直观性。
系统包括数据管理、可视化渲染, 用户界面控制与可视化环境三大模块。
数据管理模块负责多维海洋大气数据的解读、存取及管理; 可视化渲染模块完成多维海洋大气数据的可视化渲染与分析; 用户界面控制层响应用户不同操作, 结合可视化模块以灵活的方式展示可视化结果。系统采用数据驱动结合消息响应的构架模式, 如图1所示。
图1 系统体系结构Fig. 1 System architecture
系统包括NetCDF数据解读与存取, 可视化区域纹理贴图, 数据分析与动态可视化等功能。功能模块之间通过消息和共享内存机制进行通讯和协作[4]。
NetCDF数据解读、存取功能是将原始的数据读取保存到系统的多维动态数组中, 以便进行下一步的可视化操作。可视化数据采用 ROMS(Regional Ocean Model System)模式输出的NetCDF格式数据,输出数据包括温度、盐度、海流和水位场等。 ROMS的计算网格为C网格(图2), 即流速u、v点的计算网格和水位、温度、盐度等标量并不相同, 所有变量均在各自的计算网格输出。NetCDF数据主要是由Dimensions, Variables, Attributes, Data 四个部分组成(图3)。Dimensions主要包含每个变量的名称和长度, Variables是各种变量, 如温度、盐度等, Attributes是一些辅助记忆的说明, 如变量的单位等, Data是主要资料部分。针对NetCDF数据的这种特殊结构, 需要在系统中配置用 VC++打开读取 NetCDF数据的环境, 所使用的NcFile类中包含了NcDim, NcVar, NcAtt, 分别对应了上面的Dimensions, Variables, Attributes部分。系统使用NetCDF的成员函数 num_dims()获得文件中的Dimensions个数, 用 NcFile类的另一个成员函数get_dim(int id)获得每个文件的 Dimensions, 用 NcDim类的成员函数 id()、name()、size()依次读出每个Dimensions的id, name, size。同理用NetCDF的成员函数num_vars()获得文件中Variables数量, 用NcFile类get_var(int id)读出每个文件中的Variables, 也可读出id, name信息。所不同的是Variables还可用num_dims()读出其所包含的Dimensions个数, 用get_dim(int id)读出其包含的Dimensions相关信息, 同时文件的Data信息也是通过Variables来操作的。
图2 C网格Fig. 2 C Grid
图 3 ROMS输出NetCDF的数据格式Fig. 3 Data format of NetCDF
以往的可视化软件只能简单显示出某个数据的可视化结果, 而该数据所在的地理区域情况却无法显示, 利用OpenGL纹理贴图技术[5], 本系统可以真实地展现可视化区域的地理底图, 使系统具有更好的直观性, 可视化效果更加逼真。纹理贴图结果如图4 系统主界面所示。
数据分析与动态可视化功能包含对海洋大气要素的探针功能、线模式、面模式、体模式、矢量模式和动态时间序列分析与可视化。探针功能, 可以将二维屏幕上的点映射为三维坐标, 用户可以使用鼠标在屏幕上选取所关注的信息点, 在右侧的用户界面会显示出该点的经度、纬度、深度以及变量值[6]。等值线分析根据某一数量指标将值相等的各点通过内插值连成的平滑曲线, 使用户能直观地观察海洋要素的值域分布。彩色剖面分析, 就是用不同的颜色来表示面上各点的物理值。矢量模式分析, 运用矢量箭头对矢量场进行可视化, 用箭头的长短来表示矢量的大小,用箭头的方向来表示矢量的方向。体模式分析, 是一种对三维时空演变过程重现的可视化方法, 它可以由三维数据场直接通过计算产生二维图像。动态时间序列分析, 主要采用基于动态显示列表的面可视化分析来表达海洋大气要素的宏观动态变化过程, 通过内存映射技术将海量海洋大气数据映射入内存, 按时间分布进行过程可视化, 再现海洋数据要素的演变过程。图4为海洋大气数据可视化效果及系统主界面。
图4 海洋大气数据可视化效果及系统主界面Fig. 4 Visualization of marine data and the system interface
在多维可视化应用中, 数据量已成为影响系统效率和稳定性的主要因素。海洋时刻处于动态变化之中,海洋现象的表现需要满足其动态性和时空过程性的要求。海洋数据的可视化需要体现海洋数据的动态变化过程, 这就需要处理海量的数据。为进行大时间跨度的可视化与分析, 可针对海量数据进行内外存交换, 以动态的载入载出代替原本的一次性载入, 使系统能够承受超过物理内存大小的数据量。
内存映射文件[7]是 Windows的一种内存管理方法,它提供了一个统一的内存管理特征, 使应用程序可以通过内存指针对磁盘上的文件进行访问, 其过程就如同对加载了文件的内存的访问。为实现对海量数据的可视化分析, 我们设计了如下的内存映射模型, 如图5。
图5 内存映射模型Fig. 5 Memory-mapped Model
海洋大气数据的多维动态可视化具有访问的局部性, 动态可视化是以时间点为观察窗。可视化过程中数据只在该时间点被渲染时才使用, 所以只要计算出系统的最短响应时间, 使用多线程方法, 在渲染前将数据映射入内存, 在进行渲染后再将数据卸载就可以实现大数据量的承载。
为了获得最优的载入缓冲区大小和最短响应时间, 我们在不同硬件环境下进行了I/O速度测试, 如表1。实验证明, 每次读取的数据总量过高时受内存换页等因素影响, 磁盘I/O速度会有明显衰减。
表1 I/O速度对比表Tab. 1 Speed comparison of I/O
根据表1获得的载入速度, 在数据一进入内存就传输至显存进行可视化缓冲的情况下, 只要可视化的时间窗口切换满足下式, 即可基本保证无延迟感,实现流畅的动态可视化。其中,HS为平均载入速度,CS为显存至内存带宽,M为每次可视化的数据量,T为最短响应时间,fps为渲染帧速。
对于常见海洋大气数据, 本系统主要采用以下可视化方法: 等值线可视化、彩色剖面可视化、动态时间序列分析、体绘制可视化。
(1) 等值线绘制是标量数据可视化的主要技术,是将制图对象某一数量指标值相等的各点连成的平滑曲线, 由表示制图对象数量的各点, 采用内插法找出各整数点绘制而成的。等值线图的绘制步骤一般包括: 离散数据点网格化; 在网格边上内插等值点并计算其位置; 连结所有等值点以绘制等值线; 等值线的润色, 如光滑处理、辅以彩色填充的方式显示数据等。本系统利用三角网格进行等值线追踪, 包括三角网格生成、等值点确定和等值线遍历三个步骤。
(2) 彩色剖面即伪彩色图法, 就是用不同的颜色表示面上各点的物理值。具体表现方式是用不同的颜色以及色彩的饱和度来表示物理值的大小, 每一类剖面可视化都分为彩色剖面生成和彩色剖面绘制两步。彩色剖面生成, 其特征在于根据剖面参数读取内存中的海洋要素值并根据剖面设置进行采样生成几何面片的过程, 生成的剖面由规则四边形网格构成, 其中每个四边形网格的坐标由剖面几何属性决定, 而每个四边形网格的颜色值由对应点上的海洋要素属性值决定。彩色剖面的绘制通过在几何节点增加自定义画法, 在自定义画法中调用OpenGL函数绘出每个格点,每个小四边形格点的几何形状用4个四边形表示, 每个四边形顶点的颜色根据要素值及 color bar(用颜色表示要素的值)进行内插计算。
(3) 动态时间序列分析, 其特征在于采用基于动态显示列表的面可视化分析来表达海洋要素的宏观动态变化过程, 海洋数据时间序列表达的过程,需要实时地调取在各个时间点上的海洋要素数据,根据时间序列顺序在内存中生成绘制数据, 并按一定的时间间隔传输到渲染管线中, 其绘制过程实质上是 OpenGL中复杂的几何图形在屏幕上按时间顺序动态绘制的过程, 或者说是大量的数据被按时间序列调度并计算着色的过程。
(4) 体绘制可视化, 是一种对三维时空演变过程重现的可视化方法, 它可以由三维数据场直接通过计算产生二维图像。它的主要过程如下: 首先在一个空间范围内通过线性插值来获得一系列格点的物理量值。然后, 将每个点根据其数值大小赋予不同的颜色值及透明度值加以区分。最后通过光线追踪的方式产生该空间范围内所有可视点的着色图像并反映在几何体中。本系统设计了基于 GPU加速的体绘制算法, 通过体绘制可以直观地对温度场等标量数据场进行可视化表达, 使用户以宏观的角度分析海洋要素值的整体分布情况。此外本系统采用基于 GPU的高质量体绘制方法——光线投射, 其基本思想是, 对每个像素发出一条光线, 沿光线进行光亮度积分, 在光线积分过程中, 沿光线进行均匀采样, 当光线跨出数据包围盒, 或不透明度接近1, 停止追踪。
本系统采用青岛麦岛附近海域数据, 数据空间范围为: 35.944183°~36.089145°, 120.357809°~120.534971°,分辨率为0.0008°×0.000975°, 深度范围为[-20 m, 0]。原始数据为总量427 MB的NETCDF数据。
实验用计算机配置为: Core2 2.53GHz, 内存2 GB,显卡 GeForce GTS 450。分别进行了麦岛附近海域的点、线、面、体和动态可视化。结果表明, 各种可视化功能帧速都在25帧以上, 交互操作没有延迟感。
本文在可视化方法方面, 提出了探针功能、线模式、面模式、矢量模式、体模式和时间序列分析等海洋大气数据可视化分析概念, 并且运用VC++解读NetCDF数据、海量数据管理、海洋大气数据多种可视化方法等关键技术, 以展现各研究对象在时间上和空间上的变化情况。
本文的创新点: 运用多种模式分析方法将海量海洋大气数据转换为图形、图像, 并显示在真实的地理底图上; 同时可视化矢量和标量数据, 在同一地理图层上显示矢量、标量数据可视化结果, 使科研和业务预报人员能够同时从不同的要素来观察海洋大气要素的时空演变特点; 探针功能可以将二维屏幕上的点映射为三维坐标系统, 并在用户界面显示出各点的经度、纬度、深度和相关变量值, 增强系统的交互性; 本文的下一步研究方向是流线可视化以及改进现有可视化算法, 进一步改善可视化效果。
[1] 徐敏, 方朝阳, 朱庆, 等. 海洋大气环境的多维动态可视化系统的设计与实现[J]. 武汉大学学报(自然科学版), 2009, 34(1): 57-63.
[2] 涂超. 海洋温度场的可视化[J]. 武汉大学学报(工学版), 2007, 40(6): 126-128.
[3] Ainsworth E, Ainsworth J. Visualization of ocean colour and temperature from multi-spectral imagery captured by the Japanese ADEOS satellite[J].Journal of Visualization, 1999, 2(2): 195-204.
[4] 程培英, 邵斌. 基于共享内存的多处理器系统间通信技术研究[J]. 微计算机信息, 2008, 24(30): 124-126.
[5] Shreiner D, Woo M, Neider J, et al .OpenGL编程指南. 北京: 机械工业出版社, 2010: 236-296.
[6] 李新放, 刘海行, 周林, 等. 基于 OpenSceneGraph的海洋环境三维可视化系统研究[J].海洋科学, 2012, 36(1): 54-58.
[7] 孔倩倩, 韩勇, 李文庆, 等. 海洋标量数据多维多模式动态可视化系统设计实现[J].微计算机信息, 2011, 5(5): 177-179.
(本文编辑: 刘珊珊 李晓燕)
The design and actualization of multimodal dynamic visualization system of marine and atmospheric data
LI Jiu-song1, CHANG Xiao-feng2, TIAN Feng-lin1, JI Peng-bo1
(1. College of Information Science & Engineering, Ocean University of China, Qingdao 266100, China; 2. Department of Physical Education, Ocean University of China, Qingdao 266100, China)
Jun., 13, 2012
marine and atmospheric data ; multimodal; dynamic; visualization
In order to realize the visualization of multimodal and dynamic data, a multimodal dynamic visualization system was developed using VC++ and CG language. The rendering engine was based on OpenGL three-dimensional standard. A series of mode analysis methods for the marine and atmospheric data analysis were proposed, including probe function, line mode, polygon mode, cuboid mode, vector mode analysis and temporal changes analysis. The system was used to transfer massive marine and atmospheric data into three-dimensional spatial or dynamic evolution images, as well as realize the users interaction processing. Through this system, the visualization technology can be used to analyze long temporal changes of marine and atmospheric data. It turned out that this system can represent the dynamic change process of marine and atmospheric data through the real-time dynamic visualization images.
P76
A
1000-3096(2014)01-0010-05
10.11759/hykx20120613001
2012-06-13;
2012-09-05
国家 863计划(2008AA09A404, 200905030-4, 2010-4-07-XX, 10-1-4-71-hy)
李久松(1987-), 男, 河南商丘人, 硕士, 研究方向为虚拟现实与海洋可视化, 电话: 18766387268, E-mail: lijiusong1987@163.com