2

私はいくつかの漁船のトラックを持っており、R を使用してその動きの特定のパターンを検出しようとしています。そうする中で、目的のパターンが発生していないトラックのすべてのポイントを破棄するポイントに到達しました。与えられた時間枠で、地理参照された残りのポイントが残ります。これらのポイントには、目的のパターンの「強度」を測定するスコア値が関連付けられています。

track_1[1:10,]:

        LAT       LON  SCORE
1  32.34855 -35.49264  80.67
2  31.54764 -35.58691  18.14
3  31.38293 -35.25243  46.70
4  31.21447 -35.25830  22.65
5  30.76365 -35.38881  11.93
6  30.75872 -35.54733  22.97
7  30.60261 -35.95472  35.98
8  30.62818 -36.27024  31.09
9  31.35912 -35.73573  14.97
10 31.15218 -36.38027  37.60

以下のコードは同じデータを提供します

data.frame(cbind(
    LAT=c(32.34855,31.54764,31.38293,31.21447,30.76365,30.75872,30.60261,30.62818,31.35912,31.15218),
    LON=c(-35.49264,-35.58691,-35.25243,-35.25830,-35.38881,-35.54733,-35.95472,-36.27024,-35.73573,-36.38027),
    SCORE=c(80.67,18.14,46.70,22.65,11.93,22.97,35.98,31.09,14.97,37.60)))

これらのポイントのいくつかは地理的に互いに近くにあるため、それらのスコアを一緒に「プール」する必要があります。したがって、このデータをある種の空間グリッドに投入し、グリッドの同じセルにあるすべてのポイントのスコアを累積的に合計する方法が必要です。これにより、特定の漁船が私が最も求めているパターンを示すエリアを見つけることができます (これは、1 つの場所で過ごした時間だけではありません)。最終的に、推奨される出力には、各グリッド セル (中央) の緯度と経度、および各セルのすべてのスコアの合計が含まれます。さらに、グリッド セルのサイズを調整できるようにしたいと考えています。

私が見回したところ、ジオリファレンスされた情報が保持されないか、非常に非効率的であるか、データのビニングを実行することがわかりました。すでにいくつかの答えがあるかもしれませんが、私はこのことについて少し専門外なので、それらを認識できない場合があります. 誰かが私にいくつかの方向性(パッケージ、機能など)を教えてもらえますか? どんなガイダンスでも大歓迎です。

4

1 に答える 1

2

緯度/経度座標を取得し、目的のグリッド セル エッジの長さの逆数 (度単位) を掛けます。結果は、問題のグリッド セルを識別する整数部分の浮動小数点数のペアになります。これらの を取得floorすると、セルを表す 2 つの数値が得pasteられ、1 つの文字列を形成できます。それをデータ フレームの新しい要素列として追加できます。次に、値の集計など、その要因に基づいた操作を実行できます。

例:

latScale <- 2 # one cell for every 0.5 degrees
lonScale <- 2 # likewise
track_1$cell <- factor(with(track_1,
    paste(floor(LAT*latScale), floor(LON*lonScale), sep='.')))
library(plyr)
ddply(track_1, .(cell), summarize,
      LAT=mean(LAT), LON=mean(LON), SCORE=sum(SCORE))

weighted.mean必要に応じて、平均の代わりに使用できます。これらの要素が気に入らない場合は、(たとえば、標識の代わりにコンパスの方向を使用するなどして) 見栄えを良くするためにさらに努力するか、それらを完全に削除して、代わりに整数列のペアを使用することができます。

于 2012-12-14T13:48:50.617 に答える