Cartografia catastale in QGIS e ArcGIS
Questa guida riassume un workflow ripetibile e riproducibile per convertire i dataset catastali italiani in formato GML e importarli correttamente in QGIS e ArcGIS. Il focus è garantire coerenza metrica, tracciabilità operativa e rispetto delle condizioni d'uso fissate dall'Agenzia delle Entrate.
Il dato di partenza copre l'intero territorio nazionale: l'Agenzia delle Entrate espone via WFS INSPIRE circa 85 milioni di particelle catastali (terreni e fabbricati). È una scala che rende impraticabile scaricare ed elaborare tutto localmente in un pomeriggio: questa guida è pensata per chi ha bisogno di un sottoinsieme specifico (una provincia, una regione, un set di comuni) e vuole un workflow riproducibile, non per chi cerca la scorciatoia più rapida - per quella, vedi la sezione dedicata più sotto.
Contesto e licenza
- Fonte principale: servizio WFS INSPIRE dell'Agenzia delle Entrate (pacchetto nazionale ITALIA.zip o archivi provinciali).
- Formato sorgente: GML INSPIRE con struttura per foglio catastale e codici amministrativi.
- CRS più frequenti: Gauss-Boaga Ovest/Est (EPSG:3003/3004) e, in subset limitati, WGS84/UTM (EPSG:32632/32633).
- Riuso: verificare licenze e limitazioni dell'Agenzia delle Entrate prima di impieghi commerciali o diffusione di derivati. Il WFS è pubblico e liberamente consultabile; alcuni endpoint più avanzati richiedono autenticazione SPID o CIE. Le condizioni di riuso non equivalgono automaticamente a una licenza open data generica: prima di ridistribuire un derivato pubblicamente, controllare sempre i termini pubblicati sul portale dell'Agenzia.
Requisiti tecnici
| Voce | Valore indicativo | Note |
|---|---|---|
| Spazio su disco | >= 50 GB | Include archivio compresso, estrazione e output |
| RAM | >= 16 GB | 32 GB consigliati per processing nazionale |
| Sistema operativo | Windows 10+, macOS 13+, Ubuntu 22.04+ | Compatibile con GDAL >= 3.6 |
| Toolchain | Python 3.10+, GDAL/OGR, GeoPandas 0.14+ | Installazione consigliata via conda |
I 50 GB indicati non sono un numero arbitrario: derivano dalla somma di archivio compresso originale, file GML estratti (che occupano diverse volte lo spazio del corrispondente zip, essendo XML non compresso) e output GeoPackage/report intermedi. Su un subset provinciale i requisiti scendono proporzionalmente: una singola provincia richiede tipicamente qualche GB, non decine.
Preparazione ambiente
Creare un ambiente dedicato.
conda create -n catasto-gis python=3.10 conda activate catasto-gisInstallare le dipendenze principali.
conda install -c conda-forge geopandas gdal fiona click psutilVerificare la configurazione di base.
python -c "import geopandas, fiona, osgeo; print('ambiente ok')"
Un ambiente dedicato (conda o venv) non è un dettaglio opzionale: GDAL ha spesso conflitti di versione con altre librerie geospaziali già installate nel sistema operativo, e un ambiente isolato evita che un aggiornamento futuro rompa silenziosamente l'intera pipeline di conversione.
Pipeline di conversione
Scaricare l'archivio ITALIA.zip o i pacchetti provinciali e annotare la data di pubblicazione.
Ispezionare l'archivio con
zipinfoper identificare i file con suffisso_map.gmlprima dell'estrazione completa.Estrarre i GML in una directory temporanea preservando la gerarchia originale.
Utilizzare uno script Python basato su GDAL/GeoPandas per:
- caricare i layer GML,
- normalizzare il sistema di riferimento con
to_crs, - aggiungere attributi di provenienza (comune, foglio, timestamp di download),
- esportare un GeoPackage consolidato o per macro-area.
Monitorare RAM, spazio libero e log durante l'esecuzione.
python processa_mappe_catastali.py ITALIA.zip catasto_italia_2025q3.gpkg --verboseValidare l'output con
ogrinfo, calcolare hash SHA-256 e archiviare un report di controllo.
Un dettaglio spesso sottovalutato al punto 2: ispezionare l'archivio PRIMA di estrarlo tutto per intero fa risparmiare tempo reale, non solo teorico. Gli archivi provinciali contengono spesso file accessori (metadati XML, indici, anteprime) che non servono alla conversione: estrarre selettivamente solo i _map.gml riduce sensibilmente lo spazio temporaneo occupato, soprattutto su archivi da diversi GB.
I limiti di questa guida
Vale la pena essere onesti su cosa questo workflow NON risolve:
- Non gestisce automaticamente le variazioni catastali nel tempo: se un foglio viene aggiornato tra un download e il successivo, la pipeline sovrascrive senza segnalare la differenza. Serve un controllo manuale a campione (punto 6 sopra) per accorgersene.
- Non normalizza automaticamente gli errori di encoding: come descritto sopra, alcuni GML più vecchi usano ISO-8859-1. La pipeline base non rileva questo automaticamente: va aggiunto un controllo esplicito se si lavora su archivi storici.
- Non è pensata per aggiornamenti incrementali: ogni esecuzione riparte dai GML completi. Per un workflow di produzione con aggiornamenti frequenti e continui, servirebbe una logica di diff che questa guida non copre.
- Le stime di tempo/spazio sono indicative, non garantite: dipendono da hardware, dimensione del subset e versione di GDAL installata: i numeri di questa guida sono un punto di partenza, non un impegno preciso.
Integrazione in QGIS
- Aprire
Layer > Aggiungi layer > Layer vettorialee selezionare il GeoPackage generato. - Costruire indici spaziali e di attributo dal pannello Gestione dati per ridurre i tempi di query.
- Impostare simbologie tematiche (categoria, foglio) e salvare stili QML condivisibili.
- Abilitare percorsi relativi nel progetto QGIS per facilitare la distribuzione su storage di rete.
Integrazione in ArcGIS Pro
- Dal Catalog utilizzare
Add Data > Datae caricare il GeoPackage consolidato. - Controllare il CRS; riproiettare in ETRF2000 / UTM32N quando servono misure metriche uniformi.
- Applicare
Feature Class To Geodatabaseper importare il dataset in un file geodatabase e definire domini o regole topologiche. - Documentare metadati nel pannello Item Description (data di download, trasformazioni GDAL, hash file).
La scelta tra lavorare direttamente sul GeoPackage o importare in un file geodatabase Esri dipende dal caso d'uso: il GeoPackage resta più portabile (nessun vendor lock-in, apribile da QGIS/ArcGIS/altri strumenti), mentre il geodatabase offre funzionalità native ArcGIS più avanzate (domini, subtype, regole topologiche complesse) quando servono per un progetto di lunga durata interamente nell'ecosistema Esri.
Risoluzione delle criticità
- Spazio temporaneo insufficiente: impostare
TMPDIRsu un volume secondario o utilizzare parametri CLI che indirizzano i file intermedi. - GML non leggibili: eseguire
ogrinfo -so file.gml layer; se l'errore persiste, ripetere il download. - CRS non coerenti: normalizzare con
gdalwarp(raster) oGeoDataFrame.to_crs()(vettoriale) e annotare ogni trasformazione. - Performance lente in QGIS: creare layer semplificati con
gdal_simplifyo applicare filtri di scala.
Errori comuni da evitare
- Assumere che "Monte Mario" equivalga a un singolo EPSG universale: il sistema Gauss-Boaga storico si articola in più zone (Ovest EPSG:3003, Est EPSG:3004) e confonderle produce uno shift sistematico di centinaia di metri, non un errore evidente da individuare a colpo d'occhio.
- Ignorare l'encoding dei GML più vecchi: alcuni archivi provinciali usano ancora ISO-8859-1 invece di UTF-8 per i campi testuali (toponimi, denominazioni catastali): senza una conversione esplicita, caratteri accentati nei nomi dei comuni risultano corrotti.
- Processare l'intero ITALIA.zip quando serve solo una provincia: scaricare e processare l'archivio nazionale per un'analisi locale spreca ore di elaborazione ed è la causa più comune di esaurimento spazio disco a metà pipeline.
- Non versionare la data di download: i GML dell'Agenzia delle Entrate cambiano nel tempo (nuovi frazionamenti, variazioni catastali); senza un timestamp nel nome del file o nei metadati, un'analisi diventa impossibile da riprodurre esattamente mesi dopo.
- Confondere il numero di foglio catastale con un identificativo univoco nazionale: i numeri di foglio si ripetono tra comuni diversi. L'identificativo univoco richiede sempre la combinazione comune + foglio + particella (+ subalterno per le unità immobiliari), mai il solo numero di foglio isolato.
Alternative pronte all'uso: quando evitare la pipeline manuale
Questo workflow ha senso quando serve controllo granulare su ogni fase (trasformazioni di sistema di riferimento specifiche, integrazione in una pipeline GIS aziendale già esistente, esigenze di audit trail dettagliato). Se invece l'obiettivo è più semplice - avere dati catastali puliti e pronti senza gestire l'intera pipeline GDAL/GML - esistono alternative più rapide:
- API Zornade per particelle catastali: accesso programmatico diretto senza gestire il download ed elaborazione del GML nazionale.
- Plugin QGIS Zornade: integrazione diretta in QGIS che salta i passaggi di conversione manuale descritti in questa guida.
- Sezioni urbane catasto già pulite e altri dataset in formati GIS pronti su data downloads: utile quando basta un sottoinsieme già validato geometricamente, senza dover ripetere la pulizia descritta più sopra.
La differenza pratica: questa guida costruisce la pipeline da zero (giorni di lavoro la prima volta, ore per ogni aggiornamento successivo); le alternative sopra restituiscono dati già pronti in minuti, al costo di un controllo più limitato sulle trasformazioni intermedie.
Aggiornamenti e controllo qualità
- Verificare trimestralmente nuove release del servizio WFS e aggiornare la nomenclatura (es.
catasto_italia_2025q3.gpkg). - Archiviare log di esecuzione, parametri CLI e hash dei file assieme al dataset prodotto.
- Eseguire controlli a campione su geometrie e attributi confrontando con i GML originali o estratti ufficiali.
Riferimenti
- Agenzia delle Entrate, servizio INSPIRE cartografia catastale.
- Linee guida INSPIRE per il tema Cadastral Parcels.
- Manuale GDAL/OGR sulla conversione GML > GeoPackage.
- Documentazione QGIS 3.34 su GeoPackage e indici.
- ArcGIS Pro, guida al supporto del formato GeoPackage.
Domande frequenti
Serve un abbonamento o un pagamento per scaricare i GML catastali?
No, il servizio WFS INSPIRE dell'Agenzia delle Entrate è pubblico e gratuito. Alcuni endpoint più avanzati (dati collegati a visure nominative) richiedono invece autenticazione SPID o CIE.
Qual è la differenza tra Gauss-Boaga e WGS84/UTM per i dati catastali?
Gauss-Boaga (EPSG:3003 Ovest, EPSG:3004 Est) è il sistema storico su cui è stata storicamente prodotta la cartografia catastale italiana. WGS84/UTM (EPSG:32632/32633) è più comune per l'interoperabilità con altri dataset internazionali. La scelta dipende dall'uso finale: per sovrapposizioni con dati globali (OpenStreetMap, satellite) conviene WGS84/UTM; per coerenza con la cartografia catastale storica, Gauss-Boaga.
Perché convertire in GeoPackage invece di lavorare direttamente sui GML?
Il GeoPackage consolida più layer in un unico file SQLite, supporta indici spaziali nativi (query molto più rapide) e non ha i limiti di lunghezza dei nomi di campo che affliggono lo Shapefile. I GML nativi sono più lenti da interrogare ripetutamente in QGIS/ArcGIS.
Quanto tempo richiede processare l'intero territorio nazionale?
Dipende da hardware e dimensione del subset. Per l'intero pacchetto ITALIA.zip (decine di GB, milioni di particelle), servono più ore anche con hardware dedicato (32GB RAM consigliati). Per una singola provincia il tempo scende a minuti/decine di minuti.
Posso ridistribuire pubblicamente un GeoPackage derivato dai GML catastali?
Dipende dalle condizioni di riuso pubblicate dall'Agenzia delle Entrate, che vanno verificate caso per caso prima della ridistribuzione: il servizio WFS pubblico non equivale automaticamente a una licenza open data generica applicabile a qualunque derivato.
Conviene costruire questa pipeline da zero per un progetto una tantum?
Per un'analisi singola o non ricorrente, spesso no: le alternative pronte all'uso (API, plugin QGIS, dataset già puliti) richiedono minuti invece di giorni. Questa pipeline ha senso quando serve controllo granulare ripetuto nel tempo, o integrazione in un workflow GIS aziendale esistente.
GDAL 3.6 è una versione obbligatoria o solo consigliata?
È la versione minima consigliata per garantire supporto stabile ai driver GML/GeoPackage usati in questa guida. Versioni precedenti possono funzionare ma con comportamenti meno prevedibili su alcuni edge case di conversione CRS.
Il numero di foglio catastale identifica univocamente una particella in tutta Italia?
No. Il numero di foglio si ripete tra comuni diversi: l'identificativo univoco richiede sempre la combinazione comune + foglio + particella (più il subalterno per le singole unità immobiliari all'interno di un fabbricato).
