前前言最近在上海出差,有对数据挖掘和机器学习的实践感兴趣,想要面基的小伙伴可以联系我。
联系方式在 Resume 里面,也可以看一下我的介绍,到时候咱们可以面基面的更有针对性。
困死了,实在写不下去了,前两节定的内容公式太多,打的我脑壳子痛,急需一份睡眠来缓解一下……
前言
GPS数据是很重要的用户数据,但同时其处理也是特别困难的,在信号不好的时候容易产生噪声,很多时候用户的行为本身也自带噪声(相对于描述用户的模型来说)。GPS数据是分布在球面上的一组数据(如果忽略海拔和地球的偏心率),而从我实际的工作中来看,能直接使用的代码也是特别的少。
GPS数据处理的好,是能挖出金矿的,本文力求从工程实践的角度出发来写GPS数据的处理,在公式的推导上也力求眼睛。
我以Java为语言(因为我司业务系统用Java,我只能用JVM系的语言,否则妥妥C+Python),力求清楚的描述清楚GPS数据处理常用的算法和原理。
目前代码零零碎碎的都写完了,但是还没有好好的整理,我会在一个月内整理成一个完整的库,手册的话看情况写~
目录GPS数据简述GPS数据的采集
GPS数据的一般记录格式
球面上的测地线测地线的长度求取
点到测地线的最短测地线
困死爹了,实在写不下去了,以下内容作为下卷出现吧!GPS序列操作GPS序列的清洗
GPS轨迹长度求和
GPS序列的压缩
Geo Hash 计算概述简单的GeoHash模型
高精度GeoHash模型
GPS数据简述
GPS数据的采集
GPS数据主要由GPS模块采集,一般的GPS模块通过串口通信来报告自己的方位,一般都是遵循NMEA-0183协议的,这个协议可以百度到。 我们一般通过软件Filter(我还没见过哪家MCU支持这个协议的,是我孤陋寡闻了)配合模块自带的Filter功能来采集有效的GPS信息(也包括UTC时间的信息),也可以通过串口设置采集频率和设置过滤器,各家有所不同,需要仔细阅读文档。 下图是一个随便走淘宝上找的GPS模块。
关于GPS的信号采集代码,我提供一份我写的STM32F407上的版本: gps.c
这里就不赘述了,这个不是重点。
GPS数据的一般记录格式
在这里我们不关心方向,速度,海拔,我们手动忽略这些东西,我们关心的其实是经度和纬度,一般的,我们使用负数表示南纬和西经。 经纬度的