Guia do IDL - Cap?tulo C:
Gráfico em Linha
Visualização das tabelas de dados do IDL. Uma maneira de visualizar a seqüência de valores dos dados, como uma linha do tempo, para exibi-los como gráfico em linha use o procedimento PLOT.
Neste exemplo, nós iremos ler dados para uma nova variável chirp e exibi-los na tela como gráfico em linha.
IDL> filename = filepath('chirp.dat', subdir=['examples','data'])
IDL> chirp = read_binary(filename)
IDL> help, chirp
CHIRP BYTE = Array [512]
O valor dos dados foram lidos para um arquivo no IDL na forma de uma matriz de uma dimensão (também conhecido como vetor). Note que a matriz é do tipo byte.
O que há na variável chirp ? Com o procedimento PRINT, nós podemos visualizar os dados em forma de tabela, mas considerando que são 512 valores, pode ser mais fácil de compreender os dados visualizando graficamente. Exiba os dados na tela usando o procedimento PLOT.
IDL> plot, chirp
Este é apenas um exemplo básico da funcionalidade do procedimento PLOT podemos explorar mais as suas possibilidades utilizando as palavras-chaves.
Podemos por exemplo descrever os títulos:
IDL> plot, chirp, xtitle = 'Tempo (s)', ytitle = 'Amplitude (m)', $
IDL> title = 'Onda do seno com freqüência exponencial crescente'
Você poderá encontrar maiores especificações destas e de outras palavras-chave utilizando a ferramenta IDL Online Help.
Gráfico de Superfície
Para exemplo de um gráfico de superfície usaremos o arquivo lvdem.sav (que pode ser encontrado no servidor da Exelis VIS (www.exelisvis.com), neste servidor entre no arquivo zipado intro.zip, entre na pasta IDL_training, e depois na pasta introduction, pegue o arquivo lvdem.sav e coloque ele dentro da pasta IDLXX, que esta dentro do diretório da RSI), como este arquivo é do tipo .sav, então ele precisa primeiro ser restaurado, dentro deste arquivo encontraremos a variável lvdemdata os dados contidos nesta variável representam valores de elevação obtidos pela USGS do Canyon Big Thompson em Colorado nos Estados Unidos.
IDL> restore, 'lvdem.sav'
IDL> help, lvedemdata
LVDEMDATA INT = Array [64, 64]
Esta variável tem duas dimensões, representando uma matriz de elementos de 64 x 64. Podemos ver os dados armazenados em uma matriz bidimensional como esta usando o procedimento SURFACE. Para fazer a rotação da SURFACE devemos utilizar as palavras-chave AX e AZ.
IDL> surface, lvdemdata, az=50, ax=40
O procedimento SURFACE retorna um emaranhado de fios representando os dados. Outra forma de visualizar esses dados seria usando o procedimento SHADE_SURF que apresenta na tela a mesma imagem porém de forma preenchida.
IDL> shade_surf, lvedemdata, az=50, ax=40
Gráfico de Contorno
Mais uma vez como exemplo usarei a variável lvdemdata os dados desta variável podem ser mostrados na tela como um gráfico de contorno do IDL, utilizando o procedimento CONTOUR e as palavras-chave XSTYLE e YSTYLE para ajustar a localização no gráfico de contorno.
IDL> contour, lvdemdata, xstyle=1, ystyle=1
Por padrão, o procedimento CONTOUR tem 05 níveis de contornos e fica fora de ajuste por isso o uso das palavras-chave XSTYLE e YSTYLE, para personalizar os níveis de contorno do gráfico de contornos podemos usar a palavra-chave NLEVELS.
IDL> contour, lvdemdata, xstyle=1, ystyle=1, nlevels=12
Permitir que o IDL escolha níveis de contorno é útil para conseguir uma idéia preliminar da série de dados, mas uma técnica melhor seria atribuir o nível de contorno, tendo o conhecimento das escalas dos dados em cada dimensão. Comece determinando o valor mínimo e o máximo dos dados com as funções MIN e MAX.
IDL> print, min(lvdemdata), max(lvdemdata)
2853 3133
Com estes valores, defina o nível de contorno e aplique ele no gráfico através da palavra-chave LEVELS. Use a palavra-chave FOLLOW para mostrar na tela os valoras do contorno.
IDL> clevels = indgen(13) * 25 + 2850
IDL> print, clevels
2850 2875 2900 2925 2950 2975 3000 3025 3050 3075 3100 3125 3150
IDL> contour, lvdemdata, xstyle=1, ystyle=1, levels= clevels, /follow
Exposição e processamento de imagens
IDL pode ser usado para apresentar na tela matrizes como imagens. Os valores dos dados de uma matriz são transformados em uma escala cinza intensa ou colorida.
Carregue a paleta com escala cinza e apresente a mesma imagem usando o procedimento TVSCL.
IDL> loadct, 0
IDL> tvscl, lvdemdata
A imagem resultante é realmente pequena. Isto é porque os elementos contidos na matriz lvdemdata são transformados para os pixels da tela do seu computador. A matriz é de 64 elementos em um lado, então a imagem resultante será de 64 pixels. Você pode utilizar o IDL para determinar a resolução da tela do seu computador com a função GET_SCREEN_SIZE:
IDL> print, get_screen_size
1280.00 1024.00
Redimensione lvdemdata interpolando ele para uma matriz de 256 x 256 elementos usando a função REBIN. Armazene o resultado em uma variável dem. Exiba o resultado na tela.
IDL> x = 256
IDL> y = 256
IDL> dem = rebin (lvdemdata, x, y)
IDL> tvscl, dem
Perceba que apesar da imagem estar maior você ainda fica com a janela maior do que a imagem porém podemos ajustar o tamanho da janela:
IDL> window, 0, xsize = x, ysize = y
IDL> tvscl, dem
Os dados usados para exibir esta imagem são apenas números, o IDL pode confundir eles. Tente diferenciar a imagem usando a função SOBEL. A função SOBEL utiliza um destaque no contorno.
IDL> tvscl, sobel(dem)