Oggi ti spieghiamo tutto sul dissolve tra poligoni.
1. Cos’è il dissolve
Per capire cos’è il dissolve facciamo subito un esempio usando i nostri soliti dati dei confini amministrativi.
Facciamo ad esempio finta che tu abbia i confini comunali, ma che invece tu abbia bisogno di avere i confini regionali.
Il dissolve ti permette di generalizzare il tuo layer ed ottenere la feature “confini regionali”, accorpando i poligoni adiacenti tra loro che allo stesso tempo abbiano in comune l’appartenenza alla stessa Regione.
Quindi il dissolve è a tutti gli effetti una tool per l’aggregazione di poligoni, effettuata sulla base di un criterio contenuto nella tabella attributi.
In sintesi, le regole del merge sono le seguenti:
1° regola. Hai un solo dato di input ed è su questo che viene eseguito il dissolve.
2a regola, riguardante gli aspetti geografici. Potresti avere, nel tuo shapefile, le seguenti situazioni:
- Situazione di adiacenza perfetta tra i poligoni del layer (1). Questo è il caso perfetto. Con il dissolve i due (o più) poligoni da aggregare diventeranno un tutt’uno.
- Situazione in cui ci sono degli spazi tra i perimetri dei poligoni (2) o delle sovrapposizioni. Il dissolve non ha problemi con le sovrapposizioni, invece la presenza di spazi costituisce un problema, perché il poligono aggregato risulterà essere bucato. Quindi, se necessario, dovrai poi riempirlo manualmente (vedi come qui o qui).
- Situazione di non adiacenza (3). Questa è la situazione più problematica. L’aggregazione verrà fatta, ma i poligoni resteranno separati e manterranno ciascuno il proprio perimetro, come nei poligoni multiparte. Certo, questo non sarebbe un problema se il tuo obiettivo fosse proprio quello di ottenere un layer multiparte…
2a regola, riguardante gli aspetti tabellari. Devi scegliere un campo da utilizzare per il dissolve, per dire a QGIS qual è il criterio di aggregazione (come al solito QGIS non può leggerci nel pensiero e sapere come aggregare i poligoni se non glielo diciamo). Nel caso dei confini comunali sarà sicuramente o un campo contenente il nome della Regione di appartenenza di ciascun Comune o il codice ISTAT relativo a ciascuna Regione.
Presta attenzione che il tuo campo sia correttamente e completamente compilato, altrimenti l’aggregazione dei poligoni risulterà sbagliata.
Tieni comunque conto che le informazioni “differenzianti” i poligoni andranno perse. Ad esempio, nel caso dei confini comunali andrà perso il nome dei singoli Comuni.
Ti faccio ora una domanda per vedere se hai capito come funziona. Secondo te, posso scegliere come campo di dissolve quello contenente il nome dei comuni? E perché? Pensaci un attimo. Troverai la risposta alla fine del video.
2. Come fare il dissolve in QGIS
Possiamo ora passare alla pratica. Vediamo come fare il dissolve in QGIS. Puoi trovare la tool dissolve in diverse posizioni.
La prima: vai in Vettore, seleziona Strumenti di Geoprocessing ed in seguito Dissolvi.
Nella finestra che si aprirà dovrai:
- Indicare in Layer in ingresso (1) qual è il vettore di cui aggregare i poligoni. In questo caso è lo shape dei confini comunali com2011.
- Indicare in Campo dissolvenza (2)qual è il campo di aggregazione: clicca sul pulsante con i tre puntini e seleziona il campo contenente il criterio di aggregazione. Puoi anche scegliere più di un campo. Noi, per il nostro esempio, scegliamo il campo COD_REG. Clicca su OK. Come puoi vedere QGIS ti dice che questo è un parametro di input opzionale. Se non selezionerai alcun campo tutti i poligoni verranno accorpati in un unico grande poligono. Quindi nel nostro esempio, non selezionando niente, quello che otterresti alla fine sarebbe il perimetro dell’Italia, senza la delimitazione delle Regioni.
- Indicare in Dissolto (3) dove e come salvare il vettore di output, aggregato. Noi lo salviamo con il nome Regioni.
Clicca su Esegui et voila, il tuo dissolve è stato effettuato da QGIS.
Hai la possibilità di accedere alla tool dissolve anche dal pannello degli Strumenti (per vedere come aprirli vedi qui).
Puoi scrivere dissolvi nella barra di ricerca in alto e vedrai quante tool con questa funzionalità ci sono. Ovviamente il risultato sarà lo stesso, usando uno stesso layer ed uno stesso criterio di aggregazione. Potrebbe variare la velocità di esecuzione a seconda della tool che usi. In questo caso noi apriamo la tool Dissolvi che si trova nel gruppo Geometria vettore. La apriamo facendo doppio clic con il pulsante sinistro del mouse e poi possiamo procedere come visto poco fa.
Ed ecco la risposta alla nostra domanda: se scegli il campo con il nome dei Comuni come criterio di aggregazione otterrai…uno shapefile identico a quello di partenza, cioè contenente ancora i confini comunali. Questo perché ogni record contiene un valore diverso, per cui in realtà non ci sarà alcuna aggregazione. Se avevi intuito la risposta…complimenti!
Tips and Tricks
Nel video non ti abbiamo fatto vedere che nell’eseguire il dissolve QGIS ha individuato degli errori topologici. Noi non abbiamo approfondito di quale tipo di errore si tratta, tuttavia ti facciamo vedere lo stesso qual è il risultato completo nel caso in cui ci siano errori nel layer di partenza: il layer “dissolto” o “aggregato” presenta dei buchi in corrispondenza di tali errori (ad esempio nell’immagine guarda in Puglia, Lazio e Sicilia). Puoi risolvere questo problema a monte, trovando e correggendo gli errori nel file di input, o a valle, riempiendo i buchi nel file di output.
Bene, questo post è finito. Se ti è piaciuto condividilo! Se hai dubbi o suggerimenti lascia pure un commento.
Se vuoi, puoi vedere anche il nostro video su YouTube “Geoprocessing in QGIS: il dissolve” e iscriverti al nostro canale.
Ci GISsiamo al prossimo post!
Ciao
Ciao.
Uso spesso “dissolve”, ma lo trovo incompleto: non c’è la possibilità di aggregare dei valori tabellari abbinati alle figure da fondere. Per fare questo, ho scoperto “aggregate”, che però è più laborioso di “dissolve”. Sapete dirmi se c’è un’altra soluzione ?
Grazie
Fabio
Se intendi chiedere se c’è un dissolve come quello di ArcGIS, che permette di dissolvere i perimetri e in contemporanea permette in un solo menu di calcolare statistiche sui campi…no, non c’è, devi accontentarti di aggregate
Buongiorno, questa funzione è meravigliosa ma assai limitata. Mi trovo in un contesto in cui devo dissolvere due geometrie in un’unica forma finale. Tuttavia, pur essendo gli oggetti contigui tra loro, mostrano degli spazi dovuti a una imprecisa digitalizzazione.
C’è un modo per risolvere il problema, magari inserendo una soglia di tolleranza oltre la quale viene inglobato e dissolto qualsiasi poligono?
Grazie.
E se usassi in sequenza le tool Dissolve e dove sono rimasti spazi la tool Eliminare i buchi?
In generale, l’approccio prima di applicare un qualsiasi geoprocesso, è quello di validare le geometrie di partenza, attraverso operazioni di fixing.
Un saluto
Ivano
Certo. Un saluto a te
Ciao, sto effettuando un’analisi sui dati ISTAT, per quanto riguarda il censimento dell’industria e dei servizi.
Noto che joinando lo shp regionale e il layer con i dati sull’industria, le informazioni numeriche sul numero di attività e numero di addetti vengono compromesse.
Ciò che sto cercando è quindi un modo di “DISSOLVERE” il layer delle attività per il parametro ACE (ovvero rendere l’unità censuaria elementare non più SEZ011 ma ACE) ma con somma dei parametri di n.attività ed n.dipendenti.
Esiste un comando per questa operazione?
Rendo più semplice.
Voglio vedere i dati ISTAT non sulla base delle sezioni ma sulla base degli ACE (un ACE contiene molte sezioni).
Però voglio che i vari dati di uno stesso ACE si sommino tra loro; ovvero: nel nuovo laywer dissolto voglio che la popolazione di ogni ACE sia la somma delle popolazioni delle sezioni che lo compongono.
Ciao Giacomo, scusa il ritardo della risposta. Hai provato a guardare la tool Aggrega? Potrebbe esserti utile per i tuoi scopi