舰船科学技术  2023, Vol. 45 Issue (16): 157-160    DOI: 10.3404/j.issn.1672-7649.2023.16.033   PDF    
提升算法下船舶AIS航迹数据压缩方法
吴晓阳     
桂林理工大学,广西 南宁 530001
摘要: 为保证船舶AIS航迹数据的有效管理,提升船舶管理水平,研究提升算法下船舶AIS航迹数据压缩方法。该方法通过IEC61162-1标准和ITU1371-1协议,转换AIS轨迹数据格式,采用基于偏序集的规则链方法清洗转换后的AIS数据,并完成数据中经度和纬度的坐标转换。将数据存储在SQLite数据库,并按照时间顺序将其导入提升算法中,通过该算法压缩船舶AIS航迹数据,获取船舶AIS压缩后航迹数据。测试结果显示:该方法的压缩率均在90.6%以上,数据长度损失率最大值为0.11%,压缩效果较好,并且可保证压缩后数据的完整性;压缩后可较好地保存船舶转向行为数据点,确保数据的效用成果,提升船舶的管理水平。
关键词: 提升算法     船舶AIS航迹     数据压缩     数据格式转换     数据清洗     坐标转换    
Ship AIS track data compression method under enhancement algorithm
WU Xiao-yang     
Guilin University of Technology, Nanning 530001, China
Abstract: In order to ensure the effective management of ship AIS track data and improve the level of ship management water, a compression method for ship AIS track data under the improvement algorithm is studied. This method first converts the AIS trajectory data format through the IEC61162-1 standard and the ITU1371-1 protocol, and then uses a rule chain method based on partial order sets to clean the transformed AIS data; After completing the coordinate conversion of longitude and latitude in the data, it is stored in the SQLite database and imported into the lifting algorithm in chronological order. The ship AIS track data is compressed using this algorithm to obtain the ship AIS compressed track data. The test results show that the compression rate of this method is above 90.6%, and the maximum data length loss rate is 0.11%. The compression effect is good, and the integrity of the compressed data can be guaranteed. After compression, the data points of ship turning behavior can be well preserved, ensuring the effectiveness of the data and improving the management level of the ship.
Key words: enhancement algorithm     ship AIS trajectory     data compression     data format conversion     data cleansing     coordinate transformation    
0 引 言

船舶自动识别系统(Automatic Identification System,AIS)是船舶航行必须安装的船载AIS设备,其主要作用是实现船舶导航和监控[1]。目前海上管理系统不断完善,已经形成AIS基站的基础网络体系[2]。随着船载AIS设备数量的逐渐增加,设备信息的收集和管理逐步完善,形成了海量的船舶AIS轨迹数据。该数据可为船舶异常识别、交通情况监测等提供可靠依据[3]。但是该数据量较大、维度较高,并且数据格式存在一定差异,导致数据的查询效率、效用程度受到影响,同时数据的传输耗时较大[4]。因此,数据压缩成为解决该问题的有效手段。在压缩过程中,如何保证数据的完整性,避免数据在压缩过程中发生损坏,成为重点研究内容。刘歌等[5]为保证多维数据的压缩效果,以MVC架构为核心,通过正交变换的方式实现数据重构,并对重构后的数据进行编码,以此完成多维数据压缩。该方法在应用过程中,可实现数据降维,但是无法实现不同数据格式的处理。张晓梅等[6]为实现数据压缩,利用边缘计算较好的计算能力,实现数据无损压缩。但是该方法在应用过程中,对于维数较高数据的压缩率较低。

提升算法属于框架算法,该算法能够强化数据点的处理效果,常见的提升算法包扩道格拉斯-普克算法(Douglas–Peucker,DP)、机器分类算法等。本文以DP算法为核心,提出船舶AIS航迹数据压缩方法。

1 船舶AIS航迹数据压缩 1.1 AIS数据处理 1.1.1 AIS轨迹数据格式转换

AIS在使用过程中,仅可实现可打印的AIS字符传输,该字符的有效范围为0X20~0X7E,在该范围内,可将字符划分为保留、有效和未定义3 种字符。其中保留字符指的是传输数据中,用于控制数据格式的关键字[7],有效字符用于描述能够用于打印的ASCII字符,未定义字符用于描述无法直接进行传输的字符。

AIS数据的每条记录均由开始符(!)开始,以结束符(<CR><LF>)结束。采用封装方式对AIS数据进行处理,利用高级链接HDLC(高级数据链路控制)进行传输,对其进行不归零倒置编码并进行数字调制解调,同时插入同步和停止位,最后经由甚高频进行传输,以此可通过IEC61162-1标准和ITU1371-1协议,完成AIS轨迹数据格式的转换,将其从暗码转换成明码。

1.1.2 AIS轨迹数据清洗

由于AIS数据中包含静态数据、动态数据等所有和船舶航行相关的数据,这些数据在采集过程中,会受到网络性能、采集环境以及采集设备性能的影响,导致数据不完整、错误或者重复,影响数据的效用水平。因此,完成AIS数据格式转换后,需对AIS数据进行清洗,清洗的主要目的是删除AIS数据中的不完整数据,并且清除数据中的错误数据,同时对重复的数据进行筛选,只保留一条数据记录。本文针对AIS数据的清洗需求,采用基于偏序集的规则链方法完成AIS数据清洗,整体结构如图1所示。该方法整体分为标准模块、业务模块以及自动模块,将格式转换后的数据作为该方法的输入,结合数据清洗需求按层选择相应规则,以此生成每一层的规则链,最后依据规则链完成数据清洗,并输出清洗后的AIS数据。

图 1 AIS轨迹数据清洗方法结构 Fig. 1 AIS track data cleansing method structure
1.2 AIS轨迹数据库设计

海量的AIS轨迹数据的存储和调用,是实现该数据快速压缩以及显示的主要基础,如何高效完成所需AIS数据的提取,并按照时间顺序将其导入DP算法中进行压缩,是待解决的首要问题。为保证AIS轨迹数据的快速压缩,采用SQLite数据库进行AIS轨迹数据的管理,清洗后数据存储在数据库中,为轨迹数据压缩提供支撑。数据库的管理方案如图2所示。该数据库以单TRACK表库结构为主完成构建,并且单表的各条记录中包含MMSI(数据识别码)、经度、纬度以及时间4个字段。单表的一条记录则对应AIS设备一次发送的数据,以此实现AIS轨迹数据的可靠管理,保证AIS轨迹数据的高效压缩。

图 2 AIS轨迹数据库结构 Fig. 2 AIS trajectory database structure

AIS轨迹数据中,主要是依据经度和纬度描述船舶的地理位置,在进行数据压缩前,先对经度和纬度进行转换,形成墨卡托坐标,在此基础上进行转换使其形成屏幕坐标进行显示。在上述转换过程中,依据等角正圆柱投影原理完成,如果船舶在某处的经度和纬度坐标用 $ \left( {\varphi ,\lambda } \right) $ 表示,平面坐标用(x,y)表示,将经度和纬度转换至平面坐标的转换公式为:

$ {r_0} = \frac{a}{{\sqrt {1 - {e^2}{{\sin }^2}\varphi } \times \cos \varphi }} ,$ (1)
$ q = \ln \tan \left( {\frac{\varphi }{2} + \frac{\varphi }{4}} \right) - \frac{e}{2}\ln \frac{{1 + e\sin \varphi }}{{1 - e\sin \varphi }},$ (2)
$ \left\{ \begin{gathered} x = {r_0} \times \lambda ,\\ y = {r_0} \times q 。\\ \end{gathered} \right. $ (3)

式中: $ {r_0} $ 为基准纬度圈半径; $ a $ $ e $ 分别为地球椭圆球长轴半径和第一偏心率; $ q $ 表示等量纬度; $ \varphi $ 为基准纬度。

依据上述公式即可完成所有AIS轨迹数据中,船舶位置数据的转换,转换后的数据存储在数据库中。

1.3 基于DP算法的AIS轨迹数据压缩

AIS轨迹数据压缩的主要目的是快速获取AIS数据中的目标数据,实现船舶航行轨迹的识别监测。DP算法属于一种曲变形逼近算法,主要采用以直代曲的理念,保留AIS航迹中的关键航迹点,舍弃其中的非关键航迹点,以此高效实现船舶AIS航迹数据压缩。该算法的详细压缩过程如下:

步骤1 船舶轨迹离散点为 $ {P_1}\left( {{x_1},{y_1}} \right),{P_2}\left( {{x_2},{y_2}} \right),..., $ ${P_n}\left( {{x_n},{y_n}} \right) $ $ A = {P_1}\left( {{x_1},{y_1}} \right) $ $ B = {P_n}\left( {{x_n},{y_n}} \right) $ ,连接 $ A $ $ B $ 后,形成线段 $ AB $

步骤2 在 $ AB $ 的范围内进行寻找,获取该范围内的和 $ AB $ 之间距离最远的点,用 $ C $ 表示; $ C $ $ AB $ 之间的距离用 $ d $ 表示。

步骤3 设定AIS轨迹数据的压缩阈值 $ \eta $ ,如果 $ d \leqslant \eta $ ,则采用线段 $ AB $ 描述船舶原始航迹曲线,如图3所示。如果 $ d > \eta $ ,则定义 $ C $ 为关键点,并对船舶航迹进行划分,使其形成两段曲线,如图4所示。采用步骤1~步骤3,对两段曲线分别处理。

图 3 船舶原始航迹曲线 Fig. 3 Original ship track curve

步骤4 按照上述步骤完成整个航迹数据处理后,连接航迹曲线 $ AB $ 上的所有关键点,以此获取原始船舶航迹曲线 $ AB $ 的压缩航迹数据。

图 4 划分航迹曲线 Fig. 4 Divided track curve
2 测试结果与分析

为验证本文方法对于船舶AIS航迹数据压缩的处理效果,以某公司的船舶AIS航迹数据为例,进行相关测试。该数据主要以csv的文件格式进行存储,共包含256艘船的航迹数据,共计1200条,部分数据详情如表1所示。

表 1 部分船舶AIS航迹数据详情 Tab.1 Details of AIS track data for some ships

为验证本文方法的船舶AIS航迹数据压缩效果,采用压缩率ζ、数据长度损失率 $ l $ 作为评价指标,计算公式分别为:

$ \xi = \frac{{{N_o} - {N_s}}}{{{N_o}}},$ (4)
$ l = \sum\limits_{n = 1}^{N - 1} {\overline {{p_n}{p_{n + 1}}} },$ (5)
$ {l_L} = {l_o} - {l_s},$ (6)
$ {l_R} = \frac{{{l_L}}}{{{l_o}}} 。$ (7)

式中:NoNs均为船舶航迹数据点数量,前者对应压缩前,后者对应压缩后; $ l $ 为船舶航迹总长度;lL为长度损失;lols则表示压缩前和压缩后的船舶轨迹长度;lR为原始船舶航迹数据点数量; $ \overline {{p_n}{p_{n + 1}}} $ 为2个相邻船舶航迹电脑之间的距离。压缩率的期望结果在90.6%以上,数据长度损失率期望结果在0.15%以下。

依据上述公式计算本文方法在不同航迹数据点数量下的压缩率和数据长度损失率,结果如表2所示。可以看出,采用本文方法对船舶AIS航迹数据进行压缩后,其压缩率均在90.6%以上,数据长度损失率最大值为0.11%。满足使用需求,可保证AIS航迹数据的压缩效果。

表 2 压缩率结果和数据长度损失率测试结果 Tab.2 Compression rate results and data length loss rate test results

为验证本文方法对于船舶AIS航迹数据的压缩应用性,随机选择一艘船舶的AIS航迹数据,对该数据进行转换和清洗后,进行数据压缩,并且获取压缩前后的AIS轨迹结果,如图5图6所示。可知,船舶AIS轨迹数据压缩前,原始数据中包含若干个数据点,采用本文方法对数据进行压缩后,共剩余13个数据点,这些数据点完好保存了船舶转向行为数据点,能够精准描述船舶的操纵情况,不会遗漏船舶航行过程中的关键点,完好保存船舶运动特性。因此,该方法具有较好的应用性,能够在保留AIS轨迹特征数据的前提下,完成数据压缩,为船舶航行情况管理提供可靠依据。

图 5 压缩前船舶的AIS轨迹 Fig. 5 AIS trajectory of the ship before compression

图 6 压缩后船舶的AIS轨迹 Fig. 6 AIS trajectory of compressed ship
3 结 语

船舶航行情况监测、运动模式识别等是船舶管理的重要部分,在管理过程中,由于AIS数据量较大,并且数据中存在一定的重复或者损坏数据,导致数据的效用水平较低,直接降低船舶的管理效率。因此,为提升船舶的管理效果,针对海量AIS船舶航迹数据,提出提升算法下的船舶AIS航迹数据压缩算法,并对该算法的应用效果进行测试。结果表明,本文所提方法具有较好的船舶AIS航迹数据压缩性能,并且压缩后数据能够可靠描述船舶航行过程中操纵情况,为船舶航行管理提供可靠保障。

参考文献
[1]
高大为, 朱永生, 张金奋, 等. 基于AIS数据的船舶航迹多维预测方法[J]. 中国航海, 2021, 44(3): 56-63.
[2]
鄢博冉, 高大为, 朱永生, 等. 基于低信噪比AIS数据的船舶航迹精准预测[J]. 船舶工程, 2021, 43(10): 111-117.
[3]
陈晓杰, 李斌, 周清雷. RTL级可扩展高性能数据压缩方法实现[J]. 电子学报, 2022, 50(7): 1548-1557.
[4]
卢民荣, 郑建宁. 基于极值点特征识别的大规模时序数据压缩分析[J]. 统计与决策, 2021, 37(20): 39-43.
[5]
刘歌, 芮国胜, 田文飚, 等. 序贯压缩感知下的海洋监测数据在线重构方法[J]. 西安电子科技大学学报, 2022, 49(1): 173-180.
[6]
张小梅, 曹蓥, 娄平, 等. 基于边缘计算的数据无损压缩方法[J]. 计算机科学, 2022, 49(S2): 842-847.
[7]
姜琨, 刘征, 朱磊, 等. 基于有向无环图的倒排链等字长划分压缩算法[J]. 计算机应用, 2021, 41(3): 727-732.