Lavorando con i raster, suddivisi, per esempio, per aree, nasce spesso l’esigenza di importarle, in QGIS, uno alla volta; quando sono molti non è cosi semplice individuarle all’interno della cartella, ecco che nasce l’esigenza di aggiungere – alla TOC – un raster tramite un clic sulla canvas in corrispondenza della mattonella del raster stesso.
In questi casi la cosa migliore da fare è creare un indice delle mattonelle e sfruttarle per caricare il raster tramite una azione python.
Creare indice delle mattonelle in QGIS
Da Strumenti di Processing:
selezionare la cartella che contiene i raster:
dopo Esegui
ottengo il vettore con le mattonelle:
il vettore creato contiene una sola colonna popolata con i percorsi assoluti dei raster.
Importare i raster nella TOC con un clic
Creare una azione Python e incollare questo script:
raster_path = "[%location%]"
raster_layer = QgsRasterLayer(raster_path,"[%file_name( "location" )%]")
QgsProject.instance().addMapLayer(raster_layer)
dove location
è il nome del campo che contiene il percorso assoluto dei raster (vedi tabella attributi dell’ indice delle mattonelle).
importiamo i raster delle isole di Pantelleria e Ustica con due semplici clic all’interno delle relative mattonelle:

attivare l’azione:
Gif animata dimostrativa:
NOTE FINALI: lo script aggiunge il nuovo layer con il nome del file grazie alle nuove funzioni presenti nel gruppo File e percorsi
(>= QGIS 3.8).
Riferimenti
- QGIS : https://qgis.org/it/site/
- DOC QGIS : https://qgis.org/it/docs/index.html
- HfcQGIS : http://hfcqgis.opendatasicilia.it/it/latest/
- GDAL : https://gdal.org/programs/gdaltindex.html
Ringraziamenti:
- Klas Karlsson : https://twitter.com/klaskarlsson/status/1159514845127028738
- Giulio Fattori : per consigli su pyQGIS
Se il blog post vi è piaciuto cliccate su ‘Mi piace’, grazie!!!
if you liked the blog post click on ‘Like’, thank you !!!
Senza parole! incredibile!
"Mi piace"Piace a 1 persona
Grazie Luca
"Mi piace""Mi piace"
Grazie Totò dai sempre ottime lezioni con contributi essenziali
"Mi piace"Piace a 1 persona
Grazie per aver lasciato un pensiero. 😉
"Mi piace""Mi piace"
Grazie Totò, dai sempre lezioni interessanti con contributi essenziali
"Mi piace"Piace a 1 persona
from qgis.utils import iface
raster_path = “[%location%]”
raster_layer = QgsRasterLayer(raster_path,”[%file_name( “location” )%]”)
iface.messageBar().pushMessage(“Wait when loading”, level=Qgis.Success, duration=3)
QgsProject.instance().addMapLayer(raster_layer)
Questo script aggiunge un messaggio durante il caricamento del raster.
Grazie a Giulio Fattori
"Mi piace""Mi piace"