segunda-feira, 11 de novembro de 2013
Script Download Dados ECMWF/ERA-Interin - Parte 1
Quando eu atualizei o link do "novo" servidor de download de dados da Reanalise do Era-Interim o Helber comentou de um script que possibilitava o download. Segue como fazer:
PS. Para entender os parâmetros e como modificá-los não esqueça de lê o segundo artigo (Script Download Dados ECMWF/ERA-Interim - Parte 2), link no final deste post.
O ECMWF está disponibilizando uma API (Aplication Programming Interface) nas linguagens (Python, Perl e Java) para acesso/download dos seus dados via script/terminal. É uma ferramenta extremamente útil para quem esta familiarizado com este tipo de sistema e não quer baixar os dados via site. Eu recomendo!
Eu irei tentar ensinar como usar a API desenvolvida em Python, escolha a linguagem que você melhor trabalha. Todas estas informações estão disponíveis no site da API no ECMWF.
Para instalar a biblioteca (ecmwfapi) você precisará primeiro instalar o programa pip.
O programa pip é uma excelente alternativa para instalar bibliotecas desenvolvidas em python de maneira fácil, através do terminal. Para instalar o pip no Ubuntu execute no terminal os seguintes comandos:
> sudo apt-get install python-pip python-dev build-essential
> sudo pip install --upgrade pip
Agora com o pip instalado execute no terminal: (tudo junto separado por espaço)
> sudo pip install https://software.ecmwf.int/wiki/download/attachments/23694554/ecmwf-api-client-python.tgz
Este comando irá instalar a biblioteca, você pode verificar ela instalada no diretório:
/usr/local/lib/python2.7/dist-packages/
Feito isso, agora você irá precisar criar a sua chave de acesso. Quando precisávamos baixar os dados da reanálise do ECMWF assim que escolhíamos os dados o site solicitava os dados pessoais (Nome a Instituição e o email), agora com essa API você gera uma chave, insere no script, e não precisará fazer esta autorização sempre que for baixar, agora ela feita automaticamente via API.
Para criar a chave você precisa se cadastrar no site:
http://apps.ecmwf.int/registration/
Um email de conformação será enviado com seu login e senha, confirme clicando no link. Ao fazer login na pagina abaixo será disponibilizado sua chave de acesso:
https://apps.ecmwf.int/auth/login/
Agora que sua chave já esta disponível é preciso criar um arquivo com o nome (.ecmwfapirc) no seu /home/usuario para o acesso ser automático, Obs: o nome do arquivo é .ecmwfapirc com (.) para ficar oculto e sem extensão.
Neste arquivo você irá inserir:
{
"url" : "https://api.ecmwf.int/v1",
"key" : "XXXXXXXXXXXXXXXXXXXXXX",
"email" : "john.smith@example.com"
}
,onde vocé irá substituir XXXXXXXXXXXXXXXXXXXXXX pela sua chave e john.smith@example.com pelo email que você utilizou para efetuar o cadastro.
Feito isso você já pode baixar os dados. O ecmwf disponibiliza um script exemplo para teste. Portanto, crie um script em PYTHON e dentro dele insira as linhas: eu chamei o meu script de exemplo.py
#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer
server = ECMWFDataServer()
server.retrieve({
'dataset' : "tigge",
'step' : "24/to/120/by/24",
'number' : "all",
'levtype' : "sl",
'date' : "20071001/to/20071003",
'time' : "00/12",
'origin' : "all",
'type' : "pf",
'param' : "tp",
'area' : "70/-130/30/-60",
'grid' : "2/2",
'target' : "data.grib"
})
Salve e dê permissão de execução:
> chmod +x exemplo.py
Ao executar este script:
>./exemplo.py
Aparecerá uma série de informações no terminal sobre o sistema, dado e o andamento do Download.
Script Download Dados ECMWF/ERA-Interim - Parte 2
Boa Sorte e Bom Trabalho a Todos.
Assinar:
Postar comentários
(
Atom
)
Para saídas em netcdf, use:
ResponderExcluir'format' : "netcdf"
Só para constar o que aconteceu comigo...
ResponderExcluirno lugar de XXXXXXXXXXXXXXX eu inseri meu password
e o seguinte erro apareceu:
2014-12-03 16:02:16 ECMWF API python library 1.3
2014-12-03 16:02:16 ECMWF API at https://api.ecmwf.int/v1
HTTP Error 403: FORBIDDEN
Traceback (most recent call last):
File "./exemplo.py", line 19, in
'target' : "data.grib"
File "/usr/local/lib/python2.7/dist-packages/ecmwfapi/api.py", line 413, in retrieve
c = Request(self.url, "datasets/%s" % (dataset,), self.email, self.key, self.trace, verbose = self.verbose)
File "/usr/local/lib/python2.7/dist-packages/ecmwfapi/api.py", line 298, in __init__
user = self.connection.call("%s/%s" % (self.url, "who-am-i"))
File "/usr/local/lib/python2.7/dist-packages/ecmwfapi/api.py", line 76, in wrapped
return func(*args,**kwargs)
File "/usr/local/lib/python2.7/dist-packages/ecmwfapi/api.py", line 248, in call
raise APIException("ecmwf.API error 1: %s" % (self.last["error"],) )
ecmwfapi.api.APIException: u'ecmwf.API error 1: Invalid or missing key or token'
Para saber qual é seu "api key" acesse o link: https://api.ecmwf.int/v1/key/
Pelo que percebi... "password" não é "api key"