汪連賀
(天津海事測繪中心,天津 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倍,但對于高速船舶運行軌跡曲率變化更小,傳輸的坐標序列基本真實的記錄了船舶連續運行軌跡;需要回放船舶運行軌跡時能夠真實有效的反映船舶實時航行位置。
采用該傳輸壓縮方法在不增加其它成本的情況下船舶連續運行軌跡的真實性極大提高,從根本上解決了船舶連續航行軌跡的傳輸問題。