<div dir="ltr">Ciao,<div>dopo una breve pausa rispondo al suggerimento ricevuto da Andrea Giudiceandrea.</div><div>Riscontro positivissimo: in sostanza la tua espressione che utilizza "array" produce colori praticamente uguali a quelli ottenuti con il metodo manuale (su alcune combinazioni si riscontrano differenze di <span style="color:rgb(77,81,86);font-family:arial,sans-serif;font-size:14px">±1 unità sui canali R, G, B ma è praticamente impercettibile).</span></div><div><span style="color:rgb(77,81,86);font-family:arial,sans-serif;font-size:14px">La tua espressione, come mi scrivevi, di fatto replica la modalità di fusione layer "moltiplica" che vado ad applicare al vettore di sovrapposizione.</span></div><div><span style="color:rgb(77,81,86);font-family:arial,sans-serif;font-size:14px"><br></span></div><div><font color="#4d5156" face="arial, sans-serif"><span style="font-size:14px">Quindi, se da un lato la costruzione della legenda bivariata l'ho fatta con GIMP, l'elaborazione dell'output cartografico può essere ottenuta mediante il calcolatore di campi (che poi è la risposta alla domanda che ponevo).</span></font></div><div><br></div><div><font color="#4d5156" face="arial, sans-serif"><span style="font-size:14px">Grazie, un aiuto preziosissimo.</span></font></div><div><font color="#4d5156" face="arial, sans-serif"><span style="font-size:14px"><br></span></font></div><div><font color="#4d5156" face="arial, sans-serif"><span style="font-size:14px">Massimo Figaroli</span></font></div><div><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><p style="margin:0px"><font color="#38761d" face="arial, sans-serif">----------------------------------------------<br><font size="2"><strong>Massimo Figaroli</strong><br>Ambientologo e Agrotecnico Laureato</font></font></p><p style="margin:0px"><span style="color:rgb(56,118,29);font-family:arial,sans-serif">Como (CO) - P.IVA 03422160139</span><br></p><p style="margin:0px"><font face="arial, sans-serif"><font color="#38761d"><br></font></font></p><p style="margin:0px"><font face="arial, sans-serif"><font color="#38761d">@    </font><font color="#3d85c6"><a href="mailto:massimo.figaroli@gmail.com" target="_blank"><font color="#3d85c6">massimo.figaroli@gmail.com</font></a><font>  </font></font></font></p><p style="margin:0px"><font face="arial, sans-serif"><font color="#38761d">pec  </font><a href="mailto:massimo.figaroli@aisapec.it" target="_blank"><font color="#3d85c6">massimo.figaroli@aisapec.it</font></a></font></p><p style="margin:0px"><font color="#38761d" face="arial, sans-serif">cell. 3381471605</font></p><p style="margin:0px"><font face="arial, sans-serif"><font color="#38761d">Skype  </font><a href="https://join.skype.com/invite/ELrAL4vZBh6W" target="_blank"><font color="#3d85c6">massimofigaroli</font></a><br><font color="#38761d">Web   </font><font color="#3d85c6"><font color="#3d85c6"><a href="https://www.massimofigaroli.it/" target="_blank"><font color="#3d85c6">www.massimofigaroli.it</font></a> </font>  <font><a href="https://www.linkedin.com/pub/massimo-figaroli/22/612/816" target="_blank"><font color="#3d85c6">Linkedin</font></a> </font>  <a href="https://www.ecosbn.it/" target="_blank"><font color="#3d85c6">ECOSBN</font></a></font><span style="color:rgb(0,128,0)"><br></span></font><span style="color:rgb(153,153,153);font-size:x-small;font-family:Calibri,sans-serif"><br></span></p><p style="margin:0px"><span style="color:rgb(153,153,153);font-size:x-small;font-family:Calibri,sans-serif">Ai sensi del Regolamento (UE) 2016/679, Le informazioni contenute in questo messaggio e in ogni documento o file ad esso allegato sono riservate e confidenziali. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio o a diversa persona da questo autorizzata, per le finalità indicate nel messaggio medesimo. Qualora Lei non fosse la persona cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandocene gentilmente comunicazione. Ogni utilizzo improprio è contrario ai principi del Regolamento (UE) 2016/679. Regione Lombardia – Giunta Regionale opera in conformità al Regolamento (UE) 2016/679 citato. Per qualsiasi informazione a riguardo si prega di contattarci al seguente indirizzo e-mail: </span><a href="mailto:massimo.figaroli@gmail.com" style="font-size:x-small;font-family:Calibri,sans-serif" target="_blank">massimo.figaroli@gmail.com</a><span style="color:rgb(153,153,153);font-size:x-small;font-family:Calibri,sans-serif"> </span><font face="arial, sans-serif"><span style="color:rgb(0,128,0)"><br></span></font></p></div></div></div></div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il giorno gio 1 lug 2021 alle ore 10:52 Andrea Giudiceandrea <<a href="mailto:andreaerdna@libero.it">andreaerdna@libero.it</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Ciao Massimo,<br>
putroppo continua a non essermi chiaro cosa intendi con "tabella <br>
attributi con 2 variabili, con 3 valori di RGB". Una tabella attributi <br>
ha campi (o colonne).<br>
<br>
Comunque, se il tuo layer contiene due campi, VAR1 e VAR2 di tipo <br>
stringa e ognuno contiene una singola stringa contenente una tripletta <br>
di valori decimali delle componenti colore separati da virgola <br>
(rappresentante un singolo colore), allora potresti usare una <br>
espressione come:<br>
<br>
array_to_string( array_foreach( generate_series( 0, 2 ), round( <br>
array_get( string_to_array( VAR1 ), @element ) * array_get( <br>
string_to_array( VAR2 ), @element ) / 255 ) ) )<br>
<br>
che crea una stringa contenente una tripletta di valori decimali delle <br>
componenti colore separati da virgola, in cui i valori sono calcolati <br>
moltiplicando il valore di ogni componente colore della stringa nel <br>
campo VAR1, con il valore della rispettiva componente colore della <br>
stringa nel campo VAR2 e dividendo il risultato per 255.<br>
<br>
In questo modo dovresti ottenere un colore che è il "prodotto" (Blending <br>
mode: Multiply) dei colori in VAR1 e VAR2 (secondo <br>
<a href="https://en.wikipedia.org/wiki/Blend_modes#Multiply_and_Screen" rel="noreferrer" target="_blank">https://en.wikipedia.org/wiki/Blend_modes#Multiply_and_Screen</a>)<br>
<br>
Chiaramente puoi adattare l'espressione anche ad altre modalità di <br>
blending, se conosci la funzione che lega i valori dei colori in input <br>
ai valori del colore in output.<br>
<br>
Un altra possibilità, più elegante, è quella di scrivere una piccola <br>
funzione in Python che svolge lo stesso compito della precedente <br>
espressione e poi usare tale funzione al posto dell'espressione nel <br>
calcolatore di campi.<br>
<br>
A presto.<br>
<br>
Andrea<br>
<br>
<br>
Il 01/07/2021 08:54, Massimo Figaroli ha scritto:<br>
><br>
> Grazie Andrea.<br>
> Faccio un esempio pratico<br>
> Ho uno shapefile poligonale con n feature e una tabella attributi con <br>
> 2 variabili, con 3 valori di RGB.<br>
> VAR1: '243,243,243' ; '234,197,221' ; '230,163,208'<br>
> VAR2: '243,243,243' ; '194,241,213' ; '139,226,174'<br>
><br>
> Duplicando la geometria e dando rappresentazione per le due variabili, <br>
> impostando per il vettore che si sovrappone la modalità di fusione <br>
> "moltiplica", ottengo una rappresentazione ben riassumibile con una <br>
> legenda bivariata.<br>
><br>
> La legenda posso costruirla direttamente nel compositore di stampa o <br>
> più agevolmente con GIMP (ad es.), andando di fatto ad sovrapporre le <br>
> due scale colore.<br>
><br>
> Se però potessi combinare direttamente ad es il valore di VAR1 <br>
> '243,243,243' con il valore di VAR2 '139,226,174' mediante il <br>
> calcolatore di campi, avrei la possibilità di ottenere la stessa <br>
> elaborazione senza duplicare il layer.<br>
> Inoltre poi avrei quantomeno una simbologia "reale" nel mio progetto e <br>
> non solo come elemento grafico nel layout.<br>
><br>
<br>
</blockquote></div>