吳曉陽
(桂林理工大學,廣西 南寧 530001)
船舶自動識別系統(tǒng)(Automatic Identification System,AIS),其是船舶航行必須安裝的船載AIS 設備,其主要作用是實現(xiàn)船舶導航和監(jiān)控[1]。目前海上管理系統(tǒng)的不斷完善,已經(jīng)形成AIS 基站的基礎網(wǎng)絡體系[2]。隨著船載AIS 設備數(shù)量的逐漸增加,設備信息的收集和管理逐步完善,則形成海量的船舶AIS 軌跡數(shù)據(jù),該數(shù)據(jù)可為船舶異常識別、交通情況監(jiān)測等提供可靠依據(jù)[3]。但是該數(shù)據(jù)量較大、維度較高,并且數(shù)據(jù)格式存在一定差異,導致數(shù)據(jù)的查詢效率、效用程度受到影響,同時數(shù)據(jù)的傳輸耗時較大[4]。因此,數(shù)據(jù)壓縮成為解決該問題的有效手段。在壓縮過程中,如何保證數(shù)據(jù)的完整性,避免數(shù)據(jù)在壓縮過程中發(fā)生損壞,成為重點研究內(nèi)容。劉歌等[5]為保證多維數(shù)據(jù)的壓縮效果,以MVC 架構為核心,通過正交變換的方式實現(xiàn)數(shù)據(jù)重構,并對重構后的數(shù)據(jù)進行編碼,以此完成多維數(shù)據(jù)壓縮;該方法在應用過程中,可實現(xiàn)數(shù)據(jù)降維,但是無法實現(xiàn)不同數(shù)據(jù)格式的處理。張曉梅等[6]為實現(xiàn)數(shù)據(jù)壓縮,利用邊緣計算較好的計算能力,實現(xiàn)數(shù)據(jù)無損壓縮;但是該方法在應用過程中,對于維數(shù)較高數(shù)據(jù)的壓縮率較低。
提升算法屬于框架算法,該算法能夠強化數(shù)據(jù)點的處理效果,常見的提升算法包擴道格拉斯-普克算法(Douglas-Peucker,DP)、機器分類算法等。本文以DP 算法為核心,提出船舶AIS 航跡數(shù)據(jù)壓縮方法。
1.1.1 AIS 軌跡數(shù)據(jù)格式轉換
AIS 在使用過程中,僅可實現(xiàn)可打印的AIS 字符傳輸,該字符的有效范圍為0X20~0X7E,在該范圍內(nèi),可將字符劃分為保留、有效和未定義3 種字符。其中保留字符指的是傳輸數(shù)據(jù)中,用于控制數(shù)據(jù)格式的關鍵字[7],有效字符用于描述能夠用于打印的ASCII 字符,未定義字符用于描述無法直接進行傳輸?shù)淖址?/p>
AIS 數(shù)據(jù)的每條記錄均由開始符(?。╅_始,以結束符(
1.1.2 AIS 軌跡數(shù)據(jù)清洗
由于AIS 數(shù)據(jù)中包含靜態(tài)數(shù)據(jù)、動態(tài)數(shù)據(jù)等所有和船舶航行相關的數(shù)據(jù),這些數(shù)據(jù)在采集過程中,會受到網(wǎng)絡性能、采集環(huán)境以及采集設備性能的影響,導致數(shù)據(jù)不完整、錯誤或者重復,影響數(shù)據(jù)的效用水平。因此,完成AIS 數(shù)據(jù)格式轉換后,需對AIS 數(shù)據(jù)進行清洗,清洗的主要目的是刪除AIS 數(shù)據(jù)中的不完整數(shù)據(jù),并且清除數(shù)據(jù)中的錯誤數(shù)據(jù),同時對重復的數(shù)據(jù)進行篩選,只保留一條數(shù)據(jù)記錄。本文針對AIS 數(shù)據(jù)的清洗需求,本文采用基于偏序集的規(guī)則鏈方法完成AIS 數(shù)據(jù)清洗,該方法的整體結構如圖1 所示。該方法整體分為標準模塊、業(yè)務模塊以及自動模塊,將格式轉換后的數(shù)據(jù)作為該方法的輸入,結合數(shù)據(jù)清洗需求按層選擇相應規(guī)則,以此生成每一層的規(guī)則鏈,最后依據(jù)規(guī)則鏈完成數(shù)據(jù)清洗,并輸出清洗后的AIS 數(shù)據(jù)。
海量的AIS 軌跡數(shù)據(jù)的存儲和調(diào)用,是實現(xiàn)該數(shù)據(jù)快速壓縮以及顯示的主要基礎,如何高效完成所需AIS 數(shù)據(jù)的提取,并按照時間順序?qū)⑵鋵隓P 算法中進行壓縮,是待解決的首要問題。為保證AIS 軌跡數(shù)據(jù)的快速壓縮,采用SQLite 數(shù)據(jù)庫進行AIS 軌跡數(shù)據(jù)的管理,清洗后數(shù)據(jù)存儲在該數(shù)據(jù)庫中,為該軌跡數(shù)據(jù)壓縮提供支撐。該數(shù)據(jù)庫的管理方案如圖2 所示。該數(shù)據(jù)庫以單TRACK 表庫結構為主完成構建,并且單表的各條記錄中包含MMSI(數(shù)據(jù)識別碼)、經(jīng)度、緯度以及時間4 個字段。單表的一條記錄則對應AIS 設備一次發(fā)送的數(shù)據(jù),以此實現(xiàn)AIS 軌跡數(shù)據(jù)的可靠管理,保證AIS 軌跡數(shù)據(jù)的高效壓縮。
圖2 AIS 軌跡數(shù)據(jù)庫結構Fig.2 AIS trajectory database structure
AIS 軌跡數(shù)據(jù)中,主要是依據(jù)經(jīng)度和緯度描述船舶的地理位置,在進行數(shù)據(jù)壓縮前,先對經(jīng)度和緯度進行轉換,形成墨卡托坐標,在此基礎上進行轉換使其形成屏幕坐標進行顯示。在上述轉換過程中,依據(jù)等角正圓柱投影原理完成,如果船舶在某處的經(jīng)度和緯度坐標用 (φ,λ)表示,平面坐標用(x,y)表示,將經(jīng)度和緯度轉換至平面坐標的轉換公式為:
式中:r0為基準緯度圈半徑;a和e分別為地球橢圓球長軸半徑和第一偏心率;q表示等量緯度; φ為基準緯度。
依據(jù)上述公式即可完成所有AIS 軌跡數(shù)據(jù)中,船舶位置數(shù)據(jù)的轉換,并存儲在數(shù)據(jù)庫中。
AIS 軌跡數(shù)據(jù)壓縮的主要目的快速獲取AIS 數(shù)據(jù)中的目標數(shù)據(jù),實現(xiàn)船舶航行軌跡的識別監(jiān)測。DP 算法屬于一種曲變形逼近算法,主要是采用以直代曲的理念,保留AIS 航跡中的關鍵航跡點,舍棄其中的非關鍵航跡點,以此高效實現(xiàn)船舶AIS 航跡數(shù)據(jù)壓縮。該算法的詳細壓縮過程如下:
步驟1 船舶軌跡離散點為:P1(x1,y1),P2(x2,y2),...,Pn(xn,yn),A=P1(x1,y1),B=Pn(xn,yn) ,則 連 接A和B后,形成線段AB。
步驟2 在AB的范圍內(nèi)進行尋找,獲取該范圍內(nèi)的和AB之 間距離最遠的點,用C表示;C和AB之間的距離用d表示。
步驟3 設定AIS 軌跡數(shù)據(jù)的壓縮閾值 η,如果d≤η , 則采用線段AB描述船舶原始航跡曲線,如圖3所示;如果d>η ,則定義C為關鍵點,并對船舶航跡進行劃分,使其形成兩段曲線,如圖4 所示。采用步驟1~步驟3,對兩段曲線分別處理。
圖3 船舶原始航跡曲線Fig.3 Original ship track curve
圖4 劃分航跡曲線Fig.4 Divided track curve
步驟4 按照上述步驟完成整個航跡數(shù)據(jù)處理后,連接航跡曲線AB的上所有關鍵點,以此獲取原始船舶航跡曲線AB的壓縮航跡數(shù)據(jù)。
為驗證本文方法對于船舶AIS 航跡數(shù)據(jù)壓縮的處理效果,以某海洋科技有限公司的船舶AIS 航跡數(shù)據(jù)為例,進行相關測試。該數(shù)據(jù)主要以csv 的文件格式進行存儲,共包含256 艘船的航跡數(shù)據(jù),共計1200條,部分數(shù)據(jù)詳情如表1 所示。
表1 部分船舶AIS 航跡數(shù)據(jù)詳情Tab.1 Details of AIS track data for some ships
為驗證本文方法的船舶AIS 航跡數(shù)據(jù)壓縮效果,采用壓縮率ζ、數(shù)據(jù)長度損失率l作為評價指標,計算公式分別為:
式中:No和Ns均為船舶航跡數(shù)據(jù)點數(shù)量,前者對應壓縮前,后者對應壓縮后;l為船舶航跡總長度;lL為長度損失;lo和ls則表示壓縮前和壓縮后的船舶軌跡長度;lR為原始船舶航跡數(shù)據(jù)點數(shù)量;pnpn+1為2 個相鄰船舶航跡電腦之間的距離。壓縮率的期望結果在90.6%以上,數(shù)據(jù)長度損失率測期望結果在0.15%以下。
依據(jù)上述公式計算本文方法在不同航跡數(shù)據(jù)點數(shù)量下,本文方法的ζ 和l結果如表2 所示??芍翰捎帽疚姆椒▽Υ癆IS 航跡數(shù)據(jù)進行壓縮后,其壓縮率均在90.6%以上,數(shù)據(jù)長度損失率最大值為0.11%。滿足使用需求,可保證AIS 航跡數(shù)據(jù)的壓縮效果。
表2 壓縮率結果和數(shù)據(jù)長度損失率測試結果Tab.2 Compression rate results and data length loss rate test results
為驗證本文方法對于船舶AIS 航跡數(shù)據(jù)的壓縮應用性,隨機選擇一艘船舶的AIS 航跡數(shù)據(jù),對該數(shù)據(jù)進行轉換和清洗后,進行該數(shù)據(jù)壓縮,并且獲取壓縮前后的AIS 軌跡結果,如圖5 和圖6 所示。可知:船舶AIS 軌跡數(shù)據(jù)壓縮前,原始數(shù)據(jù)中包含若干個數(shù)據(jù)點,采用本文方法對數(shù)據(jù)進行壓縮后,共剩余13 個數(shù)據(jù)點,這些數(shù)據(jù)點完好保存了船舶轉向行為數(shù)據(jù)點,能夠精準描述船舶的操縱情況,不會遺漏船舶航行過程中的關鍵點,完好保存船舶運動特性。因此,該方法具有較好的應用性,能夠在保留AIS 軌跡特征數(shù)據(jù)的前提下,完成數(shù)據(jù)壓縮,為船舶航行情況管理提供可靠依據(jù)。
圖5 壓縮前船舶的AIS 軌跡Fig.5 AIS trajectory of the ship before compression
圖6 壓縮后船舶的AIS 軌跡Fig.6 AIS trajectory of compressed ship
船舶航行情況監(jiān)測、運動模式識別等均是船舶管理的重要部分,在管理過程中,由于AIS 數(shù)據(jù)量較大,并且數(shù)據(jù)中存在一定的重復或者損壞數(shù)據(jù),導致數(shù)據(jù)的效用水平較低,直接降低船舶的管理效率。因此,為提升船舶的管理效果,針對海量AIS 船舶航跡數(shù)據(jù),提出提升算法下的船舶AIS 航跡數(shù)據(jù)壓縮算法。并對該算法的應用效果進行測試,可知:本文所提方法具有較好的船舶AIS 航跡數(shù)據(jù)壓縮性能,并且壓縮后數(shù)據(jù)能夠可靠描述船舶航行過程中操縱情況,為船舶航行管理提供可靠保障。