Realizzare Heatmaps (mappe di concentrazione)

Le mappe di concentrazione (o heatmaps in inglese) sono strumenti utili per identificare la densità di punti che rappresentano un certo fenomeno. Vengono ad esempio utilizzate per vedere la concentrazione di atti criminosi, o incidenti in auto, concentrazione di edifici etc. QGIS ha due optioni per creare mappa di concentrazione - una direttamente dalle opzioni di tematizzazione di un livello vettoriale, ed un algoritmo Heatmap (Kernel Density Estimation)  che crea un raster da un livello vettoriale di punti.

Descrizione del compito

Lavoreremo con un dataset sugli eventi criminosi avvenuti nella zona del Surrey, Regno Unito, nell’anno 2011. Individueremo quindi le aree a maggiore attività criminale nel paese.

Altri aspetti che avremo modo di apprendere nel corso dell’esercizio

  • Utilizzare campi/colonne virtuali ed espressioni condizionali

Ottenere i dati necessari.

data.police.uk dati su eventi criminosi in un file CSV. Scarica i dati Surrey Police ed estraete l’archivio ZIP per avere il file CSV.

Per comodità, potete scaricare direttamente una copia del dataset dal seguente link:

2019-02-surrey-street.csv

Fonte Dati [POLICEUK]

Procedimento

  1. We will first load a basemap layer from OpenStreetMap and then import the CSV data. In the Browser tab, scroll down and locate the XYZ Tiles section.

../../_images/150.png
  1. Expand it to see the OpenStreetMap tile layer. Drag and drop it to the main canvas. Next we will load the CSV file. Click the Open Data Source Manager button.

../../_images/229.png
  1. Nel pannello selezionate ora la sezione Delimited Text . Qui importate il file CSV con le informazioni sugli atti criminosi registrati. Cliccate il pulsante vicino al pulsante File name e trovate il file scaricato 2019-02-surrey-street.csv. La colonna X field e Y field nella sezione Geometry Definition verrà automaticamente valorizzata con le colonne Longitude and Latitude rispettivamente. Il Geometry CRS devee essere EPSG:4326 - WGS 84 . Verificate che appaia corretto nel pannello Sample data e selezionate Add, seguito da Close.

../../_images/320.png
  1. Vedrai due livelli nel progetto QGIS - OpenStreetMap and 2019-02-surrey-street nel pannello Layers. Tasto destro sul livello 2019-02-surrey-street e seleziona Zoom to Layer.

../../_images/49.png
  1. Vedrai i punti con la posizione degli atti criminosi sovrapposto alla mappa OpenStrettMap. I punti sono molto numerosi e non è facile capire dove si concentra il crimine. Una mappa di concentrazione aiuta ad interpretare questa informazione. Seleziona il livello 2019-02-surrey-street e clicca Open the Layer Styling panel.

../../_images/59.png
  1. Seleziona Heatmap (mappa di concentrazione) nel menu a tendina. Il pannello Layer Styling panel è interattivo e puoi vedere subito le modifiche applicate al livello. La mappa di concentrazione viene disegnata con la scala di colore predefinita a sfumature di grigio.

../../_images/69.png
  1. Una mappa di concentrazione tipicamente viene colorata con scale che vanno giallo–rosso o bianco–rosso, dove la concentrazione maggiore fornisce più calore. Clicca il menu Color ramp e seleziona Reds color-ramp.

../../_images/79.png
  1. Devi poi scegliere un Raggio. Questo parametro imposta l’area che influenza ogni punto. Questo valore dipenderà dal tipo di dato analizzato. Per questi dati stimiamo che un crimine abbia effetto fino a 5 chilometri dal punto dove sono stati commessi. Nota bene che il SR/CRS (sistema di riferimento) del progetto, in questo esercizio è EPSG: 3857 - si vede in basso a destra nella finestra di QGIS. L’unità di misura di questo SR/CRS, è il metro, quindi dobbiamo mettere 5000 metri come raggio. Un altro parametro nascosto è il Kernel shape, o forma di funzione (kernel). Questo funzione determina il peso in funzione della distanza. La mappa di concentrazione utilizza la funzione Quartic. Ci sono altre funzioni impostabili, come Triangular, Uniform, Triweight and Epanechnikov che possono essere specificati, ma usando il secondo metodo presentato in questo tutorial. Vedi anche spiegazione post per una spiegazione e su come impostare il raggio ottimale.

../../_images/89.png
  1. La visualizzazione è pronta, possiamo modificare la trasparenza, o Opacity nella sezione Layer Rendering in basso. Mettete un valore di``60 %`` così da vedere anche la mappa di base sottostante.

../../_images/99.png
  1. Per alcune analisi, considerare la densità e basta può non essere abbastanza. Si vuole ad esempio dare più peso ad un crimine più violento. In modo simile alcuni punti possono rappresentare lo stesso evento riportato più volte. Per dare psi diversi aggiungiamo una colonna di «peso» o weight in modo da dare un peso per ogni punto. Tasto destro sul livello 2019-02-surrey-street e selezionare Open Attribute Table (apri tabella attributi).

../../_images/1013.png
  1. Vedrete un campo chiamato Crime type che descrive il tipo di crimine. Possiamo utilizzare queste categorie per dare un peso diverso all’evento.

../../_images/1116.png
  1. Fate click sul pulsante Open field calculator.

../../_images/1214.png
  1. Inseriremo ora una fomula che fornisce un peso in funzione della categoria nella colonna Crime type. QGIS ha un modo molto utile di creare campi virtuali - Virtual Fields. Il campo virtuale viene salvato nel progetto QGIS e non va a modificare i dati nella fonte (i.e. nel file). Viene calcolato dinamicamente e può essere utilizzato come qualsiasi altro campo nella tabella attributi. Inserisci weight come Output field name e imposta il Output field type a Whole number (integer) (numero intero). Inserisci al seguente espressione nel Expression editor. Utilizziamo l’operatore CASE per assegnare diversi valori numerici in funzione della categoria del crimine. Clicca OK.

CASE
WHEN "Crime type" LIKE 'Violence%' THEN 10
WHEN "Crime type" LIKE 'Criminal%' THEN 5
ELSE 1
END
../../_images/1312.png
  1. Un nuovo valore verrà aggiunto per ogni punto con il peso calcolato dall’espressione.

../../_images/1411.png
  1. Nel pannello Layer Styling clicca il menù a tendina Weight points by e seleziona la colonna appena creata weight .

../../_images/1511.png
  1. Vedrete la mappa cambiare dato che usa il peso indicato. Chiudi il pannello Layer Styling

../../_images/1610.png
  1. Se volete che la vostra mappa sia memorizzata come un file raster permanente o volete usate il modulo Heatmap (Kernel Density Estimation) dal pannello Processing Toolbox (Strumenti di processing). Andate su Processing ‣ Toolbox.

../../_images/1711.png
  1. Attenzione che prima di creare la mappa di concentrazione in questo modo, dobbiamo trasformare il SR/CRS in un sistema di referimento cartografico, i.e. proiettato. Infatti la distanza gioca un ruolo fondamentale nel calcolo del raster, e ragionare in termini di gradi (unità di misura di un SR geografico, i.e. che usa latitudine e longitudine), non è ottimale. Usate per questo il modulo Vector general ‣ Reproject layer

../../_images/189.png
  1. Nella finestra Reproject layer, clicca il pulsante Select CRS per Target CRS. Seleziona il SR/CRS EPSG:27700 OSGB 1936 / British National Grid. Cliccare Run.

../../_images/198.png
  1. Un nuovo layer chiamato Reprojected verrà aggiunto al pannello Layers. Nasconti il livello precedete 2019-02-surrey-street.

../../_images/208.png
  1. Seleziona e trova il modulo Interpolation ‣ Heatmap (Kernel Density Estimation).

../../_images/2113.png
  1. Nella finestra Heatmap (Kernel Density Estimation), useremo gli stessi parametri di prima. Selezionare Radius come 5000 metri e Weight from field seleziona la colonna weight. Impostare Pixel size X e Pixel size Y a 50 metri. Lascia Kernel shape alla funzione predefinita Quartic. Clicca Run.

../../_images/2210.png

Nota

Il parametro Radius from field consente di specificare un raggio variabile usando i valori di una colonna. Può essere utilizzato insieme a Weight from field per impostare in modo più complesso l’influenza di ogni punto nello spazio.

  1. Una volta terminato il processo, viene caricato un nuovo livello chiamato OUTPUT. La visualizzazione predefinita non è ottimale in quanto utilizza la scala di grigi Singleband gray. Clicca il pulsante Open the Layer Styling panel .

../../_images/237.png
  1. Modifica il tema a Singleband Pseudocolor e seleziona la scala Reds . Il livello assomiglia a quello creato prima.

../../_images/248.png

Nota

Notare che il livello OUTPUT nel pannello Layers ha una legenda ma il livello 2019-02-surrey-street no. Un problema comune nella mappe di concentrazione è la mancanza di legenda. Se vuoi utilizzarla nel modello di stampa Print Layout bisogna aggiungere una legenda. Il raster creato con quest’ultimo secondo metodo consente di avere una legenda.


If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)