船舶频繁模式模型
本模型結(jié)合頻繁模式常用算法FP-tree 算法進(jìn)行頻繁線路預(yù)測,同時對頻繁線路進(jìn)行相關(guān)屬性聚類,采用DBSCAN,進(jìn)行線段聚類(相關(guān)的FP-tree和DBSCAN會后續(xù)總結(jié))
一、需求分析
主要針對①每艘船舶經(jīng)常走的起止港口及經(jīng)停港口;②每類船舶(分不同噸位等級、分不同長度等級、分不同寬度等級、分不同吃水等級)經(jīng)常走的真實(shí)航跡線。數(shù)據(jù)統(tǒng)計(jì)周期為每個季度和每年。
統(tǒng)計(jì)數(shù)據(jù)內(nèi)容如下:
1、每艘船舶
(1)?? 常走起止港口、經(jīng)停港口
(2)?? 常走航跡線
(3)?? 港口平均停留時間
(4)?? 經(jīng)停港口間的平均行駛時間
(5)?? 從某個泊位出來經(jīng)常到某個港口(主要用于船舶在運(yùn)送不同類型的貨物的時候,可能目的港口不同,這個作為后續(xù)優(yōu)化方向)
2、港口間真實(shí)航跡線
(1)?? 港口與港口間的真實(shí)航跡線
(2)?? 航跡線的屬性:①可以航行哪些類型的船舶;②分類型的船舶的最大噸位;③可以航行船舶的最大長度;④可以航行船舶的最大寬度;⑤可以航行船舶的最大吃水深度。
二、輸入輸出輸出
2.1 輸入數(shù)據(jù)
1)船舶的OD數(shù)據(jù);
2)船舶的AIS數(shù)據(jù);
3)船舶的類型數(shù)據(jù);
三、模型
3.1 模型主要思路
1. 通過OD數(shù)據(jù)統(tǒng)計(jì)船只在一個季度/年內(nèi)的所有抵達(dá)港口,并統(tǒng)計(jì)其在該港口的平均時間、到港的次數(shù)、以及該船只在所有港口停留的平均時間。按照到港的次數(shù)進(jìn)行排序,得到到港次數(shù)大于等于2次(若數(shù)量少于3個,則取前三個;次數(shù)出現(xiàn)一次的港口排序按照在港時間,時間長的排在前邊)的港口為標(biāo)記港口;
2. 統(tǒng)計(jì)船只的航線的起始港口,并記錄途中經(jīng)停港口。
3. 通過統(tǒng)計(jì)的起始航線,運(yùn)用FP-tree頻繁統(tǒng)計(jì)方式來計(jì)算船只的頻繁線路。
4. 通過船只OD數(shù)據(jù)和AIS數(shù)據(jù)來確定港口間的真實(shí)航跡線;
5. 通過相同港口間的航跡線聚類,生成該港口間的航道信息,根據(jù)航道內(nèi)的航跡線數(shù)據(jù)來進(jìn)行屬性統(tǒng)計(jì),并關(guān)聯(lián)相應(yīng)的航跡線屬性表上。
?
3.2 模型流程框圖
?
3.3 模型的流程詳細(xì)說明
流程說明:
(一)輸入OD數(shù)據(jù)
(二)OD數(shù)據(jù)輸入后先進(jìn)行OD數(shù)據(jù)統(tǒng)計(jì),基于OD數(shù)據(jù)統(tǒng)計(jì)結(jié)果,再分別對OD數(shù)據(jù)進(jìn)行完整航線統(tǒng)計(jì)(三)和真實(shí)航跡線生成處理(四)。
(三)完整航線統(tǒng)計(jì)——1)根據(jù)OD數(shù)據(jù)和OD節(jié)點(diǎn)數(shù)據(jù)信息判斷船只航行過程中起始、經(jīng)停、終止港口,起始港口到終止港口為完整一條航線,統(tǒng)計(jì)該條船所有的航線;2)根據(jù)FP-tree方法對該條船的航線進(jìn)行頻繁統(tǒng)計(jì)(具體統(tǒng)計(jì)過程見下文);3)根據(jù)2)中統(tǒng)計(jì)結(jié)果,確定該船只的頻繁線路,輸出該船的頻繁線路數(shù)據(jù)。
(四)真實(shí)航跡線生成——1)輸入處理港口間的所有船只OD數(shù)據(jù)和對應(yīng)的船只AIS數(shù)據(jù);2)以船只的original_out_utc 時間對應(yīng)的時間點(diǎn)開始,到destination_in_utc時間點(diǎn)結(jié)束,對該船只AIS數(shù)據(jù)進(jìn)行稀疏化——每隔兩海里保留一個AIS點(diǎn)。該段內(nèi)的稀疏點(diǎn)跡作為該船在這兩個港口間航行的真實(shí)航跡線,保存該航跡線。
(五)航道屬性統(tǒng)計(jì):1)基于(四)的真實(shí)航跡線數(shù)據(jù),統(tǒng)計(jì)該條航跡線數(shù)據(jù)的特征點(diǎn),根據(jù)特征點(diǎn)對OD數(shù)據(jù)進(jìn)行分段處理,且特征點(diǎn)的連線作為該段的特征直線;2)對所有OD的特征直線根據(jù)DBSCAN方法進(jìn)行聚類;3)統(tǒng)計(jì)每類航道的屬性(船只最大噸位、船只最大寬度、船只最大長度、船只最大吃水深度),保存相應(yīng)航道信息;4)相同類別內(nèi)航跡線段共享該類內(nèi)的屬性,填充航跡線對應(yīng)的屬性信息。
(六)對(一)~(五)進(jìn)行循環(huán)處理,直到所有船只頻繁模式和所有港口真實(shí)航跡線處理完畢。
流程中具體操作解釋說明:
1. OD數(shù)據(jù)統(tǒng)計(jì):
1)統(tǒng)計(jì)該船只一年的OD數(shù)據(jù),記錄所有的抵達(dá)港口、抵達(dá)港口的次數(shù)、抵達(dá)港口的平均停留時間 ,以及其在所有港口的平均停留時間 ;
2)對統(tǒng)計(jì)的結(jié)果,按照港口抵達(dá)次數(shù)進(jìn)行排序,將到港次數(shù)大于等于2次(若數(shù)量少于3個,則取前三個)的港口作為標(biāo)記港口。
?
2. 船只完整航線統(tǒng)計(jì):1)根據(jù)OD數(shù)據(jù)和OD節(jié)點(diǎn)數(shù)據(jù)來判斷船只航行起始港口、經(jīng)停港口、終止港口;2)起始到終止港口為一個完整的航線。
起始港口判斷:
①OD數(shù)據(jù)的起始點(diǎn)港口(original_port);
②之前的OD已經(jīng)標(biāo)記為終止,則線路重新開始時的original_port為起始港口;
經(jīng)停港口判斷:
①OD中的destination_port港口對應(yīng)的node_type為泊位,且在港停留時間T滿足 ;
終止港口判斷:
①OD中的destination_port港口對應(yīng)的node_type為泊位,且在港停留時間T滿足 ;
②若起始港或之前的經(jīng)停港出現(xiàn)過該港口,則對該條線路拆分為兩條;第一條為起始港到該港之前的經(jīng)停港,第二條為該港之前的經(jīng)停港轉(zhuǎn)為起始港,該港作為終止港保存。
根據(jù)上述的起始港口、經(jīng)停港口、終止港口來判斷船只的起止港口,。
?
3. FP-tree統(tǒng)計(jì)港口(泊位)到港口的頻繁線路:
1)統(tǒng)計(jì)港口到港口:
2中統(tǒng)計(jì)的船只航線,按照1中的標(biāo)記港口對起止港口進(jìn)行排序,出現(xiàn)次數(shù)多的排在前邊;統(tǒng)計(jì)相同線路數(shù)據(jù)。
2)泊位出發(fā)統(tǒng)計(jì):
根據(jù)1)獲取的港口到港口頻繁數(shù)據(jù),增加泊位數(shù)據(jù)進(jìn)行劃分,統(tǒng)計(jì)相同泊位出發(fā)到達(dá)的港口的次數(shù),出現(xiàn)次數(shù)大于等于2次則記錄。
4. 根據(jù)OD數(shù)據(jù)和AIS數(shù)據(jù)生成港口間的真實(shí)航跡線:
根據(jù)港口間OD數(shù)據(jù)和AIS數(shù)據(jù)進(jìn)行稀疏化表示,以original_out_utc對應(yīng)點(diǎn)為起始點(diǎn),每隔2海里記錄一個新的點(diǎn),直到destination_out_utc。
5. 基于DBSCAN線段聚類方法,對所有在此港口間航行的航跡線進(jìn)行聚類,獲取兩個港口間真實(shí)航道信息,統(tǒng)計(jì)航道屬性,并關(guān)聯(lián)相應(yīng)的航跡線。
?
注:
DBSCAN線段聚類算法:
1)軌跡特征點(diǎn)提取:
兩點(diǎn)P1(x1,y1),P2(x2,y2)的正向直線方程F12的表達(dá)式為
F12(x,y) = (y2 - y1)(x –x1)+(x2 – x1)(y – y1);
P1(x1,y1),P2(x2,y2), P3(x3,y3),P4(x4,y4)是連續(xù)的四個點(diǎn)。連接P1,P2的直線方程F12(x,y),計(jì)算F12(x3,y3);連接P2,P3的直線方程F23(x,y),計(jì)算F23(x4,y4)。若F23(x,y)* F23(x4,y4)< 0 ,則P3(x3,y3)為特征點(diǎn)。
軌跡線的起止點(diǎn)為特征點(diǎn),起止點(diǎn)之間的點(diǎn)則通過上述方法生成。
2)計(jì)算兩段特征直線間的距離
軌跡線中兩特征點(diǎn)P1,P2;另一條軌跡線中兩特征點(diǎn)A,B。θ為兩特征線段的夾角,A點(diǎn)到P1P2的距離為L1,B點(diǎn)到P1P2的距離為L2.
條件處理:
①AB與P1P2相交則,兩線段間距離為0;
②若A,B兩點(diǎn)的x坐標(biāo)在P1P2內(nèi),則分別計(jì)算L1和L2,AB到P1P2的距離為 ;
③若A,B兩點(diǎn)的x坐標(biāo)與P1P2所在x范圍有交集,則需要計(jì)算L1和L2,以及P1,P2到AB的距離L3和L4,此時AB到P1P2的距離為L1、L2、L3、L4中最小的一個;
④若A,B兩點(diǎn)x坐標(biāo)與P1P2所在的x范圍沒有交集,則分別計(jì)算P1,A;P1,B;P2,A;P2,B的距離,取最小的距離作為兩線段的最小距離。
3)軌跡間聚類
①以某條軌跡為標(biāo)準(zhǔn)計(jì)算該軌跡所在的航道數(shù)據(jù)。
②起始線段為起始,開始計(jì)算:該線段與其它軌跡線線段的距離,若軌跡線段間的距離小于5海里,則將其歸為一類。統(tǒng)計(jì)所有與該軌跡線段距離小于5海里的線段,并將其歸為一類。
③依次循環(huán)所有未分類的軌跡線,統(tǒng)計(jì)其軌跡線內(nèi)的分類。
如果該軌跡內(nèi)部分線段屬于A類,部分線段屬于B類,則該軌跡需要記錄兩類的分界點(diǎn)和屬性值。
④統(tǒng)計(jì)各個分類內(nèi),船只的類型、船舶的最大噸位、船舶的最大長度船舶的最大寬度、船舶的最大吃水深度。
⑤對于該類內(nèi)的線段就行屬性與軌跡線進(jìn)行關(guān)聯(lián)。
總結(jié)
- 上一篇: 大数据开发岗位的几个方向
- 下一篇: 怎样将多个视频快速分割成两段或者多段