2011-09-05 36 views
6

給定一個具有未知錯誤值的地理編碼地點列表和一個噪聲較少的公共更正數據庫(距離最近的大多數是可靠的)的數據庫,我應該如何設計一個算法考慮所有的修正,以最準確地逼近真實位置?糾正多個地理傳感器讀數中的噪聲

靜止座標和傳感器讀數都是嘈雜的,所以它類似於地理簽到問題。它讓我想起了一個已知的多噪聲傳感器問題,您可以在此模擬噪聲並計算最可能的值,但我不記得解決方案。

所有座標在SQL Server 2008中都以geography::POINT類型存儲,因此該平臺的高效解決方案將非常有用。


澄清:座標是時間。每個讀數來自獨特的傳感器,無需重複測量。

回答

2

Alhtough我不知道如何實現,在SQL Server 2008中一個好的算法可能是http://en.wikipedia.org/wiki/Kalman_filter(見http://www.developerstation.org/2011/09/kalman-filter-for-dummies-tutorials.html)。

對於它可能會有所幫助使用從SQL Server中的空間索引的實現 - 例如參見​​

另一個有趣的資源在SQL Server regargind空間支持是http://www.jasonfollas.com/blog/archive/2008/03/14/sql-server-2008-spatial-data-part-1.aspx

雖然℃的一些應用卡爾曼濾波看到http://interactive-matter.eu/2009/12/filtering-sensor-data-with-a-kalman-filter/

編輯 - 按評論:

取決於它可以使利用卡爾曼濾波的修改版本,它不僅需要白噪聲考慮又考慮時間相關的錯誤更有意義的要求 - 例如參見http://hss.ulb.uni-bonn.de/2011/2605/2605.pdf

EDIT 2 - 的澄清後,來自OP:

在你的場景中,除了噪聲較小的公共位置之外,沒有什麼可以「猜測」一個錯誤......你可以使用任何噪聲感知統計算法......你甚至可以選擇3或5最近的座標(參見關於空間支持的鏈接)並且糾正你的測量,例如類似於磁棒......另一種選擇是應用錯誤或校正通過加權類似於三角測量的差異等

EDIT 3 - 從OP註釋後:

一個這樣的算法是點集的最小權重-三角...看到http://en.wikipedia.org/wiki/Minimum-weight_triangulationhttp://code.google.com/p/minimum-weight-triangulator/

+0

卡爾曼濾波器是我想到的濾波器,謝謝。它適用於通過少量傳感器連續測量速度或加速度,但它是否可以用於由不同傳感器產生的數百次噪聲靜態時間讀數,並且具有未知錯誤? –

+0

有一些修改它可以 - 看到我的編輯上面的鏈接... – Yahia

+0

不幸的是我的修正座標不是時間序列(我已經添加了一個說明)。引用的論文涉及「靜態時間序列」,它是從靜態GPS接收器完成的一系列測量。在這種情況下,多個獨立的傳感器每個在所期望的位置處或者在所希望的位置的邊界上「登記」一次(並且僅僅一次)。 –