Ich habe eine Ebene mit vielen Gebäuden als Punkte auf einer Karte. Eines der Attribute jedes Gebäudes ist "download_speed"
.
Ich möchte ein quadratisches Raster (100 x 100 Meter) auf die Karte setzen. Die Quadrate sollten sich wie folgt verhalten:
Der Platz sollte nur sichtbar sein, wenn sich mindestens ein Gebäude auf dem Platz befindet.
Das Quadrat sollte rot sein, wenn keines der Gebäude auf dem Quadrat
"download_speed"
über 10 (Mbit / s) liegt.Das Quadrat sollte grau sein, wenn einige der Gebäude auf dem Quadrat
"download_speed"
über 10 (Mbit / s) liegen.Das Quadrat sollte schwarz sein, wenn alle Gebäude auf dem Quadrat
"download_speed"
über 10 (Mbit / s) liegen.
Ich bin ein absoluter Neuling in QGIS (und GIS-Software im Allgemeinen), aber ein erfahrener Benutzer von Python in der Datenwissenschaft.
Das Endergebnis sollte ungefähr so aussehen wie auf dem Bild unten:
quelle
Antworten:
Vor einiger Zeit habe ich einen Beitrag zum Erstellen eines Vektorgitters aus Polygonen geschrieben:
So generieren Sie mit Python ein Vektorgitter aus Polygonen in QGIS
Das hat mich dazu inspiriert, eine Lösung vorzuschlagen.
Mein Ansatz greift auf ein benutzerdefiniertes Skript aus der Processing Toolbox zurück (siehe den obigen Beitrag, wenn Sie nicht wissen, wie es geht).
Als Eingabeparameter benötigt es:
Angenommen, die Download-Geschwindigkeiten werden im
"download_speed"
Feld gespeichert , können Sie diesen Code verwenden:Als erfahrener Python-Benutzer sollten Sie in der Lage sein, den obigen Code leicht zu verstehen und an Ihre spezifischen Anforderungen anzupassen (andernfalls lassen Sie mich wissen, wenn Sie eine Erklärung benötigen). Noch etwas: Ich habe die Bedingungen für die Zuweisung von Farben nicht gründlich getestet, aber es sollte eine leichte Aufgabe für Sie sein.
Testen des Codes an diesen zufälligen Punkten:
Ich erhalte dieses Ergebnis:
Das scheint das zu sein, wonach Sie suchen.
quelle