予想されるn個の場所からのポイントのGPS座標の概算


9

私の注意点(青でマークされたX点)の座標を見つけようとしています。車のGPSデバイスを使用して、ポイントxにアクセスするたびに、駐車した場所に応じて座標を収集しました。したがって、このエクササイズを16日間続けた後、なんとか16セットの座標を取得し、私の注意点を中心に広げました。

これらの座標をマップにプロットした後、私は次のことを観察しました。10回のうち2回または3回、GPSデバイスが誤った座標セットを提供し、ポイントXから遠く離れていることが判明しました。また、交通状況により、ポイントxの近くに駐車できないため、この場合も、取得される座標はポイントXから遠く離れています。

問題:取得した16セットの座標から、注意点(ポイントX)の近くにある1セットの座標に絞り込むためにどのようなプロセスを使用しますか?

画像は上記の問題の説明をサポートしています


GPSデバイスが提供するPDOPについての情報はありますか?これは、信頼できないポイントを特定するのに役立ちます。
radouxju

私はこれを答えに入れますが、これがまさにあなたがやろうとしていることかどうかはわかりませんが、外れ値を投げて最小二乗調整を使用すると、問題を解決できると思います。 utdallas.edu/~aiken/GPSCLASS/ch11.pdf
ed.hank

回答:


13

この興味深い問題に取り組む1つの方法は、それを2変量点分布の中心のロバストな推定量と見なすことです。(よく知られている)解決策は、何もなくなるまで凸包はがすことです。空でない最後の船体の重心が中心を特定します。

(これはバグプロットに関連しています。詳細については、「凸包剥離多変量外れ値」をWebで検索してください。)

図

16の図解されたポイントの結果は、このマップの中央の三角形として示されています。周囲の3つのポリゴンは、連続する凸包を示しています。5つの範囲外のポイント(全体の30%!)は、最初の2つのステップで削除されました。


例はで計算されました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")

いいね。1つの考え:船体を計算する前に、データの検査ではなく収集方法(近くに駐車できないこと)のみに基づいて、可能性のある不良データを破棄するのが適切でしょうか?
シンバマング2015

@Simbaそれは合理的なアプローチです。
whuber

このような複数のサイトがあり、それぞれに観測数が異なる(このサイトのように16であった)場合、Excelファイルで、そのためのコードをどのように変更しますか。
user3587184

@ user3587184理想的には、Excelで作業しないでください。必要な場合は、観測のグループをループするマクロを記述します。
whuber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.