tre esempi per capire la potenza del field calc di QGIS

Nella versione 2.16 di QGIS è stato introdotto, nel calcolatore di campi di QGIS, un nuovo gruppo di funzioni chiamate ‘aggregates’ che contiene funzioni che aggregano valori nei livelli e campi; attualmente contiene 22 funzioni,

aggragates
gruppo funzioni aggregates

in particolare vedremo la prima funzione, aggregate, in cui è possibile usare la variabile @parent (solo per questa funzione). Ciò rende possibile accedere agli attributi e alla geometria dalla funzione genitore quando si trova nel filtro della funzione di espressione “aggregata”, capiremo meglio con i tre esempi che seguiranno.

Primo esempio: conta i punti nel poligono

conta
conta punti nel poligono

in questo esempio abbiamo due layer, uno poligonale e l’altro puntuale; con il calcolatore di campi e le funzioni di aggregazione è possibile aggiungere un nuovo campo – nel vettore poligonale – e popolarlo con il numero di punti che vi ricadono.[ qui maggiori dettagli].

oppure: conta punti nel poligono con categorie (grazie a Martina Savarese)

conta_categorie
conta punti nel poligono con categorie – grazie Martina Savarese

in questo esempio abbiamo due layer, uno poligonale e l’altro puntuale; con il calcolatore di campi e le funzioni di aggregazione e l’operatore booleano (AND) è possibile aggiungere un nuovo campo – nel vettore poligonale – e popolarlo con il numero di punti che vi ricadono distinguendoli per categoria: [ qui maggiori dettagli].


concat(
'Civilian/Public:',
aggregate(layer:='airports',aggregate:='count',expression:="USE", filter:= ("USE"='Civilian/Public' AND intersects ($geometry,geometry(@parent)))),
',',
'Military:',
aggregate(layer:='airports',aggregate:='count',expression:="USE", filter:= ("USE"='Military' AND intersects ($geometry,geometry(@parent)))),
',',
'Joint Military/Civilitan:',
aggregate(layer:='airports',aggregate:='count',expression:="USE", filter:= ("USE"='Joint Military/Civilitan' AND intersects ($geometry,geometry(@parent)))),
',',
'Other:',
aggregate(layer:='airports',aggregate:='count',expression:="USE", filter:= ("USE"='Other' AND intersects ($geometry,geometry(@parent))))
)

Secondo esempio: somma le lunghezze delle linee all’interno dei poligoni

somma
somma lunghezze nei poligoni

in questo esempio abbiamo due layer, uno poligonale e l’altro lineare; con il calcolatore di campi e le funzioni di aggregazione è possibile aggiungere un nuovo campo – nel vettore poligonale – e popolarlo con la somma delle lunghezze delle linee che vi ricadono.[ qui maggiori dettagli].

Terzo esempio: realizzare una spatial-join con aggregazione di poligoni

poly
spatial-join con aggregazione di poligoni

in questo esempio abbiamo due layer poligonali; con il calcolatore di campi e le funzioni di aggregazione è possibile aggiungere un nuovo campo – nel vettore poligonale – e popolarlo in modo da trasferire, concatenandoli, un attributo dell’altro poligono .[qui maggiori dettagli].


NOTE FINALI: il calcolatore di campi di QGIS, per gli amici field calc, è uno strumento straordinario con cui è possibile realizzare cose incredibili come i tre esempi di sopra. Ho realizzato una guida HfcQGIS, sul field calc, in cui descrivo tutte le funzioni con molti esempi e tantissimi screenshot.


 

Buona lettura e W QGIS e tutti gli sviluppatori.

 

Se la guida HfcQGIS vi è stata utile, contribuite affinché rimanga online ed aggiornata.

 

Pubblicità

2 pensieri su “tre esempi per capire la potenza del field calc di QGIS

  1. Terzo esempio –> Maggiori dettagli –> …che vuol dire “cose che pampine”? …;-) …scherzo …il siciliano è bello e musicale …ma comprensibile a pochi eletti (quando facevo il Caporale nell’Esercito, gli unici due che non comprendevo mai, ma mai mai mai, erano un bergamasco e un messinese e sono convinto che mi abbiano mandato a quel paese almeno 3000 volte senza che io lo abbia mai capito)

    Piace a 1 persona

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 Twitter

Stai commentando usando il tuo account Twitter. 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.