Früher habe ich mich dafür auf XTools verlassen, aber in meiner aktuellen Umgebung habe ich keinen Zugriff darauf.
Ich versuche dies in ArcMap10 zu tun.
Das Ziel ist es, eine Liniendarstellung eines Stroms in eine Reihe von Punkten mit gleichem Abstand zu unterteilen, um schließlich z-Werte an diesen Punkten zu bestimmen, damit ich den Gradienten bestimmen kann.
Mein beabsichtigter Workflow ist als solcher.
- Teilen Sie den Stream in Punkte
- Schneiden Sie die Punkte mit einem DEM unter Verwendung von GME
- Durch Bestimmen des Abstands zwischen den Punkten sollte ich in der Lage sein, den Gradienten zu bestimmen.
- Es scheint sinnvoll, die Punktdaten wieder in die ursprünglichen Stromlinien zu integrieren. Unsicher über diesen Schritt.
Ich schätze jede Kritik an meiner Methode, aber meine Priorität an dieser Stelle ist die Umwandlung dieser Streams in Punkte.
Vielen Dank!
arcgis-10.0
algorithm
Jacques Tardie
quelle
quelle
Antworten:
Ich verwende ArcGIS 10 noch nicht, aber in 9.3.1 können Sie eine Bearbeitungssitzung auf Ihrer Linienebene starten, die zu teilende Funktion markieren und dann in der Dropdown-Liste der Editor-Symbolleiste die Option Teilen auswählen. Hier können Sie den Abstand angeben, durch den das ausgewählte Feature geteilt werden soll. Sie können dann das Werkzeug Knoten exportieren in ET GeoWizard (kostenloses Werkzeug) verwenden, um eine Punktebene für jedes geteilte Liniensegment zu erhalten.
Sie können eine räumliche Verknüpfung verwenden, um die Punktdateninformationen wieder in die Linienebene einzufügen. Klicken Sie im ArcMap-Inhaltsverzeichnis mit der rechten Maustaste auf Ihre Linienebene und wählen Sie Verbinden und Verwandte> Verbinden. Wählen Sie in der ersten Dropdown-Liste die Option "Daten aus einer anderen Ebene basierend auf der räumlichen Position verbinden".
quelle
Mir ist kein Tool auf der Benutzeroberfläche bekannt, das dies ausführt , aber es kann programmgesteuert über die IMSegmentation3- Schnittstelle ausgeführt werden.
quelle
Sie können einen Puffer an einem Ende des Streams erstellen und dann den Punkt identifizieren, an dem Ihr Puffer den Stream schneidet. Dann könnten Sie diesen Schritt einfach wiederholen. Es würde Ihnen nicht den genauen Abstand des Streams geben (da es sich eher um eine gerade Linie als um die Streamlänge handelt), aber wenn Sie die Linie dann basierend auf diesen Punkten in Abschnitte aufteilen und die Länge dieser Linien verwenden könnten, schätzen Sie den Gradienten.
Dies könnte in Python geschrieben werden, wenn es ein würdiger Ansatz wäre!
quelle