Ich habe mit dem Heatmap-Plugin für QGIS herumgespielt und mich gefragt, ob es möglich ist, mit einem ähnlichen Plugin / Tool, das sowohl Polygone als auch Punkte verwendet, eine Heatmap zu erstellen.
Ich möchte eine Darstellung der Datendichte ähnlich wie das Heatmap-Plugin für Punkte erhalten.
Das folgende Bild ist eine grobe Skizze meines gewünschten Ergebnisses:
Antworten:
Vielleicht können Sie eine Reihe von zufälligen Punkten in Ihren Polygonen erzeugen, es gibt ein QGIS-Tool dafür ? Wenn Sie überlappende Polygone haben, haben Sie eine höhere Dichte in diesem Bereich. Verwenden Sie dann die Heatmap für die Punkte. Sie müssten mehrere Runden laufen, um die optimale Anzahl von Punkten zu finden, da das Ergebnis davon abhängt.
Wenn Ihre Daten die Verteilung einiger ohnehin unscharfer Lebensräume anzeigen, kann dies der realen Situation am nächsten kommen, in der ein Punkt ungefähr ein Exemplar widerspiegelt.
quelle
Wenn ich Ihre Frage richtig verstehe, habe ich zuvor etwas Ähnliches getan. musste mich nur erinnern, was ich getan habe.
Dies funktioniert, wenn sich Ihre Polys überlappen UND nicht dieselbe Ebene haben. Wenn sie sich auf derselben Ebene befinden und es möglich ist, sie in separate Ebenen zu verschieben, übernimmt die Zielebene nur einen der Werte.
Der Schlüsselprozess zur Verwendung ist die Join - Attribute von Position unter dem Vector> Daten Mangement - Menü. Geben Sie hier Ihr hexagonales Feld als Zielebene und die Verknüpfungsebene als eines Ihrer Polygone an. Benennen Sie die resultierende Ebene und aktivieren Sie das Optionsfeld Alle Datensätze beibehalten .
Die resultierende Ebene sollte eine Kopie Ihrer hexgonalen Ebene mit allen Zellen sein, die sich mit Ihrer polygonalen Ebene überschnitten haben. Verwenden Sie jetzt für die Interaktion Ihre letzte resultierende Ebene als Zielebene und fügen Sie die nächste Polygonebene hinzu. Nehmen Sie den resultierenden Lasyer und verbinden Sie Ihre nächste Ebene, bis Sie alle Ihre Ebenen verbunden haben.
Ihre letzte Ebene sollte alle Attributfelder der vorherigen Ebenen geerbt haben, und ein Großteil davon könnte NULL lauten.
Hier müssen wir einige der Eingeweide eines Shapefiles spielen. Wenn Sie die Ebene also nicht als Shapefile gespeichert haben, tun Sie dies jetzt. Entfernen Sie die Ebene aus Ihrem Arbeitsbereich in QGIS.
Öffnen Sie die * .dbf-Dateien des Shapefiles in OpenOffice Calc. Verwenden Sie NICHT Excel. Es wird die Datei kaputt machen und es nützt nichts, das hat man auf die harte Tour gelernt. Ordnen Sie die Daten nicht neu an, da dies auch sehr spezifisch für die Reihenfolge der Zeilen in der Datei ist. Stellen Sie sicher, dass die NULL-Werte jetzt Null sind, wenn dies nicht der Fall ist. Ersetzen Sie sie sorgfältig.
Fügen Sie nun das Shapefile in QGIS ein und öffnen Sie die Attributtabelle . Es sollte jetzt Nullen anstelle von NULL anzeigen. Verwenden Sie den Feldrechner und addieren Sie die Felder, die Ihrer Arbeit zugeordnet sind, in einer neuen Spalte.
Jetzt haben Sie ein summiertes Feld, in dem die Werte aller Objektgruppen, die das Zielfeld überlappen, mit einem gewissen Grad an Genauigkeit angezeigt werden sollen. Sie können die Symbologiefunktion verwenden, um Ihre Polygone basierend auf dem Wert Ihres summierten Feldes für eine schöne Choroplethen-Karte einzufärben.
Wenn Sie alle nicht verwendeten Felder in der Datei entfernen möchten. Öffnen Sie einfach die DBF-Datei erneut in Calc und löschen Sie die unerwünschten Spalten nach Belieben. Persönlich würde ich empfehlen, zu lernen, wie ich es oft mache, um es mir bequem zu machen, in ein Shapefile zu gehen.
quelle
Dies ist ein allgemeiner Workflow mit Rastern. Ich kenne die Einzelheiten nicht, um dies in QGIS zu erreichen.
Mit Alpha / Null-Werten und / oder Ebenentransparenz können Sie das Raster auf einer beliebigen Grundkarte überlagern.
quelle
Versuchen Sie dies stattdessen. Wenn es Ihren Anforderungen entspricht, ist es keine rechnerische Lösung für das Dataset. Wenn Sie jedoch nach einer einfachen Infografik-Lösung suchen, können Sie dies stattdessen versuchen.
Verknüpfen Sie Attribute nach Position, wobei Ihre x-Eckzellen als Ziel und Ihre Punktdaten als Verknüpfung dienen. Wählen Sie diese Option, um alle Funktionen beizubehalten. Setzen Sie die Symbologie auf die Zellen mit dem geerbten Wert auf die gewünschte Farbe und setzen Sie die Transparenz auf etwa 50%.
Stellen Sie dann auf Ihrer Ebene mit den Kreis-Polys die Symbologie auf die gleiche Farbe und Transparenz ein. Platzieren Sie das Kreispoly vor dem Zellenpoly. Dies wird die Illusion einer erhöhten Sättigung erzeugen, wenn der Wert zunimmt.
Wenn Sie möchten, können Sie auch die Linien aller Polys und der darüber liegenden Überlagerung extrahieren, damit die Konturen der Unterebenen nicht von den anderen Ebenen überfärbt werden.
Sie müssen mit den Farben und der Transparenz spielen, um die beste Lösung zu finden. Ich finde, die gleichen Farben sehen am besten aus, aber experimentieren.
quelle
Ich schlage vor, dass Sie das GRASS-Plugin verwenden - QGIS hat eine ziemlich eingeschränkte Funktionalität (und warum das Rad in Python neu erfinden, wenn es bereits Software wie GRASS gibt?):
[Je nachdem, ob Ihre Polygone bereits einen Wert haben, sind möglicherweise die nächsten zwei Zeilen erforderlich.]
Hier addieren wir die Überlappung in den Polygonen und erstellen dann das Raster basierend auf diesen Spalten
quelle
Bei einfachem QGIS kann es schwierig sein, benutzerdefinierte Skripte zu erstellen oder eine räumliche Datenbank wie PostGIS oder Spatialite zu verwenden. Ich würde mit PostGIS regelmäßige Punktraster erstellen oder als CSV-Textdatei generieren und diese importieren. Zeichnen Sie dann mit st_buffer einen Kreis um jeden Punkt oder mit ST_MakeEnvelope Rechtecke und zählen Sie alle überlappenden Bereiche jedes Puffers. Dann möchten Sie wahrscheinlich alle 0-Werte entfernen, wenn dies "keine Daten" bedeutet. Schließlich können Sie eine Heatmap für das Raster erstellen, indem Sie den Zähler als Gewichtungsfeld verwenden.
Sie müssen mit verschiedenen Rasterauflösungen experimentieren, um eine optimale zu finden. Im Wesentlichen ist es dem von Kevin vorgeschlagenen Raster-Ansatz sehr ähnlich, nur in der Vektorwelt zu bleiben.
quelle