Gostaria de ajudar?

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!!

quarta-feira, 30 de outubro de 2013

Salvando arquivo texto no GrADS

A pedidos de Camila Carpenedo, segue uma dica de como salvar uma ou mais variável em um arquivo texto (.txt, ascii e etc) no GrADS.

A solução para isso é utilizar o comando 'set gxout print' e 'set prnopts ' format ' ' numl ' ' numb ' ' u ' '. No entanto, para que não tenhamos grandes dificuldades irei disponibilizar para vocês o script/função desenvolvida no OpenGrADS Cookbooks

A função é a seguinte:

function fprintf(args)
* Command line argumets
* ---------------------
  expr = subwrd(args,1)
  file = subwrd(args,2)
  format = subwrd(args,3)
  numl = subwrd(args,4)
  numb = subwrd(args,5)
  u = subwrd(args,6)
  if ( file='' )
    say ''
    say 'NAME'
    say '     fprintf - print GrADS variables to a text file'
    say ''
    say 'SYNOPSIS'
    say '     fprintf  expr  txtFile  [format numl numb [u]]'
    say ''
    say 'DESCRIPTION'
    say '     Evaluates the contents of the GrADS expression *expr* writing'
    say '     its values to a formatted text file *txtFile*. On output, the'
    say '     number of values and the undef values are returned; a negative'
    say '     number of values signals an error condition.'
    say ''
    say '     Unlike the output of *set gxout print*, the resulting ASCII'
    say '     file has only the data values and *no header*.'
    say ''
    say 'OPTIONS'
    say '     The optional parameters are the same as the ones required by'
    say '     the GrADS command *set prnopts*, namely'
    say '     format   a C language template for formatting ASCII output.'
    say '              Default is %g.'
    say '     numl     number of values to print per record. Default is 8.'
    say '     numb     number of blanks to insert between values. Default is 1.'
    say '     u        print "Undef" instead of the numerical value for'
    say '              missing data.'
    say 'BUGS'
    say '     The GrADS expression cannot have spaces in it.'
    say ''    
    say 'COPYRIGHT'
    say '     This script has been placed in the public domain'
    say ''
    return
  endif
* Set the display environment and produce buffered ASCII output
* -------------------------------------------------------------
  'set gxout print'
  if ( format != '' )
    'set prnopts ' format ' ' numl ' ' numb ' ' u ' '
  endif
  'display ' expr
   if ( rc!=0 ); return -1; endif
*  Get rid of header line: Printing Grid -- 3358 Values -- Undef = 1e+20
*  but record number of values and undef values for later reference
*  ---------------------------------------------------------------------
   buffer = result
   i = 1; line = sublin(buffer,i)
   n = subwrd(line,4)
   undef = subwrd(line,9)
* Now write the data values to text file: first line...
* -----------------------------------------------------
  i = 2; line = sublin(buffer,i)
  if ( write_(file,line) > 0 ); return -2; endif
* Append subsequent lines
* -----------------------
  i = i + 1; line = sublin(buffer,i)
  while ( line != '' )
    if ( write_(file,line,append) != 0 ); return -3; endif 
    i = i + 1; line = sublin(buffer,i)
  endwhile
  if ( close(file) != 0 ); return -4; endif
* All done
* --------
  say 'wrote ' n ' values to file "' file '"'
  return n ' ' undef ' ' 
function write_(file,line)
   rc = write(file,line)
   return subwrd(rc,1)

Para utilizar a função é simples:

Você deve criar um arquivo .gs contendo a função descrita acima chamada de fprintf.gs. Você pode salvar a função no diretório script do GrADS e desta forma você poderá "chamar" a função da mesma forma que você chamas as funções de barra (cbar, cbarn e etc) somente pelo nome.

Após criar a variável que pode ser uma média, anomalia, serie temporal e etc, basta executar o seguinte comando:

ga -> fprintf variável arquivo.txt

No Cookbooks existe umas outras funcionalidade interessantes que vocês podem aproveitar.

Boa Sorte e Bom Trabalho a Todos!!

quinta-feira, 5 de setembro de 2013

Como baixar artigos pagos?

Recentemente conversando com amigos discutimos a importância que assinaturas corporativas de revistas de ciência internacionais tem para o desenvolvimento da Ciência. Na ocasião também discutimos a legalidade de você como autor de um trabalho, que está sendo disponibilizado de forma paga pelo site da revista, disponibilizar este artigo de forma gratuita em uma página pessoal por exemplo. Coincidentemente hoje eu vi sendo compartilhado uma página em que mostrava como você ter acesso a artigos científicos pagos de forma gratuita. Eu pesquisei um pouco para descobrir se isto é legal ou viola alguma lei de direitos e tal e:


Decidi Retirar do Ar :)



Boa Sorte e Bom Trabalho a Todos!!

quinta-feira, 1 de agosto de 2013

Scripts Grads Chihiro Kodama


Olá a pedidos estou colocando aqui o link para lista de Scripts do Chihiro Kodama do (JAMSTEC). O Kodama criou alguns dos scripts que hoje são utilizados no Grada2 também conhecido como OpenGrads, um script/função muito conhecido por exemplo é ctlinfo. Esta lista vai facilitar muito o cálculo e os plots de muita gente.

Eu já testei todos e eles funcionam perfeitamente.

Por exemplo o script xcbar.gs possibilita alterar diversas características da barra tais como largura, posição, comprimento, estrutura das extremidades da barra (triângulo, circulo, quadrada).

Um outro exemplo é o color.gs com ele você gera automaticamente uma lista de cores que irão variar dentro do seu limiar, por exemplo se você quiser criar um mapa de anomalia que varia do vermelho (negativo) para o azul (positivo) basta executar color.gs -10 10 red->blue.

Para facilitar o uso você pode baixar todos os scripts e salva-los na pasta Scripts do seu grads. No meu caso a minha pasta fica no diretório /usr/local/grads-2.0.1/Classic/scripts/. Feito isso você poderá utilizar o script pelo nome sem ser necessário informar o diretório ou a extensão.

Para o download clique aqui gscrits. Ou você pode ir direto na página do Kodama na página vocês encontraram uma explicação e alguns exemplos de como utilizar os scripts.

Possivelmente eu colocarei alguns exemplos aqui no blog se o tempo me permitir :). Bom é isso.

Boa Sorte e Bom Trabalho a Todos!
Cristiano

sexta-feira, 12 de julho de 2013

Mudando local do rótulo do vetor no GrADS

Como mudar de local o "Label" dos vetores no Grads?

Recentemente precisei plotar um campo de vetor vento sobre um campo de OLR (shaded) e sempre que plotava a barra de cores ela ficava sobre o "vetorzinho" que o GrADS insere automaticamente. Este "vetorzinho" é referente a magnitude máxima dos vetores contidos no campo. No meu caso específico não tinha muito espaço para deslocar a minha barra de cores e seria mais interessante mudar a posição deste label. Eu resolvi este problema utilizando um script que encontrei na internet, desenvolvido por Masami Nonaka. O programa se chama (vec.gs) para baixar o script é só clicar sobre o nome do script.

No próprio script vem ensinado a utilização, segue abaixo uma figura que fiz com o comando de exemplo:

'sdfopen uwnd.nc'
'sdfopen vwnd.nc'

'set gxout display color white'
'c'

'set lon -100 50'
'set lat -10 40'

'set gxout vector'
'run vec.gs uwnd.1;vwnd.2 -SCL 0.4 4.0 -P 7.7 7.3'

Que produziu a figura abaixo:

Observe que coloquei o label no topo da figura, alternando os comandos você poderá colocar onde achar melhor.

Boa Sorte e Bom Trabalho a Todos.
Cristiano

terça-feira, 27 de novembro de 2012

Compilando a Lib FFTPACK

Sempre que migro de maquina ou processador preciso compilar a lib FFTPACK (Fortran para Transformada de Fourrier) e sempre esqueço como compilar, por isso segue uma maneira fácil (não sei se a ideial) de compilar esta lib:

Baixe todos os arquivos .f (FORTRAN) desta página:

http://www.netlib.org/fftpack/

Eu usei o compilador ifort para compilar:

>ifort -c *.f

Desta forma criei todos os arquivos objetos (.o) necessários, em seguida:

>ar cr libfftpack.a *.o (é isso mesmo ar rc estes programas já são comuns ao Linux)

Desta forma a lib já esta criada, para testar:

>ranlib libfftpack.a

Se não apresentar erro a lib foi compilada com sucesso.

Boa Sorte e Bom Trabalho a Todos!!

Cristiano

quinta-feira, 1 de novembro de 2012

Gráfico de Barra

Olá a todos, ontem vimos como plotar um gráfico de linha com algumas características "especiais", hoje iremos mostrar como plotar um gráfico de barras no Grads.

Para plotar o Gráfico abaixo precisaos observar alguns comandos do Grads.





set bargap <porcentagem> a porcentagem vai de 0 a 100 - link.

set barbase <base> set as opções de configurações da barra ,

                                 val: cada barra sobe ou desse em relação ao valor (val);
                                 botton: cada barra se eleva a partir da parte inferior                                                          do gráfico;
                                 top: cada barra desse a partir do topo do gráfico.
set baropts <filled/outline> escolha o tipo de display para barra
                                             (preenchida ou não).


Segue um script exemplo:


"reinit"
"set display color white"
"c"
"set grads off"
"set xlopts 1 3 0.15"
"Set ylopts 1 3 0.15"
"sdfopen uwnd.nc"
"set lon 270"
"set lat 50"
"set z 1"
"set t 1 31"
"set gxout bar"
"set ccolor 5"
"set bargap 30"
"set barbase 0"
"set baropts outline"
"set cthick 6"
"d uwnd"


É Isso.
Boa Sorte e Bom Trabalho a Todos!!