Introducción a la elaboración de Mapas con Linux y GMT

Si deseamos realizar algún mapa, para nuestros trabajos académicos, alguna presentación o por el simple hecho del conocimiento. El conjunto de herramientas GMT (Generic Mapping Tools) distribuido bajo una licencia publica GNU es una excelente herramienta para este propósito.

Introducción a la elaboración de mapas con herramientas libres, como son el sistema operativo gnu/linux y el conjunto
de herramientas GMT (Generic Mapping Tools).

Lo primero que debemos hacer es dar una visita por la página oficial de GMT (Generic Mapping Tools)

GMT (acrónimo del inglés Generic Mapping Tools) es una colección de programas de código abierto para la confección de
diagramas y mapas geológicos o geográficos.” wikipedia

gmt.soest.hawaii.edu

Esta herramienta trabaja adecuadamente en ambientes unix/linux sin embargo, si no tenemos conocimiento alguno de estos
sistemas operativos, no es un obstáculo infranqueable.

Lo primero que haremos es descargar un cd vivo (cd life) de la distribución linux
OSGeo-Live, la cual puede ejecutarse sin necesidad de instalar un nuevo sistema
operativo en nuestra computadora.

“*OSGeo-Live* es un DVD, disco USB o Máquina Virtual basada en Xubuntu que nos
permite probar una amplia variedad de software libre geoespacial sin instalar nada. Está compuesto enteramente por
software libre, permitiendo ser distribuido libremente, duplicado, etc.”

live.osgeo.org/es/index.html

Aprovecharemos las herramientas que esta distribución trae incluidas.

Otra alternativa que podemos utilizar es la distribución geocientífica elaborada en el Brasil: PoseidonLinux

“Poseidon Linux es una distribución GNU/Linux para uso académico, científico y educativo, influenciada por el Quantian
Linux, basada primero en Kurumin Linux (hasta nuestra versión 2.0) y actualmente en Ubuntu.”

es.poseidonlinux.org

Para la edición de nuestros scripts emplearemos el editor vim
o cualquier otro que mejor nos acomode: wordpad, block de notas, gedit, emacs, etc.

También es necesario un visualizador de archivos
Postscript (.eps, .ps formato nativo de salida de GMT) como gv u okular

####################################################################

Para aquellos que ya utilizan algún sistema gnu/linux, con un poco de trabajo lo podrán instalar
en sus computadoras.

A continuación un enlace que nos indica como instalar GMT en nuestra computadora

Guía de instalación de GMT en un sistema GNU/Linux en GeoTux

Es importante mencionar que es necesario tener instalado el compilador de C de GNU gcc, el compilador
de Fortran de GNU g77 o gfortran, así como la herramienta para compilación make

####################################################################

Una vez que ya contamos con el programa, ya sea mediante el CD Vivo o instalado en nuestra computadora.
Procederemos a iniciar nuestro primer script en GMT.

Con un editor cualesquiera crearemos un archivo de texto donde escribiremos las instrucciones que GMT entiende
para crear nuestro primer mapa.

Para este caso el archivo de texto plano recibe el nombre de primerscript.gmt

El nombre es alguno que nos sirva de referencia para designar el propósito por el cual fue creado el script.

La extensión de archivo no es necesaria, sin embargo nos sirve como recordatorio para saber que se trata de un archivo
que contiene instrucciones de GMT.

####################################################################

Una vez que hemos volcado todas las instrucciones en un archivo de texto, será necesario procesarlas mediante
el interprete de comando. Para nuestro caso estamos empleando bash.

Por lo tanto en una terminal( línea de comandos, consola, etc) digitaremos las siguientes instrucciones:

usuario@equipo:~/directoriodetrabajo$ bash primerscript.gmt 

####################################################################

 
#!/bin/bash
## Con esta linea estamos definiendo el interprete de comandos que vamos a emplear para nuestro script.
## Los comentarios van precedidos por el simbolo de gato (#), el interprete de comandos los ignora.

## Seccion 1
#----------------------------------------------------------
## Descripcion general del script y fecha de modificacion

## Este script pinta un mapa de la republica mexicana

## Ultima modificacion: 24/agosto/2012
#----------------------------------------------------------


## Seccion 2
#----------------------------------------------------------
## Establecer variables que vamos a emplear a lo largo del script
archivo_eps="mapa_salida.eps"
## La variable "archivo_eps" guarda el nombre del mapa de salida, es decir el grafico final confeccionado.

titulo="Mi primer mapa de M\351xico"
## La variable "titulo" guarda una cadena de texto con el titulo para nuestro grafico. Como la computadora no
## logra procesar letras acentuadas, le tenemos que indicar el codigo hexacedimal del ISO LATIN 1 de la letra
## que queremos acentuar, para este caso la letra e acentuada se obtiene mediante \351:

limites="-120/-85/13/34"
## La variable "limites" guarda los valores minimo/maximo de longitud y latitud donde se dibujara el mapa

proyeccion="m0.70"
## La variable "proyeccion" guarda el valor de la proyeccion que vamos a emplear, en este caso es "m" de mercator con escala de 0.70

etiquetas1="4f2/4f2"
etiquetas2="4f2We/4f2nS"
etiquetas3="4g2/4g2"
## La variable "etiquetas" guarda los valores que serviran para rotular los ejes de longitud/latitud de nuestro mapa
## para este caso le estamos indicando que haga marcas de 2 grados y que las rotule cada 4 grados los cuatro lados 
## del grafico. La variable "etiquetas2" hace referencia a que haga marcas y rotule del lado izquierdo(W) 
## mientras que solo marque el lado derecho (e), por su parte "nS" hace refencia que solo se marque el lado superior y 
## se rotule y marque el eje inferior. La variable "etiquetas3" ademas de marcar y rotular como en el primer caso 
## grafica una malla. Es recomendable probar cual de ellas de ajusta a nuestras necesidades. No olviden revisar el manual de 
## GMT para conocer todas las opciones de cada uno de los modulos.

textotiempounix="Alguna\240Anotaci\363n\240Personal"
#----------------------------------------------------------

## Seccion 3
#----------------------------------------------------------
## Base para el mapa que emplearemos

psbasemap -R${limites} -B${etiquetas1}:."${titulo}": -J${proyeccion} -U${textotiempounix} -X2.5 -Y2.5 -V -K > ${archivo_eps} 

## La opcion -R: Para establecer los limites de nuestra area de trabajo
## La opcion -B: Para establecer y rotular los ejes de nuestra area de trabajo
## La opcion -J: Para seleccionar la proyeccion que utilizaremos para nuestros mapas
## La opción -U: Para mostrar la hora interna de la computadora en que se elaboro el grafico y alguna anotacion adicional
## La opcion -X -Y: Para desplazar el grafico tantas unidades como necesitamos del origen de nuestra area de impresion
## La opcion -K: Para indicar que el grafico queda abierto para agregar nuevas capas
#----------------------------------------------------------

## Seccion 4
#----------------------------------------------------------
## Dibujar los limites costeros de la zona de interes

pscoast -R -J -Dl -W1/000/000/000 -V -O >> ${archivo_eps}

## GMT entiende que las opciones -R -J, sin parametros son las mismas que unas lineas arriba hemos definido
## -Dl: Resolucion en los limites costeros: c(la mas baja), l(baja), h(alta) y f(completa)
## -W1: Para establecer el grueso con que se pintaran los limites costeros, el codigo de colores 000/000/000
##      Corresponde con el codigo en R/G/B del color negro.
#----------------------------------------------------------
 
## Seccion ultima
#----------------------------------------------------------
gv ${archivo_eps} &
## Visualizamos el archivo postscript de salida con el visor gv

La imagen de salida será esta: