同時点間の距離の測定


9

私はGPSデータを使用しているので、日付/時刻情報を含むUTMがあります。私は2つの種のグループ(ヘラジカとオオカミ)を持っています。ムースからオオカミまでの時間に合わせて情報をまとめていきたい。したがって、ムース1のロケーション1は、2007-03-26 14:33:49で、ほぼ同時に記録されたすべてのオオカミでした。おおよその鍵です。つまり、その時間の30分以内にバッファ内にあったすべてのオオカミの場所を探すには、時間枠またはバッファが必要になるということです。

ウィンドウバッファー+/- X分を設定し、 "バッチ"プロセスを実行できるスクリプトまたはツールを探しています。少なくとも30頭のムースと30頭のオオカミ-一度に1ペアずつマッチングを行うことは役に立ちません。日付と時刻を一致させたら、次に、ムースとオオカミのXY位置間の距離と時間の差を計算します。私は次のような出力を望みます:

individualmooseID | mooseDate | mooseX | mooseY | individualwolfID | wolfDate | wolfX | wolfY | Distance(m) | TimeDiff (min)

mooseIDは、同じ期間に最大でいくつかの異なるwolfIDと一致する場合があります。任意の提案をいただければ幸いです。私はRのコードを書かれているが、私の質問を参照に動作していない:https://stackoverflow.com/q/15646365/675742を、私はRとDOをスキップすることができますので、もし私がいくつかの点でのArcGISにデータを持参する必要がありますそれはすべてArcGISで、それからすごいです!


4
私は正常にその座標た二層作成することによって、長い時間前にこれをしなかった時間を加えた人工の値yとし、yの 1つのデータセットのために= 0およびyは、他のデータセットのいくつかの定数を=。この時点で、空間結合、バッファリング、およびその他の形式の空間分析を使用して質問に答えることができます。これらの人工座標の近接は時間の近接と同じであるためです。
whuber

回答:


4

このようなデータセットは、もちろん非常に多くの情報を提供できます。

これは空間データベース環境、できればPostgreSQL / PostGISで行います。

あなたがしたいことは、空間データと時間データの両方で単純に結合しているようです。

次に、すべてを1つのクエリで実行します。トリッキーな部分は、時間の結合のためにインデックスを最適化することかもしれません。データセットはかなり大きいと思います。

クエリは次のようになります(これを疑似コード、特に時間部分として読み取ります)。

SELECT DISTINCT ON (moose_id, wolf_id, moose_time) 
moose_id, moose_geom, moose_time, wolf_id, wolf_geom, wolf_time,
ST_Distance(moose_geom, wolf_geom) as dist, moose_time-wolf_time as time_diff
FROM
moose_table as mt inner join wolf_table as wt 
on 
ST_DWithin(moose_geom, wolf_geom,10000) 
AND moose_time > ( wolf_time-30) 
AND moose_time < (wolf_time + 30) 
ORDER BY abs(time_diff), moose_id, wolf_id, moose_time;

2
つのメモ:1)ST_DWithinを使用して、10000メートルより近いオオカミのムースのペアリングを制約しました。これは、すべての可能な組み合わせを計算するのではなく、計算を減らす方法です。
2)DISTINCT ONを使用しました。各ムースタイム登録の各ムースウルフの組み合わせについて、それらが最も近い時間にある距離のみを取得する必要があります。

しかし、オオカミがヘラジカを狩る方法についての興味深い情報を与えるはずの、データセットでテストする他の興味深いクエリがいくつかあります。

たとえば、オオカミとムースの間の距離ができるだけ近いときに、空間的にできるだけ近いところを見つける代わりに、それらを時間内に見つけることができます。それは順序を並べ替えるだけです。次に、オオカミがムースを追跡している場合、オオカミがどれだけ遅れているかがわかります。もちろん、オオカミは追跡するだけでなく風の漂うにおいもするのではないかと思いますが、場合によっては、オオカミがどのくらい後ろにあり、それがどのように変化しているかを確認できます。オオカミとムースの速度とともに、それは何が起こっているかの良いパターンを与えるかもしれません。

もちろん、別の単純なクエリから得られる速度:-)

したがって、postgisデータベースにテーブルを配置し、そこで作業を行います。

ArcGIS 10または10.1を使用している場合は、データベースから直接データを監視できます。またはQGISから。これは、PostGIS-QGISのより成熟した組み合わせです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.