GrADS Grid Analysis and Display System UNIVERSIDADE FEDERAL DE CAMPINA GRANDE CENTRO DE TECNOLOGIA E RECURSOS NATURAIS UNIDADE ACADÊMICA DE CIÊNCIAS ATMOSFÉRICAS Professor: Enilson Palmeira Cavalcanti Sobre o GrADS: Documentação Aquisição (download/instalação) Aplicabilidade http://grads.iges.org/grads/ Iniciando o GrADS: > grads <opção> (ou através de icone de atalho) -c executa direto comando grads -b modo simples sem gráficos -l modo paisagem (11x8,5 pol.) -p modo retrato (8,5x11 pol.) Ajuda: help open <descritor> - abrir arquivos query - perguntas ao sistema clear - limpar tela gráfica (ou “c”) set <arg.> - definir opções display expr/var - visualizar expressão/variável (ou “d”) quiq - sair do GrADS Arquivos do GrADS: arquivo descritor arquivo binário Ex: Arquivo *.ctl nome.ctl nome.bin dset saida.bin undef -9.99e33 title Interpolacao: metodo de BARNES(1964) xdef 40 linear -49.000 .385 ydef 50 linear -19.000 .365 zdef 2 levels 1000 850 tdef 1 linear 00:00z01mar1977 3hr vars 5 u 2 componente zonal [m/s] v 2 componente merid [m/s] w 2 componente verti [cm/s] theta 2 temp. potencial [K] relhum 2 umidade relativa [%] endvars (nome.*) Operação do GrADS: OPEN - abrir arquivo DISPLAY - visualizar expressão ou variável SET que|lugar|como Gravando figura em disco: printim “nome do arquivo” print disable print NOVO printim nome.gif gif white (gif, jpg, png Dimensão de ambiente: 4-D (lon,lat,lev,time) ou (x,y,z,t) set lat|lon|lev|time val1 <val2> set x|y|z|t val1 <val2> Exemplos: set lat -10 1; set lon -120; set t 2; set lev 500 Nome de variáveis: nome.file# (dimexp, dimexp, ...) x|y|z|t|lon|lat|lev|time = valor * x|y|z|t|lon|lat|lev|time +|Exemplos: z.3(lev=500); tv.1 (time -12hr); rh; q.2(t-1,lev=850) Expressões: + adição * multiplicação - subtração / divisão Exemplos: z- z(t-1); temp(lev=500)- temp(lev=850) Variáveis definidas: define nomevariável=expressão (OBS.: a variável é armazenada na memória) undefine nome variável (apaga variável da memória) Exemplo: define ur=(e/es)*100; undefine ur Exibição: display expressão (pode ser a própria variável) d expressão clear ou c (apaga a exibição) Tipos de saídas gráficas(principais): set gxout “tipo de gráfico” bar gráfico de barra barb plotagem do vento com barbela contour plota contornos(traça isolinhas) grfill análise pintando a caixa de grade grid caixa de grade com o valor line gráfico de linha shaded plotagem de contorno sombreado stream traça linhas de corrente vector traça o vetor - flecha Exemplos: set gxout shaded; set gxout vector Animação (por default é t): set loopdim x|y|z|t set loopincr incr set looping on|off Exemplos: set loopdim x; set loopincr 2 Controle de página: Página virtual - área de plotagem ||paisagem - 11x8,5 pol. Página real - área da tela ||retrato - 8,5x11 pol. Set vpage xmin xmax ymin ymax set vpage off controle da área de plotagem set parea xmin xmax ymin ymax set parea off String e graficos primitivos: draw title “caracteres” draw xlab “caracteres” draw ylab “caracteres” draw string x y “caracteres” draw line x1 y1 x2 y2 draw rec xlo ylo xhi yhi draw recf xlo ylo xhi yhi draw polyf x1 y1 x2 y2 ... xn yn (Obs.: x1=xn e y1=yn) draw mark tipo x y tamanho tipo: 1-cruz; 2-círculo aberto; 3-círculo fechado; 4-quadrado aberto; 5-quadrado fechado Controlando comandos de desenho: set font número (numéro de 0 - 5) set line cor <estilo> <espessura> cor: 0-preto 4-azul 8-laranja 12-amarelo escuro 1-branco 5-cyan 9-roxo 13-aqua 2-vermelho 6-magenta 10-amarelo/verde 14-roxo escuro 3-verde 7amarelo 11-azul médio 15-cinza estilo: 1-sólido 4-traço curto/longo 7-ponto/ponto/traço 2-traço longo 5-pontos 3-traço curto 6-ponto/traço espessura: 1, 2, 3, ... , 10 set strsiz hsiz <vsiz> set rgb número vermelho verde azul número: 16 a 99; vermelho, verde e azul: 0 a 255 Controlando comandos de desenho (continuação): set string cor <justificativa <espessura <rotação>>> tl tc tr l c r bl bc br Saída para impressão: enable print nome-arquivo print disable print l-left t-top c-center b-base r-right (METAFILE) p/ imprimir: gxeps arquivo-entrada arquivo-saida Exemplo: gxeps meta.gmf poscript.txt (UNIX) progra GV.EXE for windows Controlando gráficos: set ccolor cor (cor definida anteriormente) set ccolor rainbow (cores do arco-iris) set ccolor revrain (ordem inversa arco-iris) set cthick espessura (espessura: de 1 a 10) set cstyle estilo (estilo: definido anteriormente) set cterp on|off (liga|desliga suavizador) set cint valor (valor: intervalo da análise) set cmin valor (plota contornos > valor) set cmax valor (plota contornos < valor) set black val1 val2 (não plota no intervalo val1 e val2) Controlando gráficos(continuação): set clevs lev1 lev2 lev3 ... (traça lev1, lev2, lev3, ...) set ccols col1 col2 col3 ... (define cor para cada lev) set rbcols cor1 cor 2 cor 3 .... (nova sequência de cores) set clopts cor <espessura < tamanho>> (-1 e 0.09 default) set clab on|off|string|auto (controla a rotulação) set clab %gK (coloca um K no valor) set clab %g%% (coloca % no valor) set clab %.2f (valor com 2 decimais) set clab %03.0f (três dígitos) set clskip numero (numero de linhas puladas) set arrscl tamanho <magnitude> (para vetor) Controlando a orientação dos eixos: set xyrev on off (inverte os eixos) set xflip on off (vira a ordem do eiixo x) set yflip on off (vira a ordem do eixo y) Controlando a rotulação dos eixos: set xaxis|yaxis inicial final <incr> (início e fim do eixo) set xlint|ylint intervalo (intevalo de rotulação do eixo) set xlopts|ylopts cor <espessura <tamanho>> (eixo) set xlpos|ylpos offset lado (lado: b-botton, t-top, r-rigth, l-left) Controlando projeções de mapas: set mproj proj proj= robinson latlon scaled nps sps off Controlando desenho do mapa: set mpdset <lowres|mres|hires|nmap|mresbr> set map auto|cor estilo espessura set mpdraw on off Controlando moldura e display de logotipo: set frame on|off set grads on|off Funções do GrADS média: ave(expr,xdim1,xdim2) ou ave(expr,ydim1,ydim2) ave(ave(expr,xdim1,xdim2),ydim1,ydim2) aave(expr,xdim1,xdim2,ydim1,ydim2) integral: vint(expr,psexpr,topo) filtro: smth9(expr) diferença finita: cdiff(expr,dim) constante: const(expr,constante<,bandeira> mascara: maskout(expr,mascara) densidade de plotagem: skip(expr,skipx,skipy) Funções do GrADS (continuação) matemáticas: abs(expr) acos(expr) asin(expr) atan(expr) atan2(expr1,expr2) tan(expr) cos(expr) sin(expr) log(expr) log10(expr) pow(expr1,expr2) sqrt(expr) meteorológicas: tvrh2q(tvexpr,rhexpr) (calcula a umidade específica q) tvrh2t(tvexpr,rhexpr) (calcula a temperatura em K) Funções do GrADS (continuação) vetores: hcurl(uexpr,vexpr) hdivg(uexpr,vexpr) mag(uexpr,vexpr) Interação com o sistema operacional Usa-se o símbolo “!” com o comando DOS ou UNIX Ex: !dir, !ls, !copy a:teste.dat c: !mv teste1.txt teste2.txt etc. LINGUAGEM SCRIPT Arquivo script: nome.gs (arquivo texto para edição) Ex de arquivo *.gs ‘open model.ctl’ ‘set lat -30 10’ ‘set lon -60 -30’ ‘d temp’ “open model.ctl” “set lat -30 10” “set lon -60 -30” “d temp” REGISTROS DA LINGUAGEM SCRIPT * atribuições (Ex: nome=10, nome2=‘INMET’) * decisão - if | else | endif * repetição - while | endwhile | break | continue * funções - function header | return * entrada e saida - say | pull * comentários (começando com *) VARIÁVEIS (de 1 a 8 caracteres, começando com letras) Ex: variáveis string nome=‘Peter Pan’ ou nome=“Peter Pan” variáveis pré-definidas lat, lon, lev, result, log, etc. Variáveis globais _varia1=‘variável global’ , -varn=2 variáveis compostas varname.i.j varname.10.3=350, i=10 e j=3 OPERADORES | ou lógico ! não != diferente >= maior ou igual <= menor ou igual + adição * multiplicação & = > < % / e lógico igual maior que menor que concatenação subtração divisão CONTROLE DE FLUXO Estrutura de seleção ou decisão if expressão | | registros do scripit | else | | registros do scripit | endif Ex: if (num > 0) ident=‘par’ else if (num =0) ident=‘nulo’ else ident=‘impar’ endif endif CONTROLE DE FLUXO Estrutura de repetição while expressão | ... | registros do scripit | ... endwhile Ex: num=1 while (num <= 10) ‘set t ‘ num ‘d var’ ‘c’ num=num+1 endwhile ENTRADA E SAÍDA PADRÃO Para escrever: say ou prompt say expressão prompt expressão Para ler: pull pull variável FUNÇÕES DE STRING (subwrd, sublin, substr) subward(string, palavra) sublin(string, linha) substr(string, começo, comprimento) Ex: nome=‘meu amigo e 10’ nota=subwrd(nome, 4) q dim -> gera string de nome result valor=subward(result, 3) FUNÇÕES DE ENTRADA E SAÍDA read (nome de arquivo) write (nome de arquivo, registro <,anexa>) close (nome de arquivo) Ex: SCRIPT - zoom.gs function zoom (varia) if (varia='') say 'Enter variavel:' pull varia endif say 'Click area de zoom:' 'clear' 'd 'varia 'query bpos' x1 = subwrd(result,3) y1 = subwrd(result,4) 'query bpos' x2 = subwrd(result,3) y2 = subwrd(result,4) if (x1 > x2) a=x1 x1=x2 x2=a endif if (y1 > y2) a=y1 y1=y2 y2=a endif 'q xy2w 'x1' 'y1 lo1 = subwrd(result,3) la1 = subwrd(result,6) 'q xy2w 'x2' 'y2 lo2 = subwrd(result,3) la2 = subwrd(result,6) 'set lat 'la1' 'la2 'set lon 'lo1' 'lo2 'clear' 'd 'varia