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