Skip to content

Commit

Permalink
add 62esimo esempio
Browse files Browse the repository at this point in the history
  • Loading branch information
pigreco committed Nov 11, 2021
1 parent 7eede1e commit b7903ba
Show file tree
Hide file tree
Showing 8 changed files with 71 additions and 2 deletions.
3 changes: 2 additions & 1 deletion docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,5 @@ data | descrizione
02/11/2021 | aggiunto [59esimo](esempi/geometria_vicina_filtro_condizionato.md) esempio
03/11/2021 | aggiornato pagina sitografia
05/11/2021 | aggiunto [60esimo](esempi/atlas_righe_verticale.md) esempio
06/11/2021 | aggiunto [61esimo](esempi/decimali_come_apice.md) esempio
06/11/2021 | aggiunto [61esimo](esempi/decimali_come_apice.md) esempio
11/11/2021 | aggiunto [62esimo](esempi/media_stdev_tra_campi.md) esempio
3 changes: 2 additions & 1 deletion docs/esempi/lista_esempi.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ social_image: img/card_social/hfc_lista_esempi.png

---

Attualmente ci sono **61** esempi svolti! (in evoluzione)
Attualmente ci sono **62** esempi svolti! (in evoluzione)

... e **50** esempi da svolgere: [mettiti alla prova](../mettiti_alla_prova.md)

Expand Down Expand Up @@ -80,6 +80,7 @@ nro|Esempio|Descrizione|Autore | Livello | funzioni utilizzate
59|[geometrie vicine ma con condizione](geometria_vicina_filtro_condizionato.md)|tracciare un segmento tra punti vicini che soddisfano la condizione `id1` <> `id2` |Salvatore Fiandaca | 4 | overlay_nearest, array_filter, attribute, make_line, collect_geometries, $geometry, geometry
60|[atlante con righe tabella in verticale](atlas_righe_verticale.md)|riga tabella attributi in verticale nel layout di stampa di un atlante |Salvatore Fiandaca | 3 | replace, map_to_hstore, attributes
61|[decimali coordinate come apici](decimali_come_apice.md)|decimali coordinate messe come apici |Salvatore Fiandaca | 3 | with_variable, regexp_replace, left, array, $x, $y, replace
62|[media e stdev tra campi](media_stdev_tra_campi.md)|calcola la media e la deviazione standard campionaria lungo lo stesso record |Salvatore Fiandaca | 3 |@with_variable, array_foreach, array_mean, attributes, map_delete, map_avals, map_akeys

## Partecipa

Expand Down
66 changes: 66 additions & 0 deletions docs/esempi/media_stdev_tra_campi.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Media e deviazione standard tra campi

Le funzioni di aggregazione di QGIS agiscono su un campo, ma se volessimo determinare la _media_ e la _stdev_ dei valori di ogni record, come faremmo?

La funzione che permette di creare una mappa per ogni record è `attributes()` e tramite questa risolveremo il problema.

Abbiamo uno shapefile dei comuni siciliani e la tabella degli attributi presenta, per ogni anno (dal 2012 al 2020), il valore della popolazione residente, sotto la tabella:

![](../img/esempi/media_stdev_tra_campi/img_01.png)

determinare, per ogni comune, la _media_ e la _stdev_ (deviazione standard campionaria)

La tabella attributi ha 11 campi, ma i valori della popolazione è negli ultimi 9 campi.

Nell'esempio occorre evitare i campi `"fid"`, `PRO_COM` e `COMUNE`, occorre, quindi, utilizzare la seguente espressione:

- media:

```
with_variable('deleteField',
map_delete(map_delete(map_delete(
attributes(),'PRO_COM'),'COMUNE'),'fid'),
-- media
array_mean(map_avals((@deleteField))
))
```

![](../img/esempi/media_stdev_tra_campi/img_02.png)

- deviazione standard: (occorre evitare anche il campo `media`)

```
with_variable('deleteField',
map_delete(map_delete(map_delete(map_delete(
attributes(),'PRO_COM'),'COMUNE'),'fid'),'media'),
-- stdev campionaria
with_variable('riga',map_avals(@deleteField),
sqrt(
array_sum(
array_foreach(
@riga,
(@element-array_mean(@riga))^2))
/
(array_length(@riga)-1))
)
)
```

![](../img/esempi/media_stdev_tra_campi/img_03.png)

## provaci tu, qui il geopackage

[scarica](../prova_tu/comuni_rs.gpkg)

---

Funzioni e variabili utilizzate:

* [@with_variable](../gr_funzioni/variabili/with_variable.md)
* [array_foreach](../gr_funzioni/array/array_unico.md#foreach)
* [array_mean](../gr_funzioni/array/array_unico.md#array_mean)
* [attributes](../gr_funzioni/record_e_attributi/record_e_attributi_unico.md#attributes)
* [map_delete](../gr_funzioni/maps/maps_unico.md#map_delete)
* [map_avals](../gr_funzioni/maps/maps_unico.md#map_avals)
* [map_akeys](../gr_funzioni/maps/maps_unico.md#map_akeys)

Binary file added docs/img/esempi/media_stdev_tra_campi/img_01.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/esempi/media_stdev_tra_campi/img_02.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/prova_tu/comuni_rs.gpkg
Binary file not shown.
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@ nav:
- Geometrie vicine con condizione: esempi/geometria_vicina_filtro_condizionato.md
- Atlante con righe tabella in verticale: esempi/atlas_righe_verticale.md
- Decimali delle coordinate come apici: esempi/decimali_come_apice.md
- Media e stdev tra campi: esempi/media_stdev_tra_campi.md
- Provaci tu: mettiti_alla_prova.md

- Corsi di Formazione:
Expand Down

0 comments on commit b7903ba

Please sign in to comment.