Berechnung des Mindestabstands zwischen Punkten und Polygonen in QGIS?
9
Ich habe zwei Vektorebenen: einen Punkt und ein Polygon und ich möchte den Mindestabstand jedes Punkts von den Polygonen berechnen (dh den Abstand vom nächsten Punkt des nächsten Polygons).
Du meinst Polygonscheitelpunkte, den Schwerpunkt oder etwas anderes?
Lynxlynxlynx
Diese Aufgabe würde besser von Postgis erledigt.
Pablo
Ich meine die Entfernung von den Grenzen des Polygons (eigentlich ist es die Entfernung der beobachteten Seevögel im Meer von der Küste, die ich berechnen möchte)
Sylvia
Pablo, leider weiß ich nicht, wie man PostGIS benutzt und ich kann keinen Code schreiben ...
Sylvia
Antworten:
9
Das Konvertieren Ihres Polygons in Punkte ist eine schlechte Idee. Sie berechnen nicht den Abstand zu Ihrem Polygon, sondern den Abstand zum nächsten Knoten Ihrer Polygone (nicht zu den Kanten, die möglicherweise näher liegen). Sie können das NNJoin-Plugin verwenden , um genaue Messungen für Ihr Polygon zu erhalten. Stellen Sie sicher, dass sich Ihre Ebenen in derselben Projektion befinden, bevor Sie eine Analyse durchführen.
Das QGIS NNJoin Plugin kümmert sich um die Koordinatensystemtransformation. Sie sollten jedoch sicherstellen, dass Sie ein projiziertes Koordinatensystem für den Verknüpfungsdatensatz verwenden (der Eingabedatensatz wird in das Koordinatensystem des Verknüpfungsdatensatzes transformiert, wenn sich die Koordinatensysteme unterscheiden).
Håvard Tveite
6
Wenn Sie QGIS verwenden möchten, sollte die Funktion GRASS v.distance im GRASS-Plugin die Aufgabe übernehmen. Das NNJoin- Plugin sollte für kleine Datensätze funktionieren und ist weniger umständlich zu verwenden.
Das NNJoin- Plugin verwendet die Funktion QgsGeometry.distance () (die GEOSdistance verwendet), um die Entfernungen zu berechnen.
Fügen Sie diese neue Ebene hinzu und berechnen Sie dann eine Abstandsmatrix zwischen Ihrer Punktebene und der neuen Polygonpunktebene, die Sie gerade erstellt haben
Vektor -> Analysewerkzeuge -> Distanzmatrix
Stellen Sie sicher, dass Sie "Nur die nächsten (k) Zielpunkte verwenden" als 1 auswählen
Dies ist eine gute Antwort auf die ursprüngliche Frage, aber die Frage wurde seitdem in einem Kommentar geändert. Knoten extrahieren und Entfernungsmatrix finden möglicherweise nicht die nächstgelegene Stelle an der Grenze (die nächstgelegene Stelle befindet sich möglicherweise zwischen den Punkten der Grenzpolylinie). GRASS v.distance oder das NNJoin Plugin wird.
Die Hubentfernung hat den Job erledigt, aber für die Aufzeichnung habe ich zuerst das Polygon in eine Punktebene konvertiert und die minimalen Punkt-zu-Punkt-Entfernungen berechnet. Mit den Polygonen berechnete es den Mindestabstand von den Zentroiden oder der Mitte der Küstengrenze
Antworten:
Das Konvertieren Ihres Polygons in Punkte ist eine schlechte Idee. Sie berechnen nicht den Abstand zu Ihrem Polygon, sondern den Abstand zum nächsten Knoten Ihrer Polygone (nicht zu den Kanten, die möglicherweise näher liegen). Sie können das NNJoin-Plugin verwenden , um genaue Messungen für Ihr Polygon zu erhalten. Stellen Sie sicher, dass sich Ihre Ebenen in derselben Projektion befinden, bevor Sie eine Analyse durchführen.
quelle
Wenn Sie QGIS verwenden möchten, sollte die Funktion GRASS v.distance im GRASS-Plugin die Aufgabe übernehmen. Das NNJoin- Plugin sollte für kleine Datensätze funktionieren und ist weniger umständlich zu verwenden.
Das NNJoin- Plugin verwendet die Funktion QgsGeometry.distance () (die GEOSdistance verwendet), um die Entfernungen zu berechnen.
quelle
Konvertieren Sie zuerst das Polygon in Punkte:
Vektor -> Geometrie-Werkzeuge -> Knoten extrahieren
Fügen Sie diese neue Ebene hinzu und berechnen Sie dann eine Abstandsmatrix zwischen Ihrer Punktebene und der neuen Polygonpunktebene, die Sie gerade erstellt haben
Vektor -> Analysewerkzeuge -> Distanzmatrix
Stellen Sie sicher, dass Sie "Nur die nächsten (k) Zielpunkte verwenden" als 1 auswählen
quelle
Versuchen Sie Hub Distance im MMQGIS-Plugin.
http://michaelminn.com/linux/mmqgis/
Verweise:
quelle