Heatmap aus Liniendaten in QGIS erstellen?


12

Ich möchte eine Liniendichteanalyse für meine Liniendaten basierend auf einem Attribut durchführen.

Die Heatmap-Option (Kernel-Dichteanalyse) scheint nur für Punktdaten möglich zu sein.

Ich habe versucht, meine Liniendaten in Punkte zu konvertieren und eine Heatmap zu erstellen, aber die Attribute für das Gewicht gingen bei der Konvertierung verloren.

Dies ist eine mit ArcGIS durchgeführte Liniendichteanalyse. Ich wollte dasselbe mit QGIS machen.

Geben Sie hier die Bildbeschreibung ein

Ist es möglich, eine ähnliche Liniendichteanalyse in QGIS durchzuführen? und das sind die Daten zu QGIS

Antworten:


4

Ich kann in QGIS über die DB Manager / SQLite-Funktionen keine Möglichkeit finden, dies zu tun, aber in PostGIS gehen wir wie folgt vor:

select
(ST_DumpPoints(l.geom)).geom
from linedata as l

Dies, das in eine neue Tabelle exportiert wird, ermöglicht die Linienpunkte (für unseren Fall von PGRouting-Schülern zu ihrer Schule), sodass wir den Hotspot der Routen visualisieren können, die die Schüler nehmen könnten:

Geben Sie hier die Bildbeschreibung ein


4

Tatsächlich ist es möglich, die Liniendichte in QGIS mithilfe der Standardmenüs zu erstellen, die Parameter an die ausführbaren GDAL-Dateien senden.

Die Verwendung von gdal_rasterize mit dem Schalter -burn -add würde ein Raster der Dichte von Linien oder Punkten erstellen, ohne Suchradius als Kerneldichten und ähnliches. Wie viele Punkte oder wie viele Linien in einer Rasterzelle.

gdal_rasterize befindet sich im Menü Raster -> Konvertierung -> Rasterisieren. Im letzten Textfeld drücken Sie die Bleistifttaste und ändern den Text so, dass er "-burn 1 -add" enthält, ähnlich wie unten. Natürlich ändern Sie die Parameter -tr (Auflösung) sowie den Eingabe- und Ausgabenamen entsprechend Ihrer Situation.

gdal_rasterize -burn 1 -add -tr 200,0 200,0 -l Zeilen C: /lines.shp C: /out_lines.tif

Jukka Rahkonen gab mir die Hinweise auf der Mailingliste gdal_dev. Ich habe buchstäblich seit Jahren danach gesucht.

In Bezug auf die Rasterzellenwerte für gerasterte Linien bin ich mir nicht sicher, was die Werte darstellen. Anscheinend ist es nicht die Anzahl der Zeilen oder die Länge der Zeilen.

Liniendichte mit gdal_rasterize


3

Mit einem ähnlichen Ansatz wie bei der Antwort von @DPSSpatial würde ich das QChainage- Plugin verwenden, um gleichmäßig verteilte Punkte entlang jeder Linie zu erstellen.

Dieses Plugin generiert Punkte entlang der Linie, kopiert jedoch keine Attribute von der Linie.

Hier gehe ich von WGS84 (4326, Degrees Lat / Lon) aus. Sie möchten dies wahrscheinlich mit einer geeigneten Projektion in Metern tun.

  • Verwenden Sie QChainage , um Punkte entlang der Linie zu generieren, z. B. alle 0,05 Grad
  • Puffer diese Schicht zB um 0,001 Grad.
  • Führen Sie eine räumliche Verknüpfung ( Vektor> Datenverwaltungstools> Verknüpfungsattribute nach Standort ) durch (unter Verwendung von "Schnittpunkten") von den gepufferten Punkten zu Ihrer ursprünglichen Linienebene. Dadurch können die Punkte den Einflusswert von den Linien darunter erfassen.
  • Konvertieren Sie diese Ebene mithilfe von Vektor> Geometriewerkzeuge> Polygonschwerpunkte zurück in Punkte

Schließlich würde ich den Standard-Heatmap-Renderer verwenden. Stellen Sie sicher, dass Sie die Gewichtspunkte verwenden, indem Sie das Einflussfeld festlegen und verwenden.

Sie sollten jetzt so etwas haben. Die Zahlen entlang jeder Zeile geben den "Einfluss" -Wert an.

Geben Sie hier die Bildbeschreibung ein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.