sql-server - 校正多个地理传感器读数中的噪声

标签 sql-server algorithm geolocation sensors noise

给定一个错误值未知的地理编码位置列表和一个更接近真实位置(大多数是可靠的)公共(public)校正的数据库,我应该如何设计一个算法来采取考虑所有修正以最准确地估计真实位置?

静止坐标和传感器读数都有噪声,因此它类似于地理签到问题。它让我想起了多个噪声传感器的一个已知问题,您可以在其中对噪声建模并计算最可能的值,但我不记得解决方案。

所有坐标都存储为 SQL Server 2008 中的 geography::POINT 类型,因此针对该平台的高效解决方案将是最有用的。


澄清:坐标不是时间。每个读数都来自一个独特的传感器,没有重复测量。

最佳答案

尽管我不确定如何在 SQL Server 2008 中实现它,一个好的算法可能是 http://en.wikipedia.org/wiki/Kalman_filter (参见 http://www.developerstation.org/2011/09/kalman-filter-for-dummies-tutorials.html)。

对于实现,使用 SQL Server 中的空间索引可能会有所帮助 - 例如参见 http://blogs.msdn.com/b/isaac/archive/2007/05/16/sql-server-spatial-support-an-introduction.aspx

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

尽管在 C 中卡尔曼滤波器的一些应用参见 http://interactive-matter.eu/2009/12/filtering-sensor-data-with-a-kalman-filter/

编辑 - 根据评论:

根据要求,使用卡尔曼滤波的修改版本可能更有意义,它不仅考虑了白噪声,还考虑了与时间相关的误差 - 例如参见 http://hss.ulb.uni-bonn.de/2011/2605/2605.pdf

编辑 2 - 在 OP 澄清之后:

在您的场景中,除了嘈杂的公共(public)场所外,没有什么可以以某种方式“猜测”错误...您可以使用任何噪声感知统计算法...您甚至可以选择 3 或 5 个最近的坐标(请参阅链接关于空间支持)并校正您的测量值,例如类似于磁棒...另一种选择是通过对类似于三角测量等的差异进行加权来应用误差校正。

编辑 3 - 在 OP 发表评论后:

一种这样的算法是点集的最小权重三角剖分...参见http://en.wikipedia.org/wiki/Minimum-weight_triangulationhttp://code.google.com/p/minimum-weight-triangulator/

关于sql-server - 校正多个地理传感器读数中的噪声,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7311750/

相关文章:

c# - 在不指定列的情况下显示数据库中的数据

sql - 在 SQL 中将月份和年份组合转换为日期

python中点线裁剪算法

algorithm - 为什么贝尔曼福特算法中的 |V|-1 次迭代可以保证最短路径?

javascript - 每次在 Safari 和移动浏览器上询问地理位置权限

android - 如何在 Android 中获取视频的位置数据?

sql-server - 在 Power Query 中将参数从 Excel 传递到 SQL

sql - 在 SQL-Server 中表示“某物”数据

java - 试图掌握从 0 到 99999 对数字进行排序的算法的概念

android - 如果我已经有 ACCESS_FINE_LOCATION,我可以省略 ACCESS_COARSE_LOCATION 吗?