Erstellen von Pfaden innerhalb von Grenzen mit ArcGIS Desktop?


11

Ich möchte Bewegungspfade von Fischen basierend auf beobachteten Orten erstellen.

Da ich die Bewegungen von Fischen in Flüssen und Seen betrachte, funktioniert es nicht, die Punkte einfach zu einer Polylinie zu verbinden, da viele der Wege über Land verlaufen würden. Ich brauche eine Möglichkeit, die Bewegungspfade auf die Wassergrenzen zu beschränken.

Ich bin kein Programmierer und verlasse mich auf die Werkzeuge in der Arc-Toolbox, um die Vorgänge auszuführen. Eine neue Spalte in der FAT mit Abstand zwischen aufeinanderfolgenden Punkten wäre ebenfalls nützlich.

Ich verwende ArcMap 10.

Hat jemand einen Vorschlag, wie die Bewegungspfade generiert werden sollen?


Ein bisschen mehr Informationen zu den Daten; Der Großteil der Standorte wird von Remote-Empfängern gesammelt, die dazu neigen, viele Beobachtungen zu generieren (eines meiner Projekte hat über 3 Millionen Erkennungen und wächst, wobei jeder Erkennungsdatensatz eine ID, Datum / Uhrzeit, Lat und Long enthält). Wenn ein Fisch im Erfassungsbereich eines Empfängers bleibt, wird er ungefähr alle zwei Minuten erkannt, was zu vielen Beobachtungen (Punkten) führt. Mein erster Schritt besteht also darin, den Lat und Long über einen Zeitraum in diesem Fall 1 Tag zu mitteln . Die Mittelung der Erkennungen im Lebensraum des Sees funktioniert normalerweise gut, aber dies in den Flussabschnitten kann zu Erkennungen außerhalb der Fluss- / Seegrenze führen. Das erste, was ich tun muss, ist "schnappen" die gemittelten Positionen in der Fluss- / Seegrenze und dann möchte ich einen Bewegungspfad erstellen, der auf die Fluss- / Seegrenze beschränkt ist. Idealerweise würde dieser Pfad die Entfernung für jedes Liniensegment enthalten. Meine Flüsse sind Polylinien und die Seen sind Polygone, aber ich kann die Flüsse bei Bedarf in Polygone umwandeln. Alternativ könnte ich die nicht gemittelten Rohdaten verwenden und alle meine Erkennungen würden sich innerhalb der Grenze befinden, obwohl das Erstellen von Bewegungspfaden, die auf die Grenze beschränkt sind, immer noch problematisch ist, aber dies würde zu vielen Daten führen.

Das beigefügte Bild zeigt die täglichen Durchschnittspositionen für zwei verschiedene Fische.

Geben Sie hier die Bildbeschreibung ein


Wie dicht sind Ihre Beobachtungspunkte? Ich gehe davon aus, dass Sie mindestens Flusspolygone und Beobachtungspunkte haben. Ein grober Ansatz wäre meiner Meinung nach, die Beobachtungspunktebene mithilfe der Flusspolygone abzuschneiden. Auf diese Weise bleiben Ihnen die Beobachtungspunkte am Fluss. Ich weiß allerdings nicht genug über deine Bedürfnisse. Könnten Sie es sich leisten, ein paar Punkte zu verlieren, solange ein Weg gezogen werden kann?
RK

Könnten Sie weitere Details angeben? Welche Daten haben Sie beispielsweise gerade? Wie bekommt man die "beobachteten Orte"?
RK

Der Fluss hat viele Kurven und Biegungen. Selbst wenn die Standorte auf diejenigen innerhalb des Flusses beschränkt würden, würden viele der erzeugten Linien immer noch außerhalb der Flussgrenzen verlaufen, oder?
user10320

Können Sie einige Beispieldaten bereitstellen? Oder zumindest einen Screenshot der Daten.
RK

zusätzliche Informationen zum ursprünglichen Beitrag hinzugefügt
user10320

Antworten:


3

Meiner Ansicht nach wäre es besser, die Analyse mit Rastern durchzuführen (genauer gesagt mit Kostenoberflächen). Ein Entwurf einer Gliederungsmethode könnte sein:

  • Führen Sie zunächst Ihre Einschränkungen ('Land') und Fluss- / Seen-Polygone zusammen (Datenverwaltungstools> Allgemein> Zusammenführen), und stellen Sie sicher, dass Sie ein Feld hinzufügen, das zwischen den beiden Ebenen unterscheidet (dh "Typ" = Land oder Wasserkörper).
  • Konvertieren Sie Ihr zusammengeführtes Polygon mithilfe von Polygon in Raster in ein Raster (Konvertierungswerkzeuge> In Raster> Polygon in Raster). Wählen Sie eine geeignete Zellengröße, die Ihren Daten am besten entspricht (wobei zu berücksichtigen ist, dass eine höhere Auflösung zu einer größeren Datei führt und sich ausnahmslos auf die Verarbeitungszeit auswirkt), und reduzieren Sie einen Verarbeitungsumfang mithilfe von Geoverarbeitung> Umgebungen> Verarbeitungsumfang.
  • Klassifizieren Sie Ihr Raster in Boolean, um die Analyse nur auf Wasserflächen zu beschränken, dh 0 = Land, 1 = Wasserkörper
  • Konvertieren Sie Ihre Fischstandorte in ein Raster und stellen Sie sicher, dass Sie die gleiche Zellauflösung und -ausdehnung beibehalten und dass die Standorte bei Bedarf durch eine Neuklassifizierung identifiziert werden können (dh verwenden Sie 2s und 1s).
  • Ich würde dann eine Kostenoberfläche verwenden (einfach ein Raster mit derselben Auflösung und demselben Umfang, das die "Kosten" für das Überqueren einer Zelle darstellt). Dieses Raster kann einfach aus einem einheitlichen Wert bestehen (in diesem Fall wird die kürzeste Route als optimal ausgewählt) oder, noch besser, aus Durchflussraten oder Trübungen, die die Umgebung, durch die sich die Fische bewegen, besser widerspiegeln (in diesem Fall am wenigsten) Kosten akkumulierter Pfad wäre optimal). Siehe Kostenentfernung - Spatial Analyst> Entfernung> Kostenentfernung.
  • Verwenden Sie schließlich den Kostenpfad ( Kostenpfad - Spatial Analyst> Entfernung> Kostenpfad), um den Pfad mit den geringsten Kosten von Ihrer Quelle zu den Zielzellen (beobachteter Standort) zu ermitteln.

Das klingt vielversprechend, aber ich habe nicht viel Erfahrung mit Rasterdaten. Mein Untersuchungsgebiet ist ungefähr 600 km² groß, wenn ich 100 m Zellen verwenden würde, würde dies 6 Millionen Zellen ergeben. Wenn mein Standort durchschnittlich pro Tag erkannt wird, habe ich ungefähr 42.000 Standortaufzeichnungen für meine 60 Versuchstiere. Scheint dies immer noch ein guter Ansatz zu sein oder wäre es zu datenintensiv?
user10320

1
Ich würde argumentieren, dass der Raster-Ansatz eher für datenintensive Prozeduren als für Vektoralternativen geeignet ist. Es kann empfehlenswert sein, die Methode nach Arten aufzuteilen (dh 60 separate Kostenkarten). Dies macht die Datensätze übersichtlicher, aber ein offensichtlicher Kompromiss ist die zusätzliche Zeit, die zum Wiederholen von Experimenten benötigt wird. Eine ergreifende Frage könnte sein; Sind 100-m-Zellen ein guter Ersatz für die von Ihnen verwendeten Daten? Damit meine ich, dass diese Zellengröße unter Berücksichtigung der kumulativen Mess- und räumlichen Fehler, die Ihren Datensätzen inhärent sind, am besten passt? Durch Verringern der Zellengröße wird die Verarbeitungszeit verkürzt.
Veedub

2

Wenn die Flüsse Linien sind:

Ein guter Ansatz zur Behandlung solcher Probleme ist die lineare Referenzierung. Es ist ziemlich komplex, bietet aber viele Möglichkeiten. In der ArcGIS-Hilfe finden Sie viele Informationen zum linearen Referenzieren . Sperren Sie bei linearen Referenzierungsszenarien und Beispielanwendungen für lineare Referenzierung, um zu sehen, welche Möglichkeiten die lineare Referenzierung für Sie bietet.

Einige der Tools, die Sie verwenden müssen, sind:

Routen erstellen

Suchen Sie Features entlang von Routen

Erstellen Sie eine Routenereignisebene

Wie gesagt, es ist ein komplexer Ansatz, und es braucht Zeit, um den linearen Referenzierungsansatz zu verstehen (und ihn in ArcGIS zu verwenden), aber die lineare Referenzierung bietet Ihnen viele Möglichkeiten.


1
Die lineare Referenzierung kann eine Lösung sein, wenn nur die höchste und niedrigste Position eines Fisches verwendet werden soll. Ich vermute, dass ein Fisch nicht nur in eine Richtung schwimmt? Ein Fisch schwimmen flussaufwärts und dann flussabwärts und dann wieder flussaufwärts und so weiter? Dann ist eine lineare Referenzierung in diesem Fall keine gute Lösung.
Jens

1

Wenn Sie die Flüsse von Polygon in Linien konvertieren, können Sie mit Network Anlayst die Fischpfade analysieren.

Sie können eine Routenanalyse durchführen . Die Positionen eines Fisches sind die Haltestellen . Es gibt eine USE_INPUT_ORDER-Option für die Stopps, sodass die Stopps in der Eingabereihenfolge besucht werden.

Network Analyst benötigt ein Leitungsnetz. Ich habe keine Ahnung, wie ich mit den Polygonen der Seen umgehen soll. Vielleicht erstellen Sie einen Liniendatensatz (Linienraster) innerhalb der Seen?



0

Sie können versuchen, alle Punkte zu verbinden, dann Polylinien an Scheitelpunkten zu teilen und die vom Landpolygon geschnittenen Landstücke zu löschen (mit denen Sie den Fluss aus dem Untersuchungsgebietspolygon löschen können), und dann die verbleibenden Segmente zusammenführen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.