Messen von Abständen zwischen gleichzeitigen Punkten

9

Ich arbeite mit GPS-Daten und habe daher UTMs mit DATE / Time-Informationen. Ich habe 2 Artengruppen (Elche und Wölfe). Ich möchte die Informationen von Elchen zu Wölfen zusammenfügen, die rechtzeitig übereinstimmen. Standort 1 von Elch 1 war also am 26.03.2007 um 14:33:49 Uhr für alle Wölfe, die ungefähr zur gleichen Zeit aufgezeichnet wurden. Ungefähr ist der Schlüssel - es bedeutet, dass ich ein Zeitfenster oder einen Puffer haben muss, um nach allen Wolfsorten zu suchen, die sich zu dieser Zeit innerhalb von 30 Minuten Puffer befanden.

Ich suche nach einem Skript oder Tool, das einen Fensterpuffer +/- X min einstellt und in der Lage ist, "stapelweise" zu verarbeiten. Ich habe mindestens 30 Elche und 30 Wölfe - daher ist es nicht hilfreich, jeweils ein Paar zusammenzubringen. Sobald ich das Datum / die Uhrzeit gefunden habe, möchte ich die Entfernung zwischen den XY-Positionen von Elch und Wolf und den Zeitunterschied berechnen. Ich möchte eine Ausgabe wie:

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

Die Elch-ID kann bis zu mehreren VERSCHIEDENEN Wolf-IDs für denselben Zeitraum übereinstimmen. Anregungen wäre dankbar. Ich habe einen Code für R geschrieben, aber er funktioniert nicht. Siehe meine Frage: https://stackoverflow.com/q/15646365/675742. Ich muss die Daten irgendwann in ArcGIS einbringen, wenn ich R überspringen und tun kann alles in ArcGIS dann großartig!

Kerry
quelle
4
Ich habe dies vor langer Zeit erfolgreich getan, indem ich zwei Ebenen erstellt habe, deren Koordinaten Zeit plus ein künstlicher Wert y waren , wobei y = 0 für einen Datensatz und y = eine Konstante für den anderen Datensatz war. An diesem Punkt können Sie räumliche Verknüpfungen, Pufferung und andere Formen der räumlichen Analyse verwenden, um Ihre Frage zu beantworten, da die Nähe in diesen künstlichen Koordinaten der zeitlichen Nähe entspricht.
whuber

Antworten:

4

Datensätze wie dieser können natürlich sehr viele Informationen liefern.

Ich würde dies in einer räumlichen Datenbankumgebung tun, vorzugsweise PostgreSQL / PostGIS.

Was Sie tun möchten, scheint eine einfache Verknüpfung von räumlichen und zeitlichen Daten zu sein.

Dann erledigen Sie alles in einer Abfrage. Der schwierige Teil könnte darin bestehen, die Indizes für die Zeit des Beitritts zu optimieren. Ich denke, die Datensätze sind ziemlich groß.

Die Abfrage kann ungefähr so ​​aussehen (lesen Sie sie als Pseudocode, insbesondere als Zeitteil).

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;

Zwei Anmerkungen:
1) Ich habe ST_DWithin verwendet, um die Paarung von Wolfselchen zu beschränken, die näher als 10000 Meter liegt. Dies ist eine Möglichkeit, die Berechnung zu verringern und nicht jede mögliche Kombination zu berechnen.
2) Ich habe DISTINCT ON verwendet. Für jede Elch-Wolf-Kombination bei jeder Elchzeitregistrierung sollten Sie nur die Entfernung ermitteln, zu der sie zeitlich am nächsten waren.

Aber ich sehe einige andere interessante Fragen, die Sie an Ihrem Datensatz testen sollten und die interessante Informationen darüber liefern sollten, wie die Wölfe die Elche jagen.

Zum Beispiel können Sie, anstatt den Abstand zwischen dem Wolf und dem Elch zu finden, wenn sie zeitlich so nah wie möglich sind, herausfinden, wann sie räumlich so nah wie möglich sind. Das ist nur eine Neuordnung der Bestellung. In den Fällen, in denen der Wolf dem Elch folgt, werden Sie sehen, wie weit der Wolf in der Zeit zurückliegt. Natürlich werden es grobe Werte sein, da ich denke, dass Wölfe nicht nur verfolgen, sondern auch vom Wind treiben, aber in einigen Fällen werden Sie sehen, wie weit hinter dem Wolf ist und wie sich das ändert. Zusammen mit der Geschwindigkeit des Wolfs und des Elches könnte dies ein gutes Muster dessen geben, was vor sich geht.

Die Geschwindigkeit, die Sie natürlich von einer anderen einfachen Abfrage erhalten :-)

Legen Sie also Tabellen in eine Postgis-Datenbank und erledigen Sie die Arbeit dort.

Wenn Sie ArcGIS 10 oder 10.1 verwenden, können Sie die Daten direkt aus der Datenbank anzeigen. Oder von QGIS. Das ist eine ausgereiftere Kombination von PostGIS-QGIS.

Nicklas Avén
quelle