You are on page 1of 7

MANUAL PARA ACCEDER A LA BASE DE DATOS DEL ECMWF

(EUROPEAN CENTRE FOR MEDIUM-RANGE WEATHER FORECAST) EN


MODO BATCH
Este manual indica las instrucciones para descargar datos de reanlisis del
ERA-Interim en modo batch
a travs de PYTHON en formato grib.
Enseguida, se presentan algunas soluciones a problemas que se puedan
presentar en el proceso y finalmente en la seccin Anexo se muestra cmo
convertir estos archivos a formato NetCDF. Una vez instaladas las
aplicaciones y scripts, la descarga de datos (sobre todo archivos pesados)
de este servidor ser ms simple y depender especialmente de la
velocidad de internet con la que se cuenta.
Descarga de datos en modo batch
1. Se debe crear una cuenta en la web del ECMWF ingresando al
siguiente link:
https://apps.ecmwf.int/registration/
2. Si ya se tiene una cuenta, ingresar a ella e ir al siguiente enlace para
obtener la clave API:
https://api.ecmwf.int/v1/key/
En esta pgina se presentan los datos necesarios para poder acceder
a los datos.
3. Ingresar al terminal de Linux u OS X e instalar Python en caso de no
tenerlo:
Ejemplo:
Para Ubuntu: sudo apt get install python-pip
4. En el terminal, descargar el archivo .tgz con la siguiente instruccin
sudo pip install
https://software.ecmwf.int/wiki/download/attachments/23694554/ecmwf-apiclient-python.tgz

5. Descomprimir el archivo y copiar la carpeta ecmwfapi a donde se


realizarn las descargas (Ejm: carpeta PYTHONPATH)
6. Crear el archivo .ecmwfapirc en $HOME con la clave API que se
obtuvo anteriormente.
>> gedit $HOME/.ecmwfapirc

%para abrir el editor de texto

Y copiar la clave API en la misma forma que aparece en el link


indicado anteriormente, esta se ver de la siguiente forma:
{
"url" : "http://api.ecmwf.int/v1",
"key" : "xxxxxxxxxxxxxxxxxxxxxxxxxxx",
"email" : "mail@mail.mail"
}
7. Ir al siguiente link y aceptar las condiciones:

http://apps.ecmwf.int/datasets/licences/tigge
8. Crear el archivo xxxxxxx.py donde se descargar la informacin. A
continuacin se muestra el ejemplo de un script para descargar datos
de viento (u) a 850 hPa para todo el mundo con el periodo
01/01/1979 31/12/2014. Estos datos son diarios, cada 6 horas.
#!/usr/bin/env python
server = ECMWFDataServer()
server.retrieve({
'dataset' : "interim",
'levtype' : "pl",
'type' : "an",
'levelist': "850",
'date' : "19790101/to/20141231",
'padding': 0,
'resol': "AUTO",
'param' : "131.128",
'time' : "00/06/12/18",
'step' : "0",
'area' : "15/-100/-60/-35",
'origin' : "all",
'grid' : "0.75/0.75",
'domain' : "G",
'target' : "viento.grib"
a) dataset: Se elige la base de datos del servidor ECMWF. Para
ERA-Interim el parmetro es interim. Para mayor informacin
sobre otras bases de datos, consultar las siguiente pgina en la
seccin
Choosing
a
dataset:
https://software.ecmwf.int/wiki/display/WEBAPI/Accessing+ECMWF
+data+servers+in+batch.
b) levtype: Denota el tipo de nivel. Los valores comunes son:
nivel de modelo (ml), nivel de presin (pl), superficie (SFC),
vorticidad potencial (pv), temperatura potencial (pt) y profundidad
(dp). En el ejemplo mostrado se eligi nivel de presin pues luego
se eligir el nivel de 850 hPa.
c) type: Determina el tipo de campo. Ejemplos: Analysis (an),
Forecast (fc), Perturbed Forecast (pf), Control Forecast (cf). En el
caso del modelo se eligi an.
d) levlist: Especifica los niveles requeridos. Si son varios, van
separados por con /.
e) date: Se escribe siguiendo el siguiente formato YYYYMMDD/to/
YYYYMMDD
f) param: En la tabla 1. Se muestra una lista con las variables y
sus cdigos respectivos disponibles para el levtype: pl.

g) time Indica cada cuntas horas se desea descargar, en este


caso se eligen las 4 horas del da "00/06/12/18".
h) rea: Se escriben cuatro valores siguiendo este formato:
Norte/Oeste/Sur/ Este.
i) grid: Se elige la resolucin espacial. Se debe escribir 2 valores
en el siguiente formato: incrementos en Oeste-Este/Norte-Sur. En
el ejemplo se escogi 0.75x0.75.
j) target Se escribe el nombre con el que se desea obtener el
archivo .grib
*Los dems parmetros pueden dejarse por defecto
Variable
Parmetro
Cloud cover
248.128
Divergence
155.128
Geopotential
129.128
Ozone mass mixing ratio
203.128
Potential vorticity
60.128
Relative humidity
157.128
Specific cloud ice water
247.128
content
Specific cloud liquid water
246.128
content
Specific humidity
133.128
Temperature
130.128
U component of wind
131.128
V component of wind
132.128
Vertical velocity
135.128
Vorticity (relative)
138.128
Tabla 1. Variables disponibles para el levtype pl (pressure level)
9. Ejecutar el archivo xxxxxxxx.py con el siguiente comando:
>> python xxxxxxxx.py
Se empezar a procesar la informacin y finalmente empezar la
descarga. Cuando el archivo ya se descarg, el terminal mostrar lo
siguiente:

Algunas soluciones a problemas


Aspectos generales:
Invalid or missing key or token
Asegrese
de
obtener
una
nueva
clave
de
https://api.ecmwf.int/v1/key/. La clave que se proporcion con los
servidores de datos antiguos ya no funciona ms.
HTTP Error 404: NOT FOUND
Resource not found: datasets/interim_daily or Resource not
found: datasets/interim_full
Los datos interim_daily y interim_full No existe ya en el nuevo
servidor de datos. Se debe cambiar en la solicitud (el script)
dataset = interim en su lugar.
HTTP Error 403: FORBIDDEN
ecmwfapi.api.APIException: u"ecmwf.API error 1: User '...'
has no access to services/marslite"
Se debe verificar la conexin a https://apps.ecmwf.int/auth/login/
y luego recuperar la clave en https://api.ecmwf.int/v1/key/.
HTTP Error 503
Esto significa que existen problemas internos en ECMWF. Se
recomienda ponerse en contacto con ellos (calldesk@ecmwf.int).
mars - WARN - 20130522.082222 - connect : marsxyz 9000
(Connection refused)
La aplicacin est intentando conectarse a uno de los servidores
de archivo, que no funciona. Se debe tener en cuenta que por lo
general en la maana del mircoles, los analistas llevan a cabo
sesiones de sistema, para lo cual tienen que apagar los
servidores.
Sobre Python
-

HTTP Error 202: ACCEPTED


Se debe verificar que se est ejecutando una versin actualizada de
Python, por ejemplo, versin 2.7 o es superior. Para comprobar la
versin de su Python, tipee python -V en el prompt de Unix (terminal).

WARNING: httplib2.URLError received None <urlopen error


unknown url type: https>
El acceso a los servidores de ECMWF se realiza a travs de HTTPS. La
versin de python que se est utilizando no es compatibles con SSL
(Secure Socket Layer) utilizado por HTTPS.

Python socket module was not compiled with SSL support.


Aborting...
El acceso a los servidores de ECMWF se realiza a travs de HTTPS. La
versin de python que se est utilizando no es compatibles con
HTTPS.

Assert total == size AssertionError


Esto significa que el script fall en transferir los datos entre
servidores de ECMWF y su mquina. Algunas de las causas pueden
ser:
Hubo un problema en la red
El disco local es demasiado pequeo para recibir los datos
El archivo es de ms de 2 Gb y su sistema de archivos local no es
compatible con archivos de gran tamao (no es un sistema de
archivos de 64 bits)

Anexo

Si se desean los archivos en formato NetCDF, se pueden convertir los


archivos .grib mediante
la herramienta GRIB-API. A continuacin se
muestran los pasos para instalar la aplicacin y convertir los archivos:
Nota: Se recomienda instalar Jasper (http://www.ece.uvic.ca/~frodo/jasper/)
para tener un mayor aprovechamiento de esta herramienta; sin embargo
para este caso no es necesario por lo que se desactivar esta opcin en
usando disable-jpeg en la parte de configuracin como se mostrar ms
adelante.
Instalacin estndar:
1. Descarga GRIB API en el sitio web del ECMWF:
https://software.ecmwf.int/wiki/display/GRIB/Releases
Se recomienda la versin a partir de grib_api-1.10.0.
2. Descomprimir el archivo descargado:
>> Gunzip grib_api-X.X.X.tar.gz
>> Tar xf grib_api-X.X.X.tar
3. Crear el directorio donde se instalar API GRIB, por ejemplo:
grib_api_dir
>> mkdir grib_api_dir
4. Ejecutar la configuracin en el grib_api-X.X.X
>> cd grib_api-X.X.X
>> ./configure --disable-jpeg -prefix = Grib_api_dir

En la ltima parte se debe dar la ruta completa del grib_api_dir


(despus de la opcin prefix).
5. Finalmente se deben ejecutar las 3 rdenes siguientes:
>> make
...
>> Make check
...
>> Make install
...
Para verificar que la instalacin se ejecut correctamente se debe ingresar
bin que se encuentra dentro de la carpeta grib_api_dir y comprobar que
se encuentra el ejecutable que en este caso nos interesa grib_to_netcdf.
La siguiente imagen muestra lo explicado:

Conversin de archivo grib a netcdf


Dentro de la carpeta bin (donde se encuentra el ejecutable) se da la
siguiente orden:
> ./grib_to_netcdf

-o

output.nc

input.grib

Donde output contiene el nombre del archivo con el formato netcdf e


incluye la ruta donde se ubicar e input, el nombre (y ubicacin) del
archivo en formato grib. A continuacin se muestra una imagen de este
proceso:

Para verificar contenido del archivo, puede ingresar el comando:


>> ncdump h nombredelarchivo.nc

Mayor informacin:
-

https://software.ecmwf.int/wiki/display/WEBAPI/Accessing+ECMWF+d
ata+servers+in+batch
https://software.ecmwf.int/wiki/display/GRIB/grib_to_netcdf

You might also like