Ciao Massimo,
purtroppo continua a non essermi chiaro cosa intendi con "tabella
attributi con 2 variabili, con 3 valori di RGB". Una tabella attributi
ha campi (o colonne).
Comunque, se il tuo layer contiene due campi, VAR1 e VAR2 di tipo
stringa e ognuno contiene una singola stringa contenente una tripletta
di valori decimali delle componenti colore separati da virgola
(rappresentante un singolo colore), allora potresti usare una
espressione come:
array_to_string( array_foreach( generate_series( 0, 2 ), round(
array_get( string_to_array( VAR1 ), @element ) * array_get(
string_to_array( VAR2 ), @element ) / 255 ) ) )
che crea una stringa contenente una tripletta di valori decimali delle
componenti colore separati da virgola, in cui i valori sono calcolati
moltiplicando il valore di ogni componente colore della stringa nel
campo VAR1, con il valore della rispettiva componente colore della
stringa nel campo VAR2 e dividendo il risultato per 255.
In questo modo dovresti ottenere un colore che è il "prodotto" (Blending
mode: Multiply) dei colori in VAR1 e VAR2 (secondo
https://en.wikipedia.org/wiki/Blend_modes#Multiply_and_Screen)
Chiaramente puoi adattare l'espressione anche ad altre modalità di
blending, se conosci la funzione che lega i valori dei colori in input
ai valori del colore in output.
Un altra possibilità, più elegante, è quella di scrivere una piccola
funzione in Python che svolge lo stesso compito della precedente
espressione e poi usare tale funzione al posto dell'espressione nel
calcolatore di campi.
A presto.
Andrea
Il 01/07/2021 08:54, Massimo Figaroli ha scritto:
Grazie Andrea.
Faccio un esempio pratico
Ho uno shapefile poligonale con n feature e una tabella attributi con
2 variabili, con 3 valori di RGB.
VAR1: '243,243,243' ; '234,197,221' ; '230,163,208'
VAR2: '243,243,243' ; '194,241,213' ; '139,226,174'
Duplicando la geometria e dando rappresentazione per le due variabili,
impostando per il vettore che si sovrappone la modalità di fusione
"moltiplica", ottengo una rappresentazione ben riassumibile con una
legenda bivariata.
La legenda posso costruirla direttamente nel compositore di stampa o
più agevolmente con GIMP (ad es.), andando di fatto ad sovrapporre le
due scale colore.
Se però potessi combinare direttamente ad es il valore di VAR1
'243,243,243' con il valore di VAR2 '139,226,174' mediante il
calcolatore di campi, avrei la possibilità di ottenere la stessa
elaborazione senza duplicare il layer.
Inoltre poi avrei quantomeno una simbologia "reale" nel mio progetto e
non solo come elemento grafico nel layout.
_______________________________________________
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user