Angesichts einer Halbinsel, die sich von Nord nach Süd erstreckt, und der beiden Küstenlinien, die sich im Süden verbinden, möchte ich herausfinden, welcher Ort bzw. welche Linie am weitesten von beiden Küsten auf der Halbinsel entfernt ist. Was ich suche, ist die rote Linie im Bild unten. Die schwarzen und rosa Linien sind die Ost- und Westküste.
Eine Möglichkeit könnte darin bestehen, ein Polygon zu generieren und einen negativen Puffer zu erstellen. Eine andere Möglichkeit besteht darin, die Längswerte zu addieren und durch zwei zu teilen. Letzteres scheint rationaler zu sein - dennoch erfordert es etwas Programmierung und Koordinatenhandhabung.
Aber vielleicht gibt es einen dritten Weg? Irgendwelche Vorschläge? ArcGIS und QGIS sind hier beide relevante Werkzeuge des Handels.
quelle
Antworten:
Fast per Definition ist dies die Mittelachse der Halbinsel. Wikipedia zitieren
Dies bedeutet, dass ein Punkt auf der Mittelachse tatsächlich am weitesten von beiden Grenzlinien entfernt ist. Denn sonst wäre einer näher als der andere.
Siehe das Beispiel aus der
ST_ApproximateMedialAxis
Dokumentation der PostGIS- Funktion.(Dies bedeutet auch, dass die Funktion QGIS-Benutzern über die Verbindung zu PostGIS zur Verfügung steht.)
quelle
Ich habe kürzlich an einem Projekt gearbeitet, bei dem die Mittelachse (von der Mittellinie verschieden, aber ähnlich) von Stream-Features abgeleitet wurde, indem Stream-Bank-Polylinien-Features verwendet wurden, die aus hochauflösenden Bildern extrahiert wurden. Für uns war es wichtig, die Unterscheidung für unsere Zwecke zu treffen, da die Mittelachse für die orthogonale Erzeugung verwendet werden sollte und daher ein verallgemeinertes Zentrum unserer Strommerkmale und nicht die exakte Mitte des Stroms sein musste.
Die Methode, die wir letztendlich verwendeten, war ein Python-Skript, das unsere beiden Polylinien-Features aufnahm, in einem bestimmten Intervall (~ 5 m) Scheitelpunkte hinzufügte, dann jeden Scheitelpunkt in einer Polylinie durchlief und nach dem nächsten Scheitelpunkt in der anderen Polylinie suchte. Es gab einige spezifische Situationen, die anders gehandhabt wurden (extreme Biegungen im Stream, bei denen ein Scheitelpunkt näher als der tatsächlich entsprechende am gegenüberliegenden Ufer gefunden wurde), aber ich habe den Code nicht geschrieben, damit ich ihn in den Griff bekommen musste zu verstehen, was wirklich los war.
Bevor wir uns für unsere Methode entschieden haben, spielte der Typ, der an der Skripterstellung arbeitete, mit einigen Alternativen und verwendete die euklidische Zuordnung unter Verwendung der Bankpolylinien als Eingabe und erstellte dann eine Kontur aus dem resultierenden Raster. Es war ein brillanter Weg, um die Mittellinie zu erreichen, aber nicht das, wonach wir gesucht hatten. Dies könnte jedoch für Sie funktionieren.
Sie sollten einige Zeit damit verbringen, darüber nachzudenken, wofür Sie die Mittellinie verwenden und ob Sie nach einer Mittellinie oder einer verallgemeinerten Mittelachse suchen sollten.
quelle
Sie können die Linienscheitelpunkte in Punkte konvertieren und daraus ein Voronoi-Diagramm erstellen . Es wird die Mittellinie ziemlich gut zeigen, die Sie als Linie über das Diagramm zeichnen können.
Auch ArcScan Erweiterung verfügt über eine automatische Vektorisierung Mittellinie Methode (wenn Sie die Halbinsel zu Polygon umwandeln, dann auf Raster).
quelle
Aus diesem Geospatial Analyst-Blog geht hervor, dass ET GeoWizards eine Funktion namens "Mittellinien erstellen" anbietet, die "Mittellinien aus Polygon-Features erstellt. Kann innerhalb von Polygonen (aus Polygonflüssen und -straßen) außerhalb unserer Polygone (aus Paketdaten) erstellt werden."
Ich vermute, dass der verwendete Prozess zuerst die Erstellung eines dreieckigen unregelmäßigen Netzwerks beinhalten würde, da ich vor vielen Jahren so etwas getan habe, um Straßenmittellinien in ländlichen Gebieten zu erstellen (was wahrscheinlich etwas einfacher ist als das, was Sie versuchen).
Ich bin mir auch nicht sicher, ob das im ArcGIS-Blog angekündigte Tool "Polygon auf Mittellinie reduzieren" jemals zu einer Version wurde - vielleicht gibt es es unter einem anderen Namen?
quelle