Ich habe zwei Ebenen: eine Punktebene, die Eigenschaften definiert (95 Objekte), und eine Polygonebene, die mit den Eigenschaften verknüpfte Grundstücke definiert (211 Objekte). Jeder Punkt bezieht sich auf ein oder mehrere Polygone. Was ich erstellen möchte, ist eine Tabelle mit Abständen jedes Punkts zu ALLEN Polygonen, die diesem Punkt zugeordnet sind (nächste Kante oder Schwerpunkt des Polygons - beides reicht aus). Die Berechnung der nächstgelegenen Entfernung ist in QGIS und ArcGIS relativ einfach, aber bei diesen Berechnungen werden alle entfernten Polygone weggelassen, zumindest nach den von mir verwendeten Methoden. Idealerweise möchte ich eine Ausgabe von
Point_ID | distance to polygon 1 | distance to polygon 2 | distance to polygon 3 | etc.
Alle Zeiger in ArcGIS 10 oder QGIS 2.2+ wären am hilfreichsten.
Antworten:
Sie können die Distanzmatrix in QGIS verwenden, um dies zu erreichen. Sie müssen Ihre Polygone zunächst entweder mit Vektor > Geometrie-Tools > Polygon-Schwerpunkte oder über die SAGA-Version von Polygon-Schwerpunkten in Schwerpunktpunkte konvertieren . Grund dafür ist, dass die Distanzmatrixfunktion nur zwischen 2 Punktebenen analysieren kann. Die Ausgabe würde auch so aussehen:
Die Ausgabe wäre eine CSV-Datei, sodass Sie das Layout manuell mit einer anderen Software wie Microsoft Excel bearbeiten können.
quelle
Dies ist mit QGIS (ich denke, jede Version wird es tun) und einer sehr einfachen SQL-Anweisung im DB-Manager ziemlich einfach zu erreichen. Aber dafür muss sich das in einer Art räumlicher Datenbank befinden (Postgis oder Spatialite). Da es für die meisten Menschen zugänglicher ist, gehe ich von der Verwendung von Spatialite aus, aber die SQL-Anweisungen sind für Postgis identisch.
Abstand von allen Punkten zu allen Polygongrenzen
Abstand zu allen Punkten zu verwandten Polygongrenzen (unter der Annahme, dass ein gemeinsames Feld existiert)
Abstand zu allen Punkten zu verwandten Polygonschwerpunkten :
Beachten Sie, dass Sie dem Ergebnis ein beliebiges Feld aus Ihren Ebenen hinzufügen können:
Oder sogar alle Felder:
quelle
Das Werkzeug " Nahe Tabelle generieren" in ArcGIS macht das, was Sie wollen, erfordert jedoch eine erweiterte Lizenz und dies für alle Punkte / Polygone - nicht nur für die miteinander verknüpften. Dies bedeutet, dass Sie für jedes Ihrer 95 Objekte den Rangabstand für alle 211 Eigenschaften erhalten, also 20.045 Zeilen in der Tabelle. Sie müssten entweder die resultierende Tabelle filtern oder, wie Emil vorschlägt, die Aufgabe automatisieren, um Auswahlen basierend auf der Zuordnung zu erstellen und sie nur für diese Gruppen auszuführen.
Was das Filtern betrifft, ist ein Join (gefolgt von einer Definitionsabfrage oder -auswahl) alles, was Sie benötigen. Das Tool-Ergebnis gibt Ihnen IN_FID und NEAR_FID. Abhängig davon, wie Sie das Tool ausführen (Eigenschaften in der Nähe des Punkts oder Punkt in der Nähe der Eigenschaft), bestimmen Sie, welche FID welche ist. Sie würden dann Ihre Punkt- und Eigenschaftstabellen (beide) basierend auf der entsprechenden FID mit dem Werkzeugergebnis verknüpfen.
Dies setzt voraus, dass jeder Ihrer 211 Eigenschaftsdatensätze ein Attribut hat, das angibt, zu welchem der 95 Punkte sie gehören, da der nächste Schritt darin besteht, alle Datensätze in den verbundenen Tabellen auszuwählen (oder zu definieren), in denen zwei Felder eines Datensatzes enthalten sein sollen match - point name field = eigenschaftsassoziiertes Punktnamenfeld. Die Fälle, in denen sie nicht übereinstimmen, sind Polygone, die diesem Punkt nicht zugeordnet sind. Sie kümmern sich also nicht um ihre Entfernung von diesem Punkt.
quelle