Vai al contenuto

Assegnare categoria prevalente

Dati due shapefile poligonali, fabbricati e circorscrizioni. I fabbricati hanno un attributo (categoria) che li categorizza come A,B,C,D. Come attribuire alle circoscrizioni la categoria prevalente dei fabbricati? cioè, se ci fossero, in una circoscrizione, più fabbricati con categorie B, rispetto agli altri, allora assegnare la categoria B, oppure A se, la maggioranza dei fabbricati, fosse la categoria A.

Avviare il calcolatore di campi relativamente al layer circoscrizioni e creiare un campo testuale:

popolare con la seguente espressione:

array_majority( 
string_to_array(
aggregate(
layer:='fabbricati_pa', 
aggregate:='concatenate', 
expression:="categoria",
filter:=intersects( $geometry, geometry(@parent)),
concatenator:=',')
) 
)

PS: occorre installare il plugin ArrayPlus per poter usare la funzione array_majority nelle versioni <= QGIS 3.16; La funzione array_majority è disponibile nativamente a partire da QGIS 3.18

Prova tu

Geopackage


Funzioni e variabili utilizzate: