宋丽丽, 康林冲, 王 漪, 何 隆, 辛 冰
基于B/S的海洋环境数据可视化与服务
宋丽丽, 康林冲, 王 漪, 何 隆, 辛 冰
(国家海洋信息中心数字海洋重点实验室, 天津 300171)
为了解决BS模式下系统业务化运行中海洋环境数据组织与管理、数据服务发布与可视化表达等问题, 通过消息控制机制, 实现了海洋环境数据的动态处理、服务动态生成和显示一体化无缝衔接, 从而在保证数据安全情况下为用户提供海洋环境数据分析, 通过系统的部署试运行, 证明其具有良好的应用前景。
B/S(Browser/Server); 海洋数据; 可视化; 服务发布
海洋环境数据可视化是指通过可视化图像实时动态展示的数据动态变化过程[1]。目前我国的可视化平台基本是单机或基于C/S架构的, 比如OSG[2]、EV-Globle, 存在着开发周期长、维护更新难、网络带宽受限等诸多问题。World Wind可以将代码封装成jar包通过Java Applet在浏览器中显示[3], 但效率比较低, 而且需要降低java的安全访问权限, 数据的安全性难以得到保障。近年来, WebGL使得在网页上实现高效率的3D图像程序成为了可能[4], 目前很多基于WebGL的系统都处于初级研究阶段, 且WebGL是基于JavaScript明码编写, 因此从稳定性和安全性角度上均不足以达到业务化的要求。可视化系统上, 基于Skyline的“中国近海数字海洋信息基础框架”[5]和iOcean中国数字海洋公众版[6], 是采用B/S架构, 但更多是倾向信息发布和业务数据展示等, 在海洋环境数据可视化上均采用静态图片或提前将可视化绘制结果准备好, 无法做到实时动态绘制可视化数据。因此, 大多数基于Web的海洋数据管理和可视化平台不具备多源数据分析和三维可视化能力, 只能对单一数据管理和简单的静态二维可视化。
SkylineGlobe是全球领先的三维空间地理信息可视化软件, 集数据处理、数据展示、数据分析应用及网络发布于一体。SkylineGlobe提供从“应用-工具-服务”3个不同层面的解决方案, 提供给用户快速建立逼真的三维数字地球场景和基于自身业务的可视化管理系统。另外, SkylineGlobe提供丰富的API和多样的产品组合, 可以为每个用户提供量身定做的软件和服务[7]。
在908专项“数字海洋”信息基础框架构建项目建设中, 系统的可视化功能是采用第三方的可视化模块将可执行程序嵌入到系统中, 是脱离三维球体单独展示的, 而且没有做到实时动态绘制分析。本文从海洋环境数据组织处理和海洋环境数据发布两方面入手, 通过消息控制机制, 将数据的处理、发布、显示一体化无缝衔接, 在浏览器端, 借助SkylineGlobe的接口将数据进行显示, 保障了海洋环境数据可视化的效率以及数据的安全性, 为用户使用和分析海洋环境数据提供一定的辅助作用。
1 系统架构设计
基于B/S的海洋环境信息可视化, 旨在为用户提供海洋环境信息的分析和可视化表达。将海洋环境数据的预处理与数据服务发布自动化, 通过消息控制机制, 动态生成数据服务, 再基于SkylineGlobe球体将数据服务进行可视化, 做到数据的存储、处理、发布与显示一体化无缝衔接, 从而在保证数据安全的情况下更加直观展示数据的特性, 为用户使用和分析数据提供一定的辅助作用。图1是系统设计的总体框架。
B/S环境下海洋环境信息可视化与服务主要受制于大数据的存储与组织、数据传输对网络带宽的要求、数据服务的发布等条件的制约。通过构建数据处理中间件, 在数据存储上主要采用归一化数据文件格式, 建立数据文件索引表对海洋环境数据文件进行管理, 建立界面数据索引表方便浏览器端查询检索; 可视化数据和服务生成工具实时动态发布可视化服务; 建立数据服务索引表用于缓存用户常用数据, 提高经常访问数据的响应速度。
浏览器端提供大面图、单点时间序列曲线和剖面曲线等可视化方式, 所有可视化效果通过Skyline球体的API渲染, 渲染方式包括加载WFS(Web Feature Service)要素服务和直接绘制几何数据。浏览器端和服务器端的交互通过消息服务控制。
2 数据组织与管理
2.1 数据内容
系统主要依赖于基础环境产品库, 主要包括学科级产品和要素级产品。产品按照处理手段的不同, 分为常规统计产品、再分析产品、预报分析产品、实况分析产品等。
学科级产品主要包括从基础数据库中按学科抽取得到的海洋综合数据产品, 以及海洋水文学科专题产品、海洋气象学科专题产品、海洋物理学科专题产品、海洋化学学科专题产品、海洋生物学科专题产品、海洋底质学科专题产品、海洋悬浮体学科专题产品、海洋地球物理学科专题产品、海洋地形地貌学科产品等。系统目前所使用的学科级产品主要包括海洋水文和海洋气象专题产品。
要素级产品主要指从基础数据库中抽取的, 以我国近海资源调查专项(908专项)数据库为基础, 囊括海洋水文、海洋气象学科方向, 包括多种时空分辨率, 根据数据的专题应用保障和服务需求, 按照要素进行组织的产品。主要要素为温度、盐度、密度、声速、海冰、海流、波浪、风、气温、气压、湿度、潮汐、潮流等。
2.2 数据存储
2.2.1 产品数据格式
目前, 海洋环境要素数据的存储与管理还没有形成统一的标准规范, 一般由数据加工处理部门根据其实际需要, 自行设计数据存储与管理方法。其中, 常见的存储方法是采用文本(ASCII码)或二进制文件方式进行存储。这种方式使用简单, 占用磁盘空间小, 但不便于在基于服务器——客户端模式的大型应用系统中进行使用, 同时也存在数据安全漏洞, 以及共享和交换效率不便等问题。
为了确保可视化模型系统研发及在数字海洋应用服务系统测试版中的集成应用, 统一采用netCDF (简称nc)格式的数据文件进行存储。其他格式的数据在使用前均需要通过预处理工具转换成nc格式。
在管理以nc数据文件存储的海洋环境要素数据时, 建立一个索引表(表1), 通过索引表来查找到某区域的海洋环境要素信息, 然后通过文件路径来检索具体的数据。
表1 海洋环境产品文件索引表
2.2.2 产品数据服务存储
海洋环境数据按照区域、要素、时间、层深生成shp分析数据并发布, 为了能够更加灵活的查找对应的数据服务方便前台页面查询显示, 提高数据可视化响应速度, 需要额外的一个数据服务索引表JCHJFX_SHP_ZD, 表结构如表2所示。
表2 数据服务索引表
空间区域: 数据服务所属的海洋区域。
学科名称: 数据服务所属学科, 包括海洋水文、海洋气象等学科。
要素名称: 数据服务所对应的要素, 可以是温度、盐度、海面高、海流、气温、气压、风速等要素。
数据类型: 数据服务的数据类型, 包括常规统计产品、再分析产品、实况产品和预报产品等。
层深: 对于海水温度、盐度等存在多个层深的要素数据, 用于记录该数据服务所对应的层深值, 对于海面高等单层深的数据, 该字段填充缺省值0。
时间: 数据服务对应的时间。如果数据的粒度是天, 则填充值形如20140204, 如果粒度是月, 则填充值形如201402, 如果粒度是年, 则填充值形如2014。对于常规统计数据, 是多年月平均数据, 则填充值形如000003。
线、面服务路径: 存储可视化的线、面数据服务发布的地址。
注记服务路径: 存储可视化注记的数据服务发布的地址。
记录更新时间: 用于记录该数据服务记录所生成的时间, 用于替换调度算法。
2.2.3 界面数据管理
由于数据库里会有不同学科不同类型的产品数据, 所以为了能够使得浏览器端展示更加灵活, 将产品数据按照空间区域、所属学科、要素种类、数据类型、层深和时间等进行组织, 构建基础环境分析可视化索引表, 该表由数据文件格式预处理工具创建。表3列出了海洋基础环境分析界面数据索引表的字段名称及数据类型等。
表3 海洋基础环境分析界面数据索引表
空间区域: 产品数据所属的海洋区域, 包括全球、西北太平洋、中国海等大范围海域以及沿海省市和黄河三角洲、辽东湾、莱州湾、大连近岸海域、青岛近岸海域、苏北近岸海域、长江三角洲、杭州湾、舟山群岛海域、厦门近岸海域、闵江口近岸海域、珠江三角洲、北部湾、海南近岸海域、西沙群岛海域等重点海域。
学科名称: 产品数据所属学科, 包括海洋水文、海洋气象、海洋化学等学科。
要素名称: 产品数据所包含的要素, 比如海洋水文包括温度、盐度、海面高、海流等要素; 海洋气象包括气温、气压风速等。不同空间区域和学科下的产品数据所包含的要素会有所不同。
数据类型: 不同产品数据的类型, 包括常规统计产品、再分析产品、实况产品和预报产品等。
层深: 对于水文等数据, 是多个层深的数据, 用于记录该数据产品的多个层深值, 比如0, –10, –200等。
起始时间和终止时间: 产品数据的时间范围, 与时间粒度有关。
时间粒度: 产品数据的时间按照各学科数据获取的不同, 可分为日、月、季、年、多年统计等。
当界面初始化时, 会先对应去找某个学科下的记录, 然后查询所有的空间区域进行填充, 根据当前的空间区域, 找到该区域下对应的要素、时间和层深等, 一次进行填充。
2.3 海洋环境数据更新
目前系统中的海洋环境数据按业务内容主要分为海洋水文数据和气象数据。海洋水文数据包括常规统计、再分析、实况和预报数据。气象数据为常规统计数据。海洋环境数据的更新主要包括数据下载、数据解析、生成可视化数据以及服务发布。海洋环境数据的更新涉及数据下载的更新以及数据解析和生成可视化数据的过程, 需要用的数据处理中间件, 包括数据预处理工具、可视化数据生成工具以及和数据服务工具。
如图2所示, 海洋环境数据入库后原始数据文件存放在相关服务器中, 通过数据预处理工具将提交的原始海洋数据下载并转化成统一的NC格式, 程序将自动按照原始数据文件目录生解析成对应的可视化数据, 然后将矢量数据转换为地图文件, 最终发布成WFS地图服务。在这个过程中, 涉及数据存储中的3个表, 数据预处理工具负责填写界面数据索引表和产品文件索引表, 产品文件索引表供可视化数据生成工具使用, 数据服务发布工具负责将地图服务地址写入数据服务索引表。
3 海洋环境数据发布与可视化表达
3.1 海洋环境数据发布技术
由于海洋环境数据实时、海量、多源异构、单个文件数据大等特性, 对服务的发布有更高的要求。常规的地理信息发布平台, 无论是商业的ArcGIS Server, MapGIS, 还是开源的GeoServer, 面对如此海量的数据, 始终无法解决资源受限的问题, 尤其是内存资源的不足, 以及随着服务数量增加导致的服务响应速度下降。传统的地理信息服务架构在发布地图服务或要素服务时还会面临用户请求响应速度过慢等不友好的情况。结合海洋环境数据的特点, 采用并行计算技术, 并利用服务器缓存策略, 实时高效地发布海洋环境信息服务。
3.1.1 数据文件预处理工具
数据文件预处理工具采用并行计算技术, 实时接收并处理各种来源不同结构的海洋环境数据, 处理成统一的nc格式文件, 并在数据文件索引表和界面数据索引表中创建索引。
3.1.2 服务器缓存策略
服务缓存策略的机制如图3所示。采用可扩展分级缓存, 预处理用户常用数据, 动态生成其他数据。在客户端设计快速预取缓存, 提升用户可视化操作体验。
当收到客户端请求, 请求的数据服务如果已经经过预处理, 则直接调用数据服务索引表中的数据服务地址, 如果数据服务不存在, 则请求会被回溯到数据处理中间件中, 调用可视化数据生成和数据服务生成工具对原始数据再做处理, 这时生成的数据一方面返回给客户端, 另一方面保存在数据服务索引表中, 以备下次请求。
受资源所限, 服务器端的数据服务数量需要控制在一定的范围内, 就需要定时对数据服务索引表更新, 及时替换掉不常用的数据服务, 从而提升响应速度。
3.2 海洋环境数据可视化表达
根据海洋环境产品数据类型和学科要素的属性不同, 浏览器端的可视化方法主要有大面图、单点时间序列曲线和剖面曲线等。大面图指将某个要素的某一层深数据进行等值线抽取, 然后根据属性值进行颜色填充。单点深度序列曲线是指在某个测点(单一点)上, 绘制某一种或几种海洋环境要素(如温度、盐度)随深度变化的曲线。剖面曲线是指在某个测点(单一点)上沿着某个剖面绘制某一种或几种海洋环境要素(如温度、盐度)随深度变化的曲线。图4为单点深度序列曲线和大面图可视化示意图。
根据不同可视化表达方式的逻辑复杂程度和对数据量的要求, 采用两种方式对海洋环境数据进行可视化渲染。对于单点深度序列曲线和剖面曲线可视化, 逻辑上较为简单, 且数据量比较小, 根据查询条件, 在服务器端的海洋环境产品文件索引表中查询对应的数据文件, 读取获得所需数据, 然后在浏览器端绘制显示即可。
对于大面图可视化, 采用服务器端生成几何数据并发布服务, 浏览器端仅需要加载服务进行显示。当收到浏览器端用户申请查看某个数据的大面图可视化时, 服务器程序首先会根据绘制条件到海洋环境产品数据服务索引表中查找是否有对应的记录, 如果有, 则直接读取线面服务路径和注记服务路径, 返回前台通过SkylineGlobe接口进行显示。如果没有, 则启动数据分析处理工具到数据文件索引表中查找对应的数据, 然后进行等值线抽取和颜色填充形成矢量数据, 然后将生成的大面图矢量数据发布, 最后将发布的路径写入数据服务索引表中, 以备下次可视化时使用。
4 绘制结果及分析
图5展示是908专项中数字海洋原型系统中的可视化功能, 是采用ActiveX插件集成到系统中, 并没有与三维球体相结合, 且数据均为提前发布, 不具备动态分析可视化功能。
本文中研究内容所集成的系统是基于B/S架构的数字海洋应用服务系统, 只需访问特定网址即可使用, 客户端唯一需要安装的是SkylineGlobe插件, 用于球体的显示。如图6所示, 界面上的区域、要素、层深以及时间等条件都是通过读取界面数据索引表实时获取, 且可视化的结果也都是实时动态生成的。
a. 西北太平洋区域大气温度大面图; b. 表层水温大面图; c. 某点深度序列上的温度曲线图; d. 某点深度序列上的海流曲线图; e. 温度剖面曲线图; f. 海流剖面曲线图
a. Pacific Northwest temperature using color section; b. SST using color section; c. Temperature at one point using a single-point sequence depth curve; d. Ocean current using single-point sequence depth curve; e. Temperature using profile curve; f. Ocean current using profile curve
5 结论
本文实现了基于B/S的海洋数据的服务发布与可视化表达, 服务器端基于数据预处理工具、可视化数据生成工具、数据服务发布工将原始数据的处理、可视化数据发布与显示一体化无缝集成, 浏览器端基于SkylineGlobe插件在三维球体上实现数据的可视化。目前本文研究内容已经集成到数字海洋应用服务系统上, 通过数字海洋专网供39个数字海洋节点的终端用户访问, 并已在国家海洋信息中心和海洋一所、二所、三所进行部署试运行。基本满足了数字海洋中对海洋数据的可视化需求, 对分析海洋数据提供一定的借鉴。
[1] 孔倩倩, 韩勇, 李文庆, 等. 海洋标量数据多维多模式动态可视化系统设计实现[J]. 微型计算机信息, 2011, 5(5): 177-179. Kong Qianqian, Han Yong, Li Wenqing et al. A multi-dimension and animated visualization system for marine scalar field data with multi-mode[J]. Microcomputer Information, 2011, 5(5): 177-179.
[2] 王锐, 钱学雷. OpenSceneGraph三维渲染引擎设计与实践[M]. 北京: 清华大学出版社, 2009: 1-15. Wang Rui, QianXuelei. Design and practice of 3D rendering engine on OpenSceneGraph[M]. Beijing: Tsinghua University press, 2009: 1-15.
[3] 周玲, 高延铭. World Wind Java三维地理信息系统开发技术指南[M]. 北京: 机械工业出版社, 2013: 8-11. Zhou Ling, Gao Yanming. Development of technical guidelines for 3D geographic information system on World Wind Java[M]. Beijing: China Machine Press, 2013: 8-11.
[4] WebGL detail. Design of WebGL.[EB/OL].[2016-3-21]. https: //en.wikipedia.org/wiki/WebGL.
[5] 张新, 刘健, 石绥祥. 中国“数字海洋”原型系统构建和运行的基础研究[J]. 海洋学报, 2010, 32(1): 153-160. Zhang Xin, Liu Jian, Shi Suixiang. The basic research on the construction and implementation of china’s “digital ocean” prototype system[J]. Acta Oceanologica Sinica, 2010, 32(1): 153-160.
[6] 石绥祥, 雷波. 中国数字海洋—理论与实践[M]. 北京: 海洋出版社, 2011: 326-377. Shi Suixiang, Lei Bo. Theory and practice on china digital ocean[M]. Beijing: Ocean Press, 2011: 326-377.
[7] SkylineWebsite. The product description of Skyline Globe[EB/OL].[2015].http: //www.skylineglobe.cn/.
Visualization and service of marine environmental data based on B/S
SONG Li-li, KANG Lin-chong, WANG Yi, HE Long, XIN Bing
(National Marine Data and Information Service, Key Laboratory of Digital Ocean, Tianjin 300171, China)Received:Jun. 24, 2015
B/S; marine data; visualization; service release
Aiming at B/S system operations, we study marine environmental data organization, management, services publishing, and visualization. This paper introduces a dynamic seamless integrated method for data processing, service producing, and publishing, displayed by a messaging mechanism. Application proves that the system has a good future in the fields of marine environmental data visualization and information security.
P76
A
1000-3096(2016)07-0124-08
10.11759/hykx20150624001
2015-06-24;
2015-10-19
国家自然科学基金项目(41271391); 海洋公益性行业科研专项(201305029)
[Foundation: National Natural Science Foundation of China, No.41271391; Public science and technology research funds projects of ocean, No.201305029]
宋丽丽(1987-), 女, 河北唐山人, 工程师, 主要从事数字海洋可视化研究, 电话022-24013367, E-mail: lilysong_ouc@163.com
(本文编辑: 刘珊珊)