首页 > 解决方案 > 使用 python 预测长期船舶位置

问题描述

我有这个关于船舶位置的历史数据数据集

id : the id of the ship
date : the date when the position was recorded (on a daily basis) 
size: the size of the ship (categorical with 3 categories)
longitude
latitude
zone : binary (the variable to predict) 
destination: The port of destination
heading : a numerical variable indicating the angle of direction of the ship

所以一个典型的行看起来像

id    date        size   longitude   latitude   zone   destination   heading
123   20/04/2017  PMX    26.3565     -15.7474   True   NYC           36.7654

根据一些标准,我可以意识到,对于每艘船,它们过去所制造的一组不同的轨迹。所以我创建了一个新功能,我称之为轨迹。我还创建了一个速度变量所以我的新数据框看起来像这样

id    date        size   longitude   latitude   zone   destination   heading  trajectory
123   20/04/2017  PMX    26.3565     -15.7474   True   NYC           36.7654    1
123   21/04/2017  PMX    29.3556     -18.7498   True   NYC           46.7654    1
123   15/05/2017  PMX    36.8760     12.3449    False  CHINA         78.7640    2
...   ........    ..       .....     .....      ....   ....          ......     ..
567  13/04/2017   SFD    17.8687     16.8787    False  Balb          23.3232    3

我必须为该区域实施一个分类算法,以说明在接下来的 30 天内一艘船是否会经过这里。我读过一些关于使用轨迹之间的一些自定义距离进行 DBSCAN 聚类的论文。但这是为了预测位置。所以我想知道是否有更简单的方法来解决这个问题?

标签: pythongeospatialforecastingdbscan

解决方案


对于典型的远洋货船来说,30 天基本上是一趟,但有时是两趟。

使用的路径往往非常相似,因为它们被认为是最优的(围绕风暴的模路由)。这些路线不仅对于同一艘船是一致的,而且在所有大小大致相似的船舶之间都是一致的。

因此,一种方法是从您的历史数据中构建一个路线库,而不是对位置进行聚类,而是对路径进行聚类。如果起点和终点相同或相似,则应检查路线的相似程度。“CHINA”不是一个足够精确的目的地,所以如果这是您的真实输入数据,您应该丢弃该列并通过检查每个旅程的实际最后位置附近哪个港口来生成您自己的目的地。

一旦他们离开陆地,货船的速度就会有点均匀,所以预测的路线应该足以预测旅途中每一天的位置。当然,一旦开始,您就可以根据已有的数据测试您的预测器。

你的目标区域越小,这就越难。希望它们相当大。


推荐阅读