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:

step:
- filtro boschi;
- computo superficie nel vettore Comuni;
- intersezione;
- dissolvenza;
- 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à:
- scarico i file;
- avvio spatialite_gui e creo un nuovo database;
- importo i due shapefile nel database appena creato;
- creo una nuova tabella, ‘indice_boscosita‘, con la seguente query:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
fatto, spatialite impiega circa 8 sec a generare la tabella.
infine, usando QGIS:

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.
Buon lavoro!
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
"Mi piace"Piace a 1 persona
SIcuramente si. Ma non ho mai usato raster nei database.
"Mi piace""Mi piace"
ciao, molto interessante la guida, ma quando si implementa il codice la tabella mi genera, ma non genera la geometria
"Mi piace"Piace a 1 persona
Ciao,
strano, ricontrolla un’altra volta la query.
saluti
"Mi piace""Mi piace"
Grazie per aver risposto, l’ho già capito, quello che mi mancava è generare la vista spaziale per Qgis, l’ho trovato in un’altra tua pubblicazione.
"Mi piace"Piace a 1 persona
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.
"Mi piace"Piace a 1 persona
Iscriviti in questa lista
http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html
"Mi piace""Mi piace"