QGIS e le query

Per query in QGIS si intendono tutte le operazioni che consentono di interrogare, estrapolare e incrociare i dati contenuti negli strati informativi di un progetto. Se le query sono rivolte alla posizione relativa alla geometria degli oggetti (sovrapposizioni, intersezioni, ecc.) si definiscono “interrogazioni spaziali”. È evidente che la possibilità di interrogare e manipolare sia le informazioni tabellari che spaziali, costituisce la peculiarità dei sistemi GIS. Le query mostrano la potenza dei sistemi GIS che vanno ben oltre la visualizzazione di mappe cartografiche.

L’intento di questo articolo è di mostrare alcuni esempi di query di uso comune utilizzando gli strumenti messi a disposizione da QGIS. L’articolo sarà aggiornato periodicamente con nuovi esempi.

Lo strumento principale che sarà utilizzato è il “costruttore di interrogazioni” (Query builder):

Il query builder in azione

Con il supporto di una interfaccia grafica è possibile costruire delle espressioni per interrogare i campi di una tabella associata ad uno strato informativo. Per accedere al Query builder è sufficiente cliccare, con il pulsante destro del mouse, sul layer di interesse e successivamente cliccare, dal menù contestuale, la voce “filtro”.

Esempi di query

Operatori di confronto

Con gli operatori di confronto, ad esempio utilizzando l’operatore (=), è possibile selezionare tutte le geometrie di un layer a cui, per un determinato campo, è associato un valore univoco, oppure confrontare valori numerici (es. tutte le geometrie con valore maggiore o minore di X).



// = (uguaglianza)
// es. seleziona tutti i comuni della Provincia di Roma
"CAMPO_PROVINCIA" = 'Roma'

// != (disuguaglianza)
// es. seleziona tutti i comuni che non appartengono alla Provincia di Roma
"CAMPO_PROVINCIA" != 'Roma'

// < (minore)
// > (maggiore)
// <= (minore o uguale)
// >= (maggiore o uguale)
// es. seleziona tutti i comuni con popolazione maggiore o uguale a 5.000.
"CAMPO_POPOLAZIONE" >= 5000

 

Operatori logici

Con gli operatori logici è possibile confrontare due o più condizioni che restituiscano un valore.
(es. tutte le geometrie con superficie maggiore di X e con perimetro minore di Y).


// operatore OR
// es. seleziona i comuni appartenenti alle provincie di Roma, Milano e Napoli
"CAMPO_PROVINCIA" = 'Roma'
OR
"CAMPO_PROVINCIA" = 'Milano'
OR
"CAMPO_PROVINCIA" = 'Napoli'

// operatore IN
// es. la medesima query può essere scritta in maniera più sintetica
 "CAMPO_PROVINCIA" IN ('Roma','Milano','Napoli')

// operatore AND
// es. seleziona i comuni della Provincia di Roma
// con popolazione maggiore di 10.000 abitanti
"CAMPO_PROVINCIA" = 'Roma'
AND
"CAMPO_POPOLAZIONE" > 10000

// operatore NOT
// es. seleziona i comuni della Regione Lazio
// tranne i comuni di Roma, Latina, Rieti
"CAMPO_REGIONE" = 'Lazio'
AND NOT
"COMUNE" = 'Roma'
AND NOT
"COMUNE"='Latina'
AND NOT
"COMUNE"='Rieti'

// operatore NOT IN
// la query precedente in maniera più sintetica:
"CAMPO_REGIONE" = 'Lazio'
AND
"COMUNE" NOT IN ('Roma','Latina','Rieti')

// operatore LIKE
// es. tutti i comuni che iniziano con la lettera 'A'
"COMUNE" LIKE 'A%'
// es. tutti i comuni che terminano con la lettera 'a'
"COMUNE" LIKE '%a'

Gli esempi esposti sono piuttosto semplici e sono utili solo per la  selezione geometrie con degli operatori. Naturalmente è possible effettuare delle interrogazioni più complesse e tramite il calcolatore di campi generarne di nuovi. In un prossimo articolo farò qualche piccolo esempio in proposito che includa il calcolo di superfici e la conversione in unità di misura differenti. Sempre e solo utilizzando QGIS!

Tags: ,

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *