Classificare specie↵
Una colonna taxa contiene una serie di specie separate da #. Come creare una nuova colonna che restituisce una somma di valori, in base alla specie, definiti in un'altra tabella. Sotto un esempio:
di seguito alcuni esempi di valori per specie:
| taxon | value | 
|---|---|
| Calluna_vulgaris | 1 | 
| Baeomyces_rufus | 1 | 
| Porpidia_crustulata | 2 | 
| Rhizocarpon_reductum | 2 | 
| Micarea_erratica | 2 | 
| Hypnum_jutlandicum | 0.333 | 
| Erica_tetralix | 2 | 
| Carex_pilulifera | 1.5 | 
esempio di cosa ottenere: se la colonna taxa contenesse Calluna_vulgaris#Porpidia_crustulata#Micarea_erratica
la nuova colonna devobbe contenere 5 (1+2+2).
Prima soluzione↵
array_sum(
  array_foreach(
    string_to_array("taxa",'#'),
    to_real(attribute(get_feature('taxon','taxon',@element),'value'))))
questa soluzione fa uso di un layer taxon che contiene l'elenco delle specie e i relativi valori.
Seconda soluzione↵
array_sum(
  array_foreach(
  string_to_array("taxa",'#'),
  map_get(
    map(
        'Calluna_vulgaris',1,
        'Baeomyces_rufus',1,
        'Porpidia_crustulata',2,
        'Rhizocarpon_reductum',2,
        'Micarea_erratica',2,
        'Hypnum_jutlandicum',0.333,
        'Erica_tetralix',2,
        'Carex_pilulifera',1.5),
@element)))
questa soluzione fa uso di un dizionario (mappe valori) che contiene l'elenco e i valori delle specie.
output↵
Prova tu↵
Geopackage è qui
idea presa da qui
Funzioni e variabili utilizzate:

