Espero que hasta el momento hallan notado algunas cosas :
Por eso existen scripts para generar los mapas. Bajen el script siguiente ejemplo_mapa1.sh
Este script define los parámetros usados para generar el mapa, y
después corre la serie de comandos en GMT para ejecutar el dibujo. El
script esta abajo, si lo abres con un editor de texto como gedit se
separa en parámetros, valores, comentarios y comandos.
Note los siguientes parámetros :
También hay parámetros para la costa, su resolución, las fronteras graficadas, y los rios. Note que mi parámetro para los rios (#rivers="-I1/1.00p/0/0/255") tiene un # antes, significando que es un comentario nada más. Con eso, no voy a graficar los rios, pero si quiero graficarlos, simplemente tengo que sacar el "#" para que la línea sea un comando y no un comentario.
#!/bin/bash
region="ejemplo_mapa1"
limites="-74.5/-71/-38.5/-36" #Limites de la region a graficar
#Origen (posicion del grafico en la hoja):
xshift="2.0"
yshift="6.0"
proyeccion="M14.0" #Tipo de proyeccion
paleta="/usr/local/GMT4.5.8/share/cpt/GMT_relief.cpt" #Paleta de colores a usar
topografia="/home/carlos/bin/w100s10.Bathymetry.srtm.grd" #Archivo de topografia
ticks="a2f0.5g1SEWN" # Describiendo el marco del mapa
illaz="225" # Direccion del azimut de iluminacion
portrait="-P" # Si quiero landscape en vez de portrait, dejo esta opcion en blanco
verbose="-V" # Dejo esta opcion en blanco si no quiero mostrar el "blah blah" de
# los comandos en la terminal
#Lineas de costa e informacion de los limites fronterizos.
#(Para mas detalles, escribe en la terminal: man pscoast)
linea_costa="1.00p/0/0/0"
resolucion="f" # Resolucion de las lineas de costa. Puedes elegir:
# (f)ull, (h)igh, (i)ntermediate, (l)ow, y (c)rude
bordes="-N1/1.00p/0/0/0" #Limites politicos de los paises
#Tambien se puede añadir:
#rios="-I1/1.00p/0/0/255"
#agua="-S0/0/255" #Esto va a graficar de un solo color todo lo que son masas de agua
#tierra="-G0/255/0" #Esto va a graficar de un solo color todo lo que es tierra
############################################################################################
# Archivo de salida:
psfile="${region}.ps"
# Construyendo el marco del mapa:
psbasemap -B${ticks} -J${proyeccion} -R${limites} -X${xshift} -Y${yshift} ${portrait} ${verbose} \
-K > ${psfile}
#Cortando la grilla original a los limites establecidos.
#grdcut archivo_entrada.grd -Garchivo_salida.grd -Roeste/este/sur/norte [-V]
grdcut ${topografia} -G${region}.grd -R${limites} -V
#Iluminando la grilla topografica generada en el grdcut desde un azimut especifico para producir
#un archivo de intensidad (.int) de iluminacion:
grdgradient ${region}.grd -G${region}.int -A${illaz} -Nt -M
# Graficando la topografia de la region seleccionada con su iluminacion:
grdimage ${region}.grd -C${paleta} -I${region}.int -B${ticks} -J${proyeccion} -R${limites} \
${portrait} ${verbose} -O -K >> ${psfile}
#Construyendo la escala de colores a partir de la paleta seleccionada:
psscale -D16c/2.5c/5c/0.5c -C${paleta} -Ba5000f1000/a5000f1000:"(m)": -O -K >> ${psfile}
#Graficando las costas y limites del mapa:
pscoast -B${ticks} -J${proyeccion} -R${limites} ${portrait} ${verbose} -D${resolucion} \
-W${linea_costa} ${bordes} ${rios} ${agua} ${tierra} -O >> ${psfile}
Si ustedes corren este script, con los párametros de la paleta y la topografía cambiados a sus respectivas rutas en su pc, deben generarla siguiente imagen:
Antes de salir de esta sección, revisa que
entienden lo que hace el script y que pueden modificar el script para
hacer lo siguiente :
grdcontour ${region}.grd -B${ticks} -J${projection} -C200 -A1000+k0/0/0 \
-R${bounds} ${portrait} ${verbose} -W0.1p/0/0/0 -Gd10c -O -K >> ${psfile}
dentro del script, entre grdimage y psscale. A continuación se detallan algunos parámetros del comando grdcontour y su función.
Parámetro | Función |
-C200 | contornos cada 200 m |
-A1000+k0/0/0 | anotación cada 1000 m, color negro |
-W0.1p/0/0/0 | tamaño y color del lápiz de contornos |
-Gd10c | 10 cm de anotación entre contornos |
|
El script para generar el siguiente gráfico es ejemplo_mapa2.sh, es bastante similar al primero, solamente cambia la paleta e incorpora contornos.
topo_option=1Después, en la sección confección del mapa ( cuerpo del script), solamente grafica de acuerdo a las opciones declaradas al inicio de script , donde el condicional más apropiado para esta selección es if. Note además que las opciones que se declaran al inicio del script ( 1 o 0) tambien las puede declarar en forma general, usando el condicional case. Esto le permitirá declarar las opciones de gráfica como argumentos de entrada , facilitando la tarea de modificar el script poniendo 1 o 0 según lo que desee en cada ocasión.
illumination_option=0
contour_option=1
topo_scale_option=0
# Aplicando los condicionales:El script entero es ejemplo_mapa3.sh. Pruebe este script con varias combinaciones de 1s y 0s en las opciones iniciales para la topografía, y asegurese de entender el gráfico que resulta.
if [ "${opcion_topografia}" = 1 ]; then
# Cortando la grilla original a los limites establecidos.
# grdcut archivo_entrada.grd -Garchivo_salida.grd -Roeste/este/sur/norte [-V]
grdcut ${topografia} -G${region}.grd -R${limites} -V
if [ "${opcion_iluminacion}" = 1 ]; then
# Iluminando la grilla topografica generada en el grdcut desde un azimut
# especifico para producir un archivo de intensidad (.int) de iluminacion:
grdgradient ${region}.grd -G${region}.int -A${illaz} -Nt -M
# Graficando la topografia de la region seleccionada con su iluminacion:
grdimage ${region}.grd -C${paleta} -I${region}.int -B${ticks} -J${proyeccion} \
-R${limites} ${portrait} ${verbose} -O -K >> ${psfile}
else
# Graficando la topografia de la region seleccionada sin iluminacion:
grdimage ${region}.grd -C${paleta} -B${ticks} -J${proyeccion} -R${limites} \
${portrait} ${verbose} -O -K >> ${psfile}
fi
if [ "${opcion_contorno}" = 1 ]; then
# Graficando los contornos de la grilla:
grdcontour ${region}.grd -B${ticks} -J${proyeccion} -C200 -A1000+k0/0/0 \
-R${limites} ${portrait} ${verbose} -W0.1p/0/0/0 -Gd10c -O -K >> ${psfile}
fi
if [ "${opcion_escala_topo}" = 1 ]; then
# Construyendo la escala de colores a partir de la paleta seleccionada:
psscale -D16c/2.5c/5c/0.5c -C${paleta} -Ba5000f1000/a5000f1000:"(m)": -O -K \
>> ${psfile}
fi
fi
En esta sección vemos que con un script podemos facilmente generar mapas de topografía con opciones de gráfico
( región, colores a usar, contornos, ejes, etc.) que son fácil de cambiar.
En la próxima sección trabajamos con el mismo script, y veremos los comandos para poner símbolos en los mapas.
matt 2014-03-19