Mehr

So erhalten Sie die Mittellinie zwischen zwei Linienfolgen

So erhalten Sie die Mittellinie zwischen zwei Linienfolgen


Wo ist die Fährte eines Schiffes, wenn es immer in der Mitte des Ärmelkanals zwischen den Küsten Großbritanniens und Frankreichs unterwegs ist?

  1. Ich habe mit 2 Linienfolgen begonnen und mit einer Postgis-Abfrage viele Punkte auf der Linienfolge erstellt.
  2. Danach habe ich eine Distanzmatrix mit Raster/Analysis/Proximity in QGIS erstellt.
  3. Schließlich habe ich aus dem Ausgabe-Raster ein Aspekt-Raster erstellt.

Ist die rote Linie wirklich die "Mittellinie" zwischen diesen beiden Linienzügen?

Gibt es einen effizienteren Weg, dies zu tun?


Wenn Sie Ihren Bereich, in dem Sie die mediale Achse haben möchten, in eine flächige Geometrie umwandeln können, können Sie die ST_ApproximateMedialAxis Funktion, die auf dem geraden Skelett der Geometrie aufbaut. Ich würde sagen, dies ist effizienter, da Sie keine Zwischenpunkte mehr erstellen oder Vektorgeometrie oder PostGIS verlassen müssen.


Ja, die Lösung, die Sie erhalten, ist tatsächlich das, was Sie suchen - eine Annäherung an die Mittelachse des Kanals bis zur Auflösung des verwendeten Rasters. Aus praktischen Gründen würde ich jedoch Richards Lösung verwenden, da Sie bereits PostGIS verwenden. Die darauf aufbauende SFCGAL-Bibliothek ist robust und schnell.

Wenn Sie eine Lösung bereitstellen müssen, die nicht auf PostGIS basiert, würde ich vorschlagen, sich an die Definition der medialen Achse zu halten:

  • Verwenden Sie die generierten Küstenlinienpunkte, um ein Voronoi-Diagramm zu erstellen (Erstellen von Thiessen-Polygonen in ArcGIS).
  • Konvertieren Sie die Polygongrenzen der Voronoi-Zellen in Linien.
  • Entfernen Sie alle Linien, die die Landmasse schneiden.

Was Sie erhalten, ist eine gezackte Linie, eine weitere Annäherung an eine Mittelachse, deren Genauigkeit durch die Dichte der erzeugten Küstenlinienpunkte bestimmt wird.