工具:
1、geopandas:GeoPandas提供了地理空间数据的高级接口,它让使用python处理地理空间数据变得更容易。安装geopandas的过程比较复杂,需要安装GDAL、shapely、fiona、pyproj的等依赖包。推荐使用.whl文件安装,注意要安装对应Python版本的包,最后使用pip install geopandas
命令在anaconda prompt中安装geopandas。
2、Kepler.gl:数据可视化工具。
数据处理
1.数据读取
我们的数据由7000艘船的运行记录构成,分别保存在7000个csv文件中,我们需要把他们concat起来。变量主要有ID、lat、lon、speed、direction、time、type。
image.png
其中,lat、lon是平面坐标系中的坐标,我们需要把它表示为经度、纬度。
2.生成新的变量:time_array(相邻两个记录的时间差)、dist_array(相邻两个记录的位置差)、coord_speed(dist_array/time_array)
3.异常值
speed:设置一个阈值,在阈值之外用缺失值代替,然后用
interpolate
函数中的线性插值填补缺失值。time_array、dist_array、coord_speed:这三个变量用3西格玛原则剔除异常值。
4.数据压缩
由于数据量过大,如果直接将轨迹异常点剔除的数据用kepler.gl展示则在程序运行时会出现卡顿,或者无法运行的情况,此时利用geopandas对数据利用douglas-peucker算法进行简化。有效简化后的矢量数据可以在不损失太多视觉感知到的准确度的同时,带来巨大的性能提升。
数据可视化
使用全部数据的可视化结果:
image.png
三种捕鱼方式的运行轨迹图:
image.png
image.png
image.png