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

Rispondere a