基于Openlayers3和Cassandra的船舶碰撞风险识别系统

2017-09-23 02:57胡勤友
计算机应用与软件 2017年9期
关键词:海图对象船舶

黄 纯 王 垒 杨 春 胡勤友

1(东海航海保障中心上海航标处 上海 201208)2(上海海事大学 上海 201306)

基于Openlayers3和Cassandra的船舶碰撞风险识别系统

黄 纯1王 垒2杨 春2胡勤友2

1(东海航海保障中心上海航标处 上海 201208)2(上海海事大学 上海 201306)

为提高船舶交通管理服务系统(VTS)智能化水平,保障航运安全,利用上海港水域内海量AIS数据,建立船舶领域模型,应用改进的聚类算法,识别船舶碰撞风险。利用开源地图框架Openlayers,实现碰撞风险可视化,利用Cassandra数据库,实现海量AIS数据存储和高效检索。设计实时船舶可视化显示,单船、区域船舶历史轨迹回放,模拟船舶航行等功能。最后使用上海港2015年全年AIS历史数据进行碰撞风险识别实验,结果和历史高危区域较为吻合,可作为辅助分析系统供海事人员决策参考。

船舶 碰撞 AIS Openlayers3 Cassandra 风险识别

0 引 言

近年来,港口近海海域交通流量增加迅速,海上交通日益密集以及船舶日益大型化,导致海上交通系统内部船舶发生交通事故的风险显著加大,给海事管理部门对船舶交通系统中存在的交通风险进行及时有效识别和处理提出了更高的要求[1]。而当前的船舶风险识别研究,大多都处于理论研究阶段,在现实中,多是VTS中心通过雷达和AIS观测进行人工识别,关于船舶碰撞危险度,也多基于两船进行研究,有较多的局限性[2]。

从海量AIS数据中发现有价值的信息,找出其中的规律,以确保辖区水上交通安全,成为当前海上管理科研领域的热点问题[3]。根据SOLAS公约的规定,从2002年7月1日起相关船舶分阶段安装AIS设备,随着AIS设备强制安装的实施,到目前,AIS几乎可以实时追踪船舶航行状态,这为通过AIS信息识别船舶碰撞风险提供了现实可行性。船舶领域SSD(Ship Safety Domain)是指为了避免碰撞,每艘船舶的前后左右会保持一个不受他船侵犯的区域[4],是评估受限水域内船舶碰撞危险的重要依据。当一艘船舶“侵犯”到另一船的船舶领域时,就可以认为两船存在碰撞风险。在已经获取船舶安全领域的基础上,可通过改进的聚类算法,根据会遇距离进行船舶碰撞危险识别。将识别结果以可视化的方式实时展示在电子地图上,帮助相关人员及时发现风险并采取相应的对应措施,对海事安全管理有着重要意义。

1 相关关键技术

1.1 Openlayers3

OpenLayers 是一个专为 Web GIS 客户端开发提供的开源 JavaScript 类库,使用这个类库可以很方便地在网页上显示电子地图[5]。OpenLayers 3是OpengLayers一个特别流行的版本,支持多种类型的数据来源,使用ol.source.Source子类获取远程数据图层,包含免费的和商业的地图瓦片服务,如OpenStreetMap、Bing、 MapBox、Stamen等任意的XYZ资源的瓦片图层——X/Y代表网格的行与列,Z代表缩放级别,以及GeoJSON、TopoJSON、KML、GML等类型的矢量图层。

OpenLayers 3的核心部件是Map(ol.Map)类,它是一个容器,在这个容器里面放置各个图层以及地图比例尺、缩放条等各种控制工具。类中有三个基本属性,layers、view、target。layers对应一个数组,定义可用的地图列表,数组元素为图层对象,openlayers3有3种基本的图层类型,ol.layer.Tile、ol.layer.Image 和 ol.layer.Vector,分别用来显示瓦片、支持渲染服务的图片和在客户端渲染的矢量数据。在图层里配置好数据来源,就可以获取某种类型的数据图层了。一个view实例包含投影projection,该投影决定中心center 的坐标系以及分辨率的单位,如果没有指定,默认的投影是球墨卡托(EPSG:3857),以米为地图单位。target用来将Map对象绑定到Web页的一个

上,
的id属性为target的值。

本系统使用了两种类型的图层如下:

var layerTileMap = new ol.layer.Tile({

source: new ol.source.XYZ({

url:′getmaptile.do?x={x}&y={y}&z={z}′

})

});

var layerVectorShip = new ol.layer.Vector({

source:vectorSourceShips

});

var vectorSourceShips = new ol.source.Vector({ });

var =shipfeature=newol.Feature(

new ol.geom.Point(ol.proj.transform([132,33],′EPSG:4326′,′EPSG:3857′)));

vectorSourceShips.addFeature(shipfeature);

layerTileMap为瓦片图层,配置XYZ数据源,定义图层这里加载的是电子海图,url为海图地址。layerVectorShip为矢量图层,加载GeoJson类型的shipfeature对象,可以使用shipfeature.setStyle(shipstyle)来为该Feature设置样式,本文为其添加了ShipShape样式来将点表示为三角形样式来标示船舶。

var shipstyle= new ol.style.Style({

image: new ol.style.ShipShape({

fill: fill,

points: 4,

radius: 10,

angle: Math.PI / 4,

height:imageheight,

feature: _shipfeature,

})

});

2012年前后,杭州市政府大力探索智慧城市建设,区域医疗信息化建设推进迅速,希望实现医疗机构互联互通,达成“智慧医疗”概念。最终,市民卡成为患者进入杭州医疗服务体系的一个“公共载体”。这些网络基础设施建设,为医院一系列后续流程变革创造了条件。

1.2 Cassandra

Apache Cassandra 是一套开源分布式 Key-Value 存储系统,它是一种混合型的非关系型数据库,类似于Google的BigTable,被Apache列为重点发展的顶级项目[7]。AIS 数据量巨大,使用传统的关系型数据来查询多天的单船轨迹或者区域轨迹的数据时,通常面临着较大的困难。近几年来随着大数据云计算技术的流行,云存储技术能够较好地解决海量数据的存储和检索问题,本系统采用基于键值对的非关系分布式数据库Cassandra来对AIS数据进行存储和快速检索。

1) Cassandra分布式数据库

Cassandra 是一种分布式数据,它将数据划分为多个部分,并创建多个副本,分别存储在不同的数据节点上面,节点和节点之间通过互联网网络相互通信,相互协作,保证数据的一致性。而每个节点又具有独立处理数据的能力,在一个节点宕机的情况下,数据库仍能提供服务,从而保证数据的安全性和完整性,并提供较高性能的检索服务[6]。Cassandra善于处理非结构化的数据,在存储的时候是面向列进行存储,每条记录都是以键值对的形式进行存储,由关键字(Key)和值(Value)确定一个对象集合,根据键可以快速检索其对应的值,其中值可以是一个对象,包含一些属性。比如一条AIS记录,以其九位码和时间戳可以确定唯一的键,而其值则是对应的包含船舶经纬度、速度、转向角、船首向等船舶动态信息和静态信息的AIS数据。Cassandra数据库还有高扩展性、高稳定性的优点。

2) 空间索引结构

在进行单船轨迹回放和区域轨迹回放时,由于是在线回放,对数据的检索效率有着较高要求,本文采用改进四叉树数据结构来对AIS数据存储创建索引。 其基本思想是将地理空间递归划分为不同层次的树结构。对不同层次的不同区域建立索引,它将已知范围的空间等分成四个相等的子空间,依次递归,直至树的层次达到一定深度后停止分割。如图1所示,将第一层等分为四个子空间,并进行编号0、1、2、3,第一层的子空间再等分为四个子空间进行编号,比如第二个子空间的子空间编号为20、21、22、23,依次递归,给每一个区域进行编号。每一区域,对应一定的地理范围,根据AIS信息中的经纬度信息,可以计算该信息属于哪一区域,从而为AIS信息添加区域字段,对该AIS区域字段创建空间索引,可以极大地提高检索效率。

图1 储存索引结构图

2 基于船舶领域的碰撞风险识别原理

2.1 船舶安全领域模型

本文使用了通过叠加网格频数图来获取受限水域船舶领域的方法,选取目标船舶的AIS数据,将其附近水域网格化,考虑船舶尺寸,计算了他船船体出现在每一个网格中的频数,提取单船网格频数图。将同一类型的目标船舶网格频数图叠加,形成了特定类型船舶的网格频数图。将网格频数图按频数填充颜色,可清晰地显示船舶领域的形状,利用断面分析测量船舶领域长度。考虑到船舶安全领域研究还尚未完善和计算机的处理能力,在实际操作中对船舶安全领域做了一定简化,简化后的船舶领域为一个椭圆,其中椭圆的短轴长为sax,长轴长为lax,得出的领域计算公式如式(1)所示。其中V为船舶速度,L为船舶的长度,对于特殊船如LNG船其领域将按照相关规定进行特殊处理。

(1)

2.2 碰撞风险识别方法

使用改进的DBSCAN聚类算法,利用船舶领域模型,识别船舶碰撞风险,是较为合理的[8-9],其具体流程如下。首先进行如下定义:

1) 对象:对象就是船舶。

2)ε领域:通过领域模型计算的该对象周围的椭圆区域ε称为该对象的ε领域。

3) 密度:对象p的密度是指对象p的领域ε内包含的其他对象个数。

4) 核心对象:如果给定对象ε领域内的样本点数大于等于MinPts(最小包含点数),则称该对象为核心对象。

5) 直接密度可达:给定一个样本集合D,如果样本点p在样本点q的ε邻域内,且q是一个核心对象,则我们说对象p从对象q出发是直接密度可达的。

6) 密度可达:对于样本集合D,如果存在一个对象链p1,p2,…,pn,p1=q,pn=p,对于pi∈D(1≤i≤n),pi+1是从pi直接密度可达,则对象p是从对象q密度可达的。

7) 密度相连:如果存在对象o∈D,使对象p和q都是从o密度可达的,那么对象p到q是密度相连的。

8) 类簇:给定对象集合D,各对象领域ε以及MinPts,类簇C是集合D满足下三个条件的非空子集:

(1) 对于任意对象p,q∈D,如果q∈C,并且p到q密度可达,则p∈C;

(2) 对于任意对象p,q∈C,p和q密度相连;

(3) 将不属于任何类簇的对象视为噪声。

算法描述:

输入:对象集合D即当前时间监管区域船舶集合,每个对象对应的领域ε,密度阈值MinPts。

输出:聚类C即识别出的高风险船舶集合。

1) 判断输入点是否为核心对象。

2) 从该核心点出发,寻找该点ε领域内所有的密度相连的数据点。

3) 遍历该核心点的ε领域内的所有核心点,寻找与该核心点密度相连点,对遍历过的点进行标记,直到没有可以扩充的数据点为止,将聚类结果放入C中。

4) 重新扫描数据集D,从未标记过的点内寻找新的核心点,重复上面过程,直达没有新的核心点为止。

3 船舶碰撞风险识别系统设计实现

本文研究的船舶碰撞风险分析系统是由东海航海保障中心和上海海事大学联合开发,是基于B/S结构的Web项目,目前已完成开发并正在实际现场环境中运行。

3.1 系统架构设计

船舶碰撞风险分析系统整体结构图如图2所示。系统基站、天线、AIS卫星接收船舶的AIS信息并发往AIS数据接收系统,接收系统接收传过来的AIS信息,解析处理后存入数据库当中。预警系统计算船舶邻域,并根据船舶邻域,实时识别船舶碰撞风险,并将报警结果通过WebSocket技术实时推送给相关管理人员去处理。

图2 软件系统架构图

3.2 功能模块详细设计

碰撞风险分析系统采用B/S架构,其功能模块可简要划分为四大部分:电子海图显示模块、船舶预警模块、用户操作模块以及用户管理模块,如图3所示。

图3 系统整体结构图

1) 电子海图显示模块

海图显示是系统实现船位动态信息显示的最基本功能。电子海图显示模块具有电子海图显示、海图缩放、海图漫游、图层控制、分层显示、海图比例尺显示、光标坐标显示、船舶定位显示、船舶领域定位显示等功能。本系统使用Html5+Openlayers3来实现电子海图显示模块。首先使用Canvas绘制船舶图标,以三角形的形式展现船舶实时位置、航向、船首向,通过计算Map内相邻Feature对象的显示位置,确定船舶名字的显示位置,避免重叠显示;使用近椭圆形状来表示船舶邻域船舶领域。鼠标在船舶图标上悬停时,将高亮显示该船舶,并显示其船名、航向、船首向、速度、更新时间等简要的船舶动态信息;鼠标悬浮在船舶领域上时,将显示领域的基本信息。点击船舶图标时,将以弹出框形式显示详细的船舶动态及呼号,船旗国等静态信息。在详细船舶信息弹出框中,可以回放和导出船舶轨迹。电子海图主界面如图4所示。

图4 电子海图主界面

2) 船舶预警模块

船舶预警模块为本系统的核心功能模块。系统按照上文所述的碰撞风险识别方法,将识别出的存在碰撞风险的船舶以列表的形式显示,每一行代表一对存在碰撞风险的船舶;并按照风险等级从高到低依次排列,以不同的三种颜色进行标记,方便用户优先查看高危险船舶,其风险等级的计算主要以领域的交织面积为依据。查看报警船舶时,可点击列表中的预警船舶,海图将会定位到当前报警船舶,并高亮显示;而该次点击报警记录事件将会被记录在数据库中,使系统管理员可以查看当前用户的报警查看情况,用来判断当前用户是否对系统报警进行查看并处理,以方便进行事故追责,对系统用户进行管理;统计报警记录,统计核密度来绘制热图,展示高危碰撞风险水域,提醒管理人员重点关注这些区域;模拟航行功能模拟一条船舶出入南漕、北漕航道时的航行情况,模拟未来一段时间内模拟船舶通过南漕、北漕可能遇到的危险情况,主要针对大型船舶进行预警,将可能遇到的危险船舶以列表的形式展示出来,点击可以定位到在什么时间,什么位置可能碰到窘迫局面,在对报警船舶识别的过程中,将正在拖带作业的拖轮、引航船以及速度小于0.1节的船舶设置为噪声点,不进行报警;结束作业的拖轮、引航船,不再设为噪声点,参与避碰识别。并根据国家对LNG船舶安全范围尺度的有关标准,对LNG船的船舶领域计算进行了修正,并应用到了系统当中。船舶预警界面如图5所示。

图5 预警船舶

3) 用户操作模块

允许用户登录后,自定义报警提醒区域,对区域内存在碰撞风险、反航道逆向航行或超速的船舶来进行提醒;根据船舶的船名(拼音或英文)、呼号、MMSI或IMO编号来搜索定位一条船舶,自动弹出船舶的详细信息,可绘制该船舶的历史轨迹;区域轨迹回放功能(见图6)以鼠标拉矩形框方式,选定交通流回放区域,选择回放区域后,将会弹出播放控制对话框,在对话框里面可以选择播放的时间区间、播放速度,点击播放按钮开始播放,区域内的船舶将会按照时间进行回放,每条船舶都会在后面留下黑色的小圆形轨迹点,播放进度以及播放时间会在播放控制面板显示,在播放过程中可以漫游海图,将鼠标悬浮在船舶或者轨迹点上面,可显示其船舶名称、速度等基本信息;单船轨迹回放功能可以通过船名或MMSI搜索到的一条或多条船舶,设定播放区间进行轨迹回放;模拟航行功能(见图7)支持用户在海图上点选任意一点作为船舶模拟航行的起始位置,输入模拟航行的速度,航向和起止时间,开始模拟一条船舶的航行,并预警在模拟航行中可能与哪些船舶存在碰撞危险或可能碰到那些窘迫局面,该功能可以在特殊船舶(如拖带石油平台,超宽船舶等)航行通过前,进行航行模拟,预测可能遇到的窘迫局面,从而可提前重点关注这些船舶,以保证特殊船舶能够安全通过;测距、测面功能辅助用户对系统的使用。

图6 区域轨迹回放

图7 模拟船舶与它船会遇时间和地点示意图

4) 用户管理模块

用户管理模块对一个多用户系统来说,有着重要作用,用户可以注册并登录系统,在系统内可以根据自己的需要,自定义管辖区域,系统会根据设定的管辖区域,只对管辖区域内的报警船舶进行提醒,使账户更加个性化;系统管理员可以对注册用户进行管理,查看注册用户的信息,对注册用户进行功能授权或收回授权,查看某个用户的报警查看记录等。

4 船舶碰撞风险识别系统的应用

利用2015年全年的上海港水域的船舶AIS数据,对上海港水域典型航道的船舶领域提取和建模,进行了典型航道内的碰撞风险区域计算,对计算结果进行了网格化划分,形成了493个小区域,其分布情况如图8所示。对网格数据聚类分析,得出如图9所示的热图:南槽水道、南支水道、北槽水道、进出洋山深水港水道以及由于船舶通航密度较大,较易形成船舶会遇局面,船舶间潜在的碰撞风险较高。通过上述统计可以得出,潜在碰撞风险发生频次较高的区域相对较为集中,统计发生潜在碰撞风险频次较高的区域分布情况,得到频次不小于1 000的高碰撞风险区域热图,如图9所示,统计出的高风险区域和现实情况相稳和。系统投入应用三个月以来,已识别上海港39 757起船舶碰撞风险,其中被VTS操作人员处理的险情超过80%,累计处理险情32 214起,提高了VTS服务水平,减少了事故的发生。

图8 对分析水域聚类后的区域分布图

图9 高碰撞风险区域热图

5 结 语

本文所研究的碰撞风险识别系统,通过AIS数据提取船舶邻域,利用改进聚类算法,识别船舶碰撞风险,具有一定的智能性,可以主动识别船舶碰撞风险,与VTS系统需要人根据经验和实际情况去判断相比,具有一定的优越性。通过研究发现,构建的碰撞风险识别系统具有现实可行性,可应用于辅助决策,它可以辅助海事主管机关对辖区水域的船舶交通形势进行监管,根据识别出的碰撞风险情况,提前向相关的船舶发出预警,保障船舶交通安全,适当减轻了海事监管人员的工作强度,提升了监管水平。系统中集成的区域、多船船舶轨迹回放功能,可将事故现场重现,为水上交通事故调查提供参考;模拟航行功能可预测特殊船舶在航道航行中可能遇到的窘迫局面,提前提醒海事监管人员关注引导,避免窘迫局面的产生。在系统投入应用以后,处理险情超过80%,实际的使用过程中,系统但还存在一定的误警率,在未来的研究过程中,可以通过历史AIS数据和事故情况构建训练集、测试集,运用机器学习的相关方法,提高系统的识别准确率。

[1] 蔡诚君.基于场论的水域船舶碰撞危险度研究[D].大连海事大学,2015.

[2] 周梦婕,葛泉波,黄习刚,等.海上智能交通系统的新型船舶航行系统风险识别方案[J].中国航海,2013(4):114-118.

[3] 李丽娜,王俊玲,陈国权.船舶拟人智能避碰决策理论的集成机器学习策略[J].信息与控制,2011,40(3):359-368.

[4] Liu Z,Hu M B,Jiang R,et al.Method to enhance traffic capacity for scale-free networks[J].Physical Review E,2007,76(3):037101.

[5] 杨鹏,邹时林.基于OpenLayers的WebGIS客户端的研发[J].测绘与空间地理信息,2012,35(3):131-133.

[6] Tang Y,Sun H,Wang X,et al.An efficient and highly available framework of data recency enhancement for eventually consistent data stores[J].Frontiers of Computer Science,2017,11(1):1-17.

[7] 王博千,于齐,刘辛,等.面向Cassandra数据库的高效动态数据管理机制[J].计算机科学,2016,43(7):197-202.

[8] Hansen M G,Jensen T K,Lehn-Schiφler T,et al.Empirical ship domain based on AIS data[J].Journal of Navigation,2013,66(6):931-940.

[9] Yan Z L,Luo W J,Bu C Y,et al.Clustering spatial data by the neighbors intersection and the density difference[C]//Proceedings of the 3rd IEEE/ACM International Conference on Big Data Computing,Applications and Technologies.ACM,2016:217-226.

SHIPCOLLISIONRISKIDENTIFICATIONSYSTEMBASEDONOPENLAYERS3ANDCASSANDRA

Huang Chun1Wang Lei2Yang Chun2Hu Qinyou21

(ShanghaiAIDStoNavigation,DonghaiNavigationSafetyAdministration,Shanghai201208,China)2(ShanghaiMaritimeUniversity,Shanghai201306,China)

The ship field model is established by applying the improved clustering algorithm to improve the intelligent level of vessel traffic service (VTS), ensure the safety of shipping , and identify the ship collision risk on the basis of the massive AIS data in Shanghai harbor. Using the open source map framework Openlayers, the collision risk visualization is realized, and the Cassandra database is used to realize the mass AIS data storage and efficient retrieval. After that, we designed the real-time ship visual display, single-ship, regional ship history track playback, simulation ship navigation and other functions. Finally, we used the AIS historical data of Shanghai in 2015 to carry out collision risk identification experiment. The results indicates the similar areas as the previous high-risk areas, which can be used as an auxiliary analysis system for maritime personnel decision-making reference.

Ship Collision AIS Openlayers3 Cassandra Risk identification

TP3

A

10.3969/j.issn.1000-386x.2017.09.003

2017-04-06。上海市科委重点科技项目(15590501600)。黄纯,高工,主研领域:航标管理。王垒,硕士。杨春,助教。胡勤友,教授。

猜你喜欢
海图对象船舶
《船舶》2022 年度征订启事
晒晒全国优秀县委书记拟推荐对象
纸海图AI小改正制作模式探讨
船舶自动识别系统对船舶救助的影响
BOG压缩机在小型LNG船舶上的应用
少林功夫拳(三)
攻略对象的心思好难猜
民用海图编绘中数据一致性分析和改进
船舶压载水管理系统
关于电子海图单元叠盖拼接问题的探讨