QGIS: VERIFICARE ESISTENZA DI UN PATH PER EVITARE LA X ROSSA

In questo breve articolo parlerò delle funzioni personalizzate di QGIS da usare nel calcolatore di campi di QGIS.

Email presente nella mailing list QGIS-it-user

Ciao a tutti,
ho un problema che non riesco a risolvere in quanto non ho conoscenze
avanzate di programmazione Python.

oggetto:
campo testuale popolato con percorsi (relativi/ assoluti) di file immagine,
es: ‘miofile_01.png’

problema:
alcune volte nasce l’esigenza di popolare un campo, tramite il calcolatore
di campi, in modo automatico quindi puo’ accadere che ‘miofile_099.png’ NON
esista ma il calcolatore di campi non lo sa e quindi scrive ugualmente
‘miofile_099.png’. Il fatto che scriva un percorso che non esiste NON è un
problema ma diventa tale non appena si richiama il valore del campo stesso.

Vorrei creare una funzione, da usare nel calcolatore di campi, che
controllasse l’esistenza del file per poi poterla usare in una condizione
tipo:

CASE WHEN  controlloFile(“campo”) is TRUE THEN 1 else 0 END

questa esigenza nasce nel compositore di stampe per evitare che compaia una
X rossa al posto dell’immagine che non esiste o che ha un percorso errato.

La soluzione è:


# crea una funzione personalizzata 'controlla'
# da usare nel calcolatore di campi
# se il path esiste il valore è TRUE altrimenti FALSE
from qgis.core import *
from qgis.gui import *
from os.path import *
@qgsfunction(args='auto', group='Custom')
def controlla(value1, feature, parent):
return os.path.exists(value1)

view raw

controlaFile.py

hosted with ❤ by GitHub

per creare una nuova funzione aprire il calcolatore di campi:

N2
editor delle funzioni

selezionare il tab ‘editor delle funzioni‘, cliccare su ‘nuovo file‘ (dare un nome a piacere) e incollare lo script python di sopra, infine carica.

Ritroveremo la funzione personalizzata nel gruppo ‘custom

N3
funzioni Custom

Questa funzione va usata per controllare l’esistenza di un percorso, ecco un esempio:

N4
costruttore stringhe espressioni

Note finali: questo artico chiude il cerchio ad una casistica spiegata in questo video:

 

ConQGIStando

donate al progetto QGIS:

http://qgis.it/

se il l’articolo vi è stato utile:

https://www.paypal.me/pigrecoinfinito

fonte script python:

https://stackoverflow.com/questions/82831/how-do-i-check-whether-a-file-exists-using-python

Pubblicità

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.