Wie werden Einflussbereiche in QGIS berechnet?

10

Ich versuche, eine Polygonebene zu erstellen, die Polygone zeigt, die einem nächstgelegenen Geschäft entsprechen.

Für einen Satz von 30 Geschäftsstandorten sollte das Ergebnis eine Polygonebene mit 30 Merkmalen sein, eines für jedes Geschäft. Jedes Feature repräsentiert einen Bereich, in dem das entsprechende Geschäft am nächsten liegt. Beispielsweise bedeutet eine Adresse innerhalb des Polygons 12, dass der Speicher 12 am nächsten ist.

Ich habe meine Ladenstandortebene und die OSM-Straßenebene mit der Spalte für die Höchstgeschwindigkeit. Die resultierende Polygonebene sollte auf der OSM-Straßenebene und nicht nur auf linearen Bereichen basieren.

Die Idee ist, dass bei einem festen Satz von Geschäften und Straßen das nächstgelegene Geschäft an einem bestimmten Punkt auf einer Karte konstant bleiben sollte. Daher hoffe ich, dass die resultierende Polygonebene lückenlos ist.

Dieses Video der Maptitude-Software bietet ein perfektes Beispiel für das, was ich erreichen möchte (schneller Vorlauf auf 1:55 des Videos). Alternativ sehen Sie das Bild unten für ein Beispiel:

Maptitude-Gebiete am nächsten zum Krankenhaus

Für jedes Krankenhaus gibt es einen entsprechenden Bereich, in dem alles in diesem Bereich dem Krankenhaus in diesem Bereich am nächsten liegt.

Wie kann ich dies mit QGIS replizieren?

ge0m3try
quelle

Antworten:

8

Der Grasalgorithmus v.net.alloc kann die Subnetze erzeugen - Sie können ihn über die Verarbeitungs-Toolbox aufrufen (getestet in QGIS 2.16).

Sie benötigen eine Punktebene (für Einrichtungen) und eine Linienebene mit Kosten (entweder Zeit / Länge). Es wird eine neue Linienebene mit einem Feld namens cathinzugefügt erstellt, das die ID der nächsten Einrichtung ist.

Hier ist ein Beispiel, das auf dem Fußweg zum nächsten Pub basiert. Jedes Liniensegment wird catmit zufälligen Farben gefärbt : -

v.net.alloc Beispiel

Beachten Sie, dass manchmal zwei Straßennetze benachbarter Pubs sehr ähnliche Farben erhalten. Wenn Sie sie beschriften, werden Sie sehen, dass es tatsächlich funktioniert hat.

Was lückenlose Polygone angeht, wie Sie oben zeigen, bin ich ratlos. Wenn Sie in den Ergebnissen 'Knoten extrahieren' und 'Konvexer Rumpf' (Gruppierung nach Katze) anwenden, treten Lücken und Überlappungen auf.

BEARBEITEN

Sie können in der Tat das gewünschte Ergebnis erzielen. Wie Sie in Ihrem Kommentar vorgeschlagen haben, können Sie Folgendes tun:

  • Führen Sie Knoten auf der Ausgabe von v.net.alloc extrahieren aus
  • Führen Sie Voronoi-Polygone auf der Ebene der Extraktknoten aus
  • Führen Sie einen Puffer mit festem Abstand aus, um sicherzustellen, dass sich die Polygone überlappen (z. B. Puffer um 1 Meter).
  • Führen Sie " Auflösen" auf der gepufferten Ebene mit dem Feld "Katze" aus.

Hier ist das Ergebnis ... es ist nicht perfekt, manchmal werden Teile des Straßennetzes in benachbarte Polygone verirrt.

Geben Sie hier die Bildbeschreibung ein

In der neuen 2.16-Benutzeroberfläche gibt es eine "Falle" zum Auflösen. Ich stellte das Feld ein, aber es schien alles aufzulösen. Sie müssen daran denken, das Kontrollkästchen "Alle auflösen" zu deaktivieren, da sonst die Feldeinstellung ignoriert wird.

Steven Kay
quelle
Dies ist hilfreich und ich kann das Ergebnis sicherlich in meiner Bewerbung verwenden. Ich werde dies vorübergehend offen lassen, um zu sehen, ob es einen Weg gibt, mit Polygonen zu enden. Ist es möglich, dass die Verwendung des Voroni Polygons-Tools irgendwie hilft?
Ge0m3try
Ein Voronoi in Ihren Einrichtungen gibt nur eine Annäherung, basierend auf der euklidischen Entfernung "in Luftlinie" , sodass Ihr Straßennetz effektiv ignoriert wird.
Steven Kay
Ich bin gespannt, ob ich Knoten aus dem v.net.alloc-Ergebnis extrahieren und die Abstimmungspolygone basierend auf der eindeutigen Einrichtungskennung auflösen würde. Die Größe des Straßendatensatzes ist sehr groß, so dass ich dies nicht schnell testen kann, aber vielleicht gibt es in der Zwischenzeit einige Gedanken darüber, warum dies möglicherweise nicht funktioniert.
Ge0m3try
Eigentlich ist Ihre Vermutung richtig - haben Sie es einfach versucht.
Steven Kay
2
WICHTIGER HINWEIS: Dieser Workflow weist einige Probleme auf, die ich überwinden muss. Ein Werkzeug mit festem Abstandspuffer ist nicht erforderlich. Das SAGA- DissolveTool scheint viel schneller zu sein als das QGIS-Äquivalent. Außerdem scheint es schneller zu sein, die VoronoiEbene nach catFeldern und dann dissolvejeden Bereich einzeln aufzuteilen . Mergesie wieder zusammen. Führen Sie dann GRASS aus v.cleanund wählen Sie das Werkzeug aus rmdupl, um doppelte Knoten zu entfernen. Dies ist wichtig, da sonst andere Prozesse wie Abschneiden, räumliches Verbinden auf dem zusammengeführten gelösten Voronoi Lauyer nicht richtig funktionieren.
Ge0m3try