APP下载

通过Hadoop分析AIS数据预测船舶在航道中的航行行为

2019-11-25谈承杰

珠江水运 2019年19期
关键词:目的地航行可视化

谈承杰

摘 要:面向大数据的分布式系统,如apache Hadoop,在存储和分析数量呈指数增长的各种数据(如传感器数据、客户生成的媒体、web日志等)方面已被证明是有效的。本文采用分布式可扩展大数据存储apache Hadoop对船载AIS应答机产生的大量时空数据进行存储、处理和分析。为了预测船舶在繁忙港口周围拥挤的航道中航行行为,实验使用了大约40GB真实南海海区AIS数据。这些数据经过处理形成历史船舶的航迹,并根据船舶的类型、航行目的地等属性进行分类。最后,根据目标船的属性和运动特性,实现了一种简单的目标船行为预测算法。结果,得到了目标船舶运动预测。实验结果还表明,在数据处理速度方面,该技术明显优于传统的gis应用软件。

关键词:Apache Hadoop 自动识别系统 运动预测 地理信息系统 轨迹可视化 船舶轨迹分析 大数据

如今,在处理大量增长的AIS数据时面临着复杂性,这是相当普遍的现象。我们需要对数据进行管理和分析,需要从不断增长的、已经达到传统数据处理应用极限的海量数据流中提取价值或意义。这种数据目前被称为大数据,指的是巨大的数据集,这些数据集在存储、搜索、共享、可视化和分析方面面临挑战。目前,大数据通常被定义为三个特征:容量、变化和速度。如何解决如此复杂的大数据处理呢?我们在海区中心机房搭建了Apache Hadoop 分布式数据处理平台。在此平台上存储和分析着数千万亿字节的AIS数据。AIS是船舶通过无线电波向其他船舶以及内陆基站传送数据的一种手段。传输的数据可分为三类:(1)静态数据,包括船舶名称、国际海事组织(IMO)编号、海事移动服务标识(MMSI)编号。(2)动态数据,包括船舶位置、离地速度(SOG)、离地航向(COG)、当前状态和转弯速度。(3)航次数据,包括目的地、预计到达时间(ETA)和吃水量。

1. 研究目的及可行性

本次研究目的仅仅是利用AIS数据集的分析结果,预测船舶在港口附近航道上航行的移动。希望通过对船舶行为的近距离预测,为船舶运营商和港口运输管理者提供有价值的信息。分析数据的过程是在假设船舶运动行为形成其轨迹是由船舶的航向、速度、类型、时间和航行目的地等参数决定的情况下开始的。因此,从逻辑上讲,可以根据这些参数预测任何船舶的航迹。然后,根据确定船舶航迹的参数建立统计数据和可视化。在此统计数据的基础上,结合可视化技术,通过实现一个简单的算法,对目标船的未来位置进行了预测。通过反复的实验验证了结果的正确性。

2.场景和数据建模

2.1场景假设

假设在航道上航行进入或离开港口必须根据其属性遵循一定的运动规律以及特点。具有完全相同或相似的属性和特征很可能遵循相似的移动模式。船舶的属性和特征用作确定船舶移动的参数模式和预测其未来位置,场景参数如下:

(1)当前位置。这个参数是需要收集目标的k近邻(knn)用于确定其移动模式的船舶。

(2)航向和速度。假设具有相同航向和速度的船舶可能在一段时间内到达同一地点。

(3)船舶类型。不同的类型的船舶通常有不同的航线

(4)目的地。目的地不同的船将通过不同的航线路线

(5)船舶状态。此参数指示船舶是否在航行、锚泊、搁浅等移动状态。

2.2设计数据库htable模型并创建统计可视化

当所需的数据集准备就绪时,下一步是设计hbase表模式的方式应确保提供对空间查询(如knn查询和船舶轨迹查询。有三张表需要创建,即BroadcastTable、VesselTable和VoyageTable。broadcastTable是保存AIS數据,并将回答传入的查询。VesselTable可存储船舶航行时只保存船舶的静态数据VoyageTable存储船舶航行的特定信息数据。这两个表只有BroadcastTable更新或者增加的时候才会用上。broadcastTable的结构如下:船舶类型、吃水深度、状态和MMSI的组合为选择为BroadcastTable的行键,因为它启用对船舶轨迹查询的快速有效响应,可以是查询请求的船舶轨迹。这些轨迹是利用基于java的开源gis软件实现可视化从而对船舶运动模式进行可视化分析。船舶轨迹的统计可视通过自定义船舶轨迹参数查询生成。geohash由船舶位置坐标生成(经度,纬度)构造broadcastTable的列键。geohash是一种转换二维位置的技术一维经纬坐标排序字符串类似于z阶空间填充曲线。这个算法使我们能够简单地执行前缀搜索以及进行关键字搜索。

2.3简单预测算法的实现

研究的主要思想是预测船舶的未来基于相似属性船舶过去轨迹的定位以及特点。因此,算法逻辑很简单,找到与目标船相似的船只并假设目标船将遵循相同的轨道船舶。船舶类型被选为实现算法。其中4种不同类型代码的船舶。预测算法如下:(1)将目标船舶位置坐标p(x,y)转换为geohash,其中x是经度值,y是纬度值。目标船必须有目的地。(2)使用行键前缀“vesseltype”扫描BroadcastTable。“draft. status”作为扫描行键和目标发货位置geohash字符串作为列键。结果将是目标船knn,邻近的将是相同类型,相似吃水,同样的地位。(3)只选择并返回满足下列要求:具有相同的目的地和目标船国籍相同,它的航向和速度与目标相似船。(4)计算目标船位置之间的距离p(x,y)和得到的每个邻域位置n(x,y)。(5)从BroadcastTable中检索邻近的轨迹。每艘船的轨迹都表示为几何图形表示的linestring类型线串由键入以经纬度坐标表示的点。构成线串的点按时间排序间隔60秒。(6)计算目标船的未来位置使用以下公式:

P(xt, yt) = Nt(xt, yt) ? D(dxt0, dyt0) 公式一、D(dxt0, dyt0) = N(xt0, yt0) ? P(xt0, yt0) 公式二。

式中t=t0+Δt是未来时间,t0是当前时间,而Δt是t0和t.p(xt0,yt0)和p(xt,yt)是当前以及目标船的未来位置。n1(xt0,yt0),n2(xt0,yt0),…,nk(xt0,yt0)是k当前时间的最近邻位置和n1(xt,yt),n2(xt,yt),…,nk(xt,yt)是它们的位置在时间t时,可从其对应的轨迹。在当前位置,dx和dy是目标和各自的邻近船。因此,d(dx,dy)是从目标船到其每艘邻近船舶,如图1所示。

计算了目标船的预计位置,然后,可以通过简单的计算目标实际位置与预测的位置。

3.实验

为了检验所提出方法的有效性以及评估预测结果,真实南海海区的AIS数据,在Hadoop上以完全分布式模式处理。真实南海海区的AIS数据是由交通运输部南海航海保障中心广州航标处海区导航中心提供的。覆盖南海海区辖区范围,一年内(2018年1月1日至2018年12月31日)的数据。数据geodatabase(gd b)文件转换为sh ap ef i le(shp)格式之后为了进一步的处理,数据大小达到780GB。以2018年11月为测试数据。通过船舶的运动预测算法,可视化结果所示观察可视化船舶的运行轨迹,我们发现船舶的类型对船舶的航线格局有重大影响,如图所示南海海区的油船运行目的地集中前往洋浦港、钦州港、高栏港等港口,在前往这些港口的过程中已经形成了明显的船舶轨迹。这就意味着船舶的运动模式一般可以通过船舶类型来预测其航行。

4.結语

今后我们遇到类似的问题可利用apache Hadoop的优点,在处理大型数据集时。检验其可行性和方法的有效性,并利用AIS的实际数据进行实验。根据实验结果,提出的方法有两个好处:(1)方法优于传统的gis桌面应用程序在快速处理大量ais数据以生成船舶轨迹可视化。(2)仅仅通过实现了一个简单的算法,就能够在相对广阔的海域预测船舶的航行行为。但是,仍然有很多需要改进的工作, 如更先进的算法,其中在预测中使用的每个参数都分配了适当的权重,以便预测精度可以提高。

参考文献:

[1]Ariel Cary,“在大型空间数据库中扩展地理空间搜索”,佛罗里达国际大学,2011年.

[2]Hadoop权威指南:大数据的存储与分析(第4版) Tom White著 2017年.

[3]Hadoop大数据实战权威指南 黄东军 编著2017-07-01.

猜你喜欢

目的地航行可视化
基于CiteSpace的足三里穴研究可视化分析
向目的地进发
恋爱中的城市
基于Power BI的油田注水运行动态分析与可视化展示
到慧骃国的航行
迷宫弯弯绕
基于CGAL和OpenGL的海底地形三维可视化
“融评”:党媒评论的可视化创新
动物可笑堂
小舟在河上航行