GrADS

O Grid Analysis and Display System (GrADS) é uma ferramenta interativa usada para facilitar o acesso, manipulação e visualização de dados de Ciências da Terra. Suporta dados no formato GRIB, NetCDF, HDF e BUFR. Ele considera um ambiente de cinco dimensões: longitude (lon), latitude (lat), nível vertical (lev), tempo (time) e uma variável meteorológica. Os conjuntos de dados estão relacionados com um arquivo de descrição.

Instalação

O GrADS pode ser instalado através do repositório no Debian (comando “sudo apt-get install grads”) ou baixando e compilando seu código fonte baixado diretamente no site do OpenGrADS – clique na versão, sistema operacional e arquitetura (32 ou 64 bits). O Projeto OpenGrADS procura desenvolver interfaces avançadas e extensões baseadas no motor principal do GrADS, desenvolvido pelo COLA (Center for Ocean-Land-Atmosphere Studies).

Veja esse exemplo para download da versão 2.0.2 (tive problemas com a 2.1.0) para Linux 64 bits – complementando a instalação do WRF do outro post. Depois, o conteúdo da pasta “Contents” deve ser copiado para a pasta de destino:

Agora edite o arquivo “.bashrc”, localizado no “Home” do seu usuário, para incluir o caminho do arquivo executável (grads) e do diret´orio contendo mapas, fontes e outros conjuntos de dados (“Resources/SupportData”):

Abra um novo terminal (para atualizar as variáveis de ambiente) e execute o comando “grads” para abrir o programa (em versões mais antigas que a 2.0.x, poderia ser o comando gradsnc ou outro, dependendo do formato do arquivo de dados). Se o sistema operacional não encontrá-lo, crie um link para esse arquivo em “/usr/local/bin”.

Se reclamar que está faltando alguma biblioteca compartilhada (“error while loading shared libraries”) e você não a tenha, copie o arquivo correspondente da pasta “libs” para a pasta “gex”. Por exemplo:


Outra opção é instalar o GrADS do COLA. Você deve baixar o arquivo, extrair seu conteúdo com os arquivos compilados e copiá-los, juntamente com as bibliotecas, para os respectivos diretórios padrão:

Você também deve baixar um arquivo suplementar contendo fontes e anexos, depois copiando para o lugar padrão:

Para começar uma sessão do GrADS, execute o arquivo com seu caminho completo (considerando que você não esteja na pasta do executável nem tenha definido um PATH no “.bashrc”): /usr/local/bin/grads/grads.

Caso dê um erro reclamando a falta da “User-Defined Plug-in Table (UDPT)“, crie o arquivo “/usr/local/lib/grads/udpt” e inclua a tabela do link. Além disso, inclua as seguintes variáveis de ambiente:

Mesmo depois disso, ainda tive o erro “GX Package Error: dlopen failed to get a handle on gxprint plug-in named “Cairo” libcairo.so.2: cannot open shared object file: No such file or directory”. Por isso, opte pelo opengrads, muito mais fácil.

Uso

O site do GrADS disponibiliza um tutorial para treinar. Seu arquivo de exemplo pode ser baixado e extraído através dos seguintes comandos:

O diretório “example” deve conter um arquivo descritor (model.ctl), um binário de dados (model.dat) e o conteúdo do tutorial. Dentro dessa pasta, execute o programa do GrADS (grads -l) e siga o roteiro do tutorial. Será aberta uma janela onde serão visualizados os mapas e gráficos gerados a partir do terminal do GrADS (por isso, se estiver em um computador remoto acessado via SSH, use o parâmetro “-X” ao conectar). Para sair, deve ser executado o comando “quit”.

O ambiente dimensionado é controlado com o comando set. Quando todas as dimensões estão fixas, está se referindo a um único ponto de grade dos dados; quando uma dimensão está variante, é um conjunto unidimensional de dados, e assim por diante. O comando display (d) exibe os dados de uma determinada variável com respeito ao atual ambiente dimensionado. Antes de dimensioná-lo, é importante limpar a janela gráfica através do comando clean. Os comandos “set mpdset hires” e “draw map” desenham o mapa de continentes e contorno de países.

Exemplo de mapa feito no GrADS com rodada de previsão numérica de tempo utilizando WRF

O arquivo descritor do GrADS contém informações do arquivo de dados que está sendo descrito, especificado internamente na variável DSET – se o nome do arquivo de dados começar com um acento circunflexo ^, então o conjunto de dados e o arquivo descritor estão no mesmo diretório. A entrada DTYPE especifica o tipo de dado: grib, hdfsds, netcdf, ou station -se não for informado assume-se que o tipo de dado é binário em ponto de grade. Veja mais sobre os formatos de arquivos de dados no post sobre dados de reanálise.

Ainda sobre o arquivo descritor, a entrada UNDEF especifica os valores de dados indefinidos ou ausentes. XDEF, YDEF, ZDEF e TDEF definem os valores dos pontos de grade para a dimensão X (longitude), Y (latitude), Z (altitude) e tempo (em número de passos). O primeiro argumento define o número de passos nessa dimensão e o segundo é o mapeamento, que define o método pelo qual as variáveis são designadas para os pontos de grade: linear (com os argumentos adicionais de início e incremento) ou níveis de pressão (com o argumento adicional que especifica a variável para cada ponto de grade). Por fim, segue uma listagem de n variáveis e suas características, finalizada com “endvars”.

As variáveis “rc” e “result” de script estão pré-definidas e seus valores mudam a cada execução dos comandos GrADS do script (na mesma linha ou da linha anterior). Uma variável global tem seu nome começando com um underscore (_) e mantem seu valor em todo o arquivo de script.

Exemplos

O GrADS possui uma linguagem de scripts acionada pelo comando run:

A opção “-b” executa o grads no modo lote (ou seja, nenhuma janela de saída gráfica é aberta), “-l” executa o grads no modo landscape (paisagem) e “-c” executa o comando fornecido como o primeiro comando assim que o GrADS for iniciado. Para sair do GrADS, deve ser executado o comando “quit”. Comentários são feitos com a linha iniciando com cerquilha (#) ou asterisco (*).

O script a seguir recebe como argumentos a latitude, longitude, nome do local, data inicial e data final para extrair os dados de um arquivo binário dessa localidade e imprimir os valores de temperatura mínima, máxima e precipitação em um arquivo de texto. A data incluída está no formato “07SEP2015” (por exemplo), o que exige o uso de uma função para converter o texto do mês para um inteiro, que se encontra no fim do arquivo. Pode-se observar exemplos de como receber argumentos, funções, uso de while e if, como executar operações matemática (a temperatura é convertida de Kelvin para graus Celsius) e como recortar strings.

O GrADS é muito usado para imprimir mapas e gráficos das variáveis. Podem ser apresentados usando o comando d (display) e ‘printim /path/grafico.png x600 y600 white’ para gravá-lo em um arquivo de imagem PNG – os parâmetros são o tamanho em pixel nos eixos x e y e fundo branco.

Um manual do GrADS pode ser visto em português nesse link do CPTEC/INPE. Este Reference Card também pode ajudar bastante.