热门标签 | HotTags
当前位置:  开发笔记 > 大数据 > 正文

数据清洗:由坐标数据构成的轨迹去除漂移点的操作

版权声明:转载请注明作者(独孤尚良dugushangliang)出处:https:blog.csdn.netdugushan

版权声明:转载请注明作者(独孤尚良dugushangliang)出处:https://blog.csdn.net/dugushangliang/article/details/102821219

 

先看看我们要处理的数据。

首先根据点的经纬度数值,做成点,串成线。这个过程八仙过海各显神通。若有人束手无策,可以看看鄙人的相关文章。

言归正传。

打开串成的线,整体上看,效果不错吧,如果你这么想,那你还是太嫩了。

但放大看局部,如下图所示。崩溃吧?

遇到问题,首先应该是找找有没有前人的经验。

嗯嗯,不错不错,搜到了搜到了。都打开看看,嗯嗯呢,这个,呃呃,看不懂啊……文字是半懂不懂,公式是一窍不通。

但问题还是要解决的,怎么破?

——————————我是分割线——————————

经观察,这种一般在10米之内,所以鄙人猜测这是由于GPS终端在停止状态时由于各种原因导致的漂移。这怎么处理?点距在10米内的都给去了。即:根据时间顺序排序后,A点为起始点,如果A点下一个B点在10米内则去掉这个B点并继续获取下一个点作为B点进行判断,直到有一个点不在10米内,然后把这个点作为A点继续判断。

很好,效果好了很多,但还是有问题。

想了好久,寤寐思服,辗转反侧,终于……

咳咳……来人呐!把狗头铡请来……哦……不……把向量请来。

这种漂移点都是尖角,用向量判断这个点的取舍。于是,我结合这个实际情况,提出两个凡是的方针。

凡是距离在10米内的一律去掉。

凡是构成尖角的一律不留。

至于具体效果?

再验吧,至少相比之前提升了很多,但可以肯定的是还有很多优化空间。

这就是二八定律——二成的操作去掉八成的问题。

(特别叮嘱:要活学活用,理论与实际相结合,提出并实践个人特色轨迹漂移点去除办法)

进一步优化的操作是:尖角剔除30°以内的,如果是30°-60°则结合实际判断取舍。

来看看第一次优化效果图,红线是取了开头一部分数据做优化处理的结果。

在第一次优化基础上进行第二次优化的结果,其中红线是优化后结果,黑线是第一次优化的开头区域的局部。

为什么还要留着向左向右的线段呢?为什么不直接从上到下呢?因为车要掉头啊,如果车辆在某一条路掉头,形成尖角是很正常的。

 

独孤尚良dugushangliang——著


推荐阅读
author-avatar
安南微
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有