基于非结构化三角网格的海洋标量数据可视化研究*

2022-11-09 02:34张雅静柴柏林
计算机与数字工程 2022年9期
关键词:标量结构化直方图

张雅静 柴柏林 李 琦

(1.中国石油大学(华东)海洋与空间信息学院 青岛 266580)(2.中国石油大学(华东)计算机科学与技术学院 青岛 266580)

1 引言

科学计算可视化是通过研究计算机工具、技术和系统,把实验或数值计算获得的大量抽象数据转换为人的视觉可以直接感受的计算机图形图像,进而进行数据探索和分析[1~2]。由于海洋数据具有多源、异构、多维度、多尺度等特点,将其分为结构化数据和非结构化数据,其中非结构化三角网格数据是海洋数据的研究热点。海洋标量数据是一类只有数值大小,没有方向的海洋环境数据。基于三角网格的海洋标量数据可视化是分析其内在规律和特性的有效方法。

我国传统的可视化平台大多数是基于单机或是基于C/S架构的,如OSG[3]、EVoGloble等,存在着适用范围窄,维护更新周期长,数据格式多样且杂乱等诸多问题。基于Skyline的“中国近海数字海洋信息基础框架”[4]采用的是B/S架构,倾向于信息的发布和业务数据的展示等,但是要下载安装插件;康林冲[5]等基于B/S架构实现的海洋环境数据可视化是利用SkylineGlobe可视化插件,给浏览网页以及使用过程中带来了很大的不便。综上所述,传统的C/S架构开发周期长,且只适用于二维平面,而B/S架构适用于三维立体,扩展性强,地图服务数据格式统一,且随着OpenGL技术和HTML5技术的快速发展,基于B/S架构系统可视化逐步成为众多领域的研究热点,并且无插件可视化的研究应用较少。

Cesium[6~7]是国外一个基于JavaScript编写的使用WebGL的地图引擎,是一款开源的三维地球框架。它支持三维地球(3D),二维地图(2D)以及2.5D哥伦布视图(2.5D)形式的地图展示,可以自行绘制高亮区域,并提供良好的触摸支持,通过CZML创建数据驱动的时间动态场景,高分辨率的世界地形可视化,使用WMS,TMS,Bind以及ESRI的标准绘制影像图层。Cesium支持KML,GeoJSON和TopoJSON等多种数据格式,且作为一个开源的框架,是基于OpenGL生成三维虚拟地球中比较活跃的,在众多领域都有广泛的应用。

综上所述,本文采用B/S架构,研究了非结构化三角网格数据可视化方法,设计并实现了基于Cesium框架的非结构化三角网格标量数据可视化系统。以全球海洋表面温度、海平面高度数据等为例,进行可视化系统的验证。

2 系统的架构设计

2.1 系统体系结构

基于非结构化三角网格的海洋标量数据三维可视化系统是以Cesium三维虚拟地球为依托,采用JavaScript开发语言和OpenGL图形渲染引擎进行开发,系统采用(B/S)浏览器/服务器模式架构[8]。

(B/S)浏览器/服务器架构下三维标量数据可视化系统主要是对海洋数据中只有数值大小没有方向的非结构化三角网格标量数据进行可视化,例如海表温度、海水盐度、海平面高度、海水密度等。该系统主要分为浏览器端和服务器端两部分。系统设计的总体框架如图1所示。

图1 B/S架构下三维可视化系统总体框架

浏览器端可以去访问服务器端产生的基础地理数据、三角网格海洋标量数据等信息,服务器端主要是提供数据发布、地图、分析查询等服务功能,实现浏览器端对多种数据的请求与响应。浏览器端基于Cesium三维虚拟地球的API进行可视化渲染与绘制,用户可以根据自身的需求查询相应数据并进行可视化,选取想要的部分进行可视化展示和分析。

2.2 系统功能模块

基于海洋标量数据的特点以及系统可视化的需求,将分为数据预处理、可视化映射标准、可视化渲染以及可视化应用展示等主要功能模块。

数据预处理模块是对基于非结构化三角网格的海洋标量数据进行预处理,包括NC文件的解析、投影坐标的转换、插值以及裁剪等过程,从而形成系统可解析的格式。系统模块支持NetCDF、文本等数据格式的预处理。对于非结构化三角网格数据,由于非结构化三角网格密度不一、无法直接通过经纬度坐标来获取所在网格,因此将NC文件进行解析,建立边列表数据结构。

可视化映射标准模块是采用自定义的色彩映射表绘制海洋标量数据,根据数据自身的特性采用不同阶数的渐变色。以蓝色为代表的冷色调表示低数值,以红色为代表的暖色调表示高数值。色彩映射渐变表如表1所示。

表1 RGB色彩映射渐变表

可视化渲染模块主要是基于OpenGL3D图形接口来进行渲染绘制,允许跨平台开发。采用基于几何图形对象的点、面可视化方法进行表达[8]。点方式的可视化是直接以点状对象进行海洋标量数据的可视化表达,以不同的颜色和大小来表示海洋标量数值[9]。面方式可视化是将不同的点进行插值计算得出相应的颜色,以三角网格面的形式进行展示[10~11]。

可视化应用展示模块是将海面温度数据以及海平面高度数据等不同海洋标量数据进行三维可视化显示。

3 相关技术

3.1 坐标系转换

WGS-84坐标系[12](World Geodetic System-1984 Coordinate System)是国际上通用的地心坐标系,也称为大地坐标系,坐标原点是地球的质心,用经纬度来表示地球上物体的位置,本文所使用的NETCDF文件数据就是用经纬度来表示的。

浏览器端为了实现海洋标量数据可视化,必须将地心坐标系转换为OpenGL可以支持的坐标系。首先,需要将以经纬度坐标形式存储的NC文件数据转换为地心地固坐标系(ECEF坐标系),其转换形式如式(1)所示。

式(2)中,∅代表经度值,θ代表纬度值,h代表高度值,a、b和e分别代表WGS-84坐标系中定义的地球长半轴(固定值14960m)、短半轴(固定值14958m)和离心率(固定值0.0167)。

其次,要完成图像的绘制,须利用顶点着色器将地心地固坐标系(ECEF坐标系)转换为用于图像显示的屏幕坐标系。如图2所示。

图2 屏幕坐标系转换流程图

3.2 无监督分箱

无监督分箱[13~14]是指将连续的特征属性转换为离散的标称属性,在建立分类模型时,对连续变量离散化,使模型更加稳定,易于快速迭代,同时增强对异常数据的鲁棒性。一般地,它是一种离散化的形式,也可以是分组,比如,折线图、直方图等。

本文采用的是基于无监督的离散划分方法,不需要引入目标值,其具体步骤为

1)对整体特征数据进行排序;

2)对所有的数据遍历一遍,寻找合适的分割点;

3)根据分割点确定连续值的取值范围;

4)当达到停止准则时终止离散过程,否则继续。

3.3 层次细节技术

层次细节(Levels of Details,LOD)技术[15]最早是由Clark提出的,目前广泛应用于数据可视化,本系统在数据的可视化显示中运用层次细节技术。

层次细节技术依据不同的视点选择合适的层次细节进行绘制,符合人的视觉特性。当离视点比较近时选择高分辨率的LOD进行绘制显示[16];当远离视点时,屏幕上只有几个像素,采用插值、重采样等方法转换为低分辨率的数据,用低分辨率的LOD进行绘制显示即可。没有必要绘制全部的细节层次,这样既保证了观测的效果,又加速了数据的可视化显示[17]。

3.4 直方图均衡化

直方图均衡化是一种有效的图像增强技术,是处理灰度图像以及灰度变换的一个重要方法[18],是以累计分布函数变换为基础的直方图修正法[19]。直方图均衡化的基本思想是通过重新均匀地分布各灰度值来增强图像的对比度。对图像中像素个数较多的灰度值进行展宽操作,较少的灰度值进行合并操作,从而增大对比度,使图像更加清晰。

本文是基于直方图均衡化思想,先将基于非结构化的海洋标量数据可视化图转换成灰度图像,利用直方图均衡化原理重新分配像素值,把图像中灰度直方图从比较集中的区域变成均匀分布,从而使可视化图像均匀清晰的分布。

4 实验与应用

本文使用Cesium开源三维地球框架,基于JavaScript开发语言和OpenGL相关库,实现三角网格海洋标量数据可视化。实验的PC配置为:操作系统为64bit的Windows10,处理器为Intel(R)Core(TM)i7-4702MQ,内存为16GB,显卡为NVIDIA GeForce GTX 760M,浏览器为Google Chrome。数据集是海洋模式FVCOM输出的全球海洋表面标量数据集(温度、盐度、海平面高度等),该数据集可提供某一时刻的全球海表面数据,数据结构为非结构化三角网格形式。整体流程图如图3所示。

图3 基于非结构化三角网格的海洋标量数据可视化流程图

4.1 海洋标量数据可视化表达与分析

海洋标量数据是一种只有大小没有方向的数据类型[20],根据海洋数据类型和环境要素属性的不同,可以将可视化方法分为某一时刻曲线图、直方图以及大面图等。某一时刻曲线图是指基于全球三角网格数据类型的不同海洋环境要素在某一时刻的统计分布图,本文分别以海面温度和海平面高度数据为例,进行海洋标量数据的可视化表达,如图4所示。

图4 全球海洋标量数据统计分布图

直方图是指将全球非结构化三角网格数据进行排序,经过无监督分箱把不同海洋环境要素(海面温度、海平面高度)数据按照依次递增的顺序进行排序分组,根据不同海洋环境要素数据本身的特性进行类别的划分,形成不同类别的可视化直方图,分别如图5(a)、(b)所示。

图5 不同海洋环境要素类别可视化图

从上图可以看出,不同海洋环境要素的数据分布情况完全不同,全球海面温度(SST)分布范围相对均匀,全球海面高度(SSH)主要集中在0m附近,这是因为海平面高度是围绕海面上下波动。

4.2 非结构化三角网格数据三维可视化

系统是以三角网格面积基元为单位进行三维可视化,在三维场景中进行不同海洋要素的可视化表达,不同的颜色或大小表示海洋要素值。如图6所示,分别展示了海面温度(SST)和海平面高度(SSH)的三维可视化效果。颜色深浅表示要素值高低。同时采用了无监督分箱、层次细节和直方图均衡化思想,实现了非结构化三角网格数据的可视化,提高了可视化的效率,增强了可视化的效果。

图6 非结构化三角网格数据三维可视化

5 结语

本文采用B/S架构,基于Cesium实现了非结构化三角网格的海洋标量数据的三维可视化系统。针对非结构化三角网格数据的特性,结合三维虚拟地球引擎,对海洋标量数据进行了可视化方法的研究及其实现。详细阐述了可视化系统的体系架构和技术实现。并以海面温度和海平面高度数据为对象验证了所提方法的可行性与效果,基本满足了可视化的需求。同时也为其他海洋要素的数据可视化分析提供了思路,随着海洋领域需求的不断发展与壮大,在进一步完善本系统的同时,将逐步研究海洋矢量数据的可视化表达与分析。

猜你喜欢
标量结构化直方图
符合差分隐私的流数据统计直方图发布
促进知识结构化的主题式复习初探
结构化面试方法在研究生复试中的应用
一种高效的椭圆曲线密码标量乘算法及其实现
用直方图控制画面影调
一种灵活的椭圆曲线密码并行化方法
基于空间变换和直方图均衡的彩色图像增强方法
基于图模型的通用半结构化数据检索
基于直方图平移和互补嵌入的可逆水印方案
单调Minkowski泛函与Henig真有效性的标量化