Il passaggio dal mondo CAD al mondo GIS, in generale dal DWG allo shp (shapefile), porta con se innumerevoli problemi, tra questi quello della categorizzazione di feature.
Spesso nel mondo CAD vengono utilizzate dei codici numerici per definire delle feature e in un altro file esterno (che viene sempre smarrito), per esempio un file testuale, vengono scritte le decodifiche, sotto un esempio:
In questi casi, la decodifica viene scritta manualmente nella Legenda e non c’è modo di recuperarla facilmente:
In questo blog post parlerò di come è nata l’idea di creare una funzione personalizzata, per il field calc di QGIS, per semplificare l’estrazione di queste decodifiche.
È un caso reale, alcuni Enti locali generano molti file shp, passando dal CAD al GIS, e la decodifica della legenda è presente solo nel file qml (il file di vestizione).
Un modo per recuperare le decodifiche è aprendo il file qml (è un file testuale tipo xml), ed estrarre manualmente i dati che ci servono, sotto un esempio:
per poi creare un file CSV con due campi, come sotto:
infine, creare una JOIN tabellare in QGIS.
I dati presenti nel file qml non sono direttamente accessibili da QGIS, ovvero, non esiste una funzione che permetta di accedere, in modo semplice, ai dati delle tematizzazione come: colore, simbolo e label, occorre necessariamente scrivere dei piccoli script in pyQGIS. Quindi contatto un caro amico (Giulio Fattori, che ringrazio per la disponibilità) che in brevissimo tempo crea una funzione personalizzata che permette di estrarre le decodifiche.
La funzione personalizzata va inserita tra le funzioni CUSTON del Calcolatore di campi.
ecco come usarla:
- selezionare il layer da decodificare;
- avviare il calcolatore di campi;
- scrivere la funzione
get_catg_label
e come argomento il nome del campo con cui è stato categorizzato il layer; - OK.
Come aggiungere una funzione personalizzata
Per aggiungere una funzione personalizzata, seguire i seguenti passi:
- copiare l’intero script;
- all’interno dell’interfaccia del field calc, cliccare nella sezione
Editor delle Funzioni
; - cliccare sul simbolo più in verde(si trova in basso a sinistra), digitare un nome e incollare lo script precedentemente copiato nell’area centrale;
- salvare e ritornare nella sezione
Espressioni
oppure, incollare il file *.py all’interno della cartella expressions
nel profilo corrente: C:\Users\nomeUser\AppData\Roaming\QGIS\QGIS3\profiles\default\python\expressions
NOTE FINALI: La conoscenza di pyQGIS permette di risolvere problemi apparentemente irrisolvibili.
RIFERIMENTI
- QGIS : https://www.qgis.org/it/site/
- pyQGIS : https://docs.qgis.org/3.22/en/docs/pyqgis_developer_cookbook/index.html
RINGRAZIAMENTI
DATI E PROGETTO ESEMPIO
I MIEI CANALI – ISCRIVITI
- Telegram : https://t.me/pigrecoinfinito
- YouTube : https://www.youtube.com/c/TotòFiandaca
Se il blog post Ti è piaciuto cliccate su ‘Mi piace’, grazie!!!
if you liked the blog post click on ‘Like’, thank you !!!
un grande grazie come sempre, grazie anche a Giulio Fattori
"Mi piace"Piace a 1 persona
Grazie mille Giacomo
"Mi piace""Mi piace"