Guia Rapida de Grads para mapas meteorológicos

Discusión sobre las Salidas SAMMET, información referente a Modelaje Meteorológico y Oceánico, opiniones, sugerencias.

Guia Rapida de Grads para mapas meteorológicos

Notapor Chaser el Jue Nov 13, 2008 8:13 pm

El Grid Analysis and Display System (GrADS) es una herramienta interactiva $utilizada para la manipulación y visualización de datos científicos. Esta aplicación es capaz de procesar datos en formato GRIB, NetCDF y HDF-SDS. Gracias a su fácil manejo el GrADS es utilizado alrededor del mundo para graficar las salidas de modelos de predicción del tiempo como el MM5, WRF, RAMS, ETA, etc.

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

Imagen


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

Imagen

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

Imagen

9 ) Graficación de barbas de viento

c (Este comando permite borrar pantalla)

set gxout barb

d ugrdprs;vgrdprs

Imagen

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

Imagen

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

Imagen

14)Animaciones

c

set t 1 last

d rhprs

Imagen

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

Imagen

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

Imagen

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

Imagen

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

Imagen

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

Imagen

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

Imagen

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

Imagen

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",&amp;year,&amp;month);

sscanf (rec+20," %g %g %g",&amp;hdr.lat,&amp;hdr.lon,&amp;val);

for (i=0; i&lt;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(&amp;hdr,sizeof(struct rpthdr), 1, ofile);

}

yrsav = year;

mnsav = month;

/* Write this report */

hdr.nlev = 1;

hdr.flag = 1;

hdr.t = 0.0;

fwrite (&amp;hdr,sizeof(struct rpthdr), 1, ofile);

fwrite (&amp;val,sizeof(float), 1, ofile);

}

hdr.nlev = 0;

fwrite (&amp;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

Imagen

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

Imagen
Chaser
 
Mensajes: 93
Registrado: Mié Sep 03, 2008 11:36 pm
Ubicación: Nueva York

Volver a Centro virtual de Meteorología (SAMMET-Interactivo)

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado