QGIS tabella attributi: ordinare usando gli array

Un amico mi scrive in privato su Telegram:

ciao!! un dubbio: se volessi selezionare tra alcuni poligoni, i primi 10 con l’area più grande, devo usare gli array?

Luca

Prendiamo in considerazione le Province ISTAT:

per selezionare le prime 10 province più estese, potremmo ordinare la colonna Shape_Area in senso decrescente (cliccando sull’intestazione della colonna) e poi selezionare manualmente le prime 10:

vediamo come fare la stessa cosa usando lo strumento Select by Expresssion (Ctrl+F3):

l’espressione che ci serve è la seguente:

 array_contains( 
       array_slice(  
        array_sort( 
		array_agg( $area ) , ascending:=false ),  0,9 ),
          $area )

il risultato è:

fin qui ho risposto alla domanda di Luca.

Etichettatura

Vediamo come etichettare solo i poligoni appena selezionati con nome provincia e numero sequenziale rispetto all’estensione:

espressione usata:

"DEN_UTS"  || ' (' || 
 (array_find(  
      array_sort( 
		array_agg( $area ) , ascending:=false ) ,
	     $area ) +1)
	       || ')'

Popolare un campo con numeri (crescenti o decrescenti) in funzione di un altro campo

Supponiamo di voler creare un campo numerico e di popolarlo con numeri crescenti in funzione dell’ordine alfabetico (crescente) del campo SIGLA , cioè alla Provincia AG corrisponde 1 e a VV 107:

l’espressione da usare è:

 array_find(  
      array_sort( 
		array_agg( "SIGLA" ) , ascending:=true ) ,
	     "SIGLA" ) + 1

possiamo, inoltre, fare una sorta di PARTIZIONAMENTO interno e creare i numeri per regione:

espressione da usare:

 array_find(  
      array_sort( 
		array_agg( "SIGLA", "COD_REG"), ascending:=true ) ,
	"SIGLA" ) + 1

in questo modo i numeri partono da 1 per ogni regione.


NOTE FINALI: la potenza del field calc cresce SEMPRE, nella prossima versione QGIS 3.12 (fine febbraio 2020) ci saranno molte nuove feature.


Riferimenti

Ringraziamenti


Se il blog post vi è piaciuto cliccate su ‘Mi piace’, grazie!!!
if you liked the blog post click on ‘Like’, thank you !!!

SE IL POST VI È STATO UTILE CONTRIBUITE A MANTENERLO AGGIORNATO PAYPAL

Pubblicità

4 pensieri su “QGIS tabella attributi: ordinare usando gli array

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.