汪连贺
(天津海事测绘中心,天津 300222)
关键字:北斗短报文;数据压缩;连续轨迹
北斗卫星系统接收机终端能够向指定终端号的接收机终端发送短报文信息,也能够接收其它接收机终端发送的短报文;民用北斗接收机终端发送短报文频度为每分钟发送一次,每次最多发送70个字节的信息。船舶在航行的过程中定位仪不间断地输出船舶航行的轨迹,形成(时间、经度、纬度)的坐标序列;一般情况下,坐标序列时间格式为HH:MM:SS格式(8字节),经度为dddmmss.ssss格式(12字节),纬度为ddmmss.ssss格式(11字节);每个位置信息的坐标对字节总数为31字节;利用民用北斗卡每次最多传输两个坐标对(传输信息总字节数需不大于70字节),也就是30 s传输一个点坐标;对于航行船速为20 kn船舶,30 s航行距离为 300 m左右,对于航行船速为40 kn船舶,30 s航行距离为600 m;因坐标位置时间间隔过长,船舶航行距离间隔过大,故此不能真实地记录船舶航行轨迹,造成船舶航行路线失真;在现实生活中有很多需要查看船舶运行连续轨迹的需求,比如:因船舶事故等原因需要追踪船舶运行航线,不能记录真实的轨迹则无法准确地回放。
因此,如何改变现有常规手段进行传输船舶位置的信息,使其快捷有效传输船舶航行连续轨迹,提供一种基于北斗短报文的船舶连续轨迹传输压缩方法,是该领域技术人员应着手解决的问题之一。
船舶在航行的过程中船舶定位仪不间断地输出船舶航行的轨迹,形成时间、经度、纬度的坐标序列;因为船舶运行不属于剧烈的运动,根据不同运动速度每间隔1~5 s记录一个位置可以满足常规工作需要,如果每秒钟记录一个点则每分钟可以记录60组相应的坐标序列;在传输船舶连续轨迹过程中,发射端和接收端均使用具有短报文传输功能的北斗卫星系统接收机,并为两端终端配置北斗sim卡,通过北斗sim卡号确定唯一的北斗接收机终端;北斗短报文可以传输代码、汉字、混合三种信息类型;针对本方法采用代码类型进行传输,代码类型的信息可以更好的节约短报文存储空间。
在船舶北斗接收终端机发送坐标时,对坐标序列进行抽稀压缩处理,根据不同船速进行不同程度的抽稀,形成新的坐标序列;在对坐标序列压缩过程中,总是把第一个坐标对中时间、经度、纬度作为起始基准,坐标序列中后面的坐标对总是以前面坐标对的时间、经度、纬度作为相对基准值,计算每两个相邻坐标对的差值,即时间差、经度值的差值、纬度值的差值,形成坐标差值序列进行记录并组合生成短报文;在此方案中,北斗接收机短报文前10个字节为本次发送短报文信息的文件头信息,包含当前坐标序列的时间、经度、纬度基准值信息,数据格式分别为时间(时分,占2字节)、经度(度分秒,占3字节)、纬度(度分秒,占3字节),另外一个字节表示信息类型,一个字节作为保留字节,共10个字节,如表1。
表1 短报文头信息
表1中,type表示信息类别,取值可以是16进制的A5、A6,A5表示用方案一传输,A6表示用方案二传输。其余60个字节用于传输本分钟时间内坐标序列信息,计算要传输的坐标序列相邻位置的经度值的差值和纬度值的差值,把计算的差值按照设计的压缩编码规则填写到60个字节空间内。根据不同船速确定两种压缩编码方案。
表2 坐标对压缩方案一
表2中,点号同时代表时间,如点号1表示当前基准分钟时间的第0秒,点号2表示第2秒,点号3表示第4秒,点号n代表第2×(n-1)秒,直到点号30表示第58秒,n取1,2,...,30。L1表示点1的经度值与表1中基准点经度值的差值;B1表示点1的纬度值与表1中基准点纬度值的差值;L2表示点2的经度值与点1经度值的差值;B2表示点2的纬度值与点1纬度值的差值;L3表示点3的经度值与点2经度值的差值;B3表示点3的纬度值与点2纬度值的差值;Ln表示点n的经度值与点n-1经度值的差值;Bn表示点n的纬度值与点n-1纬度值的差值。
如果船速小于40 kn时,经度值的差值占用1个字节,单位为0.01 s,字节的第一个bit标识正负,0为正,1为负,则表示的经度值的差值范围可以满足-1.28~1.28 s,同样纬度值的差值也占用1个字节,字节的第一个bit标识正负,0为正,1为负,则表示的纬度值的差值范围可以满足-1.28~1.28 s;在地球表面,每秒最大距离是33 m,相当于船速为80 kn的船舶每秒航行的距离;每个点包含经度值的差值和纬度值的差值的信息,所以每个点占用2个字节,60个字节可以包含30个点的信息;在方案一中对60个坐标进行抽稀,只选取0,2,4,...,58 s处的经纬度差值形成坐标序列,坐标对在坐标序列中的点号也就表示了该坐标对的时间,如点号1表示当前基准分钟时间的第0秒,点号2表示第2秒,点号3表示第4秒......直到点号30表示第58秒;也就是船速小于40 kn时可以采用方案一。
表3 坐标对压缩方案二
表3中,点号同时代表时间,如点号1表示当前基准分钟时间的第0秒,点号2表示第4秒,点号3表示第8秒,点号n代表第4×(n-1)秒,直到点号15表示第56秒,n取1,2,...,15。L1表示点1的经度值与表1中基准点经度值的差值;B1表示点1的纬度值与表1中基准点纬度值的差值;L2表示点2的经度值与点1经度值的差值;B2表示点2的纬度值与点1纬度值的差值;L3表示点3的经度值与点2经度值的差值;B3表示点3的纬度值与点2纬度值的差值;Ln表示点n的经度值与点n-1经度值的差值;Bn表示点n的纬度值与点n-1纬度值的差值。
如果船速大于40 kn时,经度值的差值占用2个字节,单位为0.01 s,字节的第一个bit标识正负,0为正,1为负,则表示的经度值的差值范围可以满足-327.67~327.67 s,同样纬度值的差值也占用2个字节,字节的第一个bit标识正负,0为正,1为负,则表示的纬度值的差值范围可以满足-327.67~327.67 s;基本满足现实中的任何船速;每个点包含经度值的差值和纬度值的差值的信息,所以每个点占用4个字节,60个字节可以包含15个点的信息;在方案二中对60个点坐标序列进行抽稀,只选取0,4,8,...,56 s处的经纬度差值形成坐标序列,坐标对在坐标序列中的点号也就表示了该坐标对的时间,如点号1表示当前基准分钟时间的第0秒,点号2表示第4秒,点号3表示第8秒......直到点号15表示第56秒;也就是船速大于40 kn时可以采用方案二。
表4为船舶定位仪某日13点50分每秒输出一次的船舶一分钟的连续轨迹坐标,共60个点,因篇幅关系,本文仅列取前后各5个点。
船舶航行速度小于40 kn,按照方案一进行编码压缩根据规则,只选取0,2,4,...,58 s处的经纬度形成坐标序列,共30个点,仅列取前后各5个特征点坐标,如表5。
表4 1 分钟船舶连续轨迹坐标对示例
表5 1 分钟船舶连续轨迹抽稀坐标对示例
根据短报文的编码规则计算短报文文件头各个字节的值:船速小于40 kn,字节0信息类别为A5。
第一个点的经度为117度43分57.93405秒,字节1、字节2、字节3分别为第一个点经度值的度分秒,即:117、43、57(秒只取整数部分);第一个点的纬度为38度59分19.763928秒,字节4、字节5、字节6分别为第一个点纬度值的度分秒,即:38、59、19(秒只取整数部分);第一个点时间为13点50分,字节7、字节8为第一个点时间的时分,即:13、50。把得到的数值按照表1填写,即得到短报文的文件头信息,如表6。
表6 短报文文件头示例
再计算短报文的信息,根据方案一得到的0,2,4,...,58 s处的经纬度差值形成坐标序列,坐标对在坐标序列中的位置(点号)也就表示了该坐标对的时间,最终形成下表的坐标序列,共30个坐标序列,仅列取前后各5个坐标序列,如表7。
根据表7计算结果,把30个点的经纬度值的差值填写到60个字节中,第n个点(n取0,1,2,3,...,29)的经度值的差值和纬度值的差值分别放在第2n和2n+1字节的位置,形成如下短报文信息,如表8。
表7 1 分钟船舶连续轨迹压缩坐标序列示例
表8 1 分钟船舶连续轨迹压缩短报文信息示例
文件头的10个字节与短报文信息的60个字节连接在一起就形成了70字节的一分钟的船舶航行的连续轨迹,这70个字节可以通过安装sim1卡的发射北斗接收机发送到安装sim2卡的接收北斗接收机。sim2北斗接收机终端接收到短报文信息后再按照方案一的反过程解析压缩的短报文信息得到船舶航行的连续轨迹的(时间、经度、纬度)坐标序列,数据传输轨迹流程如图1。
图1 北斗吴双短报文数据传输流程
对于船速大于40 kn的船舶,发射端北斗终端机部分同样可以按照方案二进行压缩船舶航行轨迹坐标序列,接收端北斗接收机终端部分解析压缩的短报文信息得到船舶航行的连续轨迹的(时间、经度、纬度)坐标序列。
经过采用本压缩方法压缩后,航行船速为40 kn以下的船舶每分钟可以传输30个坐标对,即每2 s有一个坐标对;对于航行船速为20 kn船舶,2 s航行距离为20 m左右,对于航行船速为40 kn船舶每分钟可以传输15个坐标对,即每4 s有一个坐标对,4 s航行距离为80 m左右;通过比较可以发现,船舶连续轨迹的真实性分别提高了15倍和7.5倍,但对于高速船舶运行轨迹曲率变化更小,传输的坐标序列基本真实的记录了船舶连续运行轨迹;需要回放船舶运行轨迹时能够真实有效的反映船舶实时航行位置。
采用该传输压缩方法在不增加其它成本的情况下船舶连续运行轨迹的真实性极大提高,从根本上解决了船舶连续航行轨迹的传输问题。