王偉懿 李曉勇
(1.中國(guó)電子科技集團(tuán)公司第十五研究所 北京 100083)(2.海軍工程大學(xué)導(dǎo)航工程系 武漢 430033)
隨著我國(guó)綜合實(shí)力和國(guó)際影響力的不斷提升,以及“一帶一路”等戰(zhàn)略的深入發(fā)展,海洋成為連接中國(guó)與世界的重要通道,航行于世界各地船舶也成為傳播中國(guó)文化和促進(jìn)共同發(fā)展的重要載體[1]。為了避免船舶與船舶之間發(fā)生碰撞,便于船舶與海岸之間通信聯(lián)絡(luò),基于網(wǎng)絡(luò)技術(shù)、導(dǎo)航定位技術(shù)、通訊技術(shù)和電子技術(shù)等,形成了船舶自動(dòng)識(shí)別系統(tǒng)(Automatic Identification System,AIS)[2~3]。搭載AIS的大量船舶航行于世界各地,產(chǎn)生了大量的航跡數(shù)據(jù),并具有鮮明的時(shí)空屬性,研究和應(yīng)用好船舶時(shí)空大數(shù)據(jù)對(duì)提高船舶航行安全性、挖掘潛在規(guī)律和知識(shí)等方面具有重要意義[4]。
目前,針對(duì)軌跡時(shí)空大數(shù)據(jù)的研究主要側(cè)重于地面車輛行駛的軌跡,如文獻(xiàn)[5]利用出租車軌跡數(shù)據(jù)進(jìn)行城市道路擁堵狀態(tài)估計(jì);文獻(xiàn)[6]基于出租車軌跡數(shù)據(jù)開展了路徑規(guī)劃方法的研究;文獻(xiàn)[7]對(duì)公交大數(shù)據(jù)存在的四類異常進(jìn)行分析并通過數(shù)據(jù)清洗提高了預(yù)測(cè)精度。然而,基于海量船舶時(shí)空軌跡數(shù)據(jù)的處理與應(yīng)用研究相對(duì)較少。本文在深入分析AIS軌跡數(shù)據(jù)特點(diǎn)的基礎(chǔ)上,通過數(shù)據(jù)清洗、坐標(biāo)轉(zhuǎn)換、數(shù)據(jù)入庫(kù)等處理,開展了航跡線提取與壓縮以及基于密度圖的船舶時(shí)空大數(shù)據(jù)可視化研究。
AIS數(shù)據(jù)包括靜態(tài)信息和動(dòng)態(tài)信息兩部分[8]。靜態(tài)信息主要指船舶的名稱與類型等較固定的信息,通常在AIS初始化時(shí)輸入系統(tǒng),一般不進(jìn)行修改,主要包括唯一識(shí)別碼MMSI、船名NAME、船籍國(guó)家FLAG、船靜態(tài)時(shí)間STATICTIME等內(nèi)容。動(dòng)態(tài)信息來自于船上安裝的和航行有關(guān)的傳感器,它記錄了船舶的位置、航向等實(shí)時(shí)更新的數(shù)據(jù),該信息由AIS設(shè)備自動(dòng)讀取與發(fā)射,主要包括船舶唯一標(biāo)識(shí)MMSI、靜態(tài)時(shí)間STATICTIME、航點(diǎn)時(shí)間TIME、航點(diǎn)經(jīng)度LON、航點(diǎn)緯度LAT、對(duì)地航速SOG、對(duì)地航向COG等內(nèi)容。[9]
AIS時(shí)空大數(shù)據(jù)處理與可視化主要包括船舶軌跡點(diǎn)異常數(shù)據(jù)清洗、坐標(biāo)空間基準(zhǔn)轉(zhuǎn)換、數(shù)據(jù)入庫(kù)、去除漂移點(diǎn)、航跡線提取、航跡線壓縮、關(guān)聯(lián)靜態(tài)數(shù)據(jù)等階段,如圖1所示。
圖1 船舶時(shí)空大數(shù)據(jù)處理與可視化流程
AIS數(shù)據(jù)受信號(hào)傳輸、設(shè)備等因素影響,不可避免地會(huì)存在錯(cuò)誤,主要原因包括:1)設(shè)備缺少維護(hù)或長(zhǎng)時(shí)間運(yùn)行等原因出現(xiàn)問題或損壞;2)航行過程中遇到遮擋、惡劣天氣、航道中船舶數(shù)量過多,信號(hào)通信不暢;3)不同的監(jiān)控設(shè)備采集到的數(shù)據(jù),在進(jìn)行融合時(shí)出現(xiàn)問題;4)操作員沒有按照規(guī)范對(duì)數(shù)據(jù)進(jìn)行操作[10]。若直接用原始數(shù)據(jù)進(jìn)行研究分析,必然會(huì)影響結(jié)果的準(zhǔn)確性,因此,在開展下步處理工作前,需要依據(jù)不同字段的合理數(shù)據(jù)范圍,對(duì)不符合常識(shí)情況的數(shù)據(jù)進(jìn)行清洗,比如刪除MMSI長(zhǎng)度不為9的數(shù)據(jù)等,船舶航跡數(shù)據(jù)字段合理范圍如表1所示。
表1 船舶航跡數(shù)據(jù)字段合理范圍
AIS船舶軌跡數(shù)據(jù)和港口位置信息大多是基于地理坐標(biāo)系的經(jīng)緯度坐標(biāo),為了便于后續(xù)計(jì)算,入庫(kù)前需要將經(jīng)緯度坐標(biāo)轉(zhuǎn)換為墨卡托投影平面直角坐標(biāo)。轉(zhuǎn)換公式如下[4]:
式中,q為等量緯度,r0為基準(zhǔn)緯度的緯圈半徑,N0為基準(zhǔn)緯度處橢球的卯酉圈曲率半徑,φ0為墨卡托投影的基準(zhǔn)緯度,a為地球橢球長(zhǎng)半徑,e為橢球體第一偏心率,φ和λ為緯度和經(jīng)度,X和Y為轉(zhuǎn)換后的墨卡托投影平面直角坐標(biāo)。
為便于數(shù)據(jù)處理與應(yīng)用,需要將經(jīng)過清洗的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)。本文采用Greenplum作為存儲(chǔ)平臺(tái)[11],將AIS船舶數(shù)據(jù)分為四個(gè)表:全球港口數(shù)據(jù)表、船舶軌跡點(diǎn)表、船舶信息表和船舶航跡線表。如表2所示,全球港口數(shù)據(jù)表記錄港口位置、名稱、所屬國(guó)家等信息,作為判斷出入港航跡點(diǎn)的依據(jù);如表3所示,船舶軌跡點(diǎn)表存儲(chǔ)軌跡點(diǎn)位置、對(duì)地航速、對(duì)地航向等信息;如表4所示,船舶信息表記錄船舶名稱、貨物類型、船舶類型等信息,船舶軌跡點(diǎn)表與船舶信息表可通過船舶唯一標(biāo)識(shí)進(jìn)行關(guān)聯(lián);如表5所示,航跡線表記錄提取生成的航跡線幾何位置、出入港、行駛時(shí)間等信息。
表2 全球港口數(shù)據(jù)表
表3 船舶軌跡點(diǎn)表
表4 船舶信息表
表5 航線表
AIS記錄的動(dòng)態(tài)數(shù)據(jù)是帶有坐標(biāo)的海量點(diǎn)位數(shù)據(jù),不利于直接進(jìn)行分析,并且無法直接反映船舶航行軌跡信息,因此,需要在密集的采樣點(diǎn)中提取出描述原始航跡的關(guān)鍵點(diǎn),按時(shí)序連線形成航線[5]。同時(shí),由于點(diǎn)位數(shù)據(jù)較為密集,為便于可視化和反應(yīng)航行主要特征,需要對(duì)提取后的航線進(jìn)行壓縮處理。
1)航線提取
(1)根據(jù)船舶標(biāo)識(shí)mmsi,遍歷船舶軌跡點(diǎn)數(shù)據(jù),得到該mmsi所有軌跡點(diǎn);
(2)將該mmsi所有軌跡點(diǎn)與全球港口3000m緩沖區(qū)求交;
(3)判斷出入港點(diǎn)。取出一個(gè)緩沖區(qū),將落入該緩沖區(qū)中的航跡點(diǎn)按采樣時(shí)間排序,計(jì)算每個(gè)點(diǎn)到港口中心點(diǎn)的距離,并與前后兩個(gè)點(diǎn)的距離對(duì)比,如圖3所示,若距離變小,則該點(diǎn)為入港點(diǎn),若距離變大,則該點(diǎn)為出港點(diǎn)。據(jù)此,對(duì)每個(gè)緩沖區(qū)的航跡點(diǎn)進(jìn)行判斷。一個(gè)港口點(diǎn)可能有0個(gè)或多個(gè)出入港點(diǎn)。
圖2 航線提取流程
圖3 出入港判斷示意圖
(4)判斷航次出入港點(diǎn)。對(duì)某港口內(nèi)所有點(diǎn)按采樣時(shí)間排序,連續(xù)的入港點(diǎn)或連續(xù)的出港點(diǎn)各分為一組,每組入港點(diǎn)中時(shí)間最早的點(diǎn)為該組入港點(diǎn),每組出港點(diǎn)中時(shí)間最晚的點(diǎn)為該點(diǎn)出港點(diǎn);每個(gè)港口同一mmsi可能多次出入港口。
(5)提取航線。將該mmsi從一個(gè)港口的出港點(diǎn)到另一個(gè)港口的入港點(diǎn)的航跡點(diǎn),按采樣時(shí)間排序構(gòu)成航線。
2)航線壓縮
AIS數(shù)據(jù)采樣間隔時(shí)間短,數(shù)據(jù)密集,若全部用于構(gòu)成航線,不僅增大數(shù)據(jù)量,而且降低可視化效率。因此,需要對(duì)航線進(jìn)行壓縮處理,主要有SPM和Douglas-Peuker兩種算法[12~13]。
(1)SPM算法:如圖4所示,基本原理是將首尾兩點(diǎn)連接形成一條基線,從起點(diǎn)開始的第二個(gè)軌跡點(diǎn)依次向基線做垂線,得到垂直歐氏距離d,如果d小于預(yù)先設(shè)定的閾值δ,則舍棄該點(diǎn);直到出現(xiàn)軌跡點(diǎn)到基線的距離大于閾值,才將該點(diǎn)重新設(shè)置為起點(diǎn)。重復(fù)該步驟,直到所有的軌跡點(diǎn)都被掃描、選取。
圖4 SPM算法基本原理
(2)Douglas-Peuker算法:如圖5所示,連接線首尾兩個(gè)端點(diǎn),計(jì)算連線上其余節(jié)點(diǎn)到該直線距離,取其中最大的距離跟給定的閾值比較,若距離小于閾值,刪除端點(diǎn)以外的所有點(diǎn),若距離大于閾值則保留該點(diǎn),從該點(diǎn)將連線分成兩條,分別重復(fù)之前的方法,直至處理完畢所有點(diǎn)。
圖5 Douglas-Peuker算法基本原理
本文借助ArcGIS軟件的屬性連接功能,通過統(tǒng)計(jì)各個(gè)格網(wǎng)中航跡線個(gè)數(shù),生成全球航線密度圖[14],如圖6所示。準(zhǔn)備8級(jí)~11級(jí)4個(gè)全球范圍格網(wǎng)Shape,借助ArcGIS軟件的連接功能,在各個(gè)格網(wǎng)中自動(dòng)生成Count_字段,標(biāo)識(shí)落在格網(wǎng)中航跡線個(gè)數(shù),如圖7所示。
圖6 ArcGIS屬性連接
圖7 ArcGIS格網(wǎng)航跡線統(tǒng)計(jì)
利用ArcGIS軟件分級(jí)設(shè)色功能(圖8),按照各網(wǎng)格航線數(shù)進(jìn)行分級(jí)設(shè)色,可以得到不同顯示尺度下的航線密度圖,如圖9所示。
圖8 ArcGIS分層設(shè)色
圖9 全球船舶航線密度圖
為了驗(yàn)證本文全球船舶時(shí)空大數(shù)據(jù)處理方法的有效性與可用性,選取2014全球AIS動(dòng)態(tài)數(shù)據(jù)和5332個(gè)港口數(shù)據(jù)進(jìn)行數(shù)據(jù)處理試驗(yàn),原始航跡采樣點(diǎn)2809442564個(gè),按照本文2.2節(jié)方法進(jìn)行清洗后,試驗(yàn)數(shù)據(jù)1889890232個(gè),數(shù)據(jù)量141GB,按年存儲(chǔ)表索引容易超出服務(wù)器內(nèi)存,因此,采用按月份分表的方式分別入庫(kù)存儲(chǔ)。
對(duì)2014年航跡點(diǎn)數(shù)據(jù),根據(jù)前后兩點(diǎn)的距離和時(shí)間差,計(jì)算每個(gè)采樣點(diǎn)的速度,并繪制各月份速度直方圖,如圖10所示??梢钥闯?,采樣點(diǎn)速度基本分布在50海里/h以內(nèi),換算為墨卡托投影平面坐標(biāo)約25.72m/s。據(jù)此,將速度大于50海里/h的作為漂移點(diǎn)并去除。
圖10 2014年試驗(yàn)數(shù)據(jù)各月份航跡點(diǎn)速度分布
按照本文方法對(duì)2014年全球船舶航跡點(diǎn)試驗(yàn)數(shù)據(jù)進(jìn)行坐標(biāo)轉(zhuǎn)換、航線提取與壓縮處理。其中,分別采用SPM算法和Douglas-Peuker算法進(jìn)行航線壓縮處理,2014年1月份試驗(yàn)數(shù)據(jù)14095萬條,經(jīng)SPM算法壓縮后,剩余8萬條,壓縮速度較慢,適合局部數(shù)據(jù)的壓縮;經(jīng)Douglas-Peuker算法壓縮后,剩余12萬條線段,壓縮速度較快,適合全球數(shù)據(jù)的壓縮。如圖11所示,從壓縮后局部效果來看,兩種算法壓縮后可視化效果差別不大,綜合考慮處理速度,選擇Douglas-Peuker算法更適合全球船舶時(shí)空大數(shù)據(jù)處理。另外,本文通過大量試驗(yàn)對(duì)比發(fā)現(xiàn),兼顧航線細(xì)節(jié)保留和地圖顯示流暢度,得出地圖顯示級(jí)別為0~7級(jí)閾值取2500m,地圖顯示級(jí)別為8~11級(jí)閾值取200m,地圖顯示級(jí)別為12~14級(jí)不壓縮,對(duì)航線壓縮處理的效果更好。
圖11 SPM算法和Douglas-Peuker算法航線壓縮效果對(duì)比
壓縮后的航線采用密度圖的方式進(jìn)行可視化。利用Tippecanoe工具創(chuàng)建矢量瓦片數(shù)據(jù),發(fā)布至地圖服務(wù)器,通過Mapbox GL調(diào)用Java Script樣式文件實(shí)現(xiàn)Web端實(shí)時(shí)渲染,地圖顯示級(jí)別為8級(jí)~11級(jí)的密度圖可視化結(jié)果,分別如圖12~圖15所示。從圖中可以看出,隨著地圖顯示級(jí)別的增大,密度圖可視化的細(xì)節(jié)效果隨之增加,反映全球船舶航行的時(shí)空特征更加明顯。
圖12 8級(jí)顯示航線密度圖
圖13 9級(jí)顯示航線密度圖
圖14 10級(jí)顯示航線密度圖
圖15 9級(jí)顯示航線密度圖
本文以全球船舶時(shí)空大數(shù)據(jù)為研究對(duì)象,通過分析AIS航跡點(diǎn)信息,研究了船舶時(shí)空數(shù)據(jù)的清洗轉(zhuǎn)換、數(shù)據(jù)入庫(kù)存儲(chǔ)、航行提取與壓縮以及航線密度圖可視化方法,選用2014年AIS全球數(shù)據(jù)進(jìn)行試驗(yàn),驗(yàn)證了本文方法的有效性。下一步,將重點(diǎn)圍繞航線時(shí)空規(guī)律挖掘分析進(jìn)行研究。