时间:2024-05-22
李尔园,李洪平
(1.中国海洋大学 信息科学与工程学院 海洋技术系,山东 青岛 266100)
基于World Wind的海洋数据可视化研究
李尔园1,李洪平1
(1.中国海洋大学 信息科学与工程学院 海洋技术系,山东 青岛 266100)
以World Wind提供的类和接口为基础,设计、开发了栅格图面图元、矢量箭头和等值线生成算法,并进行了可视化实现。此外,还实现了基于三维地形的多层叠加图。不仅提高了可视化效率,还丰富了World Wind的海洋数据可视化表现形式。研究开发的海洋数据可视化算法,能够满足实际应用需求,并已成功应用到南海海洋信息服务系统中。
World Wind;海洋数据;可视化
21世纪,海洋的经济地位和战略作用逐渐凸显,人类开发和利用海洋资源的活动越来越频繁,获得的海洋数据也急剧增多。如何合理有效地管理海量海洋数据,如何从海量数据中快速找到感兴趣的数据,并挖掘出数据背后隐藏的信息及所反映的规律,成为一大难题[1]。基于计算机科学的可视化技术,将人脑分析无法解释的数据转换为人眼视觉图形[2],为这一问题提供了有效的解决方法。
NASA World Wind是美国航空航天管理局(NASA)推出的一款开放源代码的地理软件,是一个3D的可视化虚拟地球仪[3],也是最流行的数字地球平台之一,其数据和使用都完全免费。NASA共提供了World Wind Java SDK和World Wind . NET两种开发包,本文采用World Wind Java SDK开发包。因为,使用Java开发的项目可以通过Java Applet和Java Web Start两种方式,快速实现分布式部署,满足分布式的数据管理与共享服务要求。
海洋模式数据包括海风、海浪、海流及海温等,可以分为有方向(风、流)和无方向(浪、温)的,也可以分为一层(风、浪)和多层(流、温)的,对无方向的数据可以采用栅格图或等值线图(又可分为填充和不填充2种)的方式进行可视化;对有方向的数据可以采用矢量箭头图或栅格图叠加矢量箭头的形式进行可视化;对多层数据可基于三维地形进行多层叠加显示。
基于World Wind的可视化,最终结果均以其提供的点、线和多边形图元进行显示。然而,其自身提供的类,无法满足海洋数据可视化的多样性需求,需要根据实际情况,以提供的类为基础,自定义相关类及其生成算法。
2.1 栅格图
栅格图是海洋数据可视化的常用表现形式。模式数据是基于规则格网的,可以选择每4个相邻点构成一个矩形,并以这4个点的平均值作为该矩形值的方式构建栅格图的基本图元。但是,这种构建方法形成的图元数量巨大,而World Wind对大量图元的显示较慢,因此无法满足实际应用要求。研究中,基于区域生长法[4]的思想,提出了面图元生长算法,对大量面图元进行基于数据值的合并。但是,该算法中作为种子数据点的选取方法较为复杂。为了对该算法进行简化和改进,提出了面图元合并算法。该算法通过顺序遍历进行图元的合并,规避了种子数据点的选取。
面图元合并算法的具体执行过程为:用一个集合保存栅格图的多边形图元,以四邻点法构建的矩形为基础,从右上角开始,由上至下、从左到右进行区域扫描。①判断集合中是否包含与当前矩形值相等的多边形,若不包含,则执行步骤②,若包含则执行步骤③;②将当前矩形作为一个元素添加到集合中,然后执行步骤④;③判断其是否邻接,若邻接则将当前矩形与其邻接的多边形进行合并,并执行步骤④,若不邻接则执行步骤②;④判断是否完成遍历,若否,则扫描下一个矩形并重复步骤①,若是,则进行集合内多边形的合并,并结束整个流程。
完成上述过程后,集合中剩余的多边形就是构成栅格图的全部多边形图元,将这些图元交由Polygon类进行展现就构成了一幅栅格图。
2.2 矢量箭头图
矢量箭头图是表达有方向数据(如风、流)的最有效方式,它既能表示数据的大小分布情况,又能表现出数据的流动趋势。然而,World Wind并未提供矢量箭头类和矢量箭头的构建方法,需要基于提供的曲线类,自定义矢量箭头类及其构建算法。自定义的矢量箭头类,类属性包括箭头显示坐标(x,y)、箭头长度L、箭头方向α(与X轴正轴的夹角)、箭头尾部长度l、箭头尾部与主线间的夹角β;类方法包括类构造函数、箭头构建方法及箭头显示函数。
图1 箭头构建示意图
箭头构建如图1所示,构建算法的具体流程如下:
1)基于X分量和Y分量的大小,计算出该矢量的大小和方向(与X轴正轴方向的夹角);
2)对矢量的大小进行归一化;
3)以数据点P1为箭头的起点,并根据P1的坐标(x1,y1)和归一化后的大小和方向计算箭头头部点P2的坐标(x2,y2);
4)设定箭头尾巴与主线间的夹角和尾巴的长度,并加上P1、P2的坐标,计算出箭头2个小尾巴结尾点P3、P4的坐标(x3,y3)和(x4,y4);
5)使用P1、P2点构成直线L1,使用P2、P3、P4点构成折线L2;
6)结合L1和L2就组成了一个矢量箭头。
对所有的数据点执行上述操作,并将得到的矢量箭头交由提供的Polyline类进行展现就构成了一幅既能表示大小又能表示方向的矢量箭头图。
2.3 等值线图
等值线的生成方法主要有三角网格法[5]和矩形网格法,由于本研究使用的海洋模式数据为规则格网数据,因此采用矩形格网法进行等值线的生成。基于规则矩形格网的等值线生成算法,可分为3个步骤:计算等值点、等值点追踪和等值线绘制[6]。
图2所示的数据区域大小为m×n,X(列)方向的序号为j,Y(行)方向的序号为i。网格用左下角点的序号标识;边以左端点或下方端点的序号进行标识;点用P(i,j)标识;值用V(i,j)标识。矩形网格法等值线生成算法流程如图3所示。具体步骤如下:
图2 矩形网格数据区域示意图
1)计算等值点。根据公式(r=H-V(i,j))/(V(i,j+1)-V(i,j)) 的值来判定(i,j)横边上是否有等值点;根据公式r=(H-V(i,j))/(V(i+1,j)-V(i,j))的值来判定(i,j)纵边上是否有等值点,H为当前等值线的值,若0≤r≤1则表示有等值点穿过,并将等值点的信息分别保存在数组xArray[m][n-1]和yArray[m-1][n]中(图3a)。
2)等值点追踪。根据自下而上、自上而下、自左向右和自右向左4种可能进入方向和以当前等值点所在边为基准,从左边、对边和右边3种可能走出方向,组成多种不同等值线穿过路径,按照各自的优先追踪次序和追踪方法完成等值线的追踪(图3b)[7]。
3)等值线绘制。按照先开曲线、后闭曲线的顺序,根据等值点追踪方法进行等值点的追踪。进行开曲线追踪时,右边界的等值点按自右向左,上边界的等值点按自上而下,左边界的等值点按自左向右,下边界的等值点按自下而上的进入方向,进行等值线的追踪绘制。进行闭曲线追踪时,按照自左向右的进入方向进行追踪。完成等值线追踪后,只需将得到的等值线交由Polyline类进行展示,就可构成一幅等值线图。
2.4 基于三维地形的多层叠加图
海风和海浪数据只存在于海表,只有一层。而海流、海温和盐度等数据,在不同的深度上都有不同的数据。研究中采用的海流、海温和盐度数据分为多层,因此提出了基于三维地形的海洋环境数据多层可视化形式。以三维地形为底,以海表海水面为顶,加上边界,便形成了一个曲面立体。多层海洋数据图层分布在该曲面立体内的不同高度层上,每层海洋数据图层采用一个单独的World Wind图层进行管理和控制,可以控制每层数据是否显示,以便详细查看其中的某一图层。
根据前述可视化方法,从数据本身的特点出发,选择合适的可视化形式。可视化结果展示见图4。
图3 矩形网格法等值线生成算法流程图
NASA World Wind Java SDK本身提供了丰富的点、线及多边形类和接口,可以为海洋数据可视化提供有效的方法。然而,由于World Wind对海量可视化图元的渲染速度较慢,无法满足实际的应用需求。在本研究中,一方面通过自定义的算法,大量减少了需要可视化渲染的图元数量,加快了可视化显示速度;另一方面,通过自定义矢量箭头及等值线的生成算法和基于三维地形的多层可视化图形显示形式,丰富了海洋数据的可视化形式,满足了海洋数据可视化的多样性需求。研究中采用的“基于NASA World Wind的海洋数据可视化方法”已成功应用到南海海洋信息服务系统中。
图4 可视化结果展示
[1] 周海燕.空间数据挖掘的研究[D].郑州:信息工程大学,2003
[2] 任永功,于戈.数据可视化技术的研究与进展[J].计算机科学,2004,31(12):92-96
[3] 卢海滨,郑文锋,银正彤,等.NASA World Wind Java SDK数字地球客户端开发[J].测绘科学,2009,34(3):169-173
[4] 范冲,严林,吴杰.基于World Wind的三维地形可视化算法研究[J].测绘通报,2013(3):64-66
[5] 孔俊,王佳男,谷文祥,等.基于区域的自动种子区域生长法的彩色图像分割算法[J].东北师大学报:自然科学版,2008,40(4):47-51
[6] 徐旭.基于三角网的等值线生成及填充算法[D].长沙:中南大学,2011
[7] 赵敬和.基于矩形网格法的不规则区域的等值线生成与填充算法的研究[D].北京:中国地质大学,2013
P208
B
1672-4623(2015)02-0025-03
10.3969/j.issn.1672-4623.2015.02.010
李尔园,硕士,研究方向为海洋地理信息系统。
2014-03-07。
项目来源:国家高技术研究发展计划资助项目(2013AA09A506-4)。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!