Ich bin neu in Gis und bin geschlagen. Ich habe ein Netz von Flüssen, das aus kleinen Linien (Polylinien) besteht. In einem anderen Shapefile habe ich Standorte von mehreren Stationen an einem Fluss. Ich muss Abstand entlang des Flusses von jeder Station bis zum Ende des Flusses finden.
Das Problem ist, dass ich keinen vollständigen Flusslauf habe. Und es gibt kein gemeinsames Attribut, mit dem ich die Linestrings vereinen oder zusammenführen kann. Einige Stationen befinden sich auch an Nebenflüssen.
Unter dem Strich muss ich also ein großes Netz von Flüssen einschließlich Nebenflüssen aufbauen und die Referenzierung von Linien durchführen. Aber ich weiß nicht, wie ich das machen soll. Jede Hilfe wird sehr geschätzt. Bitte erklären Sie dies so deutlich wie möglich.
Bitte kommentieren Sie, wenn Sie weitere Informationen benötigen.
quelle
Antworten:
Ich würde BWill zustimmen. Ihr Hauptproblem besteht darin, den Ursprung jeder Polylinie zu definieren. Was macht einen Fluss aus? Ι würde davon ausgehen, dass ein Nebenfluss eine eigenständige "Route" ist, die von 0-> Länge des Nebenflusses ausgeht. Dann würde ich dasselbe für die Hauptflüsse tun, aber in diesem Fall würde ich aus allen Polylinienbestandteilen eine zusammengeführte Polylinie erstellen. Ich denke, sobald Sie haben, dass Sie "fast" da sind. Dann: Konvertieren Sie alle zusammengeführten Polylinien in gemessene Polylinien (PolylineM), einschließlich der Nebenflüsse. Sie haben dann Ihr 'Streckennetz'. Von da an müssen Sie für jede Station die Entfernung entlang Ihrer Route ermitteln. Ich denke, die Stationsstandorte sind in XYs definiert. Auch - eine andere Vermutung - sie fallen nicht genau auf den Fluss, tun sie? In jedem Fall benötigen Sie eine Möglichkeit, die Entfernung der Station vom Beginn jedes Flusses oder Nebenflusses zu ermitteln. Wenn sich eine Station an der Kreuzung von Fluss und Nebenfluss befindet, kann sie theoretisch zwei Standorte haben (jeweils einen).
Um diesen Speicherort zu finden, können Sie ArcMap-Tools verwenden, die Sie jedoch eine Weile nicht verwendet haben. Sie können sich also nicht an die Oberseite meines Kopfes erinnern. Wenn Sie dagegen Ihre Shapefiles (?) In PostGIS importieren, können Sie den ST_Line_Locate_Point verwenden . Diese Funktion:
Das heißt, Sie können dann den Ort entlang des Flusses finden, indem Sie das, was Sie finden, mit der (zusammengeführten) Flusslänge multiplizieren. Ein letzter Hinweis: Wenn Sie PostGIS verwenden, müssen Sie den Schritt zum Erstellen von PolylineM nicht ausführen. Nur ArcGIS benötigt dies für die lineare Referenzierung.
Hoffe das macht Sinn!
quelle
Aus meiner Frage der gleichen Art,
So erstellen Sie einen Punkt entlang einer Linie in einem bestimmten Abstand
Die folgenden nützlichen Links wurden angezeigt.
grass.osgeo.org/gdp/html_grass63/lrs.html
wiki.faunalia.it/dokuwiki/doku.php/qgis/lrs
Ich erledige meine Aufgabe nicht durch mangelnde Anstrengung. Ich glaube, die Langeweile, die Sie erleben werden, ist die Nominierung des Ursprungs jeder Polylinie.
quelle