La función del SAMMET, además de suministrar las salidas de las distintas simulaciones, es proporcionar información sobre los distintos aspectos que se relacionan con el modelaje numérico utilizando como fuente de difusión el "Foro de Meteorología de Venezuela". Debido a que en el SAMMET se utiliza el GrADS para generar todas las gráficas y la predominancia de información con respecto a este software en idioma inglés, nace la iniciativa de elaborar una guía rápida para el empleo de esta aplicación. La evolución de esta guía estará directamente relacionada con las distintas inquietudes planteadas por los usuarios en el foro.
1) Instalación del GrADS:
Una de las grandes ventajas del GrADS es que puede ser descargado tanto para Windows como para Linux conservando sus características en ambos ambientes.
1.1)Instalación en Windows:
- Descargar el archivo win32e desde http://www.iges.org/grads/downloads.html
- Hacer doble click sobre el archivo y seguir las instrucciones.
1.2) Instalación en Linux:
- La forma más sencilla de instalar el programa en Linux es utilizando aplicaciones como yum ó apt.
- En http://www.iges.org/grads/downloads.html igualmente se pueden encontrar los binarios.
2) Inicializar GrADS
Existen varios ejecutables con funciones diferentes que permiten inicializar el GrADS. La escogencia del ejecutable ha emplear depende del formato de los datos con los que se desea trabajar. Con el ejecutable gradsnc es posible leer datos con formato NetCDF, así mismo el gradshdf permite leer datos en HDF. Para esta guía se trabajará con archivos en formato GRIB y para tal tarea utilizaremos el ejecutable gradsc.
Al hacer click en el ejecutable GradsC ubicado en la carpeta ruta\PCGrADS\win32e apareceran dos ventanas. Una de ellas con un fondo blanco y al apretar enter aparecerá otra con el fondo negro. La primera de ellas es empleada para la introducción de comandos que permiten el manejo de los datos y la segunda es la ventana de visualización donde serán desplegados los resultados.
3) Abrir archivos
Para el caso de los datos en formato GRIB debe existir un archivo descriptor que contenga las principales características de la información contenida en el archivo binario. Estos archivos poseen una extensión .ctl. En la guía serán utilizados tres archivos (guia.ctl, guia.grb (descomprimir el guia.zip) y guia.grb.idx) que pueden ser descargados en http://www.yv5fih.org.ve/red/sammetven/foro/grads/ Los .ctl son empleados para abrir los archivos de datos dentro del grads de la siguiente forma:
open guia.ctl
Debe aparecer en pantalla la siguiente información de donde se puede conocer el tamaño del dominio y el primer instante de tiempo:
Scanning description file: guia.ctl
Data file guia.grb is open as file 1
LON set to 0 360
LAT set to -90 90
LEV set to 1000 1000
Time values set: 2007:9:26:12 2007:9:26:12
Comando para listar las variables contenidas en el archivo:
q file
Resultado:
no4lftxsfc 0 132 ** Best (4-layer) lifted index [K]
no5wavaprs 0 230 ** 5-wave geopot. height anomaly [gpm]
no5wavhprs 0 222 ** 5-wave geopotential height [gpm]
absvprs 26 41 ** Absolute vorticity [/s]
acpcpsfc 0 63 ** Convective precipitation [kg/m^2]
albdosfc 0 84 ** Albedo [%]
apcpsfc 0 61 ** Total precipitation [kg/m^2]
capesfc 0 157 ** Convective Avail. Pot. Energy [J/kg]
capeplg 0 157 ** Convective Avail. Pot. Energy [J/kg]
cfrzrsfc 0 141 ** Categorical freezing rain [yes=1;no=0]
cicepsfc 0 142 ** Categorical ice pellets [yes=1;no=0]
cinsfc 0 156 ** Convective inhibition [J/kg]
cinplg 0 156 ** Convective inhibition [J/kg]
clwmrprs 21 153 ** Cloud water [kg/kg]
cpratsfc 0 214 ** Convective precip. rate [kg/m^2/s]
crainsfc 0 140 ** Categorical rain [yes=1;no=0]
csnowsfc 0 143 ** Categorical snow [yes=1;no=0]
.....................
Existen otros comandos que permiten listar otras características: <a href="http://www.iges.org/grads/gadoc/gradcomdquery.html" target="_blank">http://www.iges.org/grads/gadoc/gradcomdquery.html</a>
Una vez que tenemos abierto el archivo y sabemos que información contiene podemos empezar a introducir comandos que nos permitirán elaborar distintas gráficas y mapas.
4) Visualizar variables
d nombre_varible
d tmpprs-273

5) Limitar el dominio
set lat latitud_sur latitud_norte
set lat 2 13
set lon longitud_oeste latitud_este
set lon -75 -60
d tmpprs-273

6) Definir nivel de presión
set lev nivel
set lev 850
Resultado: LEV set to 850 850
7) Definir instante de tiempo
set t instante_de_tiempo
set t 2
Resultado: Time values set: 2007:9:26:18 2007:9:26:18
8) Visualización del parámetro en escala de colores
set gxout shaded
tmpprs-273
cbarn

9 ) Graficación de barbas de viento
c (Este comando permite borrar pantalla)
set gxout barb
d ugrdprs;vgrdprs

10) Graficación de varios parámetros simultaneamente
c
set gxout shaded
d tmpprs-273
cbarn
set gxout contour
d hgtprs
set gxout barb
d ugrdprs;vgrdprs
11)Colocar titulo
draw title Temperatura, Viento y Altura Geopotencial 850 mb
12)Generación de una imagen .gif
printim mapa1.gif gif white

13) Sección transversal
c
set lat 10
set lon -75 -60
set lev 1000 100
set gxout shaded
d rhprs
cbarn
draw title Perfil de Humedad Relativa

14)Animaciones
c
set t 1 last
d rhprs

15) Visualización de información en cada punto de grilla
c
set lat 3.5 13.5
set lon -75.5 -60.5
set gxout grid
d rhprs

16) Exportar información en formato ASCII
Para exportar datos en formato ASCII es necesario escribir un pequeño script. Los script en grads tienen extensión .gs. En windows la manera más fácil de crear archivos con esta extensión es abrir un script en la "lib" borrar su contenido, realizar la escritura y salvar con el nombre deseado. Para este caso utilizaremos el nombre datos.gs
El script debe contener la siguiente información:
'set lat 3.5 13.5'
'set lon -75.5 -60.5'
'set gxout print'
'd rhprs'
ret=result
res=write('ASCII.txt',ret)
La explicación de cada una de las líneas es la siguiente:
Primera y segunda linea: definición del dominio.
Tercera línea: comando para la impresión de datos en formato ascii
Cuarta línea: visualización de la variable
Quinta línea: guardar el resultado en una variable llamada "ret"
Sexta línea: escritura del resultado almacenado en ret en un archivo llamado "ASCII.txt"
Los nombre de las variables y el archivo a generar pueden variar según conveniencia así como la definición del dominio.
Una vez terminado el archivo .gs, retornar al grads y correr el script solo introduciendo el nombre:
datos
Al abrir el archivo ASCII.txt debe aparecer la siguiente información.
Printing Grid -- 204 Values -- Undef = 9.999e+20
95 80 84 85 85 69 87 77
80 89 73 43 63 52 55 56
56 95 47 90 83 70 73 75
81 94 86 77 43 42 49 53
48 42 72 76 86 64 63 71
88 88 90 87 36 45 45 37
44 51 51 80 50 67 84 64
67 85 92 87 96 82 55 50
52 60 45 46 98 57 48 90
62 74 76 92 85 89 73 50
50 43 38 40 61 61 64 62
78 77 58 62 68 80 81 57
46 47 40 44 78 86 56 85
84 44 62 93 59 55 60 64
71 52 44 53 69 85 73 68
76 65 74 57 84 90 69 81
76 67 54 60 72 84 78 77
81 78 99 82 76 80 88 53
59 66 67 79 65 77 79 81
77 83 87 87 78 69 62 49
63 78 76 77 74 76 79 79
77 76 81 81 80 81 80 80
78 80 79 76 75 76 78 78
79 76 75 79 81 81 78 79
78 77 76 76 76 76 77 77
78 77 75 75
16.1) Exportar datos de un punto específico
Es posible que se desee exportar los resultados en un solo punto del dominio para comparalo con información medida en una estación. Con el suguiente script se puede llevar a cabo esta tarea.
'set t 1 last'
'set lat 10.5'
'set lon -66'
'set gxout print'
'd rhprs'
ret=result
res=write('caracas.txt',ret)
Archivo caracas.txt:
Printing Grid -- 3 Values -- Undef = 9.999e+20
69 67 73
17) Elaboración de gráficas xy
c
set t 1 last
set lat 11
set lon 66
d tmp2m-273
d rh2m

Para realizar los siguientes ejercicios por favor descargas los scrips "rgbset" y "page" en la carpeta "lib" dentro de su ditectorio GrADS (http://www.cpc.ncep.noaa.gov/products/w ... ripts.html). Recuerde guardar los archivos con un formato .gs (cuando hagan la descarga agregar .gs al nombre)
18) Generación de varias gráficas en una misma área de trabajo
El script "page" fue elaborado posicionar varias gráficas en una misma área de trabajo que se traduce en varias gráficas en una misma imagen al mometo de exportar. Su manejo es bastante sencillo y es ilustrado utilizando los siguientes ejemplo:
18.1) Generación de dos gráficas (Derecha e Izquierda)
reset
set lat 3 13
set lon -75 -60
set gxout shaded
page left
d tmp2m-273
cbarn
draw title Temperatura 2m
page right
d rh2m
cbarn
draw title Humedad Relativa 2m

18.2) Generación de dos gráficas (Arriba y Abajo)
reset
set lat 3 13
set lon -75 -60
set gxout barb
page top
d ugrd10m;vgrd10m
draw title Barbas 10m
page bottom
set lat 11
set lon -66
set t 1 last
d mag(ugrd10;vrgd10m)
draw title Velocidad 10m en 11 N y 66 O

18.3) Generación de cuatro gráficas
reset
set lat 3 13
set lon -75 -60
set gxout shaded
page q1
d tmp2m-273
cbarn
draw title Temperatura 2m
page q2
d rh2m
cbarn
draw title Humedad Relativa 2m
page q3
d capesfc
cbarn
draw title CAPE
page q4
d cinsfc
cbarn
draw title CIN
printim cuadro.gif gif

19 ) Definición de escala de colores
La escala de colores que contiene el GrADS por defecto puede ser codificada para crear gráficas con el estilo deseado. Para ello es necesario seguir varios pasos.
19.1)Deficir colores (comando set rgb)
El primer paso es definir los colores a utilizar para lo que es utilizado el comando rgb que como su nombre lo indica utiliza la escala rgb conformada por los 3 colores primarios (tojo,verde y azul) cuya combinación forman toda la gama de colores que conocemos. Las tonalidades de estos 3 colores primarios están definidas por números de 1 a 255 donde 0 es la ausencia del color. Para más información sobre el modelo de color RGB consultar http://es.wikipedia.org/wiki/Modelo_de_color_RGB
El comando funciona de la siguiente manera:
set rgb identificador nivel-rojo nivel-verde nivel-azul
Donde "identificador" es el numero que identificará al color creado para ser utilizado por el comando ccols (Ver más adelante)
Varios ejemplos:
Rojo intenso:
set rgb 1 255 0 0
Morado Claro
set rgb 51 220 220 255
Amarillo:
set rgb 22 255 232 120
Existe un script que contiene una serie de colores ya definidos que podemos usar directamente de esa manera nos saltamos los pasos explicados anteriomente. Pueden descargar el archivo llamado rgbset.gs de http://www.cpc.ncep.noaa.gov/products/w ... ripts.html
Para los usuarios de Windows recuerden guardar los scripts en la carpeta "lib"
19.2) Descripción del script rgbset.gs
Si ven el contenido del script se darán cuenta que contiene una serie de comandos con la estructura que les explique anteriormente. Pueden ver que los colores están distribuidos por grupos como por ejemlo "amarillo claro a rojo oscuro", "azul claro a azul oscuro", etc. Lo importante es fijarse en el "identificador" de cada color que es el número que está después de la palabra "rgb" en cada comando. Por ejemplo, para el primero comando que corresponde al amarillo claro ('set rgb 21 255 250 170') el identificador es el 21. Ese numero lo vamos a usar más adelante para asignarle un valor de una variable en la escala de colores.
Todas las escalas de colores que ven en SAMMETVEN fueron realizadas utilizando el script rgbset.gs
19.3) Definir paleta de colores para valores deseados
Una vez defindos sus colores o descargado el script rgbset.gs pasemos a definir un color para cada variable, esa tarea se realiza con las instrucciones set clevs y set ccols
set clevs: definición de valores que estaran en la escala. Por ejemplo temperarura:
set clevs 16 16.5 17 17.5 18 18.5 19 19.5
set ccols: definición de colores para cada valor del parámetro (utilizar el identificador de cada color).
set ccols 21 22 23 24 25 26 27 28 29
Este par de ejemplos ayudarán un poco más a entender lo que se ha explicado:
set lat 3 13
set lon -75 -60
set lev 850
set gxout shaded
rgbset
set clevs 16 16.5 17 17.5 18 18.5 19 19.5
set ccols 21 22 23 24 25 26 27 28 29
d tmpprs-273
cbarn
printim col1.gif gif

c
set clevs 45 50 55 60 65 70 75 80 85 90 95 100
set ccols 53 55 57 43 45 47 33 35 37 23 25 27 29
d rhprs
cbarn
printim col2.gif gif

20) Convertir datos de estaciones a formato Grads
La aplicación Grads Station Data permite convertir la información de estaciones en ASCII al formato del Grads para su visualización. Los pasos a seguir son los siguientes:
20.1) Compilar el código de la aplicación:
Están disponibles dos códigos para la aplicación uno en fortran y el otro en C. Para efectos de esta guia utilizaremos en código en C el cual debe ser guardado en un archivo llamado grads.c utilizando cualquier editor de texto.
#include stdio.
/* Structure that describes a report header in a stn file */
struct rpthdr {
char id[8]; /* Station ID */
float lat; /* Latitude of Station */
float lon; /* Longitude of Station */
float t; /* Time in grid-relative units */
int nlev; /* Number of levels following */
int flag; /* Level independent var set flag */
} hdr;
main ()
{
FILE *ifile, *ofile;
char rec[80];
int flag,year,month,yrsav,mnsav,i;
float val;
/* Open files */
ifile = fopen ("rain.ch","r");
ofile = fopen ("rain.dat","wb");
if (ifile==NULL || ofile==NULL) {
printf("Error opening files\n");
return;
}
/* Read, write loop */
flag = 1;
while (fgets(rec,79,ifile)!=NULL) {
/* Format conversion */
sscanf (rec,"%i %i",&year,&month);
sscanf (rec+20," %g %g %g",&hdr.lat,&hdr.lon,&val);
for (i=0; i<8; i++) hdr.id[i] = rec[i+11];
/* Time group terminator if needed */
if (flag) {
yrsav = year;
mnsav = month;
flag = 0;
}
if (yrsav!=year || mnsav!=month) {
hdr.nlev = 0;
fwrite(&hdr,sizeof(struct rpthdr), 1, ofile);
}
yrsav = year;
mnsav = month;
/* Write this report */
hdr.nlev = 1;
hdr.flag = 1;
hdr.t = 0.0;
fwrite (&hdr,sizeof(struct rpthdr), 1, ofile);
fwrite (&val,sizeof(float), 1, ofile);
}
hdr.nlev = 0;
fwrite (&hdr,sizeof(struct rpthdr), 1, ofile);
Para la compilación solo debe introducirse en la terminal este comando: gcc grads.c
El resultado de la compilación es la generación de un archivo llamado llamado a.out
20.2) Creación del archivo de datos
Aparentemente la aplicación fue creada para procesar datos mensuales por lo que en la fecha solo hay opción para introducir el año y el mes. El nombre del archivo debe ser rain.ch si se desea utilizar otro nombre es necesario modificar el código y compilar nuevamente. El archivo debe tener este formato:
2008 1 QQQ 9.5 -71.0 123.3
2008 1 RRR 10.0 -71.5 87.1
2008 1 SSS 10.5 -72.0 412.8
2008 1 TTT 10.8 -71.5 23.3
2008 2 QQQ 9.5 -71.0 145.1
2008 2 RRR 10.0 -71.5 871.4
2008 2 SSS 10.5 -72.0 223.1
2008 2 TTT 10.8 -71.5 45.5
Primera Columna: Año
Segunda Columna: MES
Tercera Colunma: Nombre de la Estación ó Identificador
Cuarta Columna: Latitud
Quinta Columna: Longitud
Sexta Columna: Magnitud de la Variable.
Una vez creado el rain.ch se debe ejecutar el a.out lo cual generará un archivo llamado rain.dat
20.3) Creación del archivo descriptor
Grads necesita de un archivo descriptor en donde se encuentra la información referente a los datos introducidos. Llamaremos a este archivo rain.ctl y tiene el siguiente formato:
SET ^rain.dat
DTYPE station
STNMAP rain.map
UNDEF -999.0
TITLE Station Data Sample
TDEF 2 linear 1jan2008 1mo
VARS 1
r 0 99 rainfall
ENDVARS
A este archivo se le tienen que hacer las modificaciones correspondiente dependiendo la data que se tenga. Más información http://www.iges.org/grads/gadoc/descriptorfile.html
20.4)Creación del archivo "station map"
Este es el último paso para Grads pueda leer la información de las estaciones. En la terminal introducir el siguiente comando:
stnmap -i rain.ctl
Debe aparecer en pantalla este mensaje:
Name of binary data set: rain.dat
Number of times in the data set: 2
Number of surface variables: 1
Number of level dependent variables: 0
Starting scan of station data binary file.
Binary data file open: rain.dat
Processing time = 1
Time = 1 has stn count = 4
Processing time = 2
Time = 2 has stn count = 4
Max reports per time: 4 reports at t = 1
Max data elements in largest report: 1
Version 2 Station map file created: rain.map
20.5) Despliegue de los datos en Grads
Solo queda entrar a grads, abrir el archivo y graficar la variable:
gradsc -l
open rain.ctl
d r

En pantalla vera el mapa del mundo y alguno numeros ilegibles sobre Venezuela. Procedan a realizar un zoom sobre el área donde están los datos:
set lat 9 11
set lon -72.5 -70
d r

