La potenza di spatialite

Come risolvere un esercizio in pochi passaggi utilizzando le straordinarie potenzialità di spatialite,

https://www.lezionigis.it/es09/lezioni gis

Calcolare l’indice di boscosità per ogni Comune sapendo che l’indice è pari a (Superficie occupata dai boschi/Superficie totale)*100.
Rappresentare il risultato tramite choropleth map.

I dati sono scaricabili direttamente dal sito, sono due shapefile.

Per risolvere il quesito occorre seguire i passi sintetizzati in questo modello:

modello
modello

step:

  1. filtro boschi;
  2. computo superficie nel vettore Comuni;
  3. intersezione;
  4. dissolvenza;
  5. computo indice;

i passi esposti sopra sono obbligatori se si fa uso di un GIS Desktop e produce almeno due strati in più: intersezione, dissolvenza;

vediamo di seguito come risolvere il quesito ottenendo subito il vettore indice boscosità:

  1. scarico i file;
  2. avvio spatialite_gui e creo un nuovo database;
  3. importo i due shapefile nel database appena creato;
  4. creo una nuova tabella, ‘indice_boscosita‘, con la seguente query:
create table indice_boscosita as
select COMUNE,CastToMultiPolygon(st_union(st_intersection (clc.geom, com.geom))) as geom, count (*)as nro,
(sum (st_area(st_intersection (clc.geom, com.geom))) / st_area(com.geom))*100.00 as indice
from CLC_Molise clc, comuni_molise com
where liv_3 like 'Boschi%' and st_intersects (clc.geom, com.geom) = 1
group by 1
order by indice desc

view raw
indice_boscosita.sql
hosted with ❤ by GitHub

fatto, spatialite impiega circa 8 sec a generare la tabella.

infine, usando QGIS:

stampa
STAMPA

Note finali: l’uso di un database, con la relativa estensione spaziale, semplifica di molto alcuni processi, come quello esposto sopra, ma occorrono basi SOLIDE di SQL!!!

segnalo per chi non segue la mailing list ufficiale:

– https://groups.google.com/d/msg/spatialite-users/RZPDuFfPhzs/nl0C0xzwAgAJ
– https://groups.google.com/d/msg/spatialite-users/OsaY7kJTLw4/zolyjMgPAwAJ

Mi sembra di grande interesse, a breve ci sarà il rilascio di spatialite_gui NEXT GENERATION cioè la versione 5, nel frattempo è possibile fare dei test.


 

modello

Buon lavoro!

 

7 pensieri su “La potenza di spatialite

  1. Molto interessante e molto istruttivo, per quel che riguarda l’uso dello SQL. Mi chiedevo, se un tale risultato sarebbe possibile ottenerlo anche partendo da Corine Land Cover (CLC) in formato raster (per alcune regioni so che esiste) e facendo una statistica zonale utilizzando il vettore dei comuni. Pensi sarebbe possibile? Un saluto.
    Carlo Tersigni

    Piace a 1 persona

  2. Ciao, non so dove scriverti e provo qui. Mi servirebbe un aiuto per una amica Agronoma.
    Data una serie di paricelle catastali prese da GeoWeb Toscana, le devo colorare, scrivere la particella in grande, scrivere la superficie e colorare secondo uso del suolo.

    Ho da poco cominciato con il QGIS, ovviamente, a mano disegnando le aree, interrogando la particella posso scrivere e colorare in modo da ottenere un file di stampa.
    Ma so che esiste un metodo per “programmare” un qualcosa del genere e mi sembra di capire che è anche semplice da fare.
    Mi puoi dare una dritta?
    Grazie..
    Paolo.

    Piace a 1 persona

Rispondi

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.