1 votos

Inversión de la rampa de color QGIS Hexbin

Tengo una pregunta muy básica sobre la simbología de QGIS:

¿Cómo se invierte una rampa de color para una capa hexagonal? Puedo hacer la inversión para conseguir que los rojos sean los valores más altos en el equivalente rasterizado del conjunto de datos, pero parece que no puedo conseguir que la rampa de color hexbin se invierta. Estoy utilizando una rampa Spectral ColorBrewer, por lo que el azul es el valor más bajo y el rojo el más alto.

0voto

ane Puntos 116

Lo que descubrí es que utilidades cpt (paleta de colores) se ha utilizado para convertir un número de gradientes de todo el lugar. Hay un cptutils-online herramienta de conversión. Las cptutils se han utilizado para crear el Sitio cpt-city - Un archivo de gradientes de color . Esto también explica por qué hay una [qgis_install_dir]/apps/qgis/resources/cpt-city-qgis-min/ directorio. Estos archivos son del sitio cpt-city. El sitio cb es donde se encuentran los archivos de color-brewer. Estos son todos .svg archivos. Mirando el spectial11.svg verá que <creator name="cptutils" version="1.46"/> creó el archivo. Lo que tendrías que hacer es entrar y revertir manualmente todos los <stop offset ... /> pasos para lograr su rampa de color invertida.

Eso no es divertido. He instalado el plugin SVG2ColoR qgis. Genera paradas con valores numéricos y en un formato qgis_style. Intercambiando los dos colores en el archivo

<prop k="color1" v="94,79,162,255"/>
<prop k="color2" v="158,1,66,255"/>

no invirtió la rampa en el gestor de color. Pero este fue el primer paso del proceso. A continuación, cambié la línea de paradas a tres líneas.

<prop k="stops" v="
0.0909...
"/>

He estado utilizando el editor vim en este proceso. En la línea que comienza con 0.0909, he utilizado este comando. El ^M tiene que ser introducido con controlQcontolM en MS Windows o controlVcontrolM en otras plataformas.

:s/:/:'::text as map_step^Munion all select '/g   

Las líneas modificadas deben llevar el prefijo

select '

La última línea de las líneas modificadas debe tener

:'::text as map_step

adjunta a la línea. Todo lo que esto hizo fue crear un conjunto de sentencias selectas unidas como se muestra a continuación. La sentencia sql de abajo fue probada en PostgreSQL. Todo lo que hace es preservar el orden original de las líneas del archivo qgis_style con una rampa invertida. Los nuevos pasos fueron puestos en un nuevo archivo llamado Spectral_113.xml -- el tercer intento. Se ha adjuntado a continuación.

La respuesta se refería más bien a la alegría de la exploración y la comprensión. Espero que sirva de ayuda.


El sql para invertir la rampa.

with color_map as (
--
-- Begin place your ramp that you want to reverse here.
--
select '0.0909;158,1,66,255:'::text as map_step
union all select '0.0909;213,62,79,255:'::text as map_step
union all select '0.1818;213,62,79,255:'::text as map_step
union all select '0.1818;244,109,67,255:'::text as map_step
union all select '0.2727;244,109,67,255:'::text as map_step
union all select '0.2727;253,174,97,255:'::text as map_step
union all select '0.3636;253,174,97,255:'::text as map_step
union all select '0.3636;254,224,139,255:'::text as map_step
union all select '0.4545;254,224,139,255:'::text as map_step
union all select '0.4545;255,255,191,255:'::text as map_step
union all select '0.5455;255,255,191,255:'::text as map_step
union all select '0.5455;230,245,152,255:'::text as map_step
union all select '0.6364;230,245,152,255:'::text as map_step
union all select '0.6364;171,221,164,255:'::text as map_step
union all select '0.7273;171,221,164,255:'::text as map_step
union all select '0.7273;102,194,165,255:'::text as map_step
union all select '0.8182;102,194,165,255:'::text as map_step
union all select '0.8182;50,136,189,255:'::text as map_step
union all select '0.9091;50,136,189,255:'::text as map_step
union all select '0.9091;94,79,162,255:'::text as map_step
--
-- End place your ramp that you want to reverse here.
--
), cm_ordered as (
   -- Assign a number to preserve the stop order.
   select row_number() over() as rn,
          map_step
     from color_map cm
), cm_parsed as (
   -- Parse the step order and color at the semicolon.
   -- vim broke out the lines at the colon separator. 
   select rn, map_step as orig_map_step,
          substr( map_step, 1, strpos( map_step, ';' )  ) as step_num,
          substr( map_step, strpos( map_step, ';' ) + 1,
                  length( map_step ) ) as step_color
     from cm_ordered
), orig_ramp_order as (
   -- Create one of two tables for the final join.
   select rn, orig_map_step, step_num, step_color
     from cm_parsed
   order by rn
), new_ramp_order as (
   -- Now we assign a reverse order number.
   -- This also creates the second of two tables for the final join
   select row_number() over( order by rn desc ) as rev_rn, rn as orig_rn,
          orig_map_step as orig_map_stepn, step_num as orig_step_num,
          step_color as orig_step_color
     from cm_parsed
   order by rn desc
)
   -- Now the two tables are joined back together.
   -- The original step number order is used.
   -- The colors in reversed order are concatenated with the original step order.
   select step_num || orig_step_color as new_ramp
     from (
           select oro.*, nro.*
             from orig_ramp_order oro, new_ramp_order nro
            where rn = rev_rn
           order by rn
          )  finish_reverse;

El conjunto de resultados con los colores invertidos.

new_ramp
0.0909;94,79,162,255:
0.0909;50,136,189,255:
0.1818;50,136,189,255:
0.1818;102,194,165,255:
0.2727;102,194,165,255:
0.2727;171,221,164,255:
0.3636;171,221,164,255:
0.3636;230,245,152,255:
0.4545;230,245,152,255:
0.4545;255,255,191,255:
0.5455;255,255,191,255:
0.5455;254,224,139,255:
0.6364;254,224,139,255:
0.6364;253,174,97,255:
0.7273;253,174,97,255:
0.7273;244,109,67,255:
0.8182;244,109,67,255:
0.8182;213,62,79,255:
0.9091;213,62,79,255:
0.9091;158,1,66,255:

El nuevo archivo Spectral_113.xml.

<!DOCTYPE qgis_style>
<qgis_style version="1">
  <symbols/>
  <colorramps>
    <colorramp type="gradient" name="Spectral_113">
      <prop k="color1" v="94,79,162,255"/>
      <prop k="color2" v="158,1,66,255"/>
      <prop k="discrete" v="0"/>
      <prop k="stops" v="0.0909;94,79,162,255:0.0909;50,136,189,255:0.1818;50,136,189,255:0.1818;102,194,165,255:0.2727;102,194,165,255:0.2727;171,221,164,255:0.3636;171,221,164,255:0.3636;230,245,152,255:0.4545;230,245,152,255:0.4545;255,255,191,255:0.5455;255,255,191,255:0.5455;254,224,139,255:0.6364;254,224,139,255:0.6364;253,174,97,255:0.7273;253,174,97,255:0.7273;244,109,67,255:0.8182;244,109,67,255:0.8182;213,62,79,255:0.9091;213,62,79,255:0.9091;158,1,66,255"/>
    </colorramp>
  </colorramps>
</qgis_style>

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X