Costruire mappe di calore efficaci?


65

Utilizzando ArcGIS, QGIS, Grass e / o GVSIG:

  • Quali sono alcuni degli strumenti e dei processi coinvolti nella costruzione di mappe di calore efficaci?
  • Quali sono i plugin coinvolti?
  • Quali sono i principali requisiti relativi ai dati?
  • Quali sono alcuni dei difetti con le mappe di calore esistenti?
  • Quali sono alcuni dei problemi che le mappe di calore non possono affrontare in modo efficace?
  • Come non fare una mappa di calore?
  • Esistono alternative migliori (nello stesso contesto) della mappa di calore per la rappresentazione dei dati?

Sebbene non utilizzi nessuno degli strumenti specificati, potresti voler dare un'occhiata anche a questo script Python jjguy.com/heatmap
radek

1
Dassouki, potresti chiarire cosa intendi per "mappa del calore"? Wikipedia sembra pensare che sia una rappresentazione coropletica di una matrice di valori. Ciò è sottilmente, ma soprattutto, diverso da tutte le risposte in questo thread, che presuppongono che significhi semplicemente una mappa di qualsiasi attributo basato sulla griglia (o sull'immagine), in particolare uno che è stato interpolato sulla griglia dai dati dei punti. Le risposte a ciascuna delle tue domande puntate saranno diverse per una vera mappa di calore.
whuber

Risposte:


74

Questa domanda è stata convertita in Wiki comunità e wiki bloccato perché è un esempio di una domanda che cerca un elenco di risposte e sembra essere abbastanza popolare da proteggerlo dalla chiusura. Dovrebbe essere trattato come un caso speciale e non dovrebbe essere visto come il tipo di domanda che viene incoraggiata su questo o su qualsiasi sito Stack Stack, ma se desideri contribuire con più contenuti ad esso, sentiti libero di farlo modificando questa risposta .


Esistono almeno due diversi tipi di mappe di calore:

  1. Heatmap che rappresentano la concentrazione di punti e
  2. Heatmap che rappresentano le distribuzioni dei valori degli attributi

Ogni metodo ha vantaggi e problemi, temo che entrare nei dettagli sia molto al di là di queste domande e risposte.

Proverò ad elencare alcuni metodi e funzioni per QGIS e GRASS.

Concentrazione di punti

Se stai monitorando i movimenti di animali selvatici, veicoli, ecc. Può essere utile valutare regioni con un'alta concentrazione di messaggi sulla posizione.

Strumenti: ad esempio plugin QGIS Heatmap (disponibile nelle versioni> 1.7.x) o GRASS v.neighbors o v.kernel

Distribuzioni di valori di attributo

Qui, stiamo sostanzialmente parlando più o meno dei metodi di interpolazione. I metodi includono:

  1. IDW

    A seconda dell'implementazione, questo può essere globale (utilizzando tutti i punti disponibili nell'insieme) o locale (limitato dal numero di punti o dalla distanza massima tra punti e posizione interpolata).

    Strumenti: plugin di interpolazione QGIS (globale), GRASS v.surf.idw o r.surf.idw (locale)

  2. spline

    Ancora una volta, un numero enorme di possibili implementazioni. B-Splines sono popolari.

    Strumenti: GRASS v.surf.bspline

  3. Kriging

    Metodo statistico con vari sottotipi.

    Strumenti: GRASS v.krige (grazie a om_henners per la punta) o usando R.


1
Esiste un'interfaccia tramite GRASS per kriging, v.krige ( grass.osgeo.org/wiki/V.krige_GSoC_2009 ), ma richiede ancora R, e i vari pacchetti e collegamenti R menzionati nella pagina Wiki di GRASS.
om_henners,

A partire da QGIS 2.8 esiste un rendermap Heatmap per layer punti. Non è necessario creare nuovi dati.
Alexandre Neto,

34

Statisticamente, ecco come dovresti fare per creare una mappa di calore:

1) Integrare le funzionalità dei punti. L'idea di integrazione è quella di prendere punti che dovrebbero essere considerati coincidenti e unirli insieme come un'unica posizione. Mi piace usare l' analisi del vicino più vicino e utilizzare un valore appropriato da lì. (Ad esempio, quando eseguo una mappa del crimine, utilizzo il primo vicino più vicino medio per il set di dati del pacco sottostante rispetto al quale i crimini sono geocodificati).

2) Raccogliere eventi . Questo crea un peso spaziale per tutti i punti integrati. Ad esempio, se hai 5 eventi in una singola posizione, diventerà un punto con peso 5. Questo è essenziale per i prossimi due passaggi. Se è necessario aggregare un attributo negli eventi raggruppati, ovvero eventi diversi hanno un peso maggiore, è possibile utilizzare un join spaziale uno a uno . Usa l'output "raccogli evento" come target e i tuoi eventi integrati originali come funzionalità di join. Impostare le regole di unione della mappa dei campi combinando statisticamente l'attributo sugli eventi integrati (normalmente con un SUM, sebbene sia possibile utilizzare altre statistiche).

3) Determinare autocorrelazione spaziale picco utilizzando Global Moran . Proprio come dice, esegui Moran globale I a intervalli diversi per determinare la banda di picco dell'autocorrelazione spaziale nella scala appropriata all'analisi che stai facendo. Potresti voler eseguire di nuovo il vicino più vicino sugli eventi raccolti per determinare l'intervallo iniziale per i test I di Moran. (ad es. utilizzare il valore massimo per il primo vicino più vicino)

4) Esegui Getis-Ord Gi * . Usa una banda a distanza fissa basata sull'analisi I del tuo moran o usa la banda a distanza fissa come zona di indifferenza. Il tuo peso spaziale da raccogliere eventi è il campo di conteggio numerico. Questo ti darà punteggi z per ogni punto evento nel tuo set.

5) Esegui IDW contro i tuoi risultati da Getis-Ord Gi *.

Questo risultato è significativamente diverso da quello che si ottiene con la densità del kernel. Ti mostrerà dove valori alti e valori bassi sono raggruppati insieme piuttosto che solo dove i valori sono alti, indipendentemente dal clustering, come nella densità del kernel.


20

Mentre mi piacciono le mappe di calore, mi rendo conto che spesso sono usate male.

In genere quello che ho visto è un processo in base al quale il colore di ciascun pixel si basa sul risultato di una funzione ponderata a distanza inversa applicata a una raccolta di punti. Ogni volta che una mappa ha molti marcatori di punti sovrapposti, penso che valga la pena considerare una mappa di calore.

Ecco un'API basata sul web .

GeoChalkboard ha un buon tutorial per questo .

È possibile utilizzare IDW in ArcGIS.


7
Basta essere consapevoli del fatto che IDW è altamente sensibile alle posizioni di raccolta dei dati. Se i dati sono raggruppati, ad esempio, potresti potenzialmente riscontrare cattive anomalie matematiche.
Reed Copsey,

@Reed Copsey Quale alternativa suggeriresti?
fmark

2
@fmark: ci sono molte routine di interpolazione che puoi usare al posto di IDW, inclusi approcci naturali vicini / basati sulla triangolazione, Kriging, splining / tensione minima, ecc.
Reed Copsey

@Reed Non sono mai stato veramente preoccupato per la correttezza matematica delle mappe di calore (forse dovrei esserlo). Ma penso che comunichino utilmente i cluster in molte situazioni. Ecco un esempio di una mappa che penso possa essere utilmente resa come una mappa di calore
Kirk Kuykendall

2
Penso che siano un ottimo strumento. La correttezza matematica / statistica è probabilmente importante solo se si utilizzano i risultati per il processo decisionale, ma se è per trasmettere il senso generale della distribuzione, IDW probabilmente va bene. (È più una questione di cluster che causano grandi "disallineamenti" nei risultati della mappa di calore, in particolare tra i cluster, a causa di anomalie matematiche.)
Reed Copsey,

12

Per semplici mappe di calore e generazione di linee countour ho usato QGis con l'integrazione di Grass:

  1. Carica punti dati
  2. Carica una forma limitante, ad esempio il confine della contea
  3. Crea un mapset Grass
  4. Apri la casella degli strumenti di Grass e fai clic sull'elenco dei moduli per cercare ogni strumento
  5. Carica il modulo v.in.ogr.qgis e carica sia i dati dei punti sia la forma del contorno, ogni volta ricordando di fare clic su Visualizza output per ciascuno di essi - dai a ciascuno un nome utile come pointdata e maskshape
  6. Converti maskshape in un raster per usarlo come maschera con v.to.rast e aggiungilo al mapset - chiamalo qualcosa di simile a maskraster - questo può richiedere del tempo per poligoni complessi.
  7. Caricare il modulo r.mask per forzare l'azione successiva ad essere limitata alla regione buffer.
  8. Esegui v.surf.rst per produrre una griglia interpolata da pointdata : scegli la colonna appropriata come campo dell'attributo per eseguire l'interpolazione e chiamala come rastersurface . Questo è il bit che richiede tempo e genera un raster che può essere utilizzato come una mappa termica o può essere ombreggiato in 3D.
  9. Chiudi la casella degli strumenti di Grass
  10. Utilizzare il plug-in GDAL Raster Contours scegliendo il raster GRASS come input; lasciare il valore predefinito dei livelli su 10 e scegliere una directory di output in cui verrà salvato il file di forma dei contorni. Controlla il "Nome dell'attributo" e digita un nome.

NB: Perché questo funzioni, i set di dati dovrebbero essere nella stessa proiezione!


4

Penso che a questa domanda sia stata ampiamente data una risposta, tranne per un paio di punti sulle questioni.

Le mappe di calore possono essere eccezionali, ma un classico difetto e problema risiede nell'interpretazione. Prendi la differenza tra una mappa di calore di eventi criminali rispetto a una mappa (di calore o altro) del tasso / proporzione di crimine. Sebbene la mappa del calore dell'evento possa essere utile in termini di identificazione della densità complessiva dell'evento, è cieca come una stima del rischio, ma sarebbe spesso interpretata o utilizzata in modo improprio in questo modo. Considera lo stesso numero di eventi in una regione della stessa dimensione e forma, ma con una popolazione diversa, mentre il crimine potrebbe essere concentrato in un'area, semplicemente perché ci sono più persone in quello spazio. Inoltre, le tariffe per i dati degli eventi, come per i crimini, possono essere difficili da modellare, perché per produrre un raster di mappe di calore, possono richiedere un evento come il modello di popolazione, ma le persone non tendono a rimanere ferme.

Un secondo problema è che una mappa di calore si limita a considerare una singola scala spaziale e la selezione di questa scala spaziale, cioè la dimensione del kernel o il tasso di decadimento, può essere complicata e dipende dagli obiettivi dello studio, ma deve essere giustificata . Se il punto è identificare il centro del cluster più forte e la scala in cui si verifica (forse per identificare la fonte di un focolaio di malattia e un fattore nella sua diffusione), un'opzione migliore potrebbe essere quella di considerare più scale. Con opportune ponderazioni proporzionali alla scala / area per produrre un raster tridimensionale, dove i massimi locali nel raster 3D della scala spaziale indicano la posizione del centro dei cluster e le loro rispettive dimensioni e la persistenza tra le scale.


1
Fai alcuni punti molto validi. Questi due problemi sono in realtà problemi classici della geografia. Il primo problema è legato all'interpretazione della non uniformità di fondo dello spazio, vale a dire poiché la distribuzione delle persone è non uniforme (con alcune aree scarsamente popolate), anche l'opportunità del crimine è non uniforme. Il modello in uno è forzato dal modello nell'altro. Il secondo problema di scala fa parte del problema modificabile dell'area unitaria (MAUP) che influenzerà qualsiasi misura che dipende da un'area di misura, ad esempio la densità. Questo è un problema classico nella maggior parte dei lavori geografici.
WhiteboxDev

Considera anche i poligoni di Thiessen come un primo sguardo ai modelli spaziali. Sono abbastanza semplici, ma sono anche in grado di mostrare molti dettagli, sono un interpolatore esatto e sembrano aggirare alcuni dei problemi di scala che affliggono altri metodi di interpolazione più sofisticati - gislandscapeecology.blogspot.com/2016/04/…
Tom Dilts,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.