Gráficos no IDL e comparação de dados

O IDL (sigla de Interactive Data Language) é uma linguagem de programação cientifica utilizada nas mais diversas áreas de pesquisa, conforme falado no post anterior sobre IDL. A saída gráfica do programa utiliza janelas (“windows”) para exibir seu conteúdo, cada uma identificada por um número. Seu tamanho e posição podem ser especificados, conforme o exemplo a seguir:

Para fazer o gráfico mesmo sem criar a “window”, deve ser utilizado o “Z graphics buffer”, especificando a resolução utilizando o comando “device”:

PLOT é a rotina que irá plotar dois vetores de mesmo tamanho entre si (ou somente um vetor, com o eixo x sendo uma sequência numerada). Os parâmetros incluem: title, xtitle e ytitle (títulos), xrange e yrange (determina valores máximos e força escala), psym (símbolo), color e outros. Veja mais propriedades de gráficos no site da Exelis.

Também é possível plotar gráficos de superfície (procedimento SURFACE, parâmetros az e ax para rotacionar), com linhas ou com preenchimento (SHADE_SURF), e gráficos de contorno (procedimento CONTOUR, opções xstyle, ystyle e nlevels, que fixa o número de níveis, e palavra chave FOLLOW para imprimir os valores do contorno).

Comparação de dados

Suponha a seguinte tarefa: comparar dados de uma mesma variável, obtida nas mesmas condições, mas por diferentes instrumentos. Uma sugestão é começar fazendo séries temporais dos valores obtidos pelo instrumento de referência e do instrumento a ser comparado em um mesmo gráfico. Desse modo, pode-se visualizar a disposição temporal dos valores obtidos. Posteriormente, fazer outro gráfico com os dados do sensor teste versus sensor de referência. Outra opção é calcular as diferenças para os dados medidos simultaneamente e construir um histograma dessas diferenças. Desse modo, é possível visualizar a distribuição de frequência dessas diferenças e determinar o bias (ou viés), que é a tendência que os valores obtidos pelo instrumento assumem quando comparados ao instrumento de referência (como superestimar ou subestimar, por exemplo).

Segue um exemplo para plotar diferentes series temporais no mesmo gráfico para comparação. Essa rotina funciona para um instrumento de referência e dois instrumentos a serem comparados, onde cada equipamento é uma sequência no gráfico (Vermelho: referência, Verde: sensor1 e Preto: sensor2). Os dados de entrada devem estar separados em arquivos diários, com o nome no formato “nome_do_sensor_anomesdia.dat”, com médias a cada cinco minutos. Mesmo que dados não correspondam aos mesmos instantes temporais, ou seja, tenham falhas, o script somente plota os pontos que estejam nos arquivos.

São produzidos um gráfico para cada dia e para cada uma das seguintes variáveis: Temperatura do ar, Umidade Relativa, Pressão, Precipitação, Precipitação acumulada, Velocidade média do vento, Velocidade máxima do vento, Direção média do vento, Direção máxima do vento. Nem todas as variáveis são obtidas por todos os equipamentos.

Observações:
– O primeiro gráfico plotado define a grade e os limites, então assume-se que o sensor cujos dados possuem a série temporal “serie_tempo” seja o mais completa o possível.
– O comando tvlct define as cores a partir do RGB, e oplot permite plotar mais de uma sequência de dados em um mesmo gráfico.
– A rotina “converte.pro”, chamada no início do script, é utilizada para incluir um zero antes do número (transforma mês 5 em 05, por exemplo), conforme segue abaixo:

A seguir, um exemplo de gráfico impresso pela rotina apresentada acima:

Temperatura_do_ar_2013-11-12

Muito do algoritmo utilizado no exemplo anterior é utilizado para montar os histogramas. São construídos um gráfico para cada variável, utilizando toda a série temporal.

A seguir, um exemplo de gráfico impresso pela rotina apresentada acima:

Histo_Temperatura_do_ar

Veja também o primeiro post sobre IDL.