Effektive Heatmaps erstellen?


65

Verwenden von ArcGIS, QGIS, Grass und / oder GVSIG:

  • Mit welchen Tools und Prozessen lassen sich effektive Wärmekarten erstellen?
  • Um welche Plugins handelt es sich?
  • Was sind die wichtigsten Datenanforderungen?
  • Was sind einige der Mängel bei vorhandenen Heatmaps?
  • Was sind einige der Probleme, die Heatmaps nicht effektiv abdecken können?
  • Wie mache ich keine Heatmap?
  • Gibt es bessere Alternativen (im selben Kontext) als eine Heatmap für die Datendarstellung?

Obwohl es keines der von Ihnen angegebenen Tools verwendet, sollten Sie sich auch dieses Python-Skript ansehen. Jjguy.com/heatmap
radek

1
Dassouki, könnten Sie klarstellen, was Sie mit "Heatmap" meinen? Wikipedia scheint zu glauben, dass es sich um eine Choroplethen-Wiedergabe einer Reihe von Werten handelt. Dies unterscheidet sich subtil, aber vor allem von allen Antworten in diesem Thread, bei denen davon ausgegangen wird, dass es sich lediglich um eine Karte eines gitter- (oder bild-) basierten Attributs handelt, insbesondere eines, das aus Punktdaten in das Gitter interpoliert wurde. Die Antworten auf alle Ihre Fragen mit Aufzählungszeichen sind für eine echte Heatmap unterschiedlich.
whuber

Antworten:


74

Diese Frage wurde in Community-Wiki konvertiert und durch Wiki gesperrt, da es sich um ein Beispiel für eine Frage handelt, die nach einer Liste von Antworten sucht und so beliebt zu sein scheint, dass sie vor dem Schließen geschützt ist. Dies sollte als Sonderfall behandelt werden und nicht als die Art von Frage angesehen werden, die auf dieser oder einer anderen Stack Exchange-Site empfohlen wird. Wenn Sie jedoch mehr Inhalt dazu beitragen möchten, können Sie dies tun, indem Sie diese Antwort bearbeiten .


Es gibt mindestens zwei verschiedene Arten von Heatmaps:

  1. Heatmaps, die die Punktekonzentration darstellen, und
  2. Heatmaps, die Verteilungen von Attributwerten darstellen

Jede Methode hat Vorteile und Probleme. Ich befürchte, dass das Eingehen auf Details weit über diese Fragen und Antworten hinausgeht.

Ich werde versuchen, einige Methoden und Funktionen für QGIS und GRASS aufzulisten.

Konzentration von Punkten

Wenn Sie die Bewegung von Wildtieren, Fahrzeugen usw. verfolgen, kann es nützlich sein, Regionen mit einer hohen Konzentration von Standortmeldungen zu bewerten.

Tools: zB QGIS Heatmap Plugin (verfügbar in Versionen> 1.7.x) oder GRASS v.neighbors oder v.kernel

Verteilungen von Attributwerten

Grundsätzlich geht es hier mehr oder weniger um Interpolationsmethoden. Methoden umfassen:

  1. IDW

    Je nach Implementierung kann dies global (unter Verwendung aller verfügbaren Punkte in der Menge) oder lokal (begrenzt durch die Anzahl der Punkte oder den maximalen Abstand zwischen Punkten und der interpolierten Position) sein.

    Tools: QGIS-Interpolations-Plugin (global), GRASS v.surf.idw oder r.surf.idw (lokal)

  2. Splines

    Auch hier gibt es eine Vielzahl möglicher Implementierungen. B-Splines sind beliebt.

    Werkzeuge: GRASS v.surf.bspline

  3. Kriging

    Statistische Methode mit verschiedenen Untertypen.

    Tools: GRASS v.krige (danke an om_henners für den Tipp) oder mit R.


1
Es gibt eine GRASS-Schnittstelle für kriging, v.krige ( grass.osgeo.org/wiki/V.krige_GSoC_2009 ), für die jedoch weiterhin R und die verschiedenen auf der GRASS-Wiki-Seite erwähnten R-Pakete und -Bindungen erforderlich sind.
Om_henners

Seit QGIS 2.8 gibt es einen Heatmap-Renderer für Punktebenen. Keine Notwendigkeit, neue Daten zu erstellen.
Alexandre Neto

34

Statistisch gesehen sollten Sie wie folgt vorgehen, um eine Heatmap zu erstellen:

1) Integrieren Sie Punktmerkmale. Die Idee der Integration ist es, Punkte, die als zufällig betrachtet werden sollten, zu einem einzigen Ort zusammenzuführen. Ich verwende gerne die Analyse des nächsten Nachbarn und verwende von dort einen geeigneten Wert. (Wenn ich beispielsweise eine Kriminal-Heatmap durchführe, verwende ich den durchschnittlichen ersten nächsten Nachbarn für den zugrunde liegenden Paketdatensatz, für den die Verbrechen geokodiert sind.)

2) Ereignisse sammeln . Dies erzeugt ein räumliches Gewicht für alle Ihre integrierten Punkte. Wenn Sie beispielsweise 5 Events an einem Ort haben, wird dies zu einem Punkt mit Gewicht 5. Dies ist für die nächsten beiden Schritte von wesentlicher Bedeutung. Wenn Sie ein Attribut in den zusammengefassten Ereignissen aggregieren müssen, dh verschiedene Ereignisse eine höhere Gewichtung haben, können Sie eine räumliche Eins-zu-Eins-Verknüpfung verwenden . Verwenden Sie die Ausgabe "Ereignis erfassen" als Ziel und Ihre ursprünglichen integrierten Ereignisse als Join-Features. Legen Sie die Feldzuordnungs-Zusammenführungsregeln fest, indem Sie das Attribut für die integrierten Ereignisse statistisch kombinieren (normalerweise mit einer SUMME, obwohl Sie auch andere Statistiken verwenden können).

3) Bestimmen Spitzen räumliche Autokorrelation unter Verwendung von globalen Morans I . Wie es heißt, lassen Sie das I des globalen Morans in verschiedenen Intervallen laufen, um das Spitzenband der räumlichen Autokorrelation in der Skala zu bestimmen, die für die von Ihnen durchgeführte Analyse geeignet ist. Möglicherweise möchten Sie bei Ihren gesammelten Ereignissen den nächsten Nachbarn erneut ausführen, um den Startbereich für die I-Tests Ihres Morans zu bestimmen. (zB den Maximalwert für den ersten nächsten Nachbarn verwenden)

4) Führen Sie Getis-Ord Gi * aus . Verwenden Sie ein festes Entfernungsband, das auf der I-Analyse Ihres Morans basiert, oder verwenden Sie das feste Entfernungsband als Zone der Gleichgültigkeit. Ihr räumliches Gewicht von Sammelereignissen ist Ihr numerisches Zählfeld. Dadurch erhalten Sie Z-Scores für jeden Ereignispunkt in Ihrem Set.

5) Vergleichen Sie IDW mit Ihren Ergebnissen von Getis-Ord Gi *.

Dieses Ergebnis unterscheidet sich erheblich von dem, was Sie mit der Kerneldichte erhalten. Es zeigt Ihnen, wo hohe und niedrige Werte zusammen gruppiert werden und nicht nur, wo die Werte hoch sind, unabhängig von der Gruppierung, wie in der Kerneldichte.


20

Obwohl ich Heatmaps mag, stelle ich fest, dass sie oft missbraucht werden.

Typischerweise habe ich einen Prozess gesehen, bei dem die Farbe jedes Pixels auf dem Ergebnis einer inversen abstandsgewichteten Funktion basiert, die auf eine Sammlung von Punkten angewendet wird. Jedes Mal, wenn eine Karte viele überlappende Punktmarkierungen aufweist, sollte eine Heatmap in Betracht gezogen werden.

Hier ist eine webbasierte API .

GeoChalkboard hat ein gutes Tutorial dafür .

Sie können IDW in ArcGIS verwenden.


7
Beachten Sie jedoch, dass IDW sehr empfindlich auf die Speicherorte der Datenerfassung reagiert. Wenn die Daten beispielsweise zu Clustern zusammengefasst werden, kann es zu schlechten mathematischen Anomalien kommen.
Reed Copsey

@Reed Copsey Welche Alternative würden Sie vorschlagen?
fmark

2
@ fmark: Es gibt viele Interpolationsroutinen, die Sie anstelle von IDW verwenden können, einschließlich natürlicher nachbarschafts- / triangulationsbasierter Ansätze, Kriging, Splining / minimale Spannung usw.
Reed Copsey

@Reed Ich habe mich nie wirklich um die mathematische Korrektheit von Heatmaps gekümmert (vielleicht sollte ich das tun). Ich denke jedoch, dass sie Cluster in vielen Situationen sinnvoll kommunizieren. Hier ist ein Beispiel für eine Karte, die meiner Meinung nach nützlich als Heatmap dargestellt werden könnte: www2.clustrmaps.com/counter/maps.php?url=http://clustrmaps.com
Kirk Kuykendall

2
Ich denke, sie sind ein großartiges Werkzeug. Die mathematisch / statistische Korrektheit ist wahrscheinlich nur wichtig, wenn Sie die Ergebnisse für die Entscheidungsfindung verwenden, aber wenn es darum geht, den allgemeinen Sinn der Verteilung zu vermitteln, ist IDW wahrscheinlich in Ordnung. (Es ist eher eine Frage der Cluster, die aufgrund mathematischer Anomalien große "Schrägstellungen" in den Heatmap-Ergebnissen verursachen, insbesondere zwischen den Clustern.)
Reed Copsey,

12

Für einfache Heatmaps und das Generieren von Countour-Linien habe ich QGis mit der Grass-Integration verwendet:

  1. Datenpunkte laden
  2. Laden Sie eine Grenzform - zB Kreisgrenze
  3. Erstellen Sie ein Grass-Mapset
  4. Öffnen Sie die Grass-Toolbox und klicken Sie auf die Modulliste, um nach jedem Werkzeug zu suchen
  5. Laden Sie das v.in.ogr.qgis- Modul und laden Sie sowohl die Punktdaten als auch die Begrenzungsform, wobei Sie jedes Mal daran denken, die Ausgabe für jede Ansicht anzuklicken - geben Sie jeder einen nützlichen Namen wie Punktdaten und Maskenform
  6. Konvertieren Sie Maskenform in ein Raster, um es als Maske mit v.to.rast zu verwenden, und fügen Sie es dem Mapset hinzu. Nennen Sie es so etwas wie Maskraster. Dies kann Zeit für komplexe Polygone in Anspruch nehmen.
  7. Laden Sie das r.mask- Modul, um die nächste Aktion auf den Pufferbereich zu beschränken.
  8. Führen Sie v.surf.rst aus , um ein interpoliertes Gitter aus Punktdaten zu erstellen. Wählen Sie die entsprechende Spalte als Attributfeld für die Interpolation aus und nennen Sie sie so etwas wie Rasterfläche . Dies ist das Bit, das Zeit benötigt und ein Raster generiert, das als For-of-Heat-Map verwendet werden kann oder dreidimensional schattiert sein kann.
  9. Schließen Sie die Grass-Toolbox
  10. Verwenden Sie das Plug-In GDAL Raster Contours, und wählen Sie das Raster GRASS als Eingabe aus. Belassen Sie den Standardwert für die Ebene bei 10 und wählen Sie ein Ausgabeverzeichnis, in dem das Kontur-Shapefile gespeichert wird. Überprüfen Sie den “Attributnamen” und geben Sie einen Namen ein.

NB: Damit dies funktioniert, sollten sich die Datensätze in derselben Projektion befinden!


4

Ich denke, diese Frage wurde mit Ausnahme einiger Punkte zu den Themen weitgehend beantwortet.

Heatmaps können großartig sein, aber ein klassischer Fehler und ein Problem liegt in der Interpretation. Nehmen Sie den Unterschied zwischen einer Heatmap von Kriminalitätsereignissen und einer Karte (Hitze oder auf andere Weise) der Kriminalitätsrate / -quote. Die Ereignis-Heatmap kann zwar hilfreich sein, um die Gesamtereignisdichte zu ermitteln, sie ist jedoch blind, um das Risiko einzuschätzen, wird jedoch häufig auf diese Weise interpretiert oder missbraucht. Betrachten Sie die gleiche Anzahl von Ereignissen in einer Region mit der gleichen Größe und Form, aber mit einer anderen Bevölkerung, während sich die Kriminalität möglicherweise auf einen Bereich konzentriert, könnte dies einfach daran liegen, dass sich mehr Menschen in diesem Bereich befinden. Darüber hinaus kann es schwierig sein, Raten für Ereignisdaten wie für Verbrechen zu modellieren, da für die Erstellung eines Heatmap-Rasters ein Ereignis wie ein Bevölkerungsmodell erforderlich sein kann, die Menschen jedoch nicht zum Stillstand neigen.

Ein zweites Problem besteht darin, dass eine Heatmap auf die Berücksichtigung einer einzelnen Raumskala beschränkt ist und die Auswahl dieser Raumskala, dh der Kerngröße oder der Zerfallsrate, kompliziert sein kann und von den Zielen der Studie abhängt, aber gerechtfertigt sein muss . Wenn der Punkt darin besteht, das Zentrum des stärksten Clusters zu identifizieren und das Ausmaß, in dem es auftritt (möglicherweise um die Quelle eines Krankheitsausbruchs und einen Faktor für dessen Ausbreitung zu identifizieren), könnte eine bessere Option darin bestehen, mehrere Maßstäbe in Betracht zu ziehen. Mit geeigneten Gewichtungen proportional zur Skala / Fläche, um ein dreidimensionales Raster zu erzeugen, bei dem lokale Maxima im 3D-Raster der Raumskala die Position des Clusterzentrums und ihre jeweilige Größe sowie die Beständigkeit zwischen den Skalen angeben.


1
Sie machen einige sehr gültige Punkte. Diese beiden Probleme sind eigentlich klassische Probleme der Geographie. Das erste Problem betrifft die Interpretation der zugrunde liegenden Ungleichmäßigkeit des Raums, dh da die Verteilung der Menschen ungleichmäßig ist (mit einigen dünn besiedelten Gebieten), ist auch die Möglichkeit der Kriminalität ungleichmäßig. Das Muster in einem wird durch das Muster im anderen erzwungen. Die zweite Ausgabe der Skala ist Teil des Modifizierbaren Flächeneinheitsproblems (MAUP), das sich auf alle Maße auswirkt, die von einem zu messenden Bereich abhängen, z. B. der Dichte. Dies ist ein klassisches Problem bei den meisten geografischen Arbeiten.
WhiteboxDev

Betrachten Sie auch Thiessen-Polygone als ersten Blick auf räumliche Muster. Sie sind recht einfach, können aber auch viele Details darstellen, sind ein exakter Interpolator und scheinen einige der Skalierungsprobleme zu umgehen
Tom Dilts
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.