Python:找出一组gps坐标上最常见的位置

时间:2013-03-25 20:13:43

标签: python geolocation gps

我需要在python中分析一组GPS坐标。我需要找出最常见的位置。鉴于GPS数据的精确度问题,位置的精度不是很高。难以解释(以及在谷歌上搜索信息),因此举个例子:

  • 我每天开车上班2个月
  • 我为每次旅行启动了我的gps记录器,并在行程结束时停止
  • 偶尔,我会去别的地方

如果我运行脚本,我需要分析驱动器启动和停止的坐标,位置半径精度为20米,我会发现最常见的地方是我的家和我的工作(每个都有一个半径20米)。我在这个半径范围内停在哪里并不重要。

python中是否有可以执行此类操作的库?您有什么推荐的吗?

由于

2 个答案:

答案 0 :(得分:1)

如果你对你去过的地方最感兴趣的话,你可以考虑从每个驱动器获取第一个和最后一个点,并且如果你在那里超过 x 时间,只考虑中间点。也许如果你在那个点上超过最后 k 数据点的平均速度低于某个阈值。这应该可以更容易地应用一些聚类技术(如k-means clustering)。

可能派上用场的东西是使用approximate nearest neighbors在任何给定点找到相对靠近它的点的集合。

要从图形中获取页面,您甚至可以尝试在所有数据点的空间上叠加精细分辨率网格,并为每个点在此网格上创建一个小半径的图形。每次添加splat时,您都可以累积在该点上花费的时间,然后随着时间的推移跟踪网格中的点数。

答案 1 :(得分:0)

对于最频繁的位置计数,一个简单的方法是仅使用latitdue /经度小数点后的前3位数,或者使用逗号后更好地舍入3位数。

在aequator:

4位数:11 m
3位数111m
2位数1.1km
1位数11.1km
0位111.111 km(两条子午线之间的距离):40 000 000/360

然后你可以使用哈希表,乘以e,g 1000来摆脱3个小数点, 并在哈希表中存储为java.awt.Point。

有更好的解决方案,但这给出了第一个想法。