513372 - Linux, Scripts y GMT

CLASE 7 - mapas, costa y topografía

back

Antes de empezar con esta clase, por favor revisen que tienen GMT instalado corectamente.

También van a necesitar  los siguientes archivos de topografía para la próxima semana. Demoran un poco en bajar, así que es una buena idea  empezar a bajar los archivos altiro.

topo_6.2.img.gz

w100s10.Bathymetry.srtm.grd.gz

Note que estos archivos estan en un formato .gz (gzip). Para extraerlos, use el comando gunzip topo_6.2.img.gz

7.0 Colores en GMT

Colores en GMT están dados en el formato ROJO/VERDE/AZUL (para color), o GRIS (para blanco y negro), donde los colores tienen valores entre 0 y 255.

Por ejemplo, el color 0 significa 0/0/0 o negro. El color 255 significa 255/255/255  o blanco. El color 128 es gris.

255/0/0 es rojo.
0/255/0 es verde.
0/0/255 es azul.

Cualquier combinación de ROJO/VERDE/AZUL da un color diferente. Por ejemplo:

255/255/0 es amarillo, 255/140/0 es naranjo. El siguiente link es una guía interactiva para colores en este formato:

http://www.switchonthecode.com/tutorials/javascript-interactive-color-picker

7.1 psbasemap

El comando psbasemap es usado para generar código postscript, (un gráfico .ps) cuya función es configurar el marco para el mapa. Ahora en este curso, vamos a estar generando gráficos en formato .ps. Se puede ver los gráficos con el programa gs, evincegimp u otros.

psbasemap trabaja con algunos parámetros, -B da la anotación de borde del mapa, -J la proyección del mapa, y -R la región requerida. -X y -Y son para mover el gráfico horizontalmente y verticalmente, respectivamente; y -P significa "portrait". -V significa "verbal". Por ejemplo, para generar un marco Mercator de la región del Bío Bío, podemos usar:

        psbasemap -Ba1f0.5SEWN -JM16.0 -R-74/-71/-38.5/-36 -X2 -Y6 -P -V > test.ps

Para ver el efecto de la -B, siempre la manera más fácil , es  probar diferentes situationes, por ejemplo:

        psbasemap -Ba0.5f0.1g1SeW -JM16.0 -R-74/-71/-38.5/-36 -X2 -Y6 -P -V > test.ps
        psbasemap -Ba0.5f0.1g1/a1.0f0.2g0.5NW -JM16.0 -R-74/-71/-38.5/-36 -X2 -Y6 -P -V > test.ps

Note que para el formato de la longitud, para cambiar de 286 este a -74 oeste por ejemplo, hay que cambiar los gmtdefaults para el formato de los gráficos:

        gmtset PLOT_DEGREE_FORMAT D
        psbasemap -Ba1f0.5SEWN -JM16.0 -R-74/-71/-38.5/-36 -X2 -Y6 -P -V > test.ps

Vamos a jugar con gmtdefaults más adelante en el curso.

También, se puede cambiar la proyección del mapa. Existen varias proyecciones (ver el manual). Por ejemplo, si queremos usar una proyección de Lambert (equal area), usamos -JA con el polo de la proyección, en nuestro caso Concepción, y tamaño del mapa. Note que el siguiente ejemplo es para el mundo entero, ver la región asociada con el -R:

        psbasemap -Bg30/g15 -JA-73/-36.5/16c -R0/360/-90/90 -X2 -Y6 -P -V > test.ps

7.2 pscoast

Ahora vamos a agregar la costa al mapa con pscoast, que grafica costas, fronteras y rios. Empezamos con psbasemap, para generar el marco, y despues agregamos la costa. Para esto necesitamos dos líneas de código, así que en la prímera línea usamos "> test.ps" para generar el archivo .ps, y en la segunda usamos ">> test.ps" para agregar más información al .ps que ya existe.

Además, en la primera línea de código  necesitamos un -K , cuya función es la de informar que vamos a agregar más información al .ps. En la segunda línea, necesitamos un -O, para sobreescribir, o agregar  información al .ps que ya existe.

El siguiente ejemplo grafica una projección Lambert  de la Tierra, con continentes (-G) en color 215 (gris) y el mar (-S) en color 255 (blanco). Incluye las fronteras nacionales (-N1) con  ancho de lápiz de 0.25 puntos, color 128. La resolución de la costa es intermedia (-Di):

        psbasemap -Bg30/g15 -JA-73/-36.5/16c -R0/360/-90/90 -X2 -Y6 -P -V -K > test.ps
        pscoast -Bg30/g15 -JA-73/-36.5/16c -R0/360/-90/90 -P -V -Di -N1/0.25p/128 -G215 -S255 -O >> test.ps

Podemos poner  otro circulo al lado del primero para mostrar la Tierra proyectada en su polo opuesto, note la diferencia en el polo de proyección, y el tamaño del mapa entre las -JA's. Note también el -X y -Y en la tercera línea:

        psbasemap -Bg30/g15 -JA-73/-36.5/16c -R0/360/-90/90 -X2 -Y6 -P -V -K > test.ps
        pscoast -Bg30/g15 -JA-73/-36.5/16c -R0/360/-90/90 -P -V -Di -N1/0.25p/128 -G215 -S255 -O -K >> test.ps
        pscoast -Bg30/g15 -JA107/53.5/6c -R0/360/-90/90 -X12 -Y12 -P -V -Di -N1/0.25p/128 -G215 -S255 -O  >> test.ps

El ejemplo abajo es para la región Bío Bío, con alta resolución de la costa (-Dh), la costa dibujada como una línea roja (-W1.0p/255/0/0), fronteras nacionales en gris (-N1/0.25p/128), todos ríos en el dataset en azul (-Ia/0.25p/0/0/255), el continente en verde (G0/255/0) y el mar en azul (-S0/0/255)

        psbasemap -Ba1f0.5SEWN -JM16.0 -R-74/-71/-38.5/-36 -X2 -Y6 -P -V -K > test.ps
        pscoast -Ba1f0.5SEWN -JM16.0 -R-74/-71/-38.5/-36 -P -V -Dh -W1.0p/255/0/0 -N1/0.25p/128 -Ia/0.25p/0/0/255 -G0/255/0 -S0/0/255 -O >> test.ps

7.3 Topografía

topo_6.2.img esta la topografía global, con una resolución de 2 minutos. En GMT, trabajamos usualmente con grillas (grids) de datos. Para convertir este .img a una .grd, usamos el comando img2grd:

        img2grd  topo_6.2.img -Gtopo.grd -R-100/-30/-60/20  -m2.0 -T1 -N1 -V

Esto va a crear una grilla (topo.grd) de {longitud, latitud, altitud} en la región definida por -R, con cada pixel de 2 minutos de longitud (-m2.0). Para ver de que consiste la .grd, podemos usar el comando grd2xyz

        grd2xyz topo.grd

Ahora, hagamos un basemap y una imagen de la .grd (grdimage) sobre él. Este toma una grilla, una paleta de colores , y llena los puntos en el mapa con los colores definidos en la paleta ( archivo .cpt). Note que en el comando que sigue, hay que poner el path de su archivo GMT_globe.cpt, y no el mio!

        psbasemap -Ba20f10SEWN -JM14.0 -R-100/-30/-60/20 -X2 -Y6 -P -V -K > test.ps
        grdimage topo.grd -C/home/matt/GMT/GMT4.5.2/share/cpt/GMT_globe.cpt  -Ba20f10SEWN -JM14.0 -R-100/-30/-60/20 -P -V -O -K >> test.ps

Note que estoy usando -K aquí, así que voy a poner más  informaición al gráfico antes de cerrarlo, añadamos la costa (note, no definimos colores aquí con -G y -S, porque ya tenemos los colores de la topografía puestos):

        pscoast -Ba20f10SEWN -JM14.0 -R-100/-30/-60/20 -P -V -Dh -W1.0p/0 -N1/0.25p/128 -Ia/0.25p/0/0/255  -O -K >> test.ps

Por último, ponemos una escala al lado del gráfico con psscale. Con este comando, no usamos la opción -K, así que terminamos el gráfico y podemos verlo.

        psscale  -D15c/2.5c/5c/0.5c -C/home/matt/GMT/GMT4.5.2/share/cpt/GMT_globe.cpt -Ba1000f500 -O >> test.ps

topo example


7.4 Iluminación de topografía

Podemos iluminar la topografía de un cierto acimut con el comando grdgradient

        grdgradient topo.grd -Gtopo.int -A225 -Nt -M

Este genera un archivo de intensidad de la pendiente de la grilla (es decir, la intensidad de la sombra). Ahora, podemos repasar los comandos anteriores, con un "-Itopo.int" en el comando grdimage para iluminar la topografía:

        psbasemap -Ba20f10SEWN -JM14.0 -R-100/-30/-60/20 -X2 -Y6 -P -V -K > test.ps
        grdimage topo.grd -C/home/matt/GMT/GMT4.5.2/share/cpt/GMT_globe.cpt  -Ba20f10SEWN -JM14.0 -Itopo.int -R-100/-30/-60/20 -P -V -O -K >> test.ps
        pscoast -Ba20f10SEWN -JM14.0 -R-100/-30/-60/20 -P -V -Dh -W1.0p/0 -N1/0.25p/128 -Ia/0.25p/0/0/255  -O -K >> test.ps
        psscale  -D15c/2.5c/5c/0.5c -C/home/matt/GMT/GMT4.5.2/share/cpt/GMT_globe.cpt -Ba1000f500 -O >> test.ps

topo illumination example

back