Apostila Ferret

Post on 26-Jul-2015

217 views 12 download

Transcript of Apostila Ferret

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.acss@gmail.com

Dr. Sergio Sousa Sombra

Fundação Cearense de Meteorologia e Recursos Hídricos – FUNCEME

sergiossombra@yahoo.com.br

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:

sergiossombra@yahoo.com.br

dr.acss@gmail.com