2013-03-25 73 views
0

我需要分析一組python中的GPS座標。我需要找出最常出現的位置。鑑於GPS數據的精確性問題,位置的精度不是很高。難explan(和搜索對谷歌的相關信息),因此一個例子:Python:在一組GPS座標中找出最常見的位置

  • 我從家裏每天開車上班2個月
  • 我開始了我的GPS記錄每次行程,並在年底停止行程
  • 偶爾的,我去別的地方

如果我跑我需要分析其中驅動器啓動和停止,以讓我們說20米的位置半徑精確座標的劇本,我會找到的最常見的地方是我的家和我的工作(每個半徑20米)。我在哪裏停放在這個半徑內並不重要。

python中是否有可執行此類操作的庫?你有什麼建議?

感謝

+0

爲了降低精度,我只是放棄最後幾位數字。 – CoffeeRain 2013-03-25 20:15:04

+1

根據lat/long計算2點之間的距離非常簡單...這是畢達哥拉斯定理的東西。由於您的座標數量相對較少(僅限開始和停止),只需執行一些簡單的數學運算即可,無需庫。 – Endophage 2013-03-25 20:21:03

+0

@Endophage ......我看到了,不需要考慮地球曲率? – otmezger 2013-03-25 20:22:59

回答

0

計數最頻繁的地方,一個簡單的辦法是逗號後只使用latitdue /經度小數點後第3位,或更好輪3個位數。

在aequator:

4位:11米
3個位數111米
2位數1.1公里
1位數11.1公里
0位數111.111公里(二子午線之間的距離):40 000 000/360

然後,您可以使用散列表,與e,g 1000相乘以除去3個小數點, 並作爲java.awt.Point存儲在散列表中。

有更好的解決方案,但這是第一個想法。

+0

我不認爲這是一個好主意,因爲如果我有一個點之間的2「4位數」,它會得到舍入錯誤 – otmezger 2013-03-25 20:28:04

+0

位於該3位網格的邊界上的一個點可以落在另一個網格中。但在60米至100米的光柵上可以,然後在最糟糕的情況下,如果您的停車位有所不同,您的家中有兩個熱點。所有其他解決方案都需要高度特殊的地理空間知識知識。 (例如使用PMR四叉樹等)您可能會閱讀Hana Samet:多維和度量標準搜索結構的基礎。 – AlexWien 2013-03-25 21:23:05

+0

更新答案,將其舍入爲3位數字。 (想象一下像棋盤一樣的靈魂,以及你駕駛的軌道,就像麪包屑一樣,當面包屑落在它上面時,你會增加每個國際象棋場地的反作用力。) – AlexWien 2013-03-25 21:24:32

1

如果你在你去的地方最感興趣,你可以從每個驅動器以第一和最後一個點考慮,只有當你有超過X時間取中間點。也許如果你在過去的數據點的平均速度小於某個閾值。這會使應用某種聚類技術變得更容易(如k-means clustering)。

可能派上用場的東西是使用approximate nearest neighbors找到任何給定的點相對靠近點的集合。要從圖形中取出一個頁面,你甚至可以嘗試在所有數據點的空間上疊加一個精細分辨率的網格,並且爲每個點在這個網格上製作一個小半徑的圖示。每次添加一個圖示時,您都可以累積您在該點上花費的時間,然後隨着時間的累積,保持跟蹤網格中的點數。

相關問題