2 votos

Creación de una rampa de color personalizada mediante la función GRASS GIS "r.colors

Estoy tratando de asignar a un raster/grid una paleta de colores personalizada en GRASS usando la función "r.colors".

r.colors map=Consensus_BRT_RCP85 colors=rules

Esto me permite introducir mis reglas para mi paleta de colores:

0 238:238:238
0.06 0:0:255
0.33 0:255:255
0.67 255:255:0
1.0 255:0:0 
end

Esta función funciona, pero no crea la paleta de colores que me gustaría. enter image description here

Me gustaría que fuera como mi paleta de colores GMT personalizada:

0.000000 238 238 238 0.060000 238 238 238
0.060000   0   0 255 0.333333   0   0 255
0.333333   0 255 255 0.666667 255 255   0
0.666667 255 255   0 1.000000 255   0   0

Mi paleta GMT tiene este aspecto (quiero que mi mapa probabilístico tenga esta rampa de colores): enter image description here

He visto que hay una función llamada "r.cpt2grass" pero esta función no se encuentra en mi instalación de GRASS (no estoy seguro de que hacer con los "add-ons" de GRASS GIS).

2voto

GriffinHeart Puntos 187

Una forma de hacerlo es con un mapa de "reclasificación", configurado para clasificar los datos continuos en categorías fijas. El formato del archivo de reclasificación podría ser:

GRASS 7.0.0 (WGS84):~ >cat concensus_reclass.txt
0.000000 thru 0.059999 = 1
0.060000 thru 0.333332 = 2
0.333333 thru 0.666666 = 3
0.666667 thru 1.0 = 4

Su archivo de reglas de color cambiará a:

1 238:238:238
2 0:0:255
3 0:255:255
4 255:255:0
default 255:0:0 

Ahora corre:

GRASS 7.0.0 (WGS84):~ >r.reclass input=Consensus_BRT_RCP85 output=Consensus_BRT_RCP85_reclass rules=concensus_reclass.txt
GRASS 7.0.0 (WGS84):~ >r.colors Consensus_BRT_RCP85_reclass rules=new_rules.txt

1voto

GreyCat Puntos 146

Como tú dices, r.cpt2grass es un complemento. Simplemente descargue el script y hágalo ejecutable. Debe ser ejecutado en el entorno Grass (GRASS shell por ejemplo)

GRASS 6.4.4 (geol):~ > r.cpt2grass --help # or GRASS 7
Description:
Convert or apply a GMT color table to a GRASS raster map
Usage:
r.cpt2grass [-s] input=string [map=string] [output=string]
[--verbose] [--quiet]
Flags:
-s   Stretch color scale to match map data extent
--v   Verbose module output
--q   Quiet module output
Parameters:
 input   Name of input GMT color table (.cpt file)
 map   Raster map to apply it to
 output   Name for new rules file, or "-" for stdout

Por lo tanto, con su paleta original (llamado su.cpt aquí):

# COLOR_MODEL = RGB
0.000000 238 238 238 0.060000 238 238 238
0.060000   0   0 255 0.333333   0   0 255
0.333333   0 255 255 0.666667 255 255   0
0.666667 255 255   0 1.000000 255   0   0

Conversión simple (sin aplicar a una trama concreta)

GRASS 6.4.4 (geol):~ > r.cpt2grass input=your.cpt  output=your

Y el resultado

# GMT color map created with r.cpt2grass
#  from [/Users/Shared/your.cpt]...
# COLOR_MODEL = RGB
0.000000 238:238:238
0.060000 238:238:238
0.060000 0:0:255
0.333333 0:0:255
0.333333 0:255:255
0.666667 255:255:0
1.000000 255:0:0

Pero no sé si funciona (es un script antiguo,2007), sobre todo si quieres aplicar la tabla resultante a un raster concreto.

 ERROR: bad rule (percentage not in range 0-100): [125% 20:20:20]

Tenga en cuenta que la mayoría de las paletas GMT originales se han integrado en GRASS GIS.

1voto

nutsmuggler Puntos 732

Las respuestas de @Micha y @gene me fueron útiles para llegar a los resultados deseados.

GRASS 6.4.4 (my_project) :~ sudo vim $GISBASE/etc/colors bcyr_custom.txt

(introduzca mi contraseña). Ahora cambio ligeramente la paleta de colores "bcyr".

-0.000001 255:255:255
 0.000000 255:255:255
 0.060000 255:255:255
 0.060001 blue
 0.333333 cyan
 0.666667 yellow
 1.000000 red
 default 255:0:0

Aplicar mi paleta de colores personalizada.

r.colors map=Consensus_BRT_RCP85 color=bcyr_custom.txt
d.mon start=x0
d.rast Consensus_BRT_RCP85

Mi mapa. enter image description here

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