Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Correcting for Noise in Multiple Geographic Sensor Readings

Given a list of geocoded locations with an unknown error-value and a database of less noisy public corrections nearer the true location (most of which are reliable), how should I design an algorithm to take all the corrections into account to approximate the true location most accurately?

Both the stationary coordinates and the sensor readings are noisy, so it is similar to a geographic check-in problem. It reminds me of a known problem with multiple noisy sensors, where you model the noise and calculate the most probable value, but I don't recall the solution.

All coordinates are stored as the geography::POINT type in SQL Server 2008, so an efficient solution for that platform would be most useful.


Clarification: Coordinates are not temporal. Each reading comes from a unique sensor with no repeat measurements.

like image 481
Petrus Theron Avatar asked Sep 05 '11 18:09

Petrus Theron


People also ask

What causes sensor noises?

Sensor noise is random variations of sensor output unrelated to variations in sensor input. Ideally, the only noise coming from a sensor is thermal noise arising from thermal motions of charges within the sensor. Another low-level source of noise is shot noise related to the fact that charge is quantized.


1 Answers

Alhtough I am not sure how to implement that in SQL Server 2008 a good algorithm could be http://en.wikipedia.org/wiki/Kalman_filter (see http://www.developerstation.org/2011/09/kalman-filter-for-dummies-tutorials.html).

For an implementation it could be helpful to use the spatial index from SQL Server - see for example http://blogs.msdn.com/b/isaac/archive/2007/05/16/sql-server-spatial-support-an-introduction.aspx

Another interesting resource regargind spatial support in SQL Server is http://www.jasonfollas.com/blog/archive/2008/03/14/sql-server-2008-spatial-data-part-1.aspx

Although in C some application of a kalman filter see http://interactive-matter.eu/2009/12/filtering-sensor-data-with-a-kalman-filter/

EDIT - as per comment:

Depending on the requirements it could make more sense to use a modified version of Kalman filtering which not only takes white noise into account but also considers time-correlated errors - see for example http://hss.ulb.uni-bonn.de/2011/2605/2605.pdf

EDIT 2 - after the Clarification from OP:

In your scenario there is nothing to somehow "guess" an error except the less noisy public location... you could use any noise aware statistical algorithm... you could even select the 3 or 5 nearest coordinates (see the link regarding spatial support) and correct your measurement for example similar to a magnetic wand... another option would be to apply an error-correction by weighting the differences similar to triangulation etc.

EDIT 3 - after comment from OP:

One such algorithm is the Minimum-Weight-Triangulation of point sets... see http://en.wikipedia.org/wiki/Minimum-weight_triangulation and http://code.google.com/p/minimum-weight-triangulator/

like image 181
Yahia Avatar answered Sep 17 '22 17:09

Yahia