Gps 全球定位系统信号清理及处理;道路网匹配

Gps 全球定位系统信号清理及处理;道路网匹配,gps,gis,Gps,Gis,我使用GPS装置和移动计算机来跟踪行人的行程。我想实时“清理”输入的GPS信号,以提高其精度。此外,事实发生后,不一定是实时的,我想将个人的GPS定位“锁定”到道路网络沿线的位置。是否有任何技术、资源、算法或现有软件可供建议 在信号清理方面,我已经考虑了一些事情: -删除卫星数=0的修复 -速度异常高(比如600英里/小时)的跌落固定点 至于“锁定”街道网络(我听说这叫做“地图匹配”): -基于均方根误差锁定到最近的网络边缘 -当修复远离道路网络时,突出显示这些点,并允许用户使用GUI(例如,W

我使用GPS装置和移动计算机来跟踪行人的行程。我想实时“清理”输入的GPS信号,以提高其精度。此外,事实发生后,不一定是实时的,我想将个人的GPS定位“锁定”到道路网络沿线的位置。是否有任何技术、资源、算法或现有软件可供建议

在信号清理方面,我已经考虑了一些事情: -删除卫星数=0的修复 -速度异常高(比如600英里/小时)的跌落固定点

至于“锁定”街道网络(我听说这叫做“地图匹配”): -基于均方根误差锁定到最近的网络边缘 -当修复远离道路网络时,突出显示这些点,并允许用户使用GUI(例如,Web浏览器中的OpenLayers)将其拖放到道路网络上

谢谢你的想法

我假设您希望“清理”数据,以消除由不可靠读数引起的错误峰值。这是一个基本的dsp程序。你可以采取几种方法,这取决于你希望它有多聪明


在基本层面上,是的,你可以只寻找真正大的数字,但什么是真正大的数字?是的,时速600英里很快,但如果你乘坐协和式飞机就不行了。当你在寻找一个“超乎寻常”的值时,你实际上是在硬编码“普通”。一个更好的方法是检查过去的数据,确定什么是“普通”,然后寻找偏差。您可能需要考虑在一个小的本地窗口上计算数据的方差,然后查看当前数据的Z-得分是否大于某个阈值,如果是,排除它。

< P>除了安得烈的评论之外,您还可能考虑干扰因素,例如多径,以及它们在您输入的GPS数据流中如何受到影响,例如NMEA0183的GSA线路中的HDOP。在我自己的GPS控制器软件中,我允许用户根据一系列QA相关参数指定拒绝标准


我也倾向于使用移动窗口原理,在这一点上,你可以考虑在同一个窗口中根据周围的数据来拒绝表示尖峰的数据。

< P>:你应该用3作为最小的卫星,而不是0。GPS至少需要三个源来计算水平位置。我使用的每个GPS在数据流中都包含一个状态标志;在某种程度上,只有不到3颗卫星被报告为“坏”数据

你也应该考虑“固定”数据。你将如何处理静止一段时间的行人?也许在人行横道上等待,或者与街头小贩互动


根据您计划对数据执行的操作,您可能需要将这些额外的数据点压制或平均化为单个点或位置。

您提到这是用于行人跟踪,但也提到了道路网络。行人可以在许多汽车无法到达的地方旅行,事实上,这可能不会出现在任何“道路网”地图上。大多数路线图都没有公园里的步行道、徒步旅行路线等。不要认为“非公路网络”意味着GPS没有得到准确的定位。

阅读posfix以查看信号是否有效(如果解析原始NMEA字符串,则在$GPGGA句子的某个地方)。如果为0,则忽略该消息

此外,如果您确实需要确保信号非常准确,您可以查看HDOP和卫星数量的组合,但在正常情况下,这是不必要的

当然,对GPS信号进行一些健康检查并没有什么坏处:

  • 纬度在-90到90之间
  • 经度介于-180..180之间(如果您正在读取原始NMEA字符串,则为E..W,N..S,0..90和0..180)
  • 速度介于0和255之间(对于普通车辆)
  • 与先前测量匹配的距离(基于lat/lon)与指示速度大致匹配
  • 系统时间不大于x的时差(除非系统时钟不可信或依赖GPS同步:-)
要进行地图匹配,您基本上要遍历您的路段,并检查哪个路段最有可能与您当前的位置、方向、速度以及可能之前的gps测量和匹配相匹配。 如果你没有做实时应用程序,或者反馈延迟是可以接受的,你甚至可以展望“未来”,看看哪一部分最有可能

正确地做所有这一切本身就是一门艺术,这里的空间太短,无法深入探讨。
通常很难100%有把握地决定某人居住在哪个路段。例如,如果有两条平行道路同样靠近当前位置,则这是一个创造性的启发式问题

说得好,但既然他说的是行人使用,我认为协和式飞机的速度有点过高……是的,但我只是简单地说明了一点。他可能会将自己的速度限制在10英里/小时,这是一个可以接受的步行速度限制,但如果有人骑自行车或滑板呢?你不能随意设定限制,因为你肯定会错误地排除某些东西。分析您的数据并查找峰值。