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
- QGIS : https://qgis.org/it/site/
- HfcQGIS : http://hfcqgis.opendatasicilia.it/it/latest/index.html
- esempio 34 di #HfcQGIS : http://hfcqgis.opendatasicilia.it/it/latest/esempi/selezionare_primi_n_valori.html
Ringraziamenti
- Tutti gli sviluppatori di QGIS : https://qgis.org/it/site/getinvolved/index.html
Se il blog post vi è piaciuto cliccate su ‘Mi piace’, grazie!!!
if you liked the blog post click on ‘Like’, thank you !!!
Da paura!!! grazie mille!!
"Mi piace"Piace a 1 persona
Grazie a te Luca
"Mi piace""Mi piace"
Dopo aver finito lo studio, eccezzionale!
"Mi piace"Piace a 1 persona
Grazie Luca.
"Mi piace""Mi piace"