Upload
yuri-santana
View
231
Download
12
Embed Size (px)
Citation preview
1
FUNDAÇÃO CEARENSE DE METEOROLOGIA E RECURSOS HIDRICOS
Por:
Dr. Antonio Carlos Santana dos Santos
Universidade Estadual do Ceará - UECE
Fundação Cearense de Meteorologia e Recursos Hídricos - FUNCEME
Dr. Sergio Sousa Sombra
Fundação Cearense de Meteorologia e Recursos Hídricos – FUNCEME
Fortaleza,
Agosto de 2006
2
SUMÁRIO
SUMÁRIO.............................................................................................................................. 2
1. Introdução........................................................................................................................... 3
2. Instalação ............................................................................................................................ 3
3. Executando o FERRET ...................................................................................................... 3
4. Conceitos básicos ............................................................................................................... 3
5. Redimensionamento do tamanho da figura ........................................................................ 5
6. Criando uma nova janela .................................................................................................... 5
7. Acessando um dado NETCDF ........................................................................................... 5
8. Fazendo mais de um gráfico na mesma janela ................................................................... 6
9. Usando variáveis abstratas.................................................................................................. 7
10. Usando transformações..................................................................................................... 7
11. Usando expressões algébricas .......................................................................................... 8
12. Comandos Comuns......................................................................................................... 10
13. Criando o mapa dos estados ........................................................................................... 11
14. Gerando figures com cores personalizadas .................................................................... 11
15. Operadores...................................................................................................................... 12
16. Alguns comandos úteis:.................................................................................................. 13
18. Linhas de corrente .......................................................................................................... 21
3
1. Introdução
Este material tem como principal objetivo apresentar alguns aspectos básicos da utilização
do software de visualização de dados FERRET. A idéia do curso surgiu pela grande
utilização dessa ferramenta no dia a dia da FUNCEME, bem como sua utilidade nos cursos
de graduação e pós-graduação das universidades locais, como UFC e UECE. Esse software
é um poderoso programa para visualizar e fazer operações diversas de cálculos com dados
no formato NETCDF, sua facilidade de uso é o principal ponto fonte do software. Na
FUNCEME o mesmo já usado para visualizar dados dos modelos RSM e RAMS
2. Instalação
A instalação do Ferret é bastante simples, leia o arquivo:
http://ferret.wrc.noaa.gov/Ferret/Downloads/ferret_installation_and_update_guide_v550.html
3. Executando o FERRET
Para executar o FERRET no linux é necessário está em ambiente csh, e executar o comando
ferret, conforme o pode ser visto em seguida.
>csh
%>ferret
yes? go tutorial
4. Conceitos básicos
No ferret todas as variáveis são definidas em uma grade. A grade permite localizar um
dado no espaço e no tempo. Uma coleção de variáveis a ser manipuladas no disco é
denominada data set.
4
Para acessar uma variável no FERRET, devemos saber o nome, o arquivo de dados(data
set) e a região de interesse.
A seqüência abaixo mostra como ler um dado em ferret.
1 – especificar o data set
2 – especificar a região
3 – definir as variáveis ou expressões(opcional)
4 – requerer uma saída
Exemplo 1:
Yes? use coads
Yes? set region/z=0/t=”16-jan-1982”/x=160e:160w/y=20s:20n
Yes?vector uwnd,vwnd
Figura 1: vetor velocidade do vento
Comandos de linha no ferret, geralmente usa-se o comando ferret seguido de uma opção,
as mais usadas são:
%ferret [-gui] [-gif] [-unmapped]
-gui para usar-lo graficamente
-gif para gerar figuras gif
5
-unmapped, geralmente usado para criar animações e arquivos gifs
Exemplo 2:
%ferret –gif
Yes?(comandos para gerar alguma figura)
Yes?frame/file=figura.gif
5. Redimensionamento do tamanho da figura
Caso queira limpar a área antes de fazê-la.
Exemplo 3:
Yes? set window/clear/size=0.25
Yes?set window/size=0.25/clear (dessa forma irá ocorrer um erro)
6. Criando uma nova janela
Para criar uma nova janela execute o comando abaixo
Yes?set windows/new
7. Acessando um dado NETCDF
Exemplo 4
6
8. Fazendo mais de um gráfico na mesma janela
O comando SET VIEWPORT torna possível criar mais de um gráfico na mesma janela,
veja figura 2 e a seqüência de comandos para fazê-la.
Figura 2: temperatura da superfície do mar e temperatura do ar.
% ferret
yes? USE coads_climatology
yes? SET REGION/X=160E:130W
yes? SET REGION/Y=-10:10/L=5
yes? SET VIEWPORT upper
yes? CONTOUR sst
yes? SET VIEWPORT lower
yes? CONTOUR airt
yes? QUIT
7
9. Usando variáveis abstratas
Variáveis Abstratas são aquelas que não depende de um arquivo de dados, que podem ser
facilmente mostrado no FERRET (para mais detalhes veja o manual). Por exemplo,
podemos examinar a função SIN(X) no intervalo [0,π ], veja figura 3.
Figura 3: função seno no intervalo de 0 a π .
% ferret
yes? PLOT/I=1:100 sin(3.14*I/100)
yes? QUIT
10. Usando transformações
O que chamamos de transformações é uma determinada operação sobre uma variável em
particular ao longo de um eixo especifico em que a sintaxe é “@trn” onde “trn” é o nome
da transformação. Veja alguns exemplos abaixo.
@DIN integral definida.
@IIN integral indefinida
@AVE média
@VAR variância
@MIN mínimo
@MAX máximo
@DDC derivada centrada
@DDF derivada avançada
8
@DDB derivada recuada @SUM soma
As figuras 4 e 5 mostram aplicações da transformação “@AVE” e “@LOC”
Figura 4: temperatura média do ar
% ferret
yes? USE levitus_climatology
yes? SET REGION/Y=30s:30n/X=160W
yes? PLOT temp[Z=0:100@AVE]
yes? QUIT
11. Usando expressões algébricas
Neste exemplo, uma série de dados que contém as temperaturas de superfície do mar, as
temperaturas de ar, e as medidas da velocidade de vento. Nós desejamos olhar o calor
sensível em seu primeiro passo de tempo (L=1) (figura 5). Nós especificamos uma escala
da latitude e níveis do contorno e também a definição de uma variável denominada sens
heat que é o calor sensível e onde podemos ver uma aplicação do uso de expressões
algébricas.
9
% ferret
yes? USE coads_climatology !monthly COADS climatology
yes? LET kappa = 1 !arbitrary
yes? LET/TITLE="SENSIBLE HEAT" sens_heat = kappa * (airt-sst) * wspd
yes? SHADE/L=1/LEV=(-20,20,5)/Y=-90:40 sens_heat
yes? QUIT
As isotermas podem ser localizado com a transformada "@LOC" o qual irá retornar a
posição da linha central onde o valor do argumento de @LOC ocorre primeiramente.
Assim, "TEMP[Z=0:200@LOC:20 ]" encontra a primeira ocorrência do valor 20 da
temperatura ao longo da linha central de Z, fazendo a varredura de todos os dados entre 0 e
200.
10
% ferret
yes? USE levitus_climatology
yes? SET REG/Y=10s:30n/X=140E:140W
yes? PPL CONSET .12 !label size
yes? CONTOUR temp[Z=0:200@LOC:20]
yes? QUIT
12. Comandos Comuns
A quick reference to the most commonly used Ferret commands (typing "SHOW
COMMANDS" at the Ferret prompt lists all commands):
Comando Descrição
USE Nome do dado a ser analisado
SHOW DATA Produz um sumário das variáveis contida no arquivo de dados.
SHOW GRID Examina as coordenadas de uma grade.
SET REGION Delimita a região a ser analisada.
LIST Produz uma lista de dados
PLOT Gera gráficos.
CONTOUR Faz linhas de contorno de uma determinada variável.
FILL Faz gráfico no modo cheio, obedecendo às linhas de contorno .
SHADE Produz gráficos cheios, porém ponto a ponto .
VECTOR Faz setas vetoriais.
POLYGON Criar regiões poligonais
DEFINE Define eixos, grades e símbolos.
STATISTICS Cria um sumário estatístico das variáveis e expressões.
LET Define uma nova varíavel.
SAVE Salva um arquivo no formato NETCDF.
GO Executa uma seqüência de comandos(script Ferret).
11
13. Criando o mapa dos estados
Os comandos abaixo geram os contornos dos paises(primeiro) e dos estados(segundo), veja
figuram, onde os números depois de detail define a cor e espessura do contorno.
go land_detail.jnl 4
go land_detail N " " 4 4
Figura 5: Índice de Angstron
14. Gerando figures com cores personalizadas
Com o Ferret é possível criar figuras escolher diversos gradientes de cores, bem como
modificá-los ou até mesmo criar.
Veja o exemplo abaixo um exemplo para criar uma paleta, o mesmo é parte de um script.
Exemplo 1
PALETTE RAIN_HOLE_CMYK.SPK
FILL/LEV=50/TITLE="UMIDADE RELATIVA (%)" RH[L=3, D=1]
!FILL/LEV="(0,10,0.5) (10,20,1) (20,40,2) (40,80,4)(80,100,5)"/TITLE="UMIDADE 4. RELATIVA
(%)" RH[L=3,D=1]
CONTOUR/LEV=(0,100,5)/OVER RH[L=3,D=1]
12
Exemplo 2
yes? PALETTE rainbow
yes? ppl list shaset
yes? set view upper; go magnify 1.2
yes? FILL/levels=10 temp[z=0]; go land thick
yes? set view lower; go magnify 1.2
yes? FILL/lev=20 temp[z=0]; go land thick
Resultado 2
15. Operadores
Os operadores validos são:
“ + ”(soma); “ - ”(diferença); “ * ”(produto); “/ ”(divisão); “ ^ ”(exponencial);
“AND”(E); “OR”(OU); “GT”(MAIOR QUE) “GE”(MAIOR OU IGUAL QUE); “LT”(MENOR
QUE); “LE”(MENOR OU IGUAL QUE); “EQ”(IGUAL); “NE”(NÃO IGUAL OU DIFERENTE
QUE)
Exemplos:
Examples:
IF `i GT 5` THEN SAY "I is too big" ENDIF
Escreve a mensagem se o valor de I for maior que 5
13
16. Alguns comandos úteis: Para usar qualquer comando UNIX no shell do ferret basta digitar sp (ou spawn) antes do comando desejado, ex:
yes? sp pwd
yes? sp ls ; sp du -hc teste.dat
para abrir vários arquivos cdf ao mesmo tempo, ou usar vários comandos em seqüência no mesmo prompt, basta depará-los por ponto e vírgula:
yes? set d esku_heat_budget.cdf ; set d monthly_navy_winds.cdf ; set d etopo40.cdf
mostra as variáveis contidas no primeiro arquivo aberto ( esku_heat_budget.cdf ):
yes? sh d 1 ! ou: show data 1 ou ainda: sh d esku_heat_budget.cdf
mostra as variáveis contidas no terceiro arquivo (etopo40.cdf):
yes? sh d 3
mostra as grades das variáveis CLD (cloudiness) contida no primeiro arquivo ( esku_heat_budget.cdf ) e UWND (zonal wind ) contida no segundo arquivo (monthly_navy_winds.cdf) :
yes? sh g cld[d=1] ; sh g uwnd[d=2] ! sh g é o mesmo que show grid
seleciona o segundo arquivo (monthly_navy_winds.cdf )com default:
yes? set d 2 ! ou set d monthly_navy_winds.cdf
yes? sh g uwnd ! Note que não é mais necessário colocar: sh d uwnd[d=2]
salva variável do primeiro arquivo: SST (Hemisf. Sul) e as variáveis do segundo arquivo: UWND e VWND (toda a grade), em um mesmo arquivo cdf (esku.cdf):
yes? save/file=esku.cdf sst[d=1,y=0:90s] , uwnd[d=2] , vwnd[d=2]
no entanto caso o arquivo ( esku.cdf) já exista, precisa ser removido antes de se executar o comando acima (save/file):
yes? sp rm -rf esku.cdf
fechando todos os arquivos cdf abertos e fechando o ferret:
yes? canc d/all
yes? ex ! ou exit
14
abrindo o ferret no modo gif:
yes? ferret -gif
abrindo só o arquivo recém criado:
yes? set d esku.cdf
yes? sh d ! lista variáveis no arquivo
define a intensidade do vento:
yes? let wind = (UWND^2.0 + VWND^2.0)^0.5 ! ou:
yes? let wind = (UWND[d=1]^2.0 + VWND[d=1]^2.0)^0.5 ! caso existam outros arquivos
abertos
lista na tela o eixo dos tempos para a nova variável:
yes? list wind[i=10,j=10]
yes? sh g wind[d=1] ! Mostra a grade da nova variável
intensidade do vento médio para o ano de 1990 (com linhas de contorno):
yes? fill wind[d=1,t=16-JAN-1990:17-DEC-1990@ave]
yes? cont/o wind[d=1,t=16-JAN-1990:17-DEC-1990@ave] ! cont/o = contour/over
yes? go land 1 ! mapa
yes? frame/file=fig01.gif ! salva a figura em um arquivo .gif. O diretório onde a figura foi
salva é dado pelo comando:
yes? sp pwd
especificando as intensidades desejadas (de 0 a 12 m/s com espaçamento de 2m/s):
yes? fill/lev=(0,12,2) wind[d=1,t=16-JAN-1990:17-DEC-1990@ave] ! lev = levels
yes? con/o/lev=(0,12,2) wind[d=1,t=16-JAN-1990:17-DEC-1990@ave]
yes? go land 1
yes? frame/file=fig01.gif
para valores de 0 a 10m/s (espaçamento de 2m/s) e acima de 10m/s, média em todos os intervalos de tempos do arquivo:
yes? fill/levels="(0,10,2)(inf)" wind[d=1,t=@ave]
! use t=@ave ou t=16-JAN-1982:17-DEC-1992@ave]
yes? go land 1
yes? frame/file=fig01.gif
15
mair refinamento de 0 a 4 m/s (espaçamento de 0.2). De 4 a 12 m/s espaçamento de 2m/s: yes? fill/levels="(0,4,0.2) (4,12,2)(inf)" wind[d=1,t=16-JAN-1990:17-DEC-1990@ave] yes? go land 1
yes? frame/file=fig01.gif
ajustando as dimensões: aspect = Y/X ,aspect=0.5 significa que a figura na vertical tem metade do seu tamanho na horizontal. yes? SET window/ASPECT=1/size=0.6 ! ou caso queira uma figura maior
yes? SET window/ASPECT=1/size=0.9 ! A dimensão da figura pode ser ajustada com o
mouse, caso não se esteja no modo gif (ferret -gif)
América do Sul, média temporal dos ventos: yes? SET window/ASPECT=1/size=0.9
16
yes? fill wind[x=90w:30w,y=15n:60s,l=@ave] ! América do Sul
yes? go land_detail 1 "" 1 1 "" "" 1 ! mapa político
yes? frame/file=fig01.gif
uso de land_detail: yes? go land_detail arg1 arg2 arg3 arg4 arg5 arg6 arg7
yes? SET window/ASPECT=1/size=0.4
yes? fill wind[x=90w:30w,y=15n:60s,l=@ave,d=1]
yes? go land_detail 1 "" 1 "" "" "" 1
yes? Frame/file=fig01.gif
sem os estados figura abaixo:
yes? fill wind[x=90w:30w,y=15n:60s,l=@ave,d=1]
yes? go land_detail 1 "" 1 1 "" "" 1 ! com os estados
yes? frame/file=fig01.gif
17
! arg1 cor dos continentes ex: 1,2,3,etc... ! arg2 use “” ou overlay ! arg3 cor para os países (use 1,2,etc..) ou “” se não quiser desenhá-los ! arg4 cor dos estados ,use 1,2,etc... ou “” ! arg5 rivers_pen Pen for largest rivers ! arg6 more_rivers Pen for additional rivers ! arg7 marine boundaries Pen for marine boundaries in South Pacific, Bering Strait
para redirecionar o gráfico para outro arquivo gif basta mudar o nome do gif no comando frame/file: yes? fill wind[x=90w:30w,y=15n:60s,l=@ave,d=1]
yes? go land_detail 1 "" 1 "" "" "" 1
yes? frame/file=fig02.gif
voltando para o gif original: yes? fill wind[x=43w:36w,y=2s:9s,l=@ave,d=1] ! Ceará
yes? go land_detail 1 "" 1 1 "" "" 1
yes? frame/file=fig01.gif
comandos principais do pacote gráfico PPLUS: carregando o PPLUS no ferret yes? ppl echo on
o comando axlsze seleciona o tamanho dos números que especificam as longitudes e as latitudes no eixos horizontal e vertical, ex: ppl axlsze .12 , .15 significa que os números que especificam as latitudes (eixo vertical) serão maiores dos que os números que especificam as latitudes (eixo horizontal) yes? ppl axlsze .13,.13 ! labelsverticais maiores
yes? fill/lev=10 wind[x=90w:30w,y=15n:60s,l=@ave,d=1]
yes? go land_detail 1 "" 1 "" "" "" 1 ! mapa
yes? ppl fill ! desenha o gráfico com os labelsmodificados
yes? frame/file=fig01.gif
qualquer comando a ser sobreposto ao fill (ou shade) no gráfico anterior (tais como vector/over ou contour/over) precisa ser executado depois do ppl fill (ou ppl shade),ex: yes? ppl axlsze .13,.13 ! labelsverticais maiores
yes? fill/lev=10 wind[x=90w:30w,y=15n:60s,l=@ave,d=1]
yes? go land_detail 1 "" 1 "" "" "" 1 ! mapa
yes? ppl fill ! desenha o gráfico com os labelsmodificados
vector/o uwnd[x=90w:30w,y=15n:60s,l=@ave,d=1], \
vwnd[x=90w:30w,y=15n:60s,l=@ave,d=1]
yes? frame/file=fig01.gif
18
ppl labset htitle , hxlab , hylab , hlabs yes? ppl labset .15, .13, .13, .13
fill/lev=10/nolabels wind[x=90w:30w,y=15n:60s,l=@ave,d=1]
yes? ppl xlab hxlab
yes? ppl ylab hylab
yes? ppl title htitle
yes? ppl fill
yes? go land_detail 1 "" 1 "" "" "" 1
yes? frame/file=fig01.gif
comando shakey sintaxe: yes? ppl shakey s1 , s2 , s3 , s4 s1: mostra a barra de cores(1) ou não (0) s2: orientação da barra de cores: horizontal e acima: 0 , vertical e a direita: 1 s3: tamanho em polegadas dos números da barra de cores, ex:.13 ou 0.13 s4: se for diferente de 0 , os números na barra vertical são escritos com intervalos de tamanho s4 ex: yes? ppl axlsze .13,.13
yes? ppl labset .15, .13, .13, .13
yes? fill/lev=15/nolabels wind[x=90w:30w,y=15n:60s,l=@ave,d=1]
yes? ppl shakey 1,0,0.13,
yes? ppl xlab EIXO X
yes? ppl ylab EIXO Y
yes? ppl title HTITLE
yes? ppl fill
yes? go land_detail 1 "" 1 "" "" "" 1
19
yes? frame/file=fig02.gif
série temporal, média em torno do Ceará: yes? plot wind[x=41.5w:37.5w@ave,y=2s:8s@ave,d=1]
de 1982 a 1985:
yes? plot wind[x=41.5w:37.5w@ave,y=2s:8s@ave,t=16-JAN-1982:16-DEC-1985,d=1]
listando esta última série temporal para um arquivo txt (wind.dat): yes? list/file=wind.dat wind[x=41.5w:37.5w@ave,y=2s:8s@ave,t=16-JAN-1982:16-DEC-
1985,d=1]
caso o arquivo wind.dat precise ser redefinido, o arquivo pré existente precisa ser apagado antes de se usar o list/file:
yes? sp rm -rf wind.dat
pode-se especificar o formato dos dados salvos no arquivo txt. A especificação é feita com o comando format e a formatação segue o mesmo padrão usado no fortran77: (ex: f7.5,4x,I5). No caso de duas colunas de dados contendo as séries temporais dos ventos zonal e meridional em torno do Ceará: inprime na tela: yes? list uwnd[x=41.5w:37.5w@ave,y=2s:8s@ave,t=16-JAN-1982:16-DEC-1985,d=1],
vwnd[x=41.5w:37.5w@ave,y=2s:8s@ave,t=16-JAN-1982:16-DEC-1985,d=1]
salva em um arquivo:
yes? sp rm -rf wind.dat
20
yes?list/file=wind.dat/format=(f6.3,5x,f6.3) \
uwnd[x=41.5w:37.5w@ave,y=2s:8s@ave,t=16-JAN-1982:16-DEC-1985,d=1], \
vwnd[x=41.5w:37.5w@ave,y=2s:8s@ave,t=16-JAN-1982:16-DEC-1985,d=1]
17 . Gerando mapas locais Exemplo !Departamento de Meteorologia - DEMET !SCRIPT PARA PLOTAR O MAPA DO CEARA NO SOFTWARE FERRET !ELABORACAO !ANTONIO CARLOS SANTANA DOS SANTOS,Dr. !SERGIO SOUSA SOMBRA,Dr. !ALEXANDRE ARAUJO COSTA, PhD. !22/09/2006 set d frs.nc !abre arquivo SET REGION/X=38.42w:38.20w/Y=4.1S:3.9S !escolhe região let vento=((v)^2+(u)^2)^(1/2) fill/levels=50 vento[l=@ave] !------------------------------------------------------ DEFINE AXIS/Z=1:100000:1 vec_len DEFINE GRID/Z=vec_len vec_grid !---------------------MACRO REGIOES--------------------------------- !MACRO-REGIAO 1 - LITORAL NORTE !------------------------------------------------------------------------ FILE/VAR=lon,lat/G=vec_grid acarau.dat PLOT/vs/line/COLOR=black/NOLABEL/over 360+lon,lat canc d acarau.dat FILE/VAR=lon,lat/G=vec_grid alcantaras.dat PLOT/vs/line/COLOR=black/NOLABEL/over 360+lon,lat canc d alcantaras.dat FILE/VAR=lon,lat/G=vec_grid amontada.dat PLOT/vs/line/COLOR=black/NOLABEL/over 360+lon,lat canc d amontada.dat FILE/VAR=lon,lat/G=vec_grid barroquinha.dat PLOT/vs/line/COLOR=black/NOLABEL/over 360+lon,lat canc d barroquinha.dat FILE/VAR=lon,lat/G=vec_grid alcantaras.dat PLOT/vs/line/COLOR=black/NOLABEL/over 360+lon,lat !go land_detail 1 !go land_detail N " " 1 1 !frame/file=eolica.gif
21
Tipo de arquivo Lon lat -38.6365212917134 -3.80064645441884 -38.6111688049224 -3.75608879529713 -38.6016756552712 -3.74918563341448 -38.601066875889 -3.74074073871496 -38.609822007521 -3.72548893764237 -38.6212550090246 -3.7225772694513 -38.6186481980547 -3.7117865312733 -38.6227839329822 -3.70448066379008 -38.6005660764843 -3.7047187584225 -38.5920406359602 -3.7018877488328 -38.5892532459944 -3.69644246035827 -38.5930757644957 -3.69161188035853 -38.5798657408424 -3.69419866805053 -38.5415316982933 -3.71540243666804
....................
....................
18. Linhas de corrente SET MODE VERIFY set d u.nc !abre arquivos set d v.nc !abre arquivos SET WINDOW/clear/SIZE=1/ASPECT=1.3 set window/clear/size=0.25 SET REG/Y=50s:10n/x=80w:10w cancel mode logo !retira logotipo default do ferret FLOW/DENSITY=4 Uwnd[L=112,d=1],Vwnd[L=112,d=2] !Linha Corrente go land_detail N " " 1 1 go land_detail.jnl !coloca a grade !frame/file=28-18.gif
Dúvidas: Veja manual completo no CD.
Ou envie e-mail para: