海洋技术▏一种通用的海洋环境监测系统设计方法
随着传感器技术、网络技术以及海洋科学技术的发展,越来越多的监测仪器部署于规划海域,对海域的海洋环境状态进行监测,构成了海洋环境监测网络的硬件环境。监测仪器利用携带的传感器采样不同的海洋环境参数并转换成数字形式的数据,然后对监测数据进行集成、处理及分析,可以为气候变化、海洋运输等领域的应用提供数据支持以及决策依据。
近年来,不同的海洋组织针对海洋环境监测系统开发开展了一系列研究,并形成了针对不同应用的开发工具及资源。然而,这些工具大都是专用且高度集成的,不具有通用性,无法在其他的海洋监测系统中进行复用,原因在于:在数据采集过程中,由于需要利用仪器专有的命令集与其进行交互,数据采集程序通常与仪器通信协议紧密耦合;在使用不同类型仪器时,需要不断进行修改以适应新协议;在数据存储时,数据库结构缺乏良好的可扩展性,例如,在航测基础数据库中,通常按照CTD等仪器类型分别建立航次表、站位表、海面数据表、水体实测层以及水体标准层数据表,并添加相应的海洋环境参数作为表的字段;在采用新的监测仪器或平台时,需要增加相应的表,且在监测参数发生变化时需要更改相应表的结构;另外,尽管现在已有Suffer、Hydro、Desktop、ODV等多种可视化显示与分析工具,但无法抽取其中的功能满足特定的系统需求,导致开发效率较低。
针对上述问题,本文提出一种通用的海洋环境监测系统设计方法,分别介绍了采集层、数据层以及应用层采用的关键技术,复用已有的工具及资源,解决了多源异构数据的获取以及客户端软件的快速生成问题。该方法已在基于IEEE P2402 标准展开应用,并通过多个海洋监测应用案例中对该方法的有效性及可行性进行了验证。
一、材料与方法
⒈海洋环境监测系统层次架构
图1显示了海洋环境监测系统层次架构,自下而上分为采集层、数据层与应用层,囊括了从监测数据采集到可视化分析展示整个过程,下面简要描述各层的作用及层间关系。
图1 海洋环境监测系统层次架构
在采集层中,监测数据来自不同的源,这些监测源采用不同的监测方式,产生的数据结构也不尽相同。监测数据可以来自具体的物理监测设备,依靠其携带的传感器对海洋环境参数进行测量,并通过具体的协议命令与设备进行交互获取数据值;监测数据可以来自分析过程,通过将水样取回,在实验室中进行分析得到结果;监测数据可以来自数值模型,利用具体算法对已有的监测数据进行二次计算得到;这些数据通常以文件的形式存储结果,不同的系统其文件格式及内部数据结构都不一致,需要根据提交的文件编写数据解析程序。
数据层需要对来自多个监测源的不同结构的数据进行集成存储,对数据进行质量控制,添加数据使用时所必需的元数据;另外,数据层还应存储:通过对某一专题范围内的监测数据进行分析整理形成产品数据;支撑区域系统运行与管理的各种业务化数据;支持基于地理信息的监测数据处理的地图/图像数据。由于海洋监测具有持续时间长、范围大、监测参数多等特点,数据库结构应具有良好的可扩展性,能够以较少的更改适应监测系统需求的变化,能够向应用层提供快速查询响应、数据导入导出等服务。
利用数据层提供的服务,应用层能够方便地获取监测数据,利用各种工具对数据进行分析与处理,以支持海洋预报、防灾减灾、环境保护领域的各种应用。应用层的工具在功能上具有相似性,通常都具有监测数据的可视化功能、基于地理信息系统的显示功能、基于多种查询条件的数据搜索功能。
⒉基于配置的数据获取
由于采集的数据来自多监测源,且监测数据具有不同结构,本节首先对监测过程进行抽象,并提取出关键对象。图2显示了对象之间的关系,责任对象即不同的海洋观测部门,负责监测项目的规划和方法对象的部署;方法对象指监测仪器及传感器,通过方法对象能够了解对监测对象的采样方式;监测对象指不同的海域,通常用站位进行表示,指明了监测发生的地点;感知对象指明了监测海域的不同海洋参数,并产生结果对象;结果对象负责记录针对不同参数产生的测量值。
图2 监测对象关系
在监测过程中,由于责任对象及方法对象较为固定,从监测数据中主要提取监测对象、感知对象以及结果对象信息,设计标准数据序列结构(时间,站位标识符,参数标识符,采样值,质量标识符)。数据采集程序通过对数据流及数据文件中的信息进行提取,并转换成标准数据序列,实现对多源异构数据的统一管理。
为了向上层屏蔽多源数据异构性,将数据采集程序分离并开发成相对独立的模块,能够有效地减少由于监测环境的改变对整个监测系统的影响,其结构如图3所示。一方面,采集程序直接从仪器收集采样数据值,对数据进行处理,并向上层提供标准的数据序列。采集程序周期性地与仪器通信进行数据收集,建立连接,发送命令及取回数据,这些操作都封装在采集函数中。针对已有的仪器,开发人员可复用已有采集函数;针对新类型的仪器,需要根据仪器通信协议编写新的采集函数。
图3 数据采集程序结构
另一方面,很多监测数据由于采样方法的局限缺乏实时性,例如人工观测的各种类的鱼数目,这些数据通常记录在数据文件中,然后通过程序读取。当前海洋监测领域普遍使用的文件类型包括XML、CSV和TSV,利用解析程序能够对不同格式的文件自适应读取。在数据提取过程中,首先要明确文件中包含的元数据,按照文件内容配置监测站位、剖面及参数等信息;然后解析程序需要了解具体参数值及采样时间在文件中的位置。
位置信息在XML文件中可以使用数据节点的可扩展路径标识,在CSV和TSV文件中则是具体参数对应的列标识符。数据解析程序按照配置信息找到参数数据位置并提取相应数据值,转换成标准结构的数据序列,图4展示了对一个XML数据文件进行配置以提取站位和参数信息的过程。
图4 XML数据文件配置
在取回采样数据后,通过质量控制过程对数据进行检查。整个过程主要包含两个步骤:⑴针对不完整或格式不正确的数据,对采样值进行缺失标记;⑵通过配置工具预先定义参数数据值的上限和下限,并与采样值进行比较,确保数据处于正常的范围之内,针对质量较差的数据将进一步进行人工检查。
⒊可扩展的数据库结构
由于海洋监测数据类型较多,本节仅从航测数据说明可扩展数据库设计方法,该方法可以扩展到其他类型数据。航测数据可以分为监测元数据与监测数据,元数据从时间、空间、内容等方面对监测数据进行描述,航次信息主要包括航次号、航测起止时间、调查海区、调查机构、调查项目以及站位时间和经纬度等信息,这些信息相对比较固定,较少发生变化,因此着重考虑监测数据表的设计。
为方便描述,以仅含有水文参数的CTD水体环境实测层数据表为例,如表1所示,一个参数作为数据表的一列,并跟随质量符及精度符列分别作为质量和精度描述;在监测需求发生变化,需要增加监测参数时,表结构需要进行相应更改,如表2所示。这种更改不仅会造成新增加的列中部分数据为空,使得存储效率降低,还会造成数据库表列太多,影响数据表访问及查询性能。
表1 原数据表
PID | 1 |
Temperature | 8.49 |
Temperature Quality | 1 |
Temperature Accuracy | 2 |
表2 原数据表增加PH参数后的结构
PID | 1 |
Temperature | 8.49 |
Temperature Quality | 1 |
Temperature Accuracy | 2 |
pH | 8.17 |
PH Quality | 2 |
PH Accuracy | 2 |
为应对数据库表结构的修改,将监测参数单独提取出来,形成监测参数表,除了参数名,可以按照需求扩展存储单位、参数简写等其他信息;在数据表中,通过外键与参数表的VariableID产生关联,并存储采样值、质量及精度信息。如表3所示,当增加新的监测参数时,仅需在参数表中添加一行数据即可实现,在数据表使用相应的Vari ableID中存储监测数据,整个过程无需更改数据库的结构,且数据表中空值极少,存储效率高,如表4所示。
表3 参数表
VariableID | Name |
1 | Temperature |
2 | PH |
表4 本文设计数据表
PID | 1 | 2 |
VariableID | 1 | 2 |
Value | 8.49 | 8.17 |
Quality | 1 | 2 |
Accuracy | 2 | 2 |
⒋模块化的客户端
由于不同海洋监测系统的需求各异,直接使用Suffer等工具无法满足特定的系统需求,而且这些工具大多是高度集成的,不提供源代码,无法抽取其中的功能模块,因此海洋监测系统的客户端大多是从零开发,开发周期较长,维护代价较大。
海洋监测系统大多需要向用户提供数据查找、数据显示、数据分析等服务,通过将这些共有功能提取出来,每个功能封装成相对独立的模块,组成功能模块库;在有新的功能需求时,设计实现新的模块放入模块库中;设计人员根据系统需求从模块库中选择相应模块,按照软件工程领域的基于组件的开发方法,对模块进行组装,快速生成客户端。
通过对海洋监测系统需求进行调研,目前功能模块库主要包括:
⑴地图导航模块:利用二维地图方式作为数据浏览的导航界面,可以直观的显示监测区域及监测系统的拓扑结构。地图导航模块利用不同的图标标识各个节点,并提供该节点简要的描述信息。
⑵时间曲线模块:处理时间序列的数据,显示参数随时间变化的趋势。该模块扩展了传统的二维曲线显示方式,支持多子窗口、多坐标系同时显示;用户可以方便地进行对曲线进行放大、缩小以及移动;同时,多样化的标注方式包括瞬时值、特征点、文本标注等可以帮助用户更好地对数据进行分析。
⑶垂直剖面模块:处理剖面数据,显示参数随深度变化的趋势,支持时间曲线模块的所有功能,所不同的是其使用垂直的深度坐标系代替了水平的时间坐标系,从而可直观显示参数的垂直变化。
⑷矢量场模块:以二维形式显示基于网格的海流等矢量数据,可以设置地理范围、参数类型、格点数量、数据文档或数据,支持无失真的缩放、拖拽、时间动画操作。
⑸等值线模块:以二维形式可视化显示基于网格的温度等标量数据,将数值相等的点连接成平滑曲线,能够清晰的显示参数在空间范围内的变化趋势。
⑹玫瑰图模块:统计一段时间内矢量数据如海风、海流在各个方向上的统计结果。该模块分别对矢量数据的方向和速度在十六个方向上的分布进行统计,结果包括矢量数据在各方向上的频率分布以及平均速度。
⑺参数关联模块:显示两个相关参数之间的变化关系。例如温度和盐度,横坐标显示温度,纵坐标显示盐度,利用一段时间内每个时刻两种参数对应的值绘制关联点,由一系列关联点可以形成关联曲线。
⑻数据列表模块:以列表的方式显示各参数的原始测量值。该模块有两种工作模式:实时刷新和历史显示。
⑼数据下载模块:提供下载监测数据的功能。通过选择时间范围以及要下载的参数,以NetCDF、XML或CSV的格式将数据保存在用户指定目录。
二、结果与讨论
本文所提出的设计方法已经应用到不同的海洋环境监测系统开发中(见表5),涉及近岸监测、深水动力环境立体监测、水下传感器网络以及海上试验场等领域,下面主要以海上试验场建设技术研究和原型设计为例展示该方法的可行性及有效性。
表5 应用案例
序号 | 案例名称 |
1 | 基于XML的海洋信息交换与集成技术 |
2 | 青岛海洋科学数据共享中心 |
3 | 水下传感器网络关键问题研究 |
4 | 渤海海洋数据协同服务技术 |
5 | 海上试验场建设技术研究和原型设计 |
6 | 波浪能、潮流能能量转换效率模拟测试技术 |
7 | 运行状态信息综合集成处理与共享服务系统 |
8 | 南海海洋动力环境数据集成与应用技术系统开发 |
海上试验场数据集成系统包括三个节点,分别是海床基、水下试验平台、小型多参数浮标,用来监测小麦岛海域气象、水质等多种海洋参数的变化情况,海床基和水下试验平台每半年回收一次进行维护,参数采样间隔为一小时。采样数据通过无线或海底光缆方式到达本地服务器,采集程序对数据进行解析后将数据存库;客户端从数据库获取数据,利用不同功能模块实现监测数据的实时展示及历史查询等。海面风的时间曲线界面如图5所示,窗口中包含了两个坐标系,分别用来显示海面风速和风向随时间的变化状况,用户可以移动鼠标实时查看相应时刻的观测值。
图5 海面风随时间的变化曲线
另外,系统利用WRF-ARW模式对该海域的海洋气象参数(海面风、海面气压、海面温度、海面相对湿度)及海洋水文参数(海水温度、海水盐度、海流、海浪)进行数值模拟,并采用等值线模块、矢量场模块提供数值模拟数据的可视化展示。
图6为盐度的分布等值线,直观的反映了监测区域盐度的分布特征,图7为海流的纹理矢量图,主要用纹理以及颜色的映射关系来反映出海流的流向和流速,对于海流漩涡的表现有良好效果。通过设置参数,可以查看不同经纬度、不同水深以及不同时间范围的盐度和海流状况,并可对图像进行放大缩小以进行细粒度查看,点击播放则可对不同时刻的盐度和海流状况进行连续显示,从而了解其一段时间内的变化趋势。
图6 盐度等值线
图7 海流纹理
三、结论
针对海洋监测领域存在的多源异构数据的获取、数据存储结构不合理以及应用程序低效重复开发的问题,本文提出了一种通用的海洋环境监测系统设计方法,将系统划分为采集层、数据层以及应用层,基于配置而无需修改程序的方式,实现了从仪器及数据文件获取监测数据,设计了可扩展参数的数据库结构,设计了可复用的功能模块库以快速生成客户端,从而保证海洋环境监测系统的高效快速构建。在以后的工作中,一方面,数据采集程序要逐步囊括各种类型的仪器及不同的文件类型,另一方面要不断扩充模块库的内容,逐步实现海洋环境监测系统的零编程开发。
1
END
1
【作者简介】文/胡克勇 耿润田 沈飞飞 武曲 郭忠文,分别来自青岛理工大学信息与控制工程学院、国家海洋标准计量中心和中国海洋大学信息科学与工程学院;第一作者胡克勇,1986年出生,男,山东青岛人,博士,主要研究方向为海洋信息处理;本文为基金项目,国家自然科学基金(61572448)、山东省中青年科学家科研奖励基金(ZR2016FB21;ZR2017BF043);本文来自《海洋环境科学》(2019年第4期),用于学习与交流,版权归作者及出版社共同拥有,转载也请备注由“溪流之海洋人生”微信公众平台整理。
相关阅读推荐
海洋科技▏小型海洋环境监测平台设计海洋论坛▏世界主要国家的海洋环境监测状况
技术交流▏基于海洋环境监测与现代传感器技术的研究
知识窗▏细数我国海洋环境监测的涉及机构
海洋前沿▏应用于海洋环境和海洋工程的光纤传感技术
海洋装备▏便携型多模式水声浮标监测系统
公众号
溪流之海洋人生
微信号▏xiliu92899
用专业精神创造价值
用人文关怀引发共鸣
您的关注就是我们前行的动力
投稿邮箱▏12163440@qq.com