Autor
|
Tema: Plotear salidas del GFS en casa (Llegit 2476 vegades)
|
Sinner
CATmeteo Col.laborador
Línia de turbonada

Desconnectat
Gènere: 
Missatges: 30843
|
¿Quien no ha tenido nunca la tentación de hacerse un modelo en casita? ¿Quien no ha deseado nunca tener los plastidecors de los birruten cuando dibujan el GFS?
Bien, pues todo está al alcance de cualquiera. Solo hace falta tener ganas, un pc con Gnu/Linux, y a rular!!
Iré detallando todos los pasos.
Antes de nada, explicar como lo "hago yo" (hay millones de formas). Para plotear una salida, nada como utilizar el Grads (http://www.iges.org/grads/ The Grid Analysis and Display System (GrADS) ) que tiene soporte para los Grib, para Netcdf, etc etc. Hay una versión que se llama Pcgradds...pero no se como va el desarrollo ahora mismo.
Bien, el Grads nos va ayudar a decodificar el Grib...y que es el grib? Es un formato de archivo que tiene codificados todos los datos de una region de la atmosfera. Normalmente, la mayoria de modelos sacan sus salidas en formato Grib. Para este ejemplo, vamos a utilizar el Gfs a Low Resolution (GFS ENS), ya que son archivos pequeñitos (3 megas vs 100 megas del Gfs a alta resolución)
Pero antes, vamos a instalar el Grads. En este caso, sobre un Gnu/linux (Kubuntu 5.10)
De aquí, ftp://grads.iges.org/grads/1.8/grads-1.8sl11-linux.tar.gz , nos bajamos los binarios ya compilados, así no hay que compilarlo todo y es más rapido. Una vez descargado, lo descomprimimos con la siguiente orden
alex@ubuntu:~/Desktop/$ gunzip grads-1.8sl11-linux.tar.gz
alex@ubuntu:~/Desktop/$ tar xvf grads-1.8sl11-linux.tar
Con esto, ya tendremos en el escritorio el grads descomprimido. Ahora, nos bajamos un script en perl que nos decodificara el grib para poder usarlo en el Grads (Necesitamos el perl en nuestro sistema [/usr/local/bin/perl -w]
ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib.scripts/grib2ctl.pl
Y lo metemos en la carpeta grads/bin
Lo abrimos con un editor de texto, y modificamos las siguientes lineas
Cambiamos esta $wgrib='wgrib' Por la ruta donde tenemos descomprido el grads/bin $wgrib='/home/alex/Desktop/grads/bin';
Ahora, nos bajamos los mapas para el grads
ftp://grads.iges.org/grads/data.tar.Z
Y los descomprimimos en /usr/local/bin/grads
Y ya está preparado el grads. Ahora, a trabajar con él!
Nos bajamos el modelo, por ejemplo, la salida del ENS de las 06z de hoy http://nomad5.ncep.noaa.gov/pub/ens/archive/
Nos vamos al dia 23 http://nomad5.ncep.noaa.gov/pub/ens/archive/ens20060423/
Y seleccionamos el ens4n.t06.pgbrf00 (esto significa que es el de la salida 06z a 00 horas, es decir, análisis)
http://nomad5.ncep.noaa.gov/pub/ens/archive/ens20060423/ensn3.t06z.pgrbf00
Y en INV tambien
http://nomad5.ncep.noaa.gov/pub/ens/archive/ens20060423/ensn3.t06z.pgrbf00.inv
Vale, ya lo tenemos todo descargado.
Ahora tenemos que convertir el grib en formato ctl para la lectura correcta por parte del Grads, para eso utilizaremos el script perl que nos hemos bajado antes. La sintaxis es la siguiente
alex@ubuntu:~/Desktop/grads-1.8sl11/bin$ /usr/bin/perl /home/alex/Desktop/grads-1.8sl11/bin/grib2ctl.pl /home/alex/Desktop/ens4n.t06z.pgrbf00 > /home/alex/Desktop/ens4n.t06z.pgrbf00.ctl
Esto nos crea el ctl correspondiente para el grads en el escritorio, así no vamos perdidos buscando archivos.
Ahora, codificaremos el Grib con la utilidad gribmap, que viene dentro del directorio grads/bin
alex@ubuntu:~/Desktop/grads-1.8sl11/bin$ ./gribmap -i /home/alex/Desktop/ens4n.t06z.pgrbf00.ctl
Y nos saldrán unas lineas detallando el proceso
gribmap: Scanning binary GRIB file(s): gribmap: Opening GRIB file /home/alex/Desktop/gfs.t00z.pgrbf00 gribmap: Reached EOF gribmap: Writing the map...
Ya tenemos el ctl listo para trabajar. Abrimos el grads
alex@ubuntu:~/Desktop/grads-1.8sl11/bin$ ./gradsc
Grid Analysis and Display System (GrADS) Version 1.8SL11 Copyright (c) 1988-2001 by Brian Doty Center for Ocean-Land-Atmosphere Studies Institute for Global Environment and Society All Rights Reserved
Config: v1.8SL11 32-bit little-endian readline printim
Issue 'q config' command for more information.
Landscape mode? (no for portrait) Presionamos intro
GX Package Initialization: Size = 11 8.5 ga->
Ya tenemos el grads en marcha. Nos queda cargar el ctl y plotear la salida. Para esto, definimos donde está el archivo y lo abrimos
ga-> open /home/alex/Desktop/ens4n.t06.ctl Scanning description file: /home/alex/Desktop/ens4n.t06.ctl Data file /home/alex/Desktop/ensn4.t06z.pgrbf06 is open as file 1 LON set to 0 360 LAT set to -90 90 LEV set to 1000 1000 Time values set: 2006:4:23:6 2006:4:23:6
Ya tenemos el grib correctamente cargado. Para ver los campos que podemos representar, basta con ejecutar la orden "query file"
ga-> query file File 1 : /home/alex/Desktop/ensn4.t06z.pgrbf06 Descriptor: /home/alex/Desktop/ens4n.t06.ctl Binary: /home/alex/Desktop/ensn4.t06z.pgrbf06 Type = Gridded Xsize = 144 Ysize = 73 Zsize = 26 Tsize = 1 Number of Variables = 134 no4lftxsfc 0 132 ** surface 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 ** surface Convective precipitation [kg/m^2] albdosfc 0 84 ** surface Albedo [%] apcpsfc 0 61 ** surface Total precipitation [kg/m^2] capesfc 0 157 ** surface Convective Avail. Pot. Energy [J/kg] cape180_0mb 0 157 ** 180-0 mb above gnd Convective Avail. Pot. Energy [J/kg] cfrzrsfc 0 141 ** surface Categorical freezing rain [yes=1;no=0] cicepsfc 0 142 ** surface Categorical ice pellets [yes=1;no=0] cinsfc 0 156 ** surface Convective inhibition [J/kg] cin180_0mb 0 156 ** 180-0 mb above gnd Convective inhibition [J/kg] clwmrprs 21 153 ** Cloud water [kg/kg] cpratsfc 0 214 ** surface Convective precip. rate [kg/m^2/s] crainsfc 0 140 ** surface Categorical rain [yes=1;no=0] csnowsfc 0 143 ** surface Categorical snow [yes=1;no=0] cwatclm 0 76 ** atmos column Cloud water [kg/m^2] cworkclm 0 146 ** atmos column Cloud work function [J/kg] dlwrfsfc 0 205 ** surface Downward long wave flux [W/m^2] dswrfsfc 0 204 ** surface Downward short wave flux [W/m^2] gfluxsfc 0 155 ** surface Ground heat flux [W/m^2] gpaprs 2 27 ** Geopotential height anomaly [gpm] hgtsfc 0 7 ** surface Geopotential height [gpm] hgtprs 26 7 ** Geopotential height [gpm] hgtpv2 0 7 ** pot vorticity = 2000 units level Geopotential height [gpm] hgtpvneg2 0 7 ** pot vorticity = -2000 units level Geopotential height [gpm] hgthtfl 0 7 ** highest trop freezing level Geopotential height [gpm] hgt0deg 0 7 ** 0C isotherm level Geopotential height [gpm] hgtmwl 0 7 ** max wind level Geopotential height [gpm] hgttrp 0 7 ** tropopause Geopotential height [gpm] hpblsfc 0 221 ** surface Planetary boundary layer height [m] icecsfc 0 91 ** surface Ice concentration (ice=1;no ice=0) [fraction] landsfc 0 81 ** surface Land cover (land=1;sea=0) [fraction] lftxsfc 0 131 ** surface Surface lifted index [K] lhtflsfc 0 121 ** surface Latent heat flux [W/m^2] o3mrprs 6 154 ** Ozone mixing ratio [kg/kg] pevprsfc 0 145 ** surface Potential evaporation rate [W/m^2] potsig995 0 13 ** sig=.995 Potential temp. [K] pratesfc 0 59 ** surface Precipitation rate [kg/m^2/s] pressfc 0 1 ** surface Pressure [Pa] prespv2 0 1 ** pot vorticity = 2000 units level Pressure [Pa] prespvneg2 0 1 ** pot vorticity = -2000 units level Pressure [Pa] preslcb 0 1 ** low cloud base Pressure [Pa] preslct 0 1 ** low cloud top Pressure [Pa] presmcb 0 1 ** mid-cloud base Pressure [Pa] presmct 0 1 ** mid-cloud top Pressure [Pa] preshcb 0 1 ** high cloud base Pressure [Pa] preshct 0 1 ** high cloud top Pressure [Pa] prescvb 0 1 ** convective cld base Pressure [Pa] prescvt 0 1 ** convective cld top Pressure [Pa] presmwl 0 1 ** max wind level Pressure [Pa] prestrp 0 1 ** tropopause Pressure [Pa] prmslmsl 0 2 ** Pressure reduced to MSL [Pa] pwatclm 0 54 ** atmos column Precipitable water [kg/m^2] rhprs 21 52 ** Relative humidity [%] rh2m 0 52 ** 2 m Relative humidity [%] rhsig995 0 52 ** sig=.995 Relative humidity [%] rhsg44_100 0 52 ** sigma=0.44-1.00 layer Relative humidity [%] rhsg72_94 0 52 ** sigma=0.72-0.94 layer Relative humidity [%] rhsg44_72 0 52 ** sigma=0.44-0.72 layer Relative humidity [%] rhsg33_100 0 52 ** sigma=0.33-1.00 layer Relative humidity [%] rh30_0mb 0 52 ** 30-0 mb above gnd Relative humidity [%] rhclm 0 52 ** atmos column Relative humidity [%] rhhtfl 0 52 ** highest trop freezing level Relative humidity [%] rh0deg 0 52 ** 0C isotherm level Relative humidity [%] shtflsfc 0 122 ** surface Sensible heat flux [W/m^2] soilwsoilt 0 144 ** 0-10 cm undergnd Volumetric soil moisture [fraction] soilwdlr 3 144 ** Volumetric soil moisture [fraction] spfh2m 0 51 ** 2 m Specific humidity [kg/kg] spfh30_0mb 0 51 ** 30-0 mb above gnd Specific humidity [kg/kg] tcdcclm 0 71 ** atmos column Total cloud cover [%] tcdcbcl 0 71 ** boundary cld layer Total cloud cover [%] tcdclcl 0 71 ** low cloud level Total cloud cover [%] tcdcmcl 0 71 ** mid-cloud level Total cloud cover [%] tcdchcl 0 71 ** high cloud level Total cloud cover [%] tcdccvl 0 71 ** convective cld layer Total cloud cover [%] tmax2m 0 15 ** 2 m Max. temp. [K] tmin2m 0 16 ** 2 m Min. temp. [K] tmpsfc 0 11 ** surface Temp. [K] tmpprs 26 11 ** Temp. [K] tmp1829m 0 11 ** 1829 m Temp. [K] tmp2743m 0 11 ** 2743 m Temp. [K] tmp3658m 0 11 ** 3658 m Temp. [K] tmp2m 0 11 ** 2 m Temp. [K] tmpsig995 0 11 ** sig=.995 Temp. [K] tmpsoilt 0 11 ** 0-10 cm undergnd Temp. [K] tmpdlr 3 11 ** Temp. [K] tmp30_0mb 0 11 ** 30-0 mb above gnd Temp. [K] tmppv2 0 11 ** pot vorticity = 2000 units level Temp. [K] tmppvneg2 0 11 ** pot vorticity = -2000 units level Temp. [K] tmplct 0 11 ** low cloud top Temp. [K] tmpmct 0 11 ** mid-cloud top Temp. [K] tmphct 0 11 ** high cloud top Temp. [K] tmpmwl 0 11 ** max wind level Temp. [K] tmptrp 0 11 ** tropopause Temp. [K] tozneclm 0 10 ** atmos column Total ozone [Dobson] ugwdsfc 0 147 ** surface Zonal gravity wave stress [N/m^2] uflxsfc 0 124 ** surface Zonal momentum flux [N/m^2] ugrdprs 26 33 ** u wind [m/s] ugrd1829m 0 33 ** 1829 m u wind [m/s] ugrd2743m 0 33 ** 2743 m u wind [m/s] ugrd3658m 0 33 ** 3658 m u wind [m/s] ugrd10m 0 33 ** 10 m u wind [m/s] ugrdsig995 0 33 ** sig=.995 u wind [m/s] ugrd30_0mb 0 33 ** 30-0 mb above gnd u wind [m/s] ugrdpv2 0 33 ** pot vorticity = 2000 units level u wind [m/s] ugrdpvneg2 0 33 ** pot vorticity = -2000 units level u wind [m/s] ugrdmwl 0 33 ** max wind level u wind [m/s] ugrdtrp 0 33 ** tropopause u wind [m/s] ulwrfsfc 0 212 ** surface Upward long wave flux [W/m^2] ulwrftoa 0 212 ** top of atmos Upward long wave flux [W/m^2] uswrfsfc 0 211 ** surface Upward short wave flux [W/m^2] uswrftoa 0 211 ** top of atmos Upward short wave flux [W/m^2] vgwdsfc 0 148 ** surface Meridional gravity wave stress [N/m^2] vflxsfc 0 125 ** surface Meridional momentum flux [N/m^2] vgrdprs 26 34 ** v wind [m/s] vgrd1829m 0 34 ** 1829 m v wind [m/s] vgrd2743m 0 34 ** 2743 m v wind [m/s] vgrd3658m 0 34 ** 3658 m v wind [m/s] vgrd10m 0 34 ** 10 m v wind [m/s] vgrdsig995 0 34 ** sig=.995 v wind [m/s] vgrd30_0mb 0 34 ** 30-0 mb above gnd v wind [m/s] vgrdpv2 0 34 ** pot vorticity = 2000 units level v wind [m/s] vgrdpvneg2 0 34 ** pot vorticity = -2000 units level v wind [m/s] vgrdmwl 0 34 ** max wind level v wind [m/s] vgrdtrp 0 34 ** tropopause v wind [m/s] vvelprs 21 39 ** Pressure vertical velocity [Pa/s] vvelsig995 0 39 ** sig=.995 Pressure vertical velocity [Pa/s] vwshpv2 0 136 ** pot vorticity = 2000 units level Vertical speed shear [1/s] vwshpvneg2 0 136 ** pot vorticity = -2000 units level Vertical speed shear [1/s] vwshtrp 0 136 ** tropopause Vertical speed shear [1/s] watrsfc 0 90 ** surface Water runoff [kg/m^2] weasdsfc 0 65 ** surface Accum. snow [kg/m^2]
Todos estos son los campos que podemos representar. Para hacer una prueba, vamos a plotear la presión en superficie.
Primero, definimos las coordenadas
ga-> set lon -10 3 LON set to -10 3 ga-> set lat 36 44 LAT set to 36 44
Y ploteamos el SFC. Para ellos, buscamos como se llama en el listado del query file
pressfc 0 1 ** surface Pressure [Pa]
Pues ejecutamos la orden Display ( d )
ga-> d pressfc
Y ya hemos ploteado nuestro propio modelo con el Grads. La gran ventaja de este software, es que puede trabajar en 4 dimensiones. Longitud, latitud, altura y tiempo. Asi podemos plotear cortes verticales, por ejemplo
Venga, un saludo y espero que os sirva para algo!!
[annex esborrat per l'administrador]
|
|
|
|
|
En línia
|
Viladecans 23msnm Baix llobregat  
|
|
|
Garíl
Lalolaaaaiiiiiiiii ¡¡¡¡¡¡¡
Meteoclimatic projecte
Cumulonimbus Capillatus
   
Desconnectat
Gènere: 
Missatges: 13193

Sé de uno que se ha puesto palote...... XD
|
Buuuuuuuuuaaaaaaaaaaffffffffff que pasoteeeeeee ¡¡¡¡¡
Menudo curro me vas a dar esta tarde
|
|
|
|
|
En línia
|
|
|
|
Sinner
CATmeteo Col.laborador
Línia de turbonada

Desconnectat
Gènere: 
Missatges: 30843
|
Jijiji, esperaté que sepa sacar los cortes verticales....sus vais a cagar
|
|
|
|
|
En línia
|
Viladecans 23msnm Baix llobregat  
|
|
|
|
|
|
|
Twin Returns
Cumulonimbus Incus
  
Desconnectat
Gènere: 
Missatges: 4039

|
Esta noche lo intento. A ver cuantas noches tardo en conseguirlo, que con el linux no me desenvuelvo muy bien que digamos
|
|
|
|
|
En línia
|
|
|
|
|
|
.....
Hala, Madrid!
Cumulonimbus Incus
  
Desconnectat
Gènere: 
Missatges: 6500
|
madre mia que cosas mas raras script perl y palabrejas de esas que lio madre que lio...
|
|
|
|
|
En línia
|
|
|
|
Rodamet
Rodassic Park
Meteoclimatic projecte
Cumulonimbus Capillatus
   
Desconnectat
Missatges: 9693

Cuando se acerca una tormenta , late más fuerte.
|
se puede poner como modelo consultable en meteoclimatic?
|
|
|
|
|
En línia
|
|
|
|
|
|
|