Vai al contenuto

Mettiti alla prova con le espressioni di QGIS

Provaci Tu

Risolvi questi quesiti e scopri il tuo livello di conoscenza delle funzioni/espressioni del Field Calc di QGIS.


Dati utilizzati

Gli shapefile ISTAT 2021 generalizzati scaricabili da qui

Esercizi e quesiti da svolgere con QGIS 3.16 Hannover o superiore:


Quesiti

1.Usando il layer Reg01012020_g_WGS84, tracciare il Bounding Box (poligono) delle regioni, usando il Generatore di geometrie:

2.segue esempio 1), visualizzare etichetta solo nel Bounding Box della Puglia, nell'angolo in alto a destra:

3.Usando i layer Reg01012021_g_WGS84 e RipGeo01012021_WGS84 creare un vettore lineare usando il geo-algoritmo Geometria tramite espressione che colleghi i centroidi delle ripartizioni geografiche con i centroidi delle relative regioni, vedi sotto:

4.Usando il layer ProvCM01012021_WGS84, calcolare la lunghezza della linea che collega tutti i point_on_surface delle province ordinate per regione; poi etichettare lo stesso strato in modo da visualizzare in basso a sinistra la lunghezza totale formattata, vedi sotto:

5.Come selezionare la provincia italiana che ha il maggior numero di province confinanti?;

6.Come selezionare la terza provincia più estesa della ripartizione geografica Nord-Est;

7.Creare un campo numerico e popolarlo con la classifica (1,2,3,4….) delle province più estese raggruppate per ripartizione geografica (ovvero, 5 classifiche, una per ogni ripartizione, in modo che possa leggere quale sia l'ordine delle province più estese per ogni ripartizione);

8.Perché in generale $area <> area($geometry) ?

9.Con quale espressione è possibile tracciare il centroide lungo una linea (non rettilinea)?

10.Perché sono utili i campi virtuali?

11.In che condizioni è vera questa uguaglianza $x = x($geometry))?

12.Usando i layer Reg01012021_g_WGS84 e ProvCM01012021_WGS84 (filtro per cod_reg=9) creare l'effetto visualizzabile nello screenshot di sotto (spostando il mouse, è visibile il layer sottostante e la relativa etichetta):

13.I Raster possono essere utilizzati nel Field Calc? motivare la risposta.

14.Posso richiamare i valori di un altro layer usando le espressioni di QGIS? Se sì, con quali funzioni?

15.Per fare la concatenazione di stringhe è possibile utilizzare sia || che +, ma che differenza c'è tra i due ?

16.Utilizzando lo shapefile Reg01012021_g_WGS84 quale espressione permette di selezionare le feature pari?

17.All'interno della Finestra di dialogo del Field Calc (dove scriviamo le espressioni) è possibile scrivere dei commenti, in quale modo?

18.Utilizzando lo shapefile Reg01012021_g_WGS84, quale elemento restituisce questa espressione array_agg("COD_REG")[-1] (il primo, l'ultimo, nessuno, …)?

19.Utilizzando lo shapefile ProvCM01012021_WGS84, quale valore devo sostituire al posto della X affinché l'uguaglianza sia soddisfatta: array_first(array_agg("COD_PROV")) = array_agg("COD_PROV")[X] ?

20.Nella Selezione per Espressione, quale tipo di output (numero, testo, booleano) deve dare l'espressione utilizzata nella finestra di dialogo sottostante (stesso concetto vale per i filtri) ?

21.Usando i layer Reg01012021_g_WGS84 e RipGeo01012021_WGS84 etichettare il layer RipGeo01012021_WGS84 con il numero delle regioni corrispondenti, come sotto (utilizzare solo espressioni):

22.Dove posso utilizzare la variabile @parent ? (ovunque o solo in?)

23.Le variabili dipendono dal contesto in cui lavoriamo (field calc, seleziona per espressione, compositore di stampe, ecc…) ? motivare la risposta;

24.Posso utilizzare le espressioni nel compositore di stampe ? fai qualche esempio

25.La variabile @atlas_geometry è sempre disponibile? motivare la risposta.

26.Nel Field Calc è possibile aggiornare un attributo, cosa significa aggiornare l'attributo geometria tramite espressione, fai un esempio ?

27.Cosa sono e a che servono i parametri denominati nelle espressioni ?

28.Mettiti alla prova, rispondi prima di verificare in QGIS: '1' + '20' = 21 è corretta questa uguaglianza ? motiva la risposta.

29.Il Field Calc popola un attributo alla volta, è vera questa affermazione ? motiva risposta.

30.A partire dalla colonna "cod_rip", come ottenere la colonna "INVERTI" ? che espressione useresti ? vedi sotto:

31.Usando il layer ProvCM01012021_WGS84 selezionare le province che hanno il nome ("den_uts") con meno di 5 lettere:

32.Supponiamo di avere, in una tabella degli attributi, due colonne: la prima (field_1) è una descrizione caratterizzata da un lungo testo; un secondo campo (field_2) in cui c'è una parola; come verificare che la parola sia presente nel attributo descrizione ?

33.Usando il layer ProvCM01012021_WGS84 come scoprire il suo EPSG usando le espressioni ?

34.Usando i layer RipGeo01012021_WGS84 e in particolare la sua tabella degli attributi, aggiungere un campo (cum) e popolarlo con la somma cumulativa del campo "cod_rip", in modo da ottenere:

35.Alla variabile @parent è assegnata una feature o un valore ? motivare la risposta.

36.La seguente uguaglianza $id = @rownumber relativamente alla prima feature, è vera quando?

37.Usando uno shapefile, $id inizia da 1 o 0 ?

38.Usando un GeoPackage, @row_number inizia da 0 o 1 ?

39.È possibile realizzare una JOIN tabellare (al volo) usando solo espressioni ? motivare la risposta. (esempio: fare una join tabellare tra il vettore RipGeo01012021_WGS84 e il file CSV sottostante)

id valore
1 ciao
2 viva
3 QGIS
4 3.16.6
5 Hannover

40.È uno dei geo-algoritmi più famosi in ambito GIS Conta punti nel Poligono, è possibile fare la stessa cosa usando solo le espressioni del Field Calc di QGIS ? motivare la risposta

41.Con quale espressione è possibile aggiungere il numero di pagine in un atlante (nel formato nro pagina/totale pagine) ?

42.Quale valore memorizza la variabile @project_folder ?

43.È possibile associare a una variabile una immagine SVG ? se sì, in quali casi ?

44.Se definissi una variabile Globale con nome my_var = 5 e poi definissi la stessa variabile a livello di Progetto my_var = 50; quale valore verrebbe associato alla variabile ? motivare la risposta

45.Le espressioni di QGIS sono utilizzabili ovunque in QGIS, per esempio: tabella attributi, tematizzazione, etichettatura, strumenti di processing, compositore di stampe, atlanti, report, moduli inserimento dati, widget, legenda, azioni, plugin, modellatore grafico, diagrammi, filtri, selezione, decorazioni, copyright, ecc.. lo sapevi ? motivare la risposta!😁

46.Quattro vettori da 4 provider differenti (PostGIS, Spatialite, GeoPackage e shapefile), dove funzionano meglio le espressioni di QGIS ? motivare la risposta

47.La funzione array_agg() permette di trasformare un campo in un array, quale funzione trasforma una feature in un array ?

48.Nella finestra del Calcolatore di Campi, nella sezioni Gruppi (dove ci sono tutti le funzioni suddivise per gruppi), alcuni gruppi sono presenti solo in certe condizioni, per esempio il gruppo Relazioni quando è visibile ?

49.Supponiamo di avere il seguente CSV con tre attributi, l'ultimo GPS contiene la coppia di coordinate separate da , come da tabella sotto:

DATA NOME GPS
01/02/20 cucu 44.852747416606434,10.028176383697463
02/02/20 ciao 44.044566892850995,12.055562011167229
03/02/20 arrivederci 41.83774391119999,13.131616192302847
04/02/20 pluto 41.08389804418973,16.013252812971114
05/02/20 paperino 38.336008270894254,16.06188803019758

domanda 1 : come ottenere quest'altra tabella, dividendo i campi latitudine e longitudine ?

DATA NOME GPS latitude longitude
01/02/20 cucu 44.852747416606434,10.028176383697463 44.852747416606434 10.028176383697463
02/02/20 ciao 44.044566892850995,12.055562011167229 44.044566892850995 12.055562011167229
03/02/20 arrivederci 41.83774391119999,13.131616192302847 41.8377439119999 13.131616192302847
04/02/20 pluto 41.08389804418973,16.013252812971114 41.08389804418973 16.013252812971114
05/02/20 paperino 38.336008270894254,16.06188803019758 38.336008270894254 16.06188803019758

domanda 2 : come ottenere solo sei cifre decimali per gli ultimi due campi ?

DATA NOME GPS latitude longitude
01/02/20 cucu 44.852747416606434,10.028176383697463 44.852747 10.028176
02/02/20 ciao 44.044566892850995,12.055562011167229 44.044566 12.055562
03/02/20 arrivederci 41.83774391119999,13.131616192302847 41.837743 13.131616
04/02/20 pluto 41.08389804418973,16.013252812971114 41.083898 16.013252
05/02/20 paperino 38.336008270894254,16.06188803019758 38.336008 16.061888

50.A cosa serve l'operatore '\n' ?


Esito esercizi

Per chi volesse sapere l'esito degli esercizi svolti, inviare le risposte alla mail: pigrecoinfinito@gmail.com con OGGETTO: Test #HfcQGIS

Risultati

Sono 50 quesiti di difficoltà variabile (media-alta), sotto i consigli di Pigreco

nro range (risposte esatte) significato
1 tra 0 e 10 occorre urgentemente seguire il Corso HfcQGIS 😁
2 tra 11 e 25 seguire il Corso ti permetterebbe di rispondere bene quasi a tutte 😊
3 tra 26 e 40 hai qualche lacuna che potresti colmare seguendo il Corso HfcQGIS 😎
4 tra 41 e 50 conosci bene il Field Calc ! 😍

Contatto : ✉ pigrecoinfinito@gmail.com

Licenza

In questa sezione Provaci tu e tutti gli esercizi svolti, la licenza è CC-BY-NC-SA 4.0