March 20, 2017 | Author: Laura Paccini | Category: N/A
Download Manual Para Acceder a La Base de Datos Del Ecmwf...
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 reanálisis del ERA-Interim en modo batch a través de PYTHON en formato grib. Enseguida, se presentan algunas soluciones a problemas que se puedan presentar en el proceso y finalmente en la sección Anexo se muestra cómo 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á más 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 página 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 instrucción 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 realizarán 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" : "
[email protected]" } 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 información. A continuación 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 parámetro es “interim”. Para mayor información sobre otras bases de datos, consultar las siguiente página en la sección 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 presión (pl), superficie (SFC), vorticidad potencial (pv), temperatura potencial (pt) y profundidad (dp). En el ejemplo mostrado se eligió nivel de presión 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 códigos respectivos disponibles para el levtype: “pl”.
g) “time” Indica cada cuántas horas se desea descargar, en este caso se eligen las 4 horas del día "00/06/12/18". h) “área”: Se escriben cuatro valores siguiendo este formato: Norte/Oeste/Sur/ Este. i) “grid”: Se elige la resolución espacial. Se debe escribir 2 valores en el siguiente formato: incrementos en Oeste-Este/Norte-Sur. En el ejemplo se escogió 0.75°x0.75°. j) “target” Se escribe el nombre con el que se desea obtener el archivo .grib *Los demás parámetros pueden dejarse por defecto Variable Parámetro 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 información 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 Asegúrese 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 más. 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 conexión 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 (
[email protected]). mars - WARN - 20130522.082222 - connect : marsxyz 9000 (Connection refused) La aplicación está intentando conectarse a uno de los servidores de archivo, que no funciona. Se debe tener en cuenta que por lo general en la mañana del miércoles, 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 versión actualizada de Python, por ejemplo, versión 2.7 o es superior. Para comprobar la versión de su Python, tipee python -V en el prompt de Unix (terminal).
-
WARNING: httplib2.URLError received None El acceso a los servidores de ECMWF se realiza a través de HTTPS. La versión 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 través de HTTPS. La versión 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 máquina. Algunas de las causas pueden ser: Hubo un problema en la red El disco local es demasiado pequeño para recibir los datos El archivo es de más de 2 Gb y su sistema de archivos local no es compatible con archivos de gran tamaño (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 continuación se muestran los pasos para instalar la aplicación 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 opción en usando “—disable-jpeg” en la parte de configuración como se mostrará más adelante. Instalación estándar: 1. Descarga GRIB API en el sitio web del ECMWF: https://software.ecmwf.int/wiki/display/GRIB/Releases Se recomienda la versión 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 configuración 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 (después de la opción prefix). 5. Finalmente se deben ejecutar las 3 órdenes siguientes: >> make ... >> Make check ... >> Make install ... Para verificar que la instalación 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:
Conversión 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 ubicación) del archivo en formato grib. A continuación se muestra una imagen de este proceso:
Para verificar contenido del archivo, puede ingresar el comando: >> ncdump –h nombredelarchivo.nc
Mayor información: -
https://software.ecmwf.int/wiki/display/WEBAPI/Accessing+ECMWF+d ata+servers+in+batch https://software.ecmwf.int/wiki/display/GRIB/grib_to_netcdf