从n个预期位置为一个点逼近GPS坐标


9

我正在尝试查找关注点的坐标(X点,标记为蓝色)。我使用汽车的GPS设备来收集每次访问点x时车辆停放位置的坐标。因此,在进行了16天的练习之后,我设法获得了16套坐标,并围绕我的注意力分散开来。

在地图上绘制这些坐标后,我观察到以下情况:十两次,三次,我的GPS设备给出了一组错误的坐标,结果证明它远离X点很安静。此外,由于路况,我有时无法停在x点附近,因此在这种情况下,获得的坐标也远离x点。

问题:从获得的16组坐标中,我应该使用什么过程来缩小到与我的关注点(X点)非常接近的一组坐标?

图片支持上面的问题描述


您是否有GPS设备提供的有关PDOP的信息?这可以帮助您确定不可靠的地方。
radouxju 2015年

我会回答这个问题,但是我不确定这是否正是您要尝试的方法,但是抛弃异常值并使用最小二乘平差我相信可以解决您的问题。 utdallas.edu/~aiken/GPSCLASS/ch11.pdf
编辑

Answers:


13

解决此有趣问题的一种方法是将其视为双变量点分布中心的鲁棒估计器。一种(众所周知的)解决方案是剥掉凸包,直到什么都没有剩下。最后一个非空壳体的质心位于中心。

(这与风标有关。有关更多信息,请在Web上搜索“凸包剥离多变量离群值”。)

数字

图中16个点的结果显示为中心三角形。周围的三个多边形显示了连续的凸包。在前两个步骤中删除了五个孤立点(占总数的30%!)。


该示例在中计算R。该算法本身在中间的块“凸削”中实现。它使用内置chull例程,该例程返回船体上的点的索引。这些点通过负索引表达式删除xy[-hull, ]。重复此操作,直到最后一点将被删除。在最后一步中,质心是通过平均坐标来计算的。

请注意,在许多情况下,甚至都不需要投影数据:凸包将不会发生变化,除非原始特征跨越了子午线(经度为180度),无论是极点还是极宽,以至于它们之间的分段曲率都会做出改变。(即使这样,曲率也不会受到太大影响,因为剥离仍会收敛到中心点。)

#
# Project the data.
#
dy <- c(8,7,5,10,7,17,19,19,21,22,22,22,24,24,26,26)
dx <- c(66,67,66,89,89,79,78,76,75,81,78,77,75,80,77,83)
lat <- (28.702 + dy/1e5) / 180 * pi
lon <- (77.103 + dx/1e5) / 180 * pi
y <- dy
x <- cos(mean(lat)) * dx
#
# Convex peeling.
#
xy <- cbind(x, y)
while(TRUE) {
  hull <- chull(xy)
  if (length(hull) < nrow(xy)) {
    xy <- xy[-hull, ]
  } else {
    xy.0 <- matrix(apply(xy, 2, mean), 1, 2)
    break
  }
}
#
# Plot the data `xy` and the solution `xy.0`.
#
plot(range(x), range(y), type="n", asp=1)
points(x, y, pch=21, bg="#a01010")
points(xy.0, pch=24, cex=1.2, bg="#404080")

真好 一个想法:在计算船体之前丢弃任何可能的不良数据是否合适-仅基于数据的收集方式(无法停在附近),而不是基于对数据的检查?
Simbamangu

@Simba这是一个合理的方法。
ub

如果我们在excel文件中有多个这样的站点,每个站点都有不同数量的观察值(例如一个站点有16个),我们将如何修改该代码。
user3587184

@ user3587184理想情况下,您不会在Excel中完成工作。如果必须,请编写一个宏以遍历观察组。
ub
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.