摘要:在电子海图上叠加显示船舶运动轨迹对船舶航迹分析和海上事故回放具有重要意义。船舶AIS(Automatic Identification System)报文提供了一种新的船舶动态和船舶运动轨迹获取方式。由于有关船舶动态的AIS报文发送频度较高,致使船舶运动轨迹点较为密集,这种情况将会导致电子海图系统在显示较长时间段船舶运动轨迹时,速度下降,从而降低了系统的用户友好性。利用垂距法对船舶动态数据按照电子海图显示比例尺进行分层。当电子海图显示比例尺较小时,仅显示船舶运动轨迹轮廓,而当显示比例尺逐渐增大时,显示海图显示地理范围内更详细的船舶运动轨迹信息。实验表明该方法能有效地提高船舶运动轨迹的显示速度。
关键词:水路运输;电子海图;船舶运动轨迹;自动识别系统;矢量压缩
在电子海图上叠加显示船舶运动轨迹对船舶航迹分析和海上事故回放具有重要意义。船舶AIS(Automatic Identification System)报文提供了一种新的船舶动态和船舶运动轨迹获取方式,已广泛应用于基于电子海图的船舶动态管理系统中。由于有关船舶动态的AIS,报文发送频率较高(3s/次~6s/次),致使船舶运动轨迹点较为密集,这种情况将导致电子海图系统在显示较长时间段船舶运动轨迹时,耗时增加,从而降低了系统的用户友好性。这种情况在一些基于C/S和B/S技术的船舶动态管理系统尤其突出。
为了解决上述问题,首先将电子海图显示比例尺自小至大划分为若干个层次,针对每一个比例尺层次,利用矢量压缩的方法对每一个船舶位置点进行显示判断:如果某一船舶位置点在当前比例尺层次上进行数据压缩后仍然得以保留,则该点将在该比例尺层次上显示出来。通过这一方法,当显示比例尺较小时,显示的地理范围较大,仅显示船舶运动轨迹轮廓数据,而当比例尺层次逐渐放大时,显示的地理范围将越来越大,可显示更详细的船舶运动轨迹数据。这样,在不同的显示层次上,显示的船舶运动轨迹数据都是适量的,因此,显示速度可以得到有效提高。
1基于垂距法的船舶位置点显示判断方法
本文采用矢量数据压缩方法来判断某一船舶位置点在某一海图比例尺上是否显示。经典的矢量数据压缩主要有Douglas-Peucker方法、垂距法和光栏法。Douglas-Peucker方法整体压缩效果较好,但必须在整个航迹完成后,才能进行航迹压缩,因此,该方法通常不能满足船舶运动轨迹压缩的实时性要求;此外,该方法的计算量也很大。尽管垂距法的整体压缩效果稍差,但可对航迹进行实时压缩处理,并且计算量较小。本文采用垂距法进行船舶运动轨迹的压缩处理。
设垂距法所用阈值为δ,已知3个相邻船舶位置点A(λ1,φ1),B(λ2,φ2)和C(λ3,φ3),其中A点已被判明在当前阈值下,仍需显示,则判断B点在当前阈值下是否显示的过程如下:
1.若A点和C点不重合,如图1所示,则B点至AC的垂直距离d可以通过公式(1)求得。
α=arcos[(λ3-λ2)(λ1-λ2)+(φ3-φ2)(φ1-φ2)/(d1×d2)]
2.若A、C两点重合,如图2所示,令:
3.若d<δ,则判断B点在当前阈值下,不再显示;若d≥δ,则B点需要显示。
2船舶运动轨迹显示算法
利用垂距法对船舶运动轨迹数据进行预处理,为每一个船舶位置点赋予一个显示比例尺标记。显示比例尺越小,对应的船舶位置点越少。当电子海图显示比例尺较小时,仅叠加当前海图显示地理范围内或适当放大范围内的船舶运动轨迹轮廓信息。当用户逐步增加电子海图比例尺时,将叠加显示更详细的船舶运动轨迹,反之亦然。由于在此方法中,每次用户交互,仅显示较少数量的船舶运动轨迹数据,保证了船舶运动轨迹的显示处理速度,提高了在电子海图显示船舶运动轨迹的用户友好性。具体的步骤为:
1.将电子海图的显示比例尺划分为N个层次。每一个层次顺序对应一个显示比例尺范围。N值越小,对应的显示比例尺越小。
2.利用垂距法,对船舶运动轨迹中每一个位置点按显示比例尺层次进行标记,以确定在某一显示比例尺层次上该点是否构成船舶运动轨迹。具体做法是:
1)为每一个显示比例尺层次Ni赋予一个矢量数据压缩阈值。Ni越小,该阈值越大;
2)为每一个船舶位置点赋予一个初始标记,起始点初始标记为0(意味着在每一比例尺上,起始点都会显示),其它为N-1。
3)按照比例尺层次从大到小的顺序,利用垂距法和每一显示比例尺层次所对应的压缩阈值,对每一个船舶运动位置点进行显示判断和标记。假定当前比例尺层次为Ni,利用“1.”所示的船舶位置点显示判断方法,如判定某一船舶运动位置点在Ni所对应的阈值下需要显示,则给该点赋予一个新的显示标记,即当前的比例尺层次Ni,否则,不改变该点的显示标记。
3.当电子海图比例尺对应的比例尺层次为Ni时,从船舶所有位置点中找出当前显示地理范围内或适当放大的地理范围内且显示标记小于或等于Ni的船舶位置点信息。
4.将“3.”所得到船舶位置点数据按时间顺序进行连接,在电子海图上绘制船舶运动轨迹。
5.当电子海图比例尺变化时,或当电子海图显示地理范围变化时,重复“3.”和“4.”。
3实验结果
将电子海图比例尺划分为17(0~16)个层次,并假定每个层次所对应的比例尺范围和阈值如表1所示。
表1比例尺层次对应阈值表
层次 |
比例尺范围 |
阈值 |
0 |
0≤1:591658710.8 |
100 |
1 |
1:591658710.8~1:295829355.4 |
20 |
2 |
1:295829355.4~1:147914677.7 |
5 |
3 |
1:147914677.7~1:73957338.9 |
0.5 |
4 |
1:73957338.9~1:36978669.4 |
0.4 |
5 |
1:36978669.4~1:18489334.7 |
0.35 |
6 |
1:18489334.7~1:9244667.4 |
0.3 |
7 |
1:9244667.4~1:4622333.7 |
0.28 |
8 |
1:4622333.7~1:2311166.8 |
0.25 |
9 |
1:2311166.8~1:1155583.4 |
0.2 |
10 |
1:1155583.4~1:577791.7 |
0.15 |
11 |
1:577791.7~1:288895.9 |
0.1 |
12 |
1:144447.9~1:72224.0 |
0.05 |
13 |
1:72224.0~1:36112.0 |
0.04 |
14 |
1:36112.0~1:18056.0 |
0.02 |
15 |
1:18056.0~1:9028.0 |
0.01 |
16 |
≥1:9028.0 |
0 |
阈值的确定对提高船舶运动轨迹显示的影响较大。一般来说,比例尺范围越大,所对应的阈值越小。在确定每一个比例尺层次所对应的阈值时,应确保在该比例尺层次上,船舶运动轨迹显示较为平滑,而船舶运动轨迹点数量也较为适中,因此,每一格比例尺层次所对应的阈值需通过反复试验进行确定。
给定一条船舶的运动轨迹,如图3所示,共448个船位点。图4~图10分别给出该船运动轨迹在不同比例尺层次上船位点个数及拓扑形状。图11和图12分别给出该船运动轨迹在第0层次和第15层次海图比例尺上的实际显示形状。从这些图中可以得出这样的结论:
1.在小海图比例尺上,可在保证船舶航迹形状的情况下,使构成航迹的船位点数量得到显著减少。
2.随着海图比例尺的增加,显示的船舶航迹越来越详细,但由于海图地理显示范围的减小,构成航迹的船位点数量也较为有限。
因此,利用本文方法,可在保持船舶航迹形状的前提下,显著提高船舶航迹的显示速度。
4结语
利用垂距法对密集的船舶运动轨迹数据按照海图显示比例尺进行标记,实现了在较小海图比例尺上浏览船舶航迹轮廓信息,而在较大比例尺上浏览更详细船舶航迹信息的策略,有效减小了每次船舶航迹显示所需处理的船舶位置点数量,从而可显著提高在电子海图上显示较长时间段船舶动轨迹的速度。该工作对实现船舶动态管理系统中基于AIS动态报文的船舶航迹分析或交通事故回放功能具有重要的价值。
作者:胡勤友,孟良 来源:中国航海