Ich habe eine Polygonebene mit einem Attributwert, der die Anzahl der Personen innerhalb eines Polygons darstellt. Ich verwende QGIS 3.0.
Ich muss die Anzahl als ein Gitter von Punkten innerhalb eines Polygons visualisieren (dh 1 Punkt = 100 Frösche, gefärbt nach Spezies). Die Punkte müssen nicht unbedingt das gesamte Polygon einnehmen und müssen vorzugsweise um einen Schwerpunkt mit vordefiniertem Abstand (dh 300 m) gezeichnet werden, damit sie ein ordentliches Gitter mit einer bestimmten Auflösung darstellen können.
Die derzeitige Problemumgehung besteht darin, "Regelmäßige Punkte" mit dem Parameter "Zählungen" zu verwenden, um Gitter innerhalb der auf einer Karte gezeichneten Ausdehnung zu erstellen und dann die vom Algorithmus erstellten zusätzlichen Punkte zu löschen (Algorithmus rundet auf ein Gitter und Sie erhalten möglicherweise 20 statt 17 Zoll) Eingang). Dies führt zu dem gewünschten Ergebnis, erfordert jedoch das Zeichnen der Flächenausdehnung für reguläre Punkte für jedes Polygon sowie die manuelle Eingabe von Attributen und das Bereinigen der erstellten Punkte. Da ich "Reguläre Punkte" mit der angegebenen Anzahl anstelle des Abstands ausführe, erhält jedes Polygon außerdem Punkte mit unterschiedlichen Abständen.
Kurz gesagt: Regelmäßige Punkte (definierte Anzahl von Punkten, gezeichnete Ausdehnung) für jedes Polygon (Stapel)> Zusätzliche Punkte löschen> den # Punkten Attributwerte zuweisen
Alternative (vermeidet den unregelmäßigen Abstand, erfordert aber noch mehr Manipulationen):
Regelmäßige Punkte (definierter Abstand, dh 300 m) in der Ausdehnung der gesamten Ebene> In die Ausdehnung der Polygone schneiden> Zusätzliche Punkte in jedem Polygon löschen, bis Sie die gewünschte Anzahl von Punkten erhalten> Punkte Attributwerte zuweisen.
Das Hauptproblem bei meinen Problemumgehungen ist die polygonweise Verarbeitung, die es schwierig macht, die Daten zu aktualisieren und mit einer größeren Anzahl von Polygonen zu arbeiten.
Die analoge Frage wurde gestellt als Erstellen einer regelmäßig verteilten, definierten Anzahl von Punkten innerhalb eines Polygons in QGIS , aber die Besonderheiten sind unterschiedlich.
quelle
Antworten:
QGIS 3 enthält eine neue Verschiebungsmethode im Cluster-Renderer namens grid. Sieht so aus, als ob das so ziemlich das ist, was du brauchst. Erstellen Sie einfach die Anzahl der gewünschten Punkte am Schwerpunkt Ihres Polygons.
Mir ist keine Methode bekannt, um die Punkte nur mit einem GUI-Tool zu generieren, aber ein relativ einfaches Python-Skript sollte dies tun.
Wenn Sie verrückt werden möchten, verpacken Sie dies in einen benutzerdefinierten Verarbeitungsalgorithmus.
quelle
Vielleicht ein anderer Weg, der durch die Antwort von Sarath SRK inspiriert wird:
Sie werden jedoch so etwas haben
Verwenden Sie einen grafischen Modellierer, um ein neues Feld mit dem Befehl "@row_number" zu erstellen.
Führen Sie das Modell mit einer Iteration auf der Pufferschicht aus
Alle neuen Ebenen zusammenführen
Löschen Sie alle Punkte mit einem ID_pt-Feld, das größer ist als die Summe Ihres Feldes ("Frösche" + "Katzen" + "Diplodocs").
quelle
Sie können hierfür Geometriegeneratoren verwenden.
quelle
Eine Lösung könnte darin bestehen, eine Punktebene mit Punkten am Schwerpunkt jedes Polygons zu erstellen. Zum Beispiel haben Sie am Schwerpunkt von Edmonton 25 überlagerte Punkte erhalten: 5 mit einem Froschattribut, 20 Punkte mit Katze und 0 mit Diplodocs.
Wenn Sie dann den Punktverschiebungs-Renderer mit der als Raster festgelegten Platzierungsmethode verwenden, sollten Sie in der Lage sein, den Effekt zu erzielen.
Die Schwierigkeit besteht darin, die Punktebene zu erstellen ....
quelle
Eine sehr einfache Alternative könnte darin bestehen, das Kreisdiagramm zu verwenden, das in den Eigenschaften der Ebene verfügbar ist. Attribute und Größen können durch einen Ausdruck vorgegeben werden.
quelle
Sie können die Punkte auf einem Spiralpfad ausgehend vom Polygonschwerpunkt generieren. Der folgende Beitrag zum Stapelüberlauf enthält Python-Code zum Erstellen von Punkten mit gleichem Abstand, aber ich kann ihn derzeit nicht testen, da mir die Freizeit fehlt.
quelle
In deinem Fall,
quelle