2012-04-03 5 views
12

私の問題は、私は車で使用されている別のGPSロガーからのGPSトラックの大きなセットを持っているということです。あなたは上の画像で見ることができるように、およそ千ポイントが輻輳の一種で可視化されますGPSポイントの複雑な集計を検出して削除する戦略はありますか?

enter image description here

:オフになっていないときでも静止場合には、これらの安価なデバイスは、ファントムの動きを記録します。今度は、これらのポイントをすべて削除して、ジッタが始まる前に左端から来る赤いトラックが消えるようにします。 私のアプローチは、トラック内の各点を中心に2つのまたは3つの円を「描く」以外の点は、これらの円内に配置されているどのように多くのチェックや比率をチェックすることです:

(#points/covered area) > threshold?

enter image description here

の場合しきい値が一定の比率(紫色の円)を超えると、その中のすべてのポイントを削除できます。したがって、簡単な方法ですが、大きな欠点があります。円を通過するだけの「無邪気な」トラックを削除すると、画像の下部にある単一点のような異常値は検出されません)。

私はを探していますが、画像のようなポイントの大きなヒープを検出するより良い方法です。偽陽性を排除すべきではありません(おそらく5〜10点ですが、これらの集計は私には関係ありません)。また、それはトラックの残りの部分を簡素化すべきではありません!

編集:与えられた例では結果は次のようになります。 enter image description here

+0

+1、私は質問はもう少し具体的に、独自の検討事項を説明することによって改善することができると思いますが。そうでなければ、これは少し広いようです。 –

+0

どうやってこれに乗りましたか?私は非常に似たようなことをする必要があります。良い点だと私はあまりにもそのことを考えて、ここで – NickG

+0

作業するオープンソースのアルゴリズム http://stackoverflow.com/questions/4480434/simplification-optimization-of-gps-track/36195571#36195571 –

答えて

2

私の最初のステップは、あなたの静止車の「動き」によって暗示速度と高度の変化を調査するでしょう。これらの変更のいずれかが速すぎたり遅すぎたりすると(ここでしきい値を決めなければならない)、おそらくそれらはGPSジッタに起因すると結論づけることができます。

あなたのGPSデバイスは、現在の位置以外のどの情報を報告していますか?

はEDIT

(OPさんのコメントの後に)問題は「車が移動するが、GPSの位置ジッタない」として「車の移動」とログの一部として、ログの一部を特徴付けることです。ベンジャミンは別のアプローチを提案した。速度が十分正確に識別できない場合は、加速を試みてください。見出しの変化率を試してください。これらの単純なアプローチのどれもうまくいかない場合、私はあなたの統計の教科書を分解し、ランダムなプロセスなどの自己相関を計算する時が来たと思います。この時点で、私は静かに離れます。

+0

。試行のための閾値は3kphになる可能性があります。ロガーは、時間と位置のほかに、計算されたデータ(速度、加速度、進行方向)に関する情報のみを提供します。それは剥奪されたNMEA RMCであり、信号品質や衛星データに関する情報はありません。 – Norbert

+0

私はGPXファイルをチェックする:ジッタは10キロ以上の速度が含まれているので、この方法では動作しません! :( – Norbert

2

High Performance Markの回答と同様に、短いポイント数内で発生するライン交差を探すことができます。道路上を走るとき、最後のnポイントのルートはそれ自体と交差することはめったにありませんが、ジッタのためにあなたの定常状態ではありません。 1つの交差点は、ブロックの回りを回ったり回ったりする人物ですが、複数の交差点は希少でなければなりません。ジッタの場合、交差角度もよりシャープになります。

+0

1:。。それはおそらく、うまくいく速く、すぐに実行可能な解決策を提案しているので、私はこの答えを好きブラボーに関して「偽陽性」交差点として –

+0

- 点間隔を見て、私は時間分解能がオンになっていることを言うだろう1秒のオーダー。繰り返しあなた自身の尾を追いかけて犬でなければならないであろうという時間スケールで、あなたのパスを自己交差します。 –

-1

GPSポイントのデータ間隔は何秒かと思われます。前述のロジックに追加する方法は他にも1つあります。

sum_of_distance(d0、d1、d2 ....DN)> = sum_of_distanceの80%(D0、DN)

この0からn番目の値その範囲内走行距離ははるかにならないように、より小さく、より大きなチャンクで反復することができます。だから、あなたは最初にデータの60点かもしれ反復処理し、各反復におけるデータの10数でそのデータ反復内にすることができます。可視化のための

関連する問題