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