模仿dbscan聚类算法过滤清洗轨迹数据

 一般情况下,获取到的轨迹数据展示效果不会很好,需要进行预处理,如何删除大量没用数据呢?或者如何提取停留点,研究了三天,刚开始打算使用dbscan聚类来实现,但是发现效率非常低,2000多个点要好几分钟,遂放弃,自己仿照dbscan的思想写了一个算法。后面再补算法的过程,先来看下结果,删除了1172个点(圆点就是删除的点,或者说是停留点,总点数2200个左右),效果非常好。

算法过程:

模仿dbscan聚类算法过滤清洗轨迹数据_第1张图片

模仿dbscan聚类算法过滤清洗轨迹数据_第2张图片

模仿dbscan聚类算法过滤清洗轨迹数据_第3张图片

模仿dbscan聚类算法过滤清洗轨迹数据_第4张图片

模仿dbscan聚类算法过滤清洗轨迹数据_第5张图片

模仿dbscan聚类算法过滤清洗轨迹数据_第6张图片

 猜想:如果窗口设置小一点,循环的时候判断窗口内少于N个点,是不是也可以进行异常值的剔除。

 下面补上代码:

其中

    是轨迹数据
    openlayers加载底图代码
    轨迹播放代码,这个例子也可以忽略,删除相应代码即可
    卡尔曼算法,还在研究,这里可以忽略





    轨迹回放调用示例 
     
     
	


    
回放速度:

 

你可能感兴趣的:(地图,GIS,算法,GIS算法专栏)