QGIS:e le tabelle PIVOT

In un noto Forum ho letto questa interessante domanda:

Salve a tutti,
vorrei costruire una mappa costituita da un pattern di grafici a torta, come nell’immagine in allegato. Le “torte” restituiscono i valori in percentuale dell’uso del suolo di un area di 1 km quadrato.

F1

Per risolvere il quesito occorre:

  1. lo shapefile dell’uso del suolo, è possibile scaricarlo in formato poligonale dal PCN attraverso il servizio WFS  di QGIS;
  2. una griglia con maglia quadrata di 1.000 m;

dopo aver stabilito un’area per il download della clc (uso del suolo) ed effettuate tutte le operazioni necessarie (download e taglio), ho creo una griglia quadrata di maglia 1 km e successivamente ho realizzo una intersezione tra la griglia e l’uso del suolo, ottenendo:

f2
screenshot dati iniziali – i quadrati vuoti rappresentano una intersezione vuota

fin qui sono i dati iniziali del quesito.

In QGIS è possibile creare dei grafici (a torta o istogrammi) ma occorre che i dati siano ben strutturati, di seguito la tabella degli attributi dell’intersezione tra griglia e uso del suolo:

f3
tabella attributi Intersezione
  • ID rappresenta l’identificativo univoco della griglia 1k;
  • code rappresenta il codice del uso del suolo;
  • livello3 rappresenta la descrizione dell’uso del suolo;
  • area_mq rappresenta l’area della porzione di clc ricadente in ogni cella di 1k; è stata aggiunta successivamente all’intersezione;

come è possibile notare, sia dalla tabella che dallo screenshot, in ogni cella 1k è possibile trovare più volte lo stesso uso del suolo; inoltre, dalla tabella si nota anche che l’ID è ripetuta tante volte quante sono le clc che vi ricadono, quindi, questa tabella NON è ben strutturata ai fini della rappresentazione tramite diagrammi, occorre necessariamente modificarla.

Per realizzare diagrammi a torta è necessario che i dati da rappresentare stiano nello stesso record (e non nella stessa colonna), quindi dobbiamo modificare la tabella in modo tale che l’ID compaia una sola volta e sullo stesso record devono comparire le aree delle clc che vi ricadono, ovvero:

f4
tabella modificata

la tabella di sopra è il risultato ottimale per l’uso tramite i diagrammi; vediamo come ottenerla:

la tabella di sopra è la tabella PIVOT della tabella degli attributi dello shapefile intersezione: dove compare l’ID univoco delle celle 1k (non ripetuto) e per ogni ID compaiono tutte le aree delle clc che vi ricadono; questa è la condizione ideale per rispondere al quesito iniziale.

Basta, ora, fare un semplice join (campo unione ID) tra la griglia 1k e la tabella PIVOT, successivamente creare i diagrammi a torta:

f5
tabella attributi griglia 1k con join (j_)

per creare i grafici a torta, da proprietà layer griglia 1k selezionare tab Diagrammi:

f6
finestra dialogo Diagrammi

risultato finale:

f7
pattern di grafici a torta!!!

 


note finali: per ottenere la tabella PIVOT è stato utilizzato il foglio elettronico di Google Drive che è gratis, semplice da usare e molto potente. La tabella PIVOT è possibile realizzarla anche con il plugin GroupStats oppure con SQL, dopo aver importato la tabella intersezione in un DB (Spatialite o PostegreSQL), ma è notevolmente più complesso.


 

dati e progetto QGIS 2.14.3

video: (canale Youtube)

 

Buon lavoro!!!

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...