APP下载

应用北斗卫星导航系统的船舶AIS数据采集

2013-05-09贺超峰徐铁胡勤友葛依东

上海海事大学学报 2013年1期
关键词:本船压缩率数据量

贺超峰,徐铁,胡勤友,葛依东

(上海海事大学商船学院,上海 201306)

0 引言

目前,3种主流的海上船舶监控形式[1]有沿海CDMA网络监控,海事卫星监控以及结合AIS的VTS监控.沿海CDMA网络监控只能在沿海有CDMA信号的地区使用,比较适合近岸运输船舶.海事卫星监控虽然不受船舶所在海区的限制,可以较好地实现全天候监控,但海事卫星通信费用昂贵,不适合持续监控.虽然AIS覆盖的船舶范围非常广泛,目前全球任何500总吨以上的船舶都强制安装AIS系统,但AIS系统发射的信号传输距离有限,存在监控盲区.当船舶在远洋中航行时,其AIS信息往往不能被岸基AIS基站接收,从而使其失去监控.

几年前,美国、挪威等国家开始利用低轨卫星接收其覆盖范围的船舶AIS信息,从而实现远离陆地区域的船舶动态监控,但由于卫星数量较少,不能连续采集同一地区的船舶AIS信息,因此获得的船舶动态信息实时性较差.船舶远程识别与跟踪系统(LRIT)利用卫星定位和卫星通信技术获取本船的位置与时间信息,并发送给船旗国所指定的数据中心进行储存和处理.[2]目前,并不是所有船舶都已配备LRIT,尤其是内贸船舶.对于没有配备LRIT的船舶,进入陆地AIS基站监控盲区时就无法被监控.此外,LRIT通信费用昂贵,不适合连续监控,实时性较差.

利用北斗卫星导航系统(简称北斗)转发本船AIS信息[3]的做法对装有北斗设备的船舶是有效的,但目前还有很多船舶没有配备北斗设备,因此这些船舶不能得到有效监控.本文结合AIS和北斗的优势,用北斗转发本船和周围船舶的AIS信息,使没有配备北斗设备的船舶也能得到有效监控,且通过北斗卫星通信要比通过其他卫星通信成本低,从而既可以使监控区域覆盖陆地AIS基站的盲区,又可以不用付出与其他卫星通信一样的昂贵代价.另外,还在AIS数据中添加优先权(priority)字段,用于实现对指定船舶的搜索.

1 处理流程简介

一个时段内本船接收到的AIS信息数据量往往较大,而北斗的短报文通信能力有限.为了有效利用北斗的短报文通信功能,有必要对接收到的AIS信息采取一系列处理措施,减少数据冗余.AIS数据冗余主要有以下几种形式:重复数据冗余、无用数据冗余、数据表示冗余、编码冗余等.首先通过数据预处理和数据压缩减少AIS数据冗余,然后利用北斗转发处理过的数据.数据处理总流程见图1.

2 数据预处理

数据预处理的主要目的是去除重复数据冗余,无用数据冗余以及数据表示冗余,主要包含如下几个部分,见图2.

(1)数据获取.主要通过时间过滤和字段筛选减少数据量,达到减少无用数据冗余的目的.(2)数据过滤.主要进行重复数据过滤.(3)去除数据表示冗余.通过差值法减少表示相同信息量所需要的数据量.(4)数据重组.去除数据表示冗余后,数据在转发后要想恢复原样就必须在数据中加上某些数据(数据头),将数据中相应项和数据头中相应项相加才能得到原来的数据.

2.1 数据获取

本船接收到的周围船舶AIS信息并非都有用.比如想知道某船舶目前的位置,如果数据库中有该船当前时刻或最近很短时间内的AIS信息,那么该船几个小时前的数据就会是无用数据或是之前被发送过的数据.因此,有必要对AIS数据进行时间过滤.另外,AIS信息中包括很多字段,对于特定的应用只需要某些特定字段,例如对于船舶动态监控而言,只需要海上移动识别码(mmsi)、经度(lon)、纬度(lat)以及更新时间(updatetime,以下简称ut)等字段.因此,还可以通过字段筛选减少数据量.这里主要研究定位字段.

定义tg为时间间隔,tp为过去某时刻,tn为现在时刻,则只需获取时间区间TR=[tp,tn]内的数据,而在tp时刻以前的数据可以近似认为是无用数据.其中

式中的tg须根据具体情况决定.例如,根据北斗转发AIS数据的速度,使得北斗正好在某个tg时间内转发完所有应发的AIS数据,这样就能保证所有有用的AIS数据都有机会被转发.

为了实现对指定船舶的定位,船载AIS接收端在接收到的AIS数据后加上优先级(priority)字段,使指定船舶的AIS信息能优先被转发.

2.2 数据过滤

通过减少重复数据的转发,达到减轻北斗负担、提高北斗有效利用率的目的.

如果某船舶(称为A船)的AIS数据没有更新且已通过北斗转发或更新过,但是其经度和纬度与该船之前的AIS信息的相应字段的差值——经度差(londiff)和纬度差(latdiff)分别小于经度差阈值(londiffT)和纬度差阈值(latdiffT),则称该AIS数据为重复数据.已经通过北斗转发的AIS数据显然是重复数据,没有必要再转发一次.而之所以把经度差和纬度差都小于相应阈值的更新过的AIS信息定义为重复数据,是因为在这种情况下A船基本没移动,其位置可近似认为没变化.

记A船在t时刻的AIS数据为AIS_t,且设t2=t1+Δt,其中t1为上次从数据库中取数据的时刻,t2为当前从数据库中取数据的时刻,若

其中

则在t2时刻取到的A船的AIS数据为重复数据,故丢弃该数据.

设usefullais为用于存储已发送AIS信息的数据库表,则数据过滤的流程见图3.

图3 数据过滤

2.3 去除数据表示冗余

筛选出的AIS信息各字段的类型见表1.

表1 AIS信息各字段类型

从表1可以看出,前4个字段所占的空间都比较大,而本船与周围船舶之间的距离都不远,在纬度上相差1'近似于距离上相距1 n mile,经度上略有出入,但也可以作为近似估计.所以,周围船舶与本船的经度差和纬度差应该很小.于是,采用差值法,用经度差和纬度差代替经度和纬度进行传输,然后在救助指挥中心用相反的过程恢复其经度和纬度.

另外,updatetime 的格式为 yyyy-MM-dd hh-mmss.s.注意到周围船舶AIS的更新时间与本船AIS数据在年、月、日上更新时间绝大多数情况下相同,甚至小时也相同.如果用本船AIS数据更新时间减去周围船舶AIS数据更新时间,其差就只包含时、分、秒、小秒,甚至连时也没有,这样就可大大缩短ut的长度,从而达到压缩的效果.程序如下:

2.4 数据重组

通常,北斗转发信息时一条北斗报文包含很多条AIS数据信息,各AIS信息之间优先级可能不一样,因此通过北斗转发周围船舶AIS信息时,需要按照某种标准判断某AIS信息的重要性.例如,要让基站了解本船周围的船舶情况,离本船较近船舶的AIS信息就显得重要些;再如,若基站指定要查找某条船(比如A船),则A船的AIS信息就显得格外重要.因此,数据重组的过程还应该包括优先级的计算,各AIS信息的排序,以及一条北斗信息所包含的AIS信息数目的设定等.

一般情况下,以距离和等待时间作为优先级的判别因素,要想得到优先级,就得先求出距离d.本船与A船的距离[4]见如下程序:

则优先级取值规则程序如下:

若某数据A不满足

则令

其中:

pTime为开始数据重组的时刻.

一般情况下,d值越小的船舶在某种程度上对本船影响越大,故其AIS数据的优先级应该越大;但是,如果只考虑距离因素可能导致饥俄现象,即d比较大的数据永远都得不到转发,于是又增加等待时间因子,等待的时间越长,其优先级越大.总之,一般情况下优先级与距离成反比,与等待时间成正比.

有了priority就可以进行排序,而采用的数据排序算法是最大堆优先级排序法[5].堆数据结构是一种数组对象,它可以被视为一棵完全二叉树,树中每个节点与数组中存放该节点值的那个元素对应.而最大堆是这样一种堆结构:除了根节点以外的每个节点 i,有

即某个节点的值至多与其父节点的值一样大.

假定每次都依次选取前NUM条处理好的AIS数据进行数据重组,则重组后的数据格式见表2,数据重组的流程见图4.

表2 重组后的数据格式

图4 数据重组流程

3 数据压缩

数据预处理部分是从过滤和差值的角度减少数据量,得到的数据必须是精简的数据.为了更进一步减少数据量,从压缩算法的角度着手.目前数据压缩的算法分为有损压缩和无损压缩[6-7]:无损压缩主要有霍夫曼编码、算术编码、香农-范若编码、行程编码(RLE编码)、LZW编码以及无损预测编码等;有损压缩主要有DPCM(Differential Pulse Code Modulation)编码、DM(Delta Modulation)编码、DCT变换编码、小波变换编码等.由于文本压缩只能使用无损压缩,而无损压缩中LZW编码的效果相对最好,但因为LZW编码对小数据压缩的效果有时不稳定,所以文本直接用java中的GZIPOutputStream和Byte-ArrayOutputStream[8]进行压缩.实验结果表明其字符串压缩率平均值在29%左右.

4 北斗卫星转发

北斗卫星每次转发的字节数有限,每次发射的电文长度不超过120个汉字[9],而经过上述步骤后的数据较大,因此在转发数据时要先拆分数据.为了在接收端能将数据重新组合,必须在每条拆分的数据前用序号标志,称之为数据报头.格式如下:

其中:第1,2个字节表示原数据被拆分成的条数;第3,4个字节表示该数据在原数据中的序列号;最后两个字节表示该原数据在所有数据中的序列号.

这样,在接收端根据数据报头判断该数据是否已经接收完整,若接收完整就抛弃数据报头,组装数据,然后进行CRC校验;若校验结果正确,则解压组装后的数据,若校验结果不正确,则丢弃该数据.具体流程见图5.

图5 北斗发送与接收

5 实验结果分析

图6显示字符串压缩率和总压缩率.由图可知字符串压缩率在20% ~40%之间,其平均值约为29%;其总压缩率的平均值约为2.9%,总压缩率的取值落在1%~6%之间,与字符串压缩率相比,其压缩效果更明显.总压缩率由数据预处理和字符串压缩两部分组成.数据预处理过滤掉很多无用数据、重复数据以及表示冗余数据,大大减少数据量.随着间隔tg取值的不同,重复数据量也会有所不同,因此数据预处理效果的好坏与tg的选择有关.如果tg过小,则重复数据过多,这样虽然总压缩率提高,但是系统做了很多无用功;如果tg过大,则某些数据有可能永远都得不到发送.因此,在实践中要根据实际情况调整tg的值.

图6 压缩率

6 应用实例

6.1 对遇险船舶的救助

若A船在某处遇险,其通过卫星发出遇险信号,岸上指挥中心根据A船位置以及其周围船舶的情况指挥救助.若A船恰巧在陆上AIS基站的监控盲区,则岸上指挥中心就不能掌握A船的实时信息,不利于救助.此时,若A船上配备有本文研究系统,则可以通过北斗卫星导航系统优先转发本船的AIS信息,同时也转发周围船舶的AIS信息以便岸上指挥中心了解A船位置及其周围船舶的分布情况,使岸上指挥中心能更好地指挥救助;若A船没有配备本文研究系统,但其周围有船舶能接受到A船的 AIS信息,并配备有本文研究系统,则岸上指挥中心同样能了解A船的位置和其周围船舶分布情况.结果见图7.

图7 对遇险船舶的救助

6.2 指定船舶监控

当基站需要知道A船的位置时,可以通过北斗发送一条命令,系统接到命令后,在船载AIS终端接收到A船AIS数据时,直接在该AIS数据后添加priority字段并令其值为MaxPriority,则系统会优先转发该数据,从而达到指定船舶监控的功能.

7 结束语

针对陆上AIS基站存在监控盲区这一缺陷,通过集成北斗卫星导航系统和AIS系统,在合理利用北斗卫星导航系统的短报文通信前提下,有效增大AIS数据采集范围,使船舶动态监控范围覆盖陆地AIS基站的监控盲区.与传统船舶动态监控技术相比具有如下特点:

(1)船舶动态监控范围扩展到陆地AIS基站的监控盲区;(2)实现指定船舶监控功能;(3)可以用作海上移动AIS中转站,实现对处于陆地AIS基站盲区且未配备北斗系统船舶的监控;(4)有效压缩AIS数据,降低北斗卫星导航系统传达相同信息所需转发的数据量.

陆地AIS基站盲区的船舶AIS数据采集也可以通过其他卫星系统实现,但通过北斗卫星导航系统实现成本相对较低.北斗带宽有限,因此采用一系列措施降低船舶AIS数据的传输数据量.

程序中的时间间隔tg对性能影响较大,因此选择合适的tg很重要,目前在实践中主要通过人工选择来调节tg的值.在接下来的工作中,将进一步研究如何实现tg的智能调节.

[1]黄健伟,陆悦铭,李义斌.AIS时代VTS面临的新课题[J].上海海事大学学报,2007,28(3):21-23.

[2]部海事局计基处.船舶远程识别与跟踪系统[J].中国海事,2010(5):17-18.

[3]王艳军,王晓峰.AIS和北斗终端组合在船舶动态监控中的应用[J].上海海事大学学报,2011,32(4):17-21.

[4]赵仁余.航海学[M].北京:人民交通出版社,2008:67-68.

[5]CORMEN TH,LEISERSON CE,RIVEST RL,et al.Introduction to algorithms[M].3 ed.London:The MIT Pr,2009:151-169.

[6]GONZALEZ R C,WOODS R E.Digital image processing[M].Upper Saddle River:Prentice Hall,2002:411-513.

[7]徐成俊,舒毅,柴蓉,等.文本压缩算法的比较研究[J].甘肃科技,2006,22(12):81-83.

[8]ECKEL B.Thinking in Java[M].4 ed.Upper Saddle River:Prentice Hall,2007:698-701.

[9]高迪驹.基于北斗卫星通信系统的船载终端串口通信[J].上海海事大学学报,2008,29(4):10-11.

猜你喜欢

本船压缩率数据量
基于大数据量的初至层析成像算法优化
不同会遇态势下目标船行为模拟及其特征分析
计算Lyapunov指数的模糊C均值聚类小数据量法
高刷新率不容易显示器需求与接口标准带宽
基于虚拟力的船舶导航建模方法*
宽带信号采集与大数据量传输系统设计与研究
水密封连接器尾部接电缆的优化设计
缠绕垫片产品质量控制研究
多载波通信系统中CQI无损压缩法研究
分布式多视点视频编码在应急通信中的应用