Non è un segreto, ma sono convinto che il field calc di QGIS è uno strumento indispensabile per chi volesse utilizzare QGIS a livell medio-alto.
Come descritto nella mia guida HfcQGIS, le espressioni del field calc sono utilizzabili ovunque (ed è praticamente impossibile creare un progetto senza utilizzare qualche espressione) e lo dice anche Nyall Dawson (uno dei più attivi sviluppatori di QGIS):
Le espressioni di QGIS consentono di eseguire calcoli sulla base di valori di attributo esistenti o funzioni definite, ad esempio, per calcolare la lunghezza o l’area delle caratteristiche geometriche del layer corrente. I risultati possono essere scritti in un nuovo campo di attributo, un campo virtuale, oppure possono essere utilizzati per aggiornare i valori in un campo esistente. Un uso avanzato del field calc permette di richiamare i campi di altri layer tramite le funzioni get_feature
, get_feature_by_id
, aggregate
, overlay_*
; in questo blog post parlerò, appunto, della nuova feature implementata per facilitare l’uso di queste ultime funzioni.
A luglio del 2020 aprii questa Feature Request dove spiegai l’utilità di tale caratteristica; dopo oltre un anno viene implementata grazie alla sponsorizzazione di ARPA Piemonte (grazie a Rocco e Luca)
in pratica la nuova feature espone, nel gruppo Layer mappa
(vedi screenshot di sopra), i nomi e i valori dei campi presenti nella tabella attributi dei layer elencati, questo facilita enormemente l’uso delle funzioni che richiamano altri layer (per esempio get_feature, aggregate ecc…); prima di questa implementazione occorreva segnarsi, da qualche parte, i nomi dei campi degli altri layer.
NOTE FINALI: come si legge nella PR, i nomi dei campi vengono incollati come stringhe quindi 'field_name'
e non "field_name"
, ma non è un problema!
RIFERIMENTI
- QGIS : https://www.qgis.org/it/site/
- Feature Request : https://github.com/qgis/QGIS/issues/37544
- Pull Request : https://github.com/qgis/QGIS/pull/46505
RINGRAZIAMENTI
- ARPA Piemonte : http://www.arpa.piemonte.it/
- Rocco Pispico
- Luca Lanteri
