船舶频繁模式模型

本模型结合频繁模式常用算法FP-tree 算法进行频繁线路预测,同时对频繁线路进行相关属性聚类,采用DBSCAN,进行线段聚类(相关的FP-tree和DBSCAN会后续总结)

一、需求分析

主要针对①每艘船舶经常走的起止港口及经停港口;②每类船舶(分不同吨位等级、分不同长度等级、分不同宽度等级、分不同吃水等级)经常走的真实航迹线。数据统计周期为每个季度和每年。

统计数据内容如下:

1、每艘船舶

(1)   常走起止港口、经停港口

(2)   常走航迹线

(3)   港口平均停留时间

(4)   经停港口间的平均行驶时间

(5)   从某个泊位出来经常到某个港口(主要用于船舶在运送不同类型的货物的时候,可能目的港口不同,这个作为后续优化方向

2、港口间真实航迹线

(1)   港口与港口间的真实航迹线

(2)   航迹线的属性:①可以航行哪些类型的船舶;②分类型的船舶的最大吨位;③可以航行船舶的最大长度;④可以航行船舶的最大宽度;⑤可以航行船舶的最大吃水深度。

二、输入输出输出

2.1 输入数据

1)船舶的OD数据;

2)船舶的AIS数据;

3)船舶的类型数据;

三、模型

3.1 模型主要思路

1. 通过OD数据统计船只在一个季度/年内的所有抵达港口,并统计其在该港口的平均时间、到港的次数、以及该船只在所有港口停留的平均时间。按照到港的次数进行排序,得到到港次数大于等于2次(若数量少于3个,则取前三个;次数出现一次的港口排序按照在港时间,时间长的排在前边)的港口为标记港口;

2. 统计船只的航线的起始港口,并记录途中经停港口。

3. 通过统计的起始航线,运用FP-tree频繁统计方式来计算船只的频繁线路。

4. 通过船只OD数据和AIS数据来确定港口间的真实航迹线;

5. 通过相同港口间的航迹线聚类,生成该港口间的航道信息,根据航道内的航迹线数据来进行属性统计,并关联相应的航迹线属性表上。

 

3.2 模型流程框图

船舶频繁模式模型

 

3.3 模型的流程详细说明

流程说明:

(一)输入OD数据

(二)OD数据输入后先进行OD数据统计,基于OD数据统计结果,再分别对OD数据进行完整航线统计(三)和真实航迹线生成处理(四)。

(三)完整航线统计——1)根据OD数据和OD节点数据信息判断船只航行过程中起始、经停、终止港口,起始港口到终止港口为完整一条航线,统计该条船所有的航线;2)根据FP-tree方法对该条船的航线进行频繁统计(具体统计过程见下文);3)根据2)中统计结果,确定该船只的频繁线路,输出该船的频繁线路数据。

(四)真实航迹线生成——1)输入处理港口间的所有船只OD数据和对应的船只AIS数据;2)以船只的original_out_utc 时间对应的时间点开始,到destination_in_utc时间点结束,对该船只AIS数据进行稀疏化——每隔两海里保留一个AIS点。该段内的稀疏点迹作为该船在这两个港口间航行的真实航迹线,保存该航迹线。

(五)航道属性统计:1)基于(四)的真实航迹线数据,统计该条航迹线数据的特征点,根据特征点对OD数据进行分段处理,且特征点的连线作为该段的特征直线;2)对所有OD的特征直线根据DBSCAN方法进行聚类;3)统计每类航道的属性(船只最大吨位、船只最大宽度、船只最大长度、船只最大吃水深度),保存相应航道信息;4)相同类别内航迹线段共享该类内的属性,填充航迹线对应的属性信息。

(六)对(一)~(五)进行循环处理,直到所有船只频繁模式和所有港口真实航迹线处理完毕。

流程中具体操作解释说明:

1. OD数据统计:

1)统计该船只一年的OD数据,记录所有的抵达港口、抵达港口的次数、抵达港口的平均停留时间 ,以及其在所有港口的平均停留时间 ;

2)对统计的结果,按照港口抵达次数进行排序,将到港次数大于等于2次(若数量少于3个,则取前三个)的港口作为标记港口。

 

2. 船只完整航线统计:1)根据OD数据和OD节点数据来判断船只航行起始港口、经停港口、终止港口;2)起始到终止港口为一个完整的航线。

起始港口判断:

①OD数据的起始点港口(original_port);

②之前的OD已经标记为终止,则线路重新开始时的original_port为起始港口;

经停港口判断:

①OD中的destination_port港口对应的node_type为泊位,且在港停留时间T满足 ;

终止港口判断:

①OD中的destination_port港口对应的node_type为泊位,且在港停留时间T满足 ;

②若起始港或之前的经停港出现过该港口,则对该条线路拆分为两条;第一条为起始港到该港之前的经停港,第二条为该港之前的经停港转为起始港,该港作为终止港保存。

根据上述的起始港口、经停港口、终止港口来判断船只的起止港口,。

 

3. FP-tree统计港口(泊位)到港口的频繁线路:

1)统计港口到港口:

2中统计的船只航线,按照1中的标记港口对起止港口进行排序,出现次数多的排在前边;统计相同线路数据。

2)泊位出发统计:

根据1)获取的港口到港口频繁数据,增加泊位数据进行划分,统计相同泊位出发到达的港口的次数,出现次数大于等于2次则记录。

4. 根据OD数据和AIS数据生成港口间的真实航迹线:

根据港口间OD数据和AIS数据进行稀疏化表示,以original_out_utc对应点为起始点,每隔2海里记录一个新的点,直到destination_out_utc。

5. 基于DBSCAN线段聚类方法,对所有在此港口间航行的航迹线进行聚类,获取两个港口间真实航道信息,统计航道属性,并关联相应的航迹线。

 

注:

DBSCAN线段聚类算法:

1)轨迹特征点提取:

两点P1(x1,y1),P2(x2,y2)的正向直线方程F12的表达式为

F12(x,y) = (y2 - y1)(x –x1)+(x2 – x1)(y – y1);

P1(x1,y1),P2(x2,y2), P3(x3,y3),P4(x4,y4)是连续的四个点。连接P1,P2的直线方程F12(x,y),计算F12(x3,y3);连接P2,P3的直线方程F23(x,y),计算F23(x4,y4)。若F23(x,y)* F23(x4,y4)< 0 ,则P3(x3,y3)为特征点。

轨迹线的起止点为特征点,起止点之间的点则通过上述方法生成。

2)计算两段特征直线间的距离

船舶频繁模式模型

轨迹线中两特征点P1,P2;另一条轨迹线中两特征点A,B。θ为两特征线段的夹角,A点到P1P2的距离为L1,B点到P1P2的距离为L2.

条件处理:

①AB与P1P2相交则,两线段间距离为0;

②若A,B两点的x坐标在P1P2内,则分别计算L1和L2,AB到P1P2的距离为 ;

③若A,B两点的x坐标与P1P2所在x范围有交集,则需要计算L1和L2,以及P1,P2到AB的距离L3和L4,此时AB到P1P2的距离为L1、L2、L3、L4中最小的一个;

④若A,B两点x坐标与P1P2所在的x范围没有交集,则分别计算P1,A;P1,B;P2,A;P2,B的距离,取最小的距离作为两线段的最小距离。

3)轨迹间聚类

①以某条轨迹为标准计算该轨迹所在的航道数据。

②起始线段为起始,开始计算:该线段与其它轨迹线线段的距离,若轨迹线段间的距离小于5海里,则将其归为一类。统计所有与该轨迹线段距离小于5海里的线段,并将其归为一类。

③依次循环所有未分类的轨迹线,统计其轨迹线内的分类。

如果该轨迹内部分线段属于A类,部分线段属于B类,则该轨迹需要记录两类的分界点和属性值。

④统计各个分类内,船只的类型、船舶的最大吨位、船舶的最大长度船舶的最大宽度、船舶的最大吃水深度。

⑤对于该类内的线段就行属性与轨迹线进行关联。