QGIS:PLUGIN GROUP STATS E REPORT

In occasione del GFOSS DAY 2013, tenutosi a Bologna, è stata presentata la nuova QGIS 2.0 in cui sono state introdotte molte nuove funzionalità e annunciati i futuri sviluppi di QGIS:

Immagine 2
screenshot dal video – futuro di QGIS

di questi nove punti solo uno non è stato ancora realizzato, cioè il georeferenziatore per vettori; mentre le funzioni di aggregazione sono state introdotte nella QGIS Pisa 2.10 con la funzione ‘Mostra sintesi delle statistiche‘ (icona sommatoria); ma è una funzionalità molto elementare. Nel novembre del 2011 (QGIS 1.7) viene messo nel QGIS Python Plugins Repository un plugin sperimentale dal nome ‘Group Stats’ realizzato da Rajmund Szostok e attualmente fermo al 2013 come plugin non più sperimentale.

In questo articolo parlerò del plugin Group Stats e di come usarlo per creare dei report nel compositore di stampa.

Il plugin si può installate da ‘Gestisci e installa plugin…‘ dal menu Plugins di QGIS:

Immagine 3
plugin Group Stats

Avviando il plugin apparirà la seguente finestra:

Immagine 4
finestra plugin Group Stats
  1. riquadro tabella, compariranno i risultati delle analisi;
  2. layers: è possibile selezionare i layer per l’analisi (shapefile e tabelle);
  3. Fields: elenco di tutti i campi del layer selezionato più le funzioni di aggregazione come : somma, media, min, max ecc…;
  4. in questo riquadro è possibile aggiungere, tramite il bottone Filter, dei filtri sui dati da analizzare;
  5. Columns: in questo riquadro vanno inserite, tramite il ‘drag and drop’, i campi o le funzioni di aggregazione da utilizzare nell’analisi;
  6. Rows: in questo riquadro vanno inserite, tramite il ‘drag and drop’, i campi o le funzioni di aggregazione da utilizzare nell’analisi;
  7. Value: in questo riquadro vanno inserite, tramite il ‘drag and drop’, i campi o le funzioni di aggregazione da utilizzare nell’analisi;
  8. Clear: svuota i riquadri;
  9. se spuntato permette di analizzare solo le feature selezionate;
  10. avvia il calcolo.

questo plugin ricorda le tabelle pivot, strumento molto utilizzato nei foglio di calcolo come Excel o LibreOffice Calc.

Carichiamo due strati, lo shapefile dei comuni italiani e quello delle province e ci limitiamo a lavorare con la sola Sicilia.

Immagine 7
QGIS 2.14 – Comuni Sicilia

partendo dal layer comuni, creare una tabella che abbia le seguenti caratteristiche:

  1. valori raggruppati per provincia (ogni riga una provincia);
  2. le colonne devono contenere il min, max, media e somma delle aree comunali;
  3. una colonna che conteggi (count) il numero di comuni per ogni provincia;
Immagine 10
plugin in azione

otterremmo una tabella (vedi figura di sopra) in cui: nella prima colonna avremo i codici della provincia (Rows) e poi tante altre colonne quante sono i campi inseriti nel riquadro ‘Columns’; nel riquadro ‘Value’ ho inserito il valore secondo cui deve fare i calcoli, cioè l’area.

Dal menu ‘Data’ è possibile esportare (in CSV) o copiare la tabella; esporto in CSV e apro con LibreOffice Calc (per effettuare una modofica):

Immagine 12

NB: QGIS ogni volta che esporta qualcosa in CSV utilizza il punto (.) come separatore di decimali quindi occorre, per poter analizzare i dati in Calc, rimettere la virgola (,), per far ciò occorre selezionare tutti i campi (1) e nel tipo colonna selezionare Inglese US (2), ed il gioco è fatto!

Immagine 13
LibreOffice Calc

Eliminiamo la riga 2 altrimenti ci potrebbe dare dei problemi in futuro. Importiamo il file CSV in QGIS: è possibile seguire due strade diverse spiegate qui:

Immagine 19
file CSV

Creiamo il report con il compositore di stampa:

  1. creare una nuoca composizione di stampa;
    1. 1
  2. aggiungere un riquadro mappa;
    1. Immagine 2
  3. aggiungere tabella attributi e selezionare la tabella CSV;
    1. Immagine 3

ecco il risultato:

Immagine 15
Report

Il file CSV possiamo anche usarlo in un ‘join’ e arricchire la tabella degli attributi dello shapefile province, utilizzando come campo di join ‘cod_pro’:

Immagine 18
Tabella attributi shapefile province con ‘join’

a questo punto avremo altri cinque campi con cui poter far analisi o tematizzazioni:

Immagine 21
Tematizzazione in funzione del numero di comuni per provincia (count)

Note finali: un primo articolo scritto su questo plugin si trova qui


 

Buon lavoro.

 

18 pensieri su “QGIS:PLUGIN GROUP STATS E REPORT

  1. Buongiorno Totò.
    Mi sto avvicinando da poco al mondo qgis e molto lo devo ai tuoi video e articoli interessanti e ben fatti.
    Vorrei porre un quesito:
    ho un layer puntuale, ogni punto rappresenta una famiglia che può essere composta da (n.) uomo, (n.) donna, (n.) figlio, (n.) figlia.
    Ho anche un layer poligonale della città suddivisa in diverse zone.
    A seconda dei poligoni selezionati, è possibile avere in stile tabella la somma per ogni componente “uomo”, “donna”, “figlio” e “figlia”?
    Con “Statistiche” mi dà un campo per volta. Mentre sto provando col plugin “Group Stats” ma senza successo.
    Grazie.
    Un caro saluto.

    Piace a 1 persona

    1. Ciao Cosimo,
      se ho capito bene il tuo quesito la risposta è sì.
      Ma per essere più preciso nella risposta mi servirebbe un estratto dei file, se puoi zippali mettili in un cloud e incolla qui il link-
      PS: molto probabilmente scriverò, usando il tuo quesito, un blog post.

      "Mi piace"

      1. Ciao, non devi importare nulla:
        unzippa la mia cartella e poi fai doppio clic sul file di progetto *.qgz
        poi se vuoi usarlo nel tuo vero progetto devi ricrearlo.

        "Mi piace"

    1. Prova a ricreare il virtual layer:
      importi i duel layer e poi utilizza questa query

      select pl.geometry, count(*) as Familgia,sum (pt.Uomo) as Uomini, sum(pt.Donna) as Donne, sum(pt.Figlio) as Figlio, sum(pt.Figlia) as Figlia
      from “Esempio Poligonale” pl, “Esempio Puntuale” pt
      where st_intersects (pl.geometry, pt.geometry) =1
      group by 1

      "Mi piace"

  2. Ciao Totò.
    Ho ricreato il virtual layer ed è andato a buon fine.
    Solamente che la regola etichette del virtual layer non c’è.
    Puoi vedere il risultato qui: http://ovh.to/FVjZLbq
    Con le mie competenze attuali non riesco a creare la regola nel virtual layer.
    Potresti mandarmi il testo?

    PS Sarebbe bello in fondo alla tabella degli attributi una riga contenente i totali.
    Grazie ancora

    Piace a 1 persona

  3. Ciao Totò.
    Premetto che il progetto di esempio con le tue modifiche funziona benissimo.
    Solo che se voglio crearne uno simile non ci riesco.
    Infatti il progetto iniziale c’è da dire che l’ho fatto il più semplice possibile con lo scopo di prenderlo a modello per altri progetti.
    Per cui mi sono messo al lavoro. Ma senza successo.
    Ho fatto anche la prova a creare da zero lo stesso progetto, uguale e preciso all’iniziale, seguendo passo passo i tuoi suggerimenti. Ma non va a buon fine.
    Non riscontro nessun tipo di errore solo che non vedo i risultati quando seleziono i poligoni. Infatti mi chiedo dove vado a dire al progetto come far apparire l’etichetta tonda con i vari totali al centro della selezione?
    Please help me!

    Piace a 1 persona

Rispondi a tagliasiepi elettrico Cancella risposta

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

Logo di WordPress.com

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

Google photo

Stai commentando usando il tuo account Google. 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 )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.