Gostaria de ajudar?

sexta-feira, 22 de novembro de 2013

Instalação PyFerret com Python 2.6


Mais uma contribuição do Paulo Henrique e Marcelo Rodrigues, encaminhada pelo Dr. Antonio Carlos Santana dos Santos - Prof. Adjunto Vice-Coordenador do Curso de Física da Universidade Estadual do Ceará.

Um Tutorial da instalação do PyFerret para Debian 7 com o Python 2.6.

PS. Segundo os autores esta instalação funcionará para qualquer distribuição Linux desde que tenha o Python 2.6 instalado.

Clique aqui.

Mai uma vez obrigado ao Paulo Henrique e Marcelo Rodrigues pelo desenvolvimento e ao Dr. Antonio Carlos Santana dos Santos pela divulgação e contribuição.

Boa Sorte e Bom Trabalho a Todos!!




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.

Script Download Dados ECMWF/ERA-Interin - Parte 2

Agora que já sabemos como instalar a API do ECMWF e já fizemos o teste do download vamos explicar o que cada parâmetro do script (exemplo.py) significa e principalmente se eu precisar baixar um dado onde devo modificar, o que modificar?

No script (exemplo.py) do post anterior:

#!/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"
    })

dataset = servidor de dado. O ERA-interim se chama interim (independente se for superfície ou níveis de pressão);
step = time step. Neste exemplo tigge são dados de modelo;
number = número de arquivos;
levtype = nível: sl = surface level e pl = pressure level;
date = intevalo dos dados que você irá baixar;
time = pode ser 00, 06, 12, 18 horas;
origin = este parâmetro se refere ao tigge (qual modelo você irá baixar);
type = dado: an = análise e pf = previsão;
param = variável;
area = para os dados do tigge você pode escolher a área para os dados do ERA-Interim você baixa para o globo todo;
grid = espaçamento de grade;
target = nome do arquivo que será salvo. (Sempre com a extensão .grib o sistema ainda não possibilita baixar em outra extensão, mas esta em fase de construção baixar em Netcdf por exemplo);

Quando eu cheguei neste ponto eu decidi testar este script para baixar os dados de vento zonal para um determinado período e não consegui encontrar o nome exato para o param(variável) foi ai que encontrei esta informação diretamente no site do ECMWF.

Quando você for no site para download do ERA-Interim (aqui) escolha o período, nível (se for o caso), variável e etc exatamente como fazia anteriormente. No entanto, quando você for clicar para fazer o download (Retrieve Grib ou Retrieve Netcdf) você deverá clicar em Views the MARS request e as informações dos seus dados necessárias para você modificar o seu script aparecerão ai é só modificar e sair para o abraço.

Eu fiz um teste para os seguintes dados:

Eu primeiro escolhi no site Pressure Level;
Escolhi janeiro e fevereiro de 2013;
No Select time escolhi (00:00:00, 06:00:00, 12:00:00, 18:00:00)
No Select Level e parameter escolhi U component of wind e level 850
Depois cliquei em Views the MARS request e apareceu o seguinte:

request (desconsidere)

Estimated number of fields: 472 (desconsidere)

retrieve, (desconsidere)
levelist=850,
stream=oper,
levtype=pl,
param=131.128,
dataset=interim,
step=0,
grid=0.75/0.75,
time=00/06/12/18,
date=2013-01-01/to/2013-02-28,
type=an,
class=ei

E o meu script atualizado ficou assim:


#!/usr/bin/env python
from ecmwfapi import ECMWFDataServer


server = ECMWFDataServer()

server.retrieve({
    'dataset' : "interim", (modificado)
    'step'    : "0", (modificado)
    'levelist' : "850", (inserido)
    'stream' : "oper", (inserido)
    'number'  : "all", (removi)
    'levtype' : "pl", (modificado)
    'date'    : "2013-01-01/to/2013-02-28", (modificado)
    'time'    : "00/06/12/18", (modificado)
    'origin'  : "all", (removi)
    'type'    : "an", (modificado)
    'class'    : "ei", (inserido)
    'param'   : "131.128", (modificado)
    'area'    : "70/-130/30/-60", (removi)
    'grid'    : "0.75/0.75", (modificado)
    'target'  : "uwnd.01012013.01022013.grib" (modificado)
    })

No levelist você pode inserir os níveis que precisar. Espero que tenham entendido e principalmente que funcione.

Boa Sorte e Bom Trabalho a Todos.

quinta-feira, 7 de novembro de 2013

Instalando o Climate Data Operator (CDO) com NetCDF, GRIB2 e HDF5


Para instalar o Climate Data Operator (CDO) com suporte para NetCDF, GRIB2 e HDF5. Você pode seguir os seguintes passos:

PS_1. Copie o comando existente dentro das caixas e cole em seu terminal. Isto evita problema de configurações de fonte.
PS_2. Os links de downloads (wget) podem estar desatualizados.
PS_3. Para aqueles que desejam instalar o CDO somente com suporte para Netcdf é necessário instalar a ZLIB, HDF5 e o Netcdf.

Baixe o CDO no site https://code.zmaw.de/projects/cdo/files

Para baixar no Linux use:
PS_4. Você pode baixar a última versão do CDO

wget -c http://ftp.nsysu.edu.tw/FreeBSD/ports/local-distfiles/sunpoet/cdo-1.5.9.tar.gz

Baixe o NetCDF no site http://www.unidata.ucar.edu/downloads/netcdf/index.jsp

ou,

wget -c http://pkgs.fedoraproject.org/repo/pkgs/netcdf/netcdf-4.2.1.1.tar.gz/5eebcf19e6ac78a61c73464713cbfafc/netcdf-4.2.1.1.tar.gz

Baixe o Grib API no site https://software.ecmwf.int/wiki/display/GRIB/Releases

ou,

wget -c https://software.ecmwf.int/wiki/download/attachments/3473437/grib_api-1.9.18.tar.gz

Baixe o Jasper no site http://www.ece.uvic.ca/~frodo/jasper/#download

ou,

wget -c http://www.ece.uvic.ca/~frodo/jasper/software/jasper-1.900.1.zip

Baixe o HDF5 e zlib no site ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4

Agora iremos começar a instalação.

Primeiro passo:

Em que diretório irá fazer a instalação do CDO? Sugestão /usr/local/cdo (crie a pasta que deseja instalar)

Segundo Passo:

Descompacte os arquivos baixados. Cada arquivo irá gerar uma pasta.

Ex: /home/usuario/Download/netcdf-4

Terceiro Passo: Começo da instalação.

ZLIB

Dentro da pasta da biblioteca execute o comando:

(/usr/local/cdo esta é a sugestão modifique a seu critério) ./configure -prefix=/usr/local/cdo 
make
make check
make install

HDF5

Dentro da pasta da biblioteca execute o comando:

./configure -with-zlib=/usr/local/cdo -prefix=/usr/local/cdo CFLAGS=-fPIC
make
make check
make install

NetCDF

Dentro da pasta da biblioteca execute o comando:

CPPFLAGS=-I/usr/local/cdo/include LDFLAGS=-L/usr/local/cdo/lib ./configure -prefix=/usr/local/cdo CFLAGS=-fPIC
make
make check
make install

Jasper

Dentro da pasta da biblioteca execute o comando:

./configure -prefix=/usr/local/cdo  CFLAGS=-fPIC
make
make check
make install

Grib

Dentro da pasta da biblioteca execute o comando:

./configure -prefix=/usr/local/cdo CFLAGS=-fPIC  -with-netcdf=/usr/local/cdo -with-jasper=/usr/local/cdo
make
make check
make install

Instalando o CDO

Dentro da pasta da biblioteca execute o comando:

./configure -prefix=/usr/local/cdo CFLAGS=-fPIC  -with-netcdf=/usr/local/cdo -with-jasper=/usr/local/cdo -with-hdf5=/usr/local/cdo  -with-grib_api=/usr/local/cdo
make
make check
make install

Desta forma você conseguirá instalar o CDO com suporte para netcdf, HDF5 e Grib.

PS_5. Instalando desta forma os binários de todas as bibliotecas estarão dentro do diretório /usr/local/cdo/bin e se você quiser pode adicionar este PATH no seu .bashrc. Você pode compilar as bibliotecas em pastas separadas a única alteração é indicar os diretórios corretos no momento de compilar o CDO.

PS_6. Excelente apostila para uso do CDO em Português você encontra no site do Guilherme Martins é só clicar aqui e baixar.

Boa Sorte e Bom Trabalho a Todos!!