数据源和相关代码
- Python环境搭建
我们将使用Pycharm编辑器+Anaconda环境管理的方式(在Windows操作系统下演示),利用Python完成AIS预处理和轨迹聚类的步骤。Anaconda最主要的作用是使用conda命令创建虚拟环境,用以隔离不同项目的依赖关系,避免不同环境之间的冲突。Anaconda下载链接( https://www.anaconda.com/download/success )。当完成Anaconda下载后,在安装阶段,需要勾选“设置为环境变量”。然后,打开Anaconda Powershell Prompt,完成Python环境的搭建
其中(base)指的是默认环境,conda info -e则是查看有哪些环境的命令,以下给出创建环境-安装包的步骤:
(1)配置国内镜像源
(2)创建环境my_env并指定python版本3.9,使用conda create -n my_env python=3.9命令进行创建
(3)查看当前环境数量,使用conda info -e查看
(4)激活环境,使用conda activate my_env完成激活
(5)安装numpy, pandas和matplotlib,使用conda install numpy, pandas, matplotlib,并使用conda list查看是否安装成功以上是Anconda环境的配置。但是,在正式书写代码之前,还需将Pycharm编辑器与Anaconda环境管理进行结合。以下是在Pycharm上配置conda环境的步骤:
另一种更换conda环境的路径配置:File -> settings ->Project: 项目名 -> Python Interpreter -> Add Interpreter -> Add Local Interpreter -> Conda Environment -> Use existing environment -> my_env
- AIS数据预处理
由于AIS数据接收基站无法做到全覆盖、船舶AIS设备工作异常等原因,AIS数据存在着数据丢失、数据噪声、数据记录重复等客观问题。在使用”分段-去噪-压缩“轨迹质量提升策略之前,首先对AIS数据中的明显错误做出滤除或填补,如一般商船的速度speed超过30kn,对地航向course超出0-360°范围等。
本文使用的船舶 AIS 数据的时间范围为 2022 年 1 月 1 日-2022 年 12 月 31日,研究数据来源于上海迈利船舶科技有限公司,实验数据共有584,463行,涉及1000个不同航次下的298条船的轨迹数据,数据存储格式为csv文件(在帖子内会附上实验数据和代码),voyage_id和length分别是航次编号和船舶长度,下图为包含噪声点AIS数据的可视化结果。
下图是使用Python第三方库pandas读取AIS数据的样例代码截图:
可以看出,速度的最大值为38.9,明显超出了合理范围,因此需要删除或修补,上述为使用conda安装的jupyter notebook,有兴趣的读者可以尝试使用conda命令安装,在Pycharm里也可以使用。在这里我们给出预清洗的代码:
可以看出清洗后,实验数据由584,463行减少为584,139。