4

特定の渡り鳥の行動に関する研究から一連の結果を得たとしましょう。鳥にはタグが付けられており、GPS受信機は5年間にわたって毎年鳥がたどる移動経路を記録します。結果は、各年のパスに1つの地理ラインストリングを含むSQLServerテーブルに格納されます。

5年間の「平均的な」パスを表すラインストリングをどのように定義しますか?

各サンプルラインストリングには、異なる数のポイントが含まれる場合があることに注意してください。また、まったく同じポイントで開始および終了することもありません。

私がこれまでに得た最善のアプローチは、補間を使用して、各ラインストリングに沿った特定の設定された比率でポイントを決定することです。したがって、たとえば、開始点、各ルートの4分の1、途中などです。次に、すべてのルートにわたるこれらの位置の平均緯度/経度を計算し、それらの平均点から新しい地理ラインストリングを作成します。

私はこれを行うためのよりよく知られているアルゴリズムまたは技術があるかどうかを確認するためにいくつかの計算幾何学の本を調べましたが、関連するものは何もないようです。でも、他の誰かがやったことのないことだとは信じられません...

正確なコードは必要ありません。より一般的なアプローチの提案だけです。「超高精度」も必要ありません。補足として、理想的には、このアプローチを2つ以上のポリゴンにも適用できるようにしたいと思います。

提案をありがとう!

4

3 に答える 3

2

現在iPhoneで作業しているため、サンプルコードを投稿することはできませんが、提案があります(良いか悪いかはわかりません)...

各線について、線に沿った各頂点の位置(パーセンテージ)を決定します。

これらの値を取得した後、行ごとに、他のすべての行のパーセンテージ値を使用して、各行に沿って新しい頂点を計算します。

この時点で、各行には同じ数の頂点が含まれている必要があり、各行のN番目の頂点は他のすべての行のN番目の頂点に直接対応しています。

ここで、すべてのラインの頂点0を平均して、「平均化された」ラインの頂点0を取得します。各行のvertex1などについて繰り返します。

これは、ポリゴンだけでなくラインでも機能するはずです。

各行の精度値を決定できる場合は、加重平均アルゴリズムを使用することもできることに注意してください。過去に、2行を平均化しようとするときに、このアプローチを使用しました。各線に重みを付けることができました。通常は50:50ですが、ソースの精度に応じて、100:0または0:100まで上げることができます。

私は戻ってあなたの質問を読み直しました、そしてあなたがすでに補間について話しているのを見ました。あなたがそれをすることについて話した方法は、補間されたポイント(固定された間隔ポイント)の平均を計算する前に、線を滑らかにするか一般化することができるようです。私のアプローチでは、最初に各行を高密度化し、次に平均を計算します。それはもっと正確かもしれないようですが、そうではないかもしれません。

于 2010-11-28T22:39:30.933 に答える
1

わかりました。ここですべてを読み直して、画像を確認しました。これを実際に行う方法は唯一あり、それはいくぶん述べられています。サンプリングを正規化してから、移動多項式の平均式をn個の結果に適用する必要があります。

これを適切に行うための計算は非常に強力であり、速度要件は何ですか?

補間の式は次のとおりです:http://en.wikipedia.org/wiki/Interpolation

各ラインを所定のサンプルレートに正規化または「再形成」したら、それらを平均化できます。

この答えも見てください:パスの特定の距離内にあるポイントのセットを効率的に見つけることができるアルゴリズムはどれですか?

于 2010-11-29T06:46:57.273 に答える
0

既知のポイントに線形回帰を適用することをお勧めします。それはそれらを通る直線の平均を与えるでしょう。

于 2010-11-28T18:23:56.363 に答える