sábado, 14 de septiembre de 2013

Construyendo paletas con GMT

GMT tiene 20 tablas de colores (master cpt files). El siguiente es un esquema de cada una de ellas:


Los comandos makecpt y grd2cpt son usados para acceder a estas tablas maestras y re-escalarlas para ajustarse al rango de valores z que el usuario desea. La tabla cpt final puede ser discreta (como la que está encima) o bien continua (parte baja).

El capítulo 4 del tutorial oficial de GMT  nos enseña  a diseñar nuestras propias paletas (ya sea discretas a continuas), con ejemplo bastante sencillos (que también voy a mostrar en esta entrada, pero con diferentes archivos claro, para ser un poquito original :P ) y posteriormente les voy a presentar un pequeño tutorial (bastante básico debo admitir) de cómo hacerla a partir de un archivo topográfico (.grd).

Primero, vamos a acceder a cpt-city, que es una página con un gran lista de paletas que puedes descargar según el tema que desees graficar: sismos, topografías, batimetría, clima, etc etc.

Para hacer archivos cpt discretos y continuos para datos que van de -20 a 60, con cambios de color cada 10, intenta con estas dos variantes (nota: la paleta reds_01.cpt yo la bajé de la página antes mencionada y la guardé en GMT4.5.8/share/cpt, elige una paleta cualquiera y escribes su nombre luego del -C  y  ve que pasa), el -Z es para que nuestra paleta sea continua:


makecpt -Creds_01 -T-20/60/10 > disc.cpt

makecpt -Creds_01 -T-20/60/10 -Z > cont.cpt




Opción
Propósito


-CcptfileEl archivo cpt requerido


-Dxpos/ypos/length/width[h]Fija la posición del centro/izquierda y dimensiones de la escala


Añadir para obtener una barra horizontal to get horizontal bar. 


-Imax_intensityAgregar efectos de iluminación




grdraster 9 -R-108/-103/35/40 -Gus.nc

Este archivo está ya viene en el GMT (lo buscan por us.nc)
Usando grdinfo encontramos que los datos van de ~1000m a los ~4300m, de modo que hacemos una paleta cpt acorde:

makecpt -Creds_01 -T1000/5000/500 -Z > topo.cpt




Opción
Propósito


-EdpiFija la resolución deseada de la imagen
[Default is data resolution]


-IintenfileUsa una iluminación artificla  usando las intensidad de un archivo intensfile


-MFuerza de las sombras grises usando la conversión (television) YIQ 



grdimage us.nc -JM6i -P -B2 -Ctopo.cpt -V -K > topo.ps  




Opción
Propósito


-AazimuthDirección azimutal para los gradientes


-MIndica que esta es una grilla geográfica


-N[t|e][norm[/offset]]Normaliza los gradientes por norm/offset [= 1/0 by default].
Insertar  para normalizar por la transformación  tan-1.
Insertar  para normalizar por la distrubución de Laplace acumulativa.

psscale -D3i/8.5i/5i/0.25ih -Ctopo.cpt -I0.4 -B/:m: -O >> topo.ps



Ahora vamos a plotear nuestras nuevas tablas de colores con psscale;  veamos las siguientes características listadas en la tabla:
La opción, -B puede ser usada para fijar el titulo y una etiqueta de unidad.

psbasemap -R0/8.5/0/11 -Jx1i -P -B0 -K > bar.ps  
psscale -D3i/3i/4i/0.5ih -Cdisc.cpt -B:discrete: -O -K >> bar.ps
psscale -D3i/5i/4i/0.5ih -Ccont.cpt -B:continuous: -O -K >> bar.ps
psscale -D3i/7i/4i/0.5ih -Cdisc.cpt -B:discrete: -I0.5 -O -K >> bar.ps
psscale -D3i/9i/4i/0.5ih -Ccont.cpt -B:continuous: -I0.5 -O >> bar.ps




Una vez hecho un archivo cpt es casi directo generar una imagen a color a partir de una grilla. Aquí se va a extraer un subset del   global 30" DEM (data id 9) del USGS:

grdraster 9 -R-108/-103/35/40 -Gus.nc

La grilla us.nc puedes encontrarla en el directorio de instalación de GMT . Usando grdinfo vemos que los datos rondan entre los ~1000m a ~4300m de modo que hacemos una nueva paleta acorde a estos rangos:

makecpt -Creds_01 -T1000/5000/500 -Z > topo.cpt


 Las imagenes a color se hacen con  grdimage  el cual toma los opciones de los comandos usuales  (por defecto el -R  se toma del archivo de datos ) y un cptfile; otras opciones son:


Opción
Propósito


-EdpiFija la resolución deseada de la imagen


-IintenfileUsa una iluminación artificial a partir de un archivo
 
intensfile


-MFuerza de las sombras grises usando la conversión
YIQ 


El mapa resultante es la región de Rocky Mountain. Lo que necesita es una iluminación artificial. Queremos simular un sombreado por una fuente solar en el este, por lo tanto derivamos las intensidades requeridas a través de gradientes topográficos en dirección N90ºE usando grdgradient . Otras opciones disponibles para los archivos de salida son: 



Opción
Propósito


-AazimuthDirección azimutal para los gradientes


-MIndica que es una grilla geográfica


-N[t|e][norm[/offset]]Normaliza los gradientes por  norm/offset [= 1/0 por default].
Insertar  para normalizar por la transformación tan-1 .
Insertar para normalizar por la distribución acumulativa de  Laplace.



Tanto -Ne como -Nt otorgan gradientes bien comportados.  Personalmente,  preferimos usar la opción -Ne; el valor de la norma  norm  es subjetivo y puedes experimentar entre un rango de 0.5 - 5. Para nuestro caso escogimos:

grdgradient us.nc -Ne0.8 -A100 -M -Gus_i.nc

Dado un archivo  cpt  y dos grillas podemos crear una imagen con relieve sombreado:

grdimage us.nc -Ius_i.nc -JM6i -P -B2 -Ctopo.cpt -K > topo.ps  


No hay comentarios:

Publicar un comentario