Desenvolvimento de software para visualização de dados de radar

Transcrição

Desenvolvimento de software para visualização de dados de radar
João Victor Cal Garcia
Desenvolvimento de software para visualização de
dados de radar meteorológico usando OpenGL
São José do Rio Preto - SP, Brasil
Janeiro de 2008
João Victor Cal Garcia
Desenvolvimento de software para visualização de
dados de radar meteorológico usando OpenGL
Monografia apresentada ao Departamento de
Ciências de Computação e Estatística do Instituto de Biociências, Letras e Ciências Exatas da
Universidade Estadual Paulista “Júlio de Mesquita Filho”, como parte dos requisitos necessários para aprovação na disciplina Projeto Final.
Orientador:
Professor Doutor Augusto Brandão D’Oliveira
D EPARTAMENTO DE C IÊNCIA DA C OMPUTAÇÃO E E STATÍSTICA
I NSTITUTO DE B IOCIÊNCIAS , L ETRAS E C IÊNCIAS E XATAS
U NIVERSIDADE E STADUAL PAULISTA “J ÚLIO DE M ESQUITA F ILHO ”
São José do Rio Preto - SP, Brasil
Janeiro de 2008
Monografia de Projeto Final de Graduação sob o título “Desenvolvimento de software para
visualização de dados de radar meteorológico usando OpenGL”, defendida por João Victor Cal
Garcia e aprovada em Janeiro de 2008, em São José do Rio Preto, Estado de São Paulo, pela
banca examinadora constituída pelos professores:
Prof. Dr. Augusto Brandão de Oliveira
Orientador
Prof. Dr. Norian Marranghello
Universidade Estadual Paulista “Júlio de
Mesquita Filho”
Prof. Dr. Roberto Vicente Calheiros
Universidade Estadual Paulista “Júlio de
Mesquita Filho”
Resumo
Este trabalho apresenta o problema da visualização de dados de radar meteorológico, bem
como a ausência de ferramentas em código aberto para que os pesquisadores da área possam
realizar seu trabalho de maneira a não depender de programas caixa-preta. São discutidos os
conceitos do radar, o uso desse sistema para medições meteorológicas, e as formas de representar os dados das leituras de radar em uma tela de computador. É feita então a proposição
de um sistema em código livre que permite a leitura desses dados. O software gerado por esse
trabalho visa auxiliar os pesquisadores do IPMet/UNESP, focando-se nos radares do instituto.
O trabalho poderá ser usado como ponto de partida para desenvolvimento de novas ferramentas.
Abstract
This work presents the problem of viewing weather radar data as well as the lack of opensource tools to help researchers do their work without the use of black-box software. The
concepts of radar, the use of a radar system for meteorological measurements and ways of
representing data from the radar readings on a computer screen are discussed. It is made then
a proposition of an open-source system that allows the reading of the radar data. The software
created by this work aims to help the researchers of IPMet/UNESP, focusing on the radars
owned by the institute. This work can be used as a starting point for development of new tools.
“Dedico este trabalho aos meus pais,
que me educaram para ser quem sou,
que sempre me apoiaram e sempre
acreditaram em mim, e a toda minha
família, que sempre esteve presente.”
Agradecimentos
Ao professor Dr. Augusto Brandão D’Oliveira, por ser meu orientador e acreditar no meu
trabalho, por ensinar tantas coisas diferentes, por me ajudar sempre que as coisas se mostraram
mais difíceis do que pareciam, e por me ensinar o que significa ser brasileiro.
Ao professor Dr. Roberto Vicente Calheiros, pelo apoio moral, científico e material durante
o desenvolvimento do projeto,
Ao pessoal da Sigmet, que responderam minhas intermináveis dúvidas.
Ao IPMet, que cedeu material para esse projeto.
Aos professores que me ajudaram a chegar até aqui, e não que desistiram de mim.
Aos amigos e colegas que me incentivaram e me ajudaram sempre que precisei.
“Se meu corpo estiver morrendo,
deixe que meu corpo morra.
Mas não deixe que meu legado morra.”
Genghis Khan
Sumário
Lista de Figuras
Lista de Tabelas
1
2
Introdução
p. 15
1.1
Considerações iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 15
1.1.1
Motivação e escopo . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 17
1.2
Objetivos e metodologias . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 17
1.3
Organização da monografia . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 18
Radares meteorológicos e a computação gráfica
p. 19
2.1
Um breve histórico sobre os radares . . . . . . . . . . . . . . . . . . . . . .
p. 20
2.1.1
Do telemobiloscópio ao radar . . . . . . . . . . . . . . . . . . . . .
p. 20
O funcionamento do radar . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 21
2.2.1
A equação do radar . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 22
2.2.2
Tempo de resposta . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 22
2.2.3
Freqüência e atenuação . . . . . . . . . . . . . . . . . . . . . . . . .
p. 23
2.2.4
Ângulo de emissão/recepção . . . . . . . . . . . . . . . . . . . . . .
p. 24
2.2.4.1
Equação da variação da altura do sinal . . . . . . . . . . .
p. 24
O efeito Doppler . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 25
2.2.5.1
Radares Doppler . . . . . . . . . . . . . . . . . . . . . . .
p. 27
Radares meteorológicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 27
2.3.1
p. 27
2.2
2.2.5
2.3
Um exemplo americano - o NEXRAD . . . . . . . . . . . . . . . . .
2.3.2
3
Tipos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 28
2.3.2.1
Refletividade . . . . . . . . . . . . . . . . . . . . . . . . .
p. 28
2.3.2.2
Velocidade . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 30
2.4
O caso brasileiro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 30
2.5
A computação gráfica na interpretação dos dados meteorológicos . . . . . . .
p. 31
2.6
Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 32
Visualização de dados de radar meteorológico usando OpenGL
p. 34
3.1
Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 34
3.2
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 35
3.3
Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 36
3.3.1
Os arquivos de radar . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 36
3.3.1.1
Nome do arquivo . . . . . . . . . . . . . . . . . . . . . .
p. 37
3.3.1.2
Cabeçalho . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 38
3.3.1.3
A Matriz de dados . . . . . . . . . . . . . . . . . . . . . .
p. 40
Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 41
3.3.2.1
Exibição dos dados . . . . . . . . . . . . . . . . . . . . .
p. 42
3.3.2.2
Interatividade . . . . . . . . . . . . . . . . . . . . . . . .
p. 43
Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 44
3.4.1
As janelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 45
3.4.2
Interatividade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 48
Consideraçõs finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 48
3.3.2
3.4
3.5
4
Testes e exemplos
p. 49
4.1
Explicações necessárias . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 49
4.2
Comparação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 50
4.2.1
p. 51
Esclarecimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2
PPI inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 51
Exibição das funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 53
4.3.1
Salvando em texto . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 53
4.3.1.1
Fatia . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 54
4.3.1.2
Valores numéricos . . . . . . . . . . . . . . . . . . . . . .
p. 56
4.3.1.3
Gráfico . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 56
4.4
Desempenho e soluções encontradas . . . . . . . . . . . . . . . . . . . . . .
p. 59
4.5
Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 60
4.3
5
Conclusões
p. 62
5.1
O projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 62
5.2
Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 63
Anexo A -- Manual do Software
p. 64
A.1 Abrir o arquivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 64
Linha de Código . . . . . . . . . . . . . . . . . . . . . . . .
p. 64
Arrastar e Soltar . . . . . . . . . . . . . . . . . . . . . . . .
p. 64
A.2 Tela inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 64
A.3 Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 65
A.3.1 Menu principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 65
A.3.2 Sub-menu “Vizualizar” . . . . . . . . . . . . . . . . . . . . . . . . .
p. 65
A.3.3 Sub-menu “Gráfico Escalar” . . . . . . . . . . . . . . . . . . . . . .
p. 66
A.4 Menu de opções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 66
A.5 Telas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 66
A.5.1 Tela ampliada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 66
A.5.2 Tela de corte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 66
A.5.3 Tela de gráfico escalar . . . . . . . . . . . . . . . . . . . . . . . . .
p. 67
A.5.4 Tela dos dados numéricos . . . . . . . . . . . . . . . . . . . . . . .
p. 67
Anexo B -- Conteúdo do CD
p. 68
Referências
p. 69
Lista de Figuras
1.1
Mapa da rede NEXRAD . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 16
1.2
Localização dos radares existentes no Brasil e instituições responsáveis. . . .
p. 16
2.1
Patente do telemobiloscópio . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 20
2.2
Caminho do sinal do radar . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 21
2.3
Altura do feixe de radar . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 25
2.4
Ilustração do Efeito Doppler . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 26
2.5
Display de um radar meteorológico em 1960 . . . . . . . . . . . . . . . . . .
p. 29
2.6
Display de um radar meteorológico Moderno (NEXRAD) . . . . . . . . . . .
p. 29
2.7
Velocidade dos ventos por radar Doppler . . . . . . . . . . . . . . . . . . . .
p. 30
3.1
Screenshot do IRIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 43
3.2
Janela PPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 45
3.3
Valores numéricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 46
3.4
Gráfico da variação em um dado corte . . . . . . . . . . . . . . . . . . . . .
p. 47
3.5
Janela de informações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 47
4.1
Imagem do IRIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 51
4.2
Nosso sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 52
4.3
IRIS sem topografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 53
4.4
Primeiro evento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 54
4.5
Corte do PPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 55
4.6
Arquivo do corte aberto . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 55
4.7
Segundo evento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 56
4.8
Valores numéricos exibidos . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 57
4.9
Reimpressão dos valores . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 57
4.10 Terceiro evento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 58
4.11 Gráficos dos valores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 58
4.12 Reimpressão da reta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 59
Lista de Tabelas
2.1
Freqüência dos radares meteorológicos . . . . . . . . . . . . . . . . . . . . .
p. 23
2.2
Cores para dBZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 28
3.1
Campos fixos no nome do arquivo . . . . . . . . . . . . . . . . . . . . . . .
p. 37
3.2
Campos variáveis no nome do arquivo . . . . . . . . . . . . . . . . . . . . .
p. 37
3.3
Exemplo de decodificação do nome de arquivo . . . . . . . . . . . . . . . .
p. 38
4.1
Máquinas usadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 50
4.2
Arquivos utilizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 50
15
1
Introdução
1.1
Considerações iniciais
Meteorologia (do grego meteoron, “flutua no céu”, logos, “conhecimento”) é a área interdisciplinar de estudo da atmosfera focada nos processos e na previsão do clima. Os principais
fatores dos fenômenos meteorológicos são a temperatura, a pressão e a humiade relativa, além
do relacionamento e das alterações que eles sofrem durante o tempo.
O conhecimento do clima e a capacidade de prevê-lo são de grande interesse econômico
não somente na agricultura, como nos meios de transporte, na prevenção de desastres, e mesmo
em apólices de seguro. Esse conhecimento se torna mais útil quanto obtido com relativa antecedência, mesmo que não seja tão preciso (ZHU et al., 2002).
Para que possam ser aplicados os modelos matemático-estatísticos, é necessária uma grande
quantidade de dados reais variados e uma idéia de como esses dados evoluem durante o tempo.
No estudo específico das precipitações, torna-se dispendioso observar grandes territórios, e nem
sempre é possível obter uma noção precisa da evolução das nuvens.
Um dos métodos de coleta de dados meteorológicos para o estudo e computação dos mesmos é o uso de radares Doppler. Desde 1941 (ATLAS, 1990), radares têm sido utilizados para
estudar o comportamento de nuvens de chuva e precipitações. Nos Estados Unidos, existe o
NEXRAD1 , uma rede interligada com 158 radares de alta-definição operacionais (National Weather Service, 2007), como pode ser visto na Figura 1.1. Os dados gerados por esta rede são
de domínio público, o que além do excelente material para os meteorologistas, também tem
ajudado a planejar rotas aéreas, evitando regiões de turbulência (JOHNSON, 2007).
No Brasil, temos uma quantidade bem mais discreta de radares – cerca de 30, incluindo na
contagem os radares militares. No estado de São Paulo, os radares mais importantes são os de
Bauru e Presidente Prudente, pertencentes ao IPMet2 , UNESP de Bauru.
1
2
Next Generation Weather Radar, Radar da próxima geração
Instituto de Pesquisas Meteorológicas
16
1.1 Considerações iniciais
Figura 1.1: Mapa da rede NEXRAD
Existem ainda radares no Sul, Norte e Nordeste brasileiro, mas seria necessária uma rede
bem maior (com um número de radares próximo ao do NEXRAD) para que pudesse ser feito um
estudo satisfatório. Um mapa das posições dos radares utilizados pelo Brasil pode ser vista na
Figura 1.2.
Figura 1.2: Localização dos radares existentes no Brasil e instituições responsáveis.
1.2 Objetivos e metodologias
1.1.1
17
Motivação e escopo
Esses radares normalmente funcionam utilizando o efeito Doppler, e conseguem gerar rapidamente uma quantidade muito grande de dados.
Para que se torne viável aos estudiosos identificar e acompanhar a evolução das informações e, por conseqüência, estudá-las de maneira satisfatória, torna-se necessário o auxilio de
ferramentas específicas.
Atualmente, as ferramentas disponíveis para o estudo do enorme volume de dados gerado
pelos radares meteorológicos são não-livres, dependentes de arquitetura e de difícil acesso por
parte dos pesquisadores.
1.2
Objetivos e metodologias
O objetivo do projeto é criar uma ferramenta em código aberto que seja de fácil manutenção
capaz de ler e visualizar os dados gerados por radares meteorológicos. Além disso, o programa
também deve disponibilizar uma série de recursos que facilitem a visualização e localização de
informações pelo usuário.
Serão implementadas ferramentas que permitam a visualização dos dados de várias maneiras, como a projeção sobre o mapa geopolítico, visualização de cortes e mesmo a exibição de
dados numéricos em formato de tabela.
Um objetivo mais discreto é o de mimetizar as características dos softwares não-livres s
atualmente utilizados pelos pesquisadores, criando assim uma base de familiaridade para os
novos usuários.
Põem-se então em prática os conhecimentos adquiridos nas disciplinas de planejamento e
construção de software, matemática, computação gráfica, bem como estudos dirigidos nas áreas
de meteorologia, ondulatória e programação visual.
A programação do projeto será feita em C++, que é uma linguagem moderna e poderosa,
além de ter um desempenho considerável.
Para a parte gráfica, optou-se por utilizar API OpenGL, devido à facilidade de manutenção
e grande quantidade de documentação disponível.
1.3 Organização da monografia
1.3
18
Organização da monografia
A monografia está organizada em cinco capítulos.
O Capítulo 1 é uma introdução breve sobre o assunto do projeto.
O Capítulo 2 contém uma explicação do funcionamento dos sistemas de radar, além de dar
uma noção sobre como a meteorologia pode usar esses equipamentos. Também faz uma
menção do uso da computação na visualização dos dados de radar meteorológico.
O Capítulo 3 descreve o problema da ausência de software livre para visualização de dados de
radar meteorológico, e a solução apresentada nesse trabalho. Inclui também uma descrição dos problemas encontrados para visualizar os dados de maneira funcional.
O Capítulo 4 apresenta uma série de testes das funções do sistema, bem como uma boa quantidade de imagens do programa funcionando. Ele inclui também vários exemplos de
leituras de radar.
O Capítulo 5 contém as conclusões e lições aprendidas durante o desenvolvimento desse trabalho.
19
2
Radares meteorológicos e a
computação gráfica
“Toda ciência ou é física ou é coleção de selos.”
Ernest Rutherford
O termo radar1 foi criado em 1941, substituindo o termo britânico RDF2 , cunhado, por sua
vez, em meados da década de 30. Esse dispositivo utiliza ondas eletromagnéticas para obter dados como a distância, a altitude, a direção e a velocidade de objetos, estejam eles em movimento
ou estacionários.
Apesar de muitos usos de radar não necessitarem mais do que uma grandeza escalar como
saída, a exemplo dos radares de velocidade usados por policiais para controle de trânsito, sistemas como medições meteorológicas costumam gerar um volume de dados tão grande que seu
estudo direto se torna praticamente inviável. Só como exemplo, a rede americana de radares
NEXRAD gerava, em meados de 2005, 480 gigabytes de dados por dia, valor estimado para
atingir 6.5 terabytes diários com o surgimento de novas tecnologias.
Uma das maneiras de visualizar esses dados é a utilização de ferramentas gráficas especializadas. Graças aos avanços da Computação Gráfica, tornou-se possível fazer projeções de
dados de maneira satisfatória aos usos humanos. A projeção passou de monitor de fósforo que
podia dar apenas variações de intensidade (brilho) para os atuais monitores com palhetas de 16
milhões de cores. Também se tornou possível exibir dados de dimensão elevada - uma única
leitura de radar meteorológico pode gerar quase quatro megabytes de informação vetorial.
1
2
Acrônimo para RAdio Detection And Ranging (do inglês, Detecção e Telemetria utilizando Rádio).
Radio Direction Finding (do inglês, Localização de Direção de Rádio).
2.1 Um breve histórico sobre os radares
2.1
20
Um breve histórico sobre os radares
Antes que o radar surgisse, foi necessário que os cientistas compreendessem os princípios
das ondas de rádio. Apesar das equações das ondas eletromagnéticas terem sido propostas
pelo matemático inglês James Maxwell no início da década de 1860, foi apenas em 1888 que
a existência de tal fenômeno foi demonstrada de maneira satisfatória, pelo cientista alemão
Heinrich Hertz.
Hertz também desenvolveu um sistema para medir a velocidade das ondas, e seus estudos
encorajaram investigações científicas mais profundas sobre o assunto.
2.1.1
Do telemobiloscópio ao radar
Hertz já havia feito experiências com ondas de rádio em 1887, mas levou quase 20 anos
para que os primeiros experimentos que utilizaram ondas de rádio para localizar objetos fossem
realizados.
Em 1904, o também alemão Christian Hülsmeyer desenvolveu um aparelho que poderia ser
considerado o precursor do radar – o telemobiloscópio, como pode se visto na Figura 2.1 – que
podia apenas detectar a presença de grandes objetos de metal (navios), mas não sua distância.
A invenção de Hülsmeyer não foi prontamente aceita, mas ele chegou a propor um complicado
ferramental para que fosse possível medir a distância do objeto. Nikola Tesla estabeleceu, em
1917, princípios que relacionavam a freqüência e o nível energético para as unidades primitivas
do radar.
Figura 2.1: Patente do telemobiloscópio
2.2 O funcionamento do radar
21
Às vésperas da segunda guerra mundial, o desenvolvimento do radar foi impulsionado pelo
conflito iminente e pela vulnerabilidade britânica aos ataques aéreos. Os ingleses chamaram o
novo sistema RDF, um dos grandes trunfos dos Aliados durante a guerra. O RDF foi utilizado
por muito tempo como aparelho de navegação; hoje, está sendo substituído pelo GPS3 .
O funcionamento do RDF é semelhante ao do radar, com a diferença que ele é utilizado
para encontrar a direção onde um determinado sinal de rádio conhecido é mais forte. Algum
tempo depois, os alemães conseguiram reproduzir a tecnologia.
Nos anos posteriores ao conflito, a tecnologia desenvolvida foi aplicada no controle de
tráfego aéreo, astrometria, medição de velocidade no trânsito e monitoração do tempo.
2.2
O funcionamento do radar
O radar opera da seguinte maneira: Uma fonte emissora gera um pulso forte e focado. Essa
onda segue sem muita degradação até se chocar com um objeto capaz de refleti-la. A esse
objeto, dá-se o nome de refletor.
A maior parte do sinal é perdida no processo, refletida para direções que não retornarão
ao radar. Uma pequena parte do sinal refletido atinge então um sensor especial, sensível à
onda de rádio, chamado de receptor, que normalmente está localizado na mesma posição que o
transmissor. Pode-se ver melhor esse funcionamento na Figura 2.2.
Figura 2.2: Caminho do sinal do radar
3
Global Positioning System, Sistema Global de Posicionamento.
22
2.2 O funcionamento do radar
2.2.1
A equação do radar
A modelagem matemática do funcionamento do radar é dada na Equação 2.1, também
conhecida como Equação do radar. Essa equação fornece a energia do pulso recebido (Pr ) pelo
radar (RINEHART, 1997).
Pr =
Pt Gt Ar σF 4
(4π)2 Rt2 Rr2
(2.1)
Pt é a energia do pulso transmitido.
Gt é o ganho da antena transmissora.
Ar é a abertura (área) efetiva da antena receptora.
retornado
, é uma razão entre a quantidade de energia que atinge um objeto
σ dado por σ = 4π PPinterceptado
pela quantidade de energia refletida por aquele alvo que volta para o radar.
F é relativo à facilidade com que a onda se propaga no meio (1 é igual ao vácuo).
Rt é a distância entre o transmissor e o alvo.
Rr é a distância entre o receptor e o alvo.
Como normalmente o transmissor e o receptor estão na mesma posição, podemos simplificar a equação 2.1 se fizermos R = Rt = Rr , chegando na equação 2.2 (RINEHART, 1997).
Pr =
2.2.2
Pt Gt Ar σF 4
(4π)2 R4
(2.2)
Tempo de resposta
Se a resistência do meio (seja ele gás ou líquido) for igual em todo o percurso, e supondo
que a onda se move numa velocidade muito próxima à da luz, pode-se rapidamente dizer que o
intervalo (em segundos) necessário para que a onda seja emitida e então recebida é de
d
,
2c
onde
c é a velocidade da luz e d a distância do refletor em relação ao radar.
Surge então o problema da sobreposição de sinais. Se não for esperado o tempo adequado
antes da emissão de um novo pulso, é possível que sinais de dois pulsos diferentes cheguem de
volta ao radar no mesmo tempo.
2.2 O funcionamento do radar
23
Tabela 2.1: Freqüência dos radares meteorológicos
Freqüência (GHz) Comprimento de Onda (cm) Banda
Atenuada por
90
0.1
W
Nuvens
30
1.0
K
Nuvens
10
3.0
X
Precipitações
5
6.0
C
Precipitações
3
10.0
S
Precipitações
1.5
20.0
L
Tempestades e Aviões
Essa situação, denominada ambigüidade, é facilmente contornada quando a distância máxima em que as ondas refletidas voltam diretamente para o radar com intensidade suficiente
para a leitura é conhecida. Sendo essa distância dmax , tem-se que a espera deve ser de pelo
menos
dmax
2c
Exemplo
segundos antes de uma nova transmissão.
Em radares meteorológicos é comum o uso de distâncias de até 200 km, podendo
haver extensão para até 450 km. Para evitar ambigüidade na leitura do sinal é necessário esperar
pelo menos que a onda que tem o maior alcance retorne. Se a onda de maior alcance atinge os
450 km do ponto de origem, deve-se esperar aproximadamente 7.5 × 10−4 segundos entre uma
transmissão e outra.
Um ponto interessante é que o tempo de transmissão de um pulso de radar é da ordem de
10−6 segundos. Costuma-se dizer que sistemas de radar passam mais tempo “ouvindo” do que
“falando”. Na verdade, eles passam quase 99% do tempo recebendo sinais, e 1% do tempo
transmitindo-os.
2.2.3
Freqüência e atenuação
Como o sinal recebido normalmente é muito mais fraco que o sinal gerado, as ondas de
rádio são preferidas ao som e à luz visível, pois podem ser facilmente ampliadas sem introdução de ruído na leitura. Mesmo assim, as diferentes freqüências de rádio não são igualmente
eficientes em todas as condições. A Tabela 2.1 ilustra o fato, de acordo com a utilização por
radares meteorológicos.
Quanto maior o comprimento de onda, menos atenuação sofre o sinal. Um sinal de banda4
W é atenuado por nuvens, enquanto um sinal de banda L atravessa a maioria das precipitações
sem problemas. Em contrapartida, ondas de maior comprimento de onda são menos “sensíveis”,
e normalmente não conseguira “ver” objetos menores. As ondas de banda S são as mais utiliza4
Banda é o nome dado a um intervalo qualquer de freqüências do espectro eletromagnético.
2.2 O funcionamento do radar
24
das na meteorologia por radar, pois são razoavelmente precisas, detectam bem a precipitação, e
ignoram a maior parte das nuvens.
2.2.4
Ângulo de emissão/recepção
No caso específico dos radares que lidam com objetos no céu, é importante notar a existência de um ângulo de inclinação para a emissão do sinal de rádio. Isso ocorre para que o radar
não detecte objetos próximos ao nível do solo, como acidentes geográficos e construções.
Devido a essa inclinação, quanto mais longe do radar está o sinal, maior é a distância entre a
altura do radar e a altura do feixe de rádio naquela posição. Ao invés de um plano de observação,
obtém-se uma superfície de cone. Essa situação é acentuada ainda mais pelo fato da terra ter
formato aproximado ao de uma esfera.
Exemplo
No exemplo específico dos radares meteorológicos, o menor ângulo para a leitura
costuma ser maior ou igual a 0.5◦ em relação à componente horizontal, apesar de existirem
radares com ângulo inferior, e até mesmo negativo. O ângulo pode parecer pequeno, mas se for
tomada uma superfície plana, o feixe de rádio estaria a quase 4 km de altura em relação ao nível
do radar, na distância de 450 km (normalmente a máxima usada em radares meteorológicos).
Ao lembrar que a terra é curva, a situação se torna ainda mais extrema: Tem-se quase 20 km de
diferença na mesma distância de 450 km!
2.2.4.1
Equação da variação da altura do sinal
Para o calculo genérico da diferença de altitude entre o radar e o solo, pode-se utilizar a
Equação 2.3, cuja visualização está na Figura 2.3 (RINEHART, 1997).
q
2
H=
r2 + (ke ae ) + 2rke ae sen (Θe ) − ke ae + ha
Onde:
r é a distância que o raio percorre
ke é o coeficiente de refração do meio. No caso do ar, uma boa aproximação é 34 .
ae é o raio da terra, que varia, aproximadamente, entre 6356 km e 6378 km.
Θe é o ângulo, em relação à componente horizontal.
(2.3)
25
2.2 O funcionamento do radar
Figura 2.3: Altura do feixe de radar
ha é a altura do feixe em relação à altura do radar.
Muitos radares podem fazer a leitura em mais de um ângulo, de uma vez só. Dados desse
tipo são úteis para composições tridimensionais de nuvens e precipitações.
2.2.5
O efeito Doppler
O efeito Doppler foi descrito pela primeira vez em 1842, pelo cientista austríaco Christian
Doppler em sua monografia. O fenômeno descreve a variação relativa da freqüência de uma
onda, causada pelo movimento relativo entre o seu emissor e o receptor.
Quando o emissor e o observador se aproximam, a freqüência da onda emitida aumenta
(em relação áquele observador). O contrário acontece quando eles se afastam, ocorrendo uma
diminuição da freqüência da onda gerada (novamente, em relação àquele observador), como
pode ser observado no modelo da Figura 2.4. Esse comportamento pode ser modelado matematicamente, como mostrado nas Equações 2.4 e 2.5 (RINEHART, 1997).
Alteração de freqüência:
∆f =
fv
v
=
c
λ
(2.4)
fv
c
(2.5)
Freqüência observada:
∆f 0 = f +
Onde:
2.2 O funcionamento do radar
26
Figura 2.4: Ilustração do Efeito Doppler
f é a freqüência transmitida;
v é a velocidade relativa entre o observador e o emissor, positiva quando estão de aproximando,
e negativa quando de afastam;
c é a velocidade da luz (3.108 ).
Essas equações são simplificações, razoavelmente precisas para aproximações de primeira
ordem.
Disso, nota-se que a freqüência da onda observada aumenta quando o observador e o emissor se aproximam, e diminui quando eles se afastam. Se eles se movem diretamente numa
mesma reta, é interessante notar que a freqüência observada da onda permanece constante, mas
em qualquer outro caso, a freqüência varia conforme o tempo.
O efeito Doppler pode ser facilmente observado no dia a dia. Um caso comum é a sirene da ambulância, que é mais aguda (maior freqüência) quando ela se aproxima, e se torna
rapidamente mais grave enquanto ela se distancia. Astrônomos usam o efeito para estudar o movimento de estrelas, detectando, por exemplo, se uma estrela é binária, ou mesmo para medir
velocidade de rotação de galáxias.
2.3 Radares meteorológicos
2.2.5.1
27
Radares Doppler
Os radares Doppler utilizam o efeito Doppler para medir a velocidade de objetos detectados.
A medida é feita calculando-se a mudança de freqüência que o sinal de rádio emitido sofre ao
ser recebido. Radares de trânsito utilizam o tal artifício para calcular a velocidade dos veículos.
Na meteorologia, os radares Doppler podem ser utilizados para calcular o movimento das
nuvens, auxiliando não só no estudo das precipitações, como também do vento (LUCK, 1949).
2.3
Radares meteorológicos
Os primeiros usos de radares para detecção de precipitações ocorreram por volta de 1941.
Os técnicos de radar dos Aliados, na Segunda Guerra Mundial, tinham problemas em se livrar
do ruído em suas leituras, pois grandes áreas de sujeira dificultavam a detecção de navios e
aviões. Rapidamente, perceberam que estavam detectando nuvens. Reconhecendo o conhecimento do tempo como um recurso estratégico, os militares treinaram meteorologistas no uso de
radares, e utilizaram essa informação para planejar as investidas.
Depois da Segunda Guerra, muitos governos passaram a endossar pesquisas na área dos
radares meteorológicos. Os dados gerados produziram material valioso para que físicos de nuvens, hidrólogos e meteorologistas pudessem fazer estudos focados no desenvolvimento, movimento e estrutura das precipitações (JOSS; WALDVOGEL, 1990).
Nos anos 60, os primeiros radares Doppler foram utilizados para medidas meteorológicas.
Isso foi importante para o estudo de tempestades mais violentas, como furacões e tornados.
Para se ter idéia, os radares Doppler atuais geram informações tão precisas que é possível gerar
um alerta de emergência dezenas de minutos antes de um tornado tocar o solo.
2.3.1
Um exemplo americano - o NEXRAD
Nos Estados Unidos, foi criado o NEXRAD (NEXt-generation RADar, radares da Próxima
Geração), no final da década de 70. O NEXRAD faz cobertura de todo o território americano, e
seus dados são publicados abertamente. Esses dados têm uso governamental e comercial, como
por exemplo, na previsão de tempestades e inundações. O NEXRAD conta atualmente com
158 radares Doppler de alta resolução do tipo WSR-88D (Weather Surveillance Radar, 1988,
Doppler), que substituíram os antigos radares WSR-57 e WSR-74.
Radares meteorológicos também são utilizados para controle de trafego aéreo, auxiliando
28
2.3 Radares meteorológicos
dBZ
65+
50-65
35-50
20-35
20-
Tabela 2.2: Cores para dBZ
Cor
Evento Observado
Magenta
Tempestade
Vermelho
Chuva pesada
Amarelo
Chuva media
Verde
Neve ou Chuva leve
Azul
Neve leve, Garoa
na criação de rotas que desviem do mal tempo e de certos tipos de vento que possam causar
acidentes aéreos (ABER, 1990), (KAWECKI, 1978).
2.3.2
Tipos de dados
Os radares meteorológicos produzem uma série de dados diferentes. Muitas vezes, só é
possível ter real compreensão de um fenômeno meteorológico se forem observados vários tipos
de informação. Entre os tipos de dados gerados por radares Doppler, como os instalados no
Brasil, os mais comumente utilizados são a refletividade e a velocidade.
2.3.2.1
Refletividade
O tipo mais comum é a refletividade, cuja unidade é o dBZ5 (decibéis em Z). Esse valor é
relacionado à intensidade do pulso que foi refletido pelo objeto detectado.
Para a leitura de dados do radar, costuma utilizar-se uma escala de cores (em contrapartida à
escala de brilho, utilizada antes do fortalecimento da computação gráfica, apresentada na Figura
2.5). Esses valores podem ser facilmente interpretados como a intensidade da precipitação
na região. A Tabela 2.2: Cores para dBZ faz essa explicação, baseada no padrão utilizado
pelo NEXRAD. Um exemplo moderno de como são as projeções gráficas dos dados de radar
meteorológicos é apresentada na Figura 2.6.
Em radares que podem fazer leitura em diferentes altitudes, é comum o uso da refletividade
composta. Nesse tipo de visualização, o valor da refletividade em cada ponto é o maior valor
em dBZ de todas as leituras em diferentes camadas. Desta forma, é possível ter uma melhor
visão de um evento meteorológico.
5
Z é um indicador de intensidade de chuva
através da energia refletida ao radar. Como os valores Z variam
Z
muito, usa-se dBZ, onde dBZ = 10log Z0 , onde Z0 é uma refletividade de referência.
2.3 Radares meteorológicos
Figura 2.5: Display de um radar meteorológico em 1960
Figura 2.6: Display de um radar meteorológico Moderno (NEXRAD)
29
30
2.4 O caso brasileiro
2.3.2.2
Velocidade
Com a popularização dos radares Doppler, tornou-se possível calcular não só a movimentação das nuvens, mas as correntes de ar que influíam em pequenas porções da precipitação.
Normalmente, utiliza-se uma escala de brilho para a velocidade (quanto menos brilho, mais
rápido) e de cores para a direção (verde para o movimento em direção ao radar, vermelho para o
movimento contrário a ele). Dados das diferentes camadas de vento podem ser obtidos de forma
similar à da refletividade composta. Um exemplo de como esses dados podem ser apresentados
está na Figura 2.7
Figura 2.7: Velocidade dos ventos por radar Doppler
A combinação desses dados é bastante útil para o estudo da formação, evolução e deslocamento das precipitações.
2.4
O caso brasileiro
Existem atualmente mais de 20 radares meteorológicos que atuam em território brasileiro,
pertencentes a instituições diversas. Para melhor compreensão do clima nacional, utilizam-se
também dados de radares pertencentes à Argentina e ao Paraguai. Apesar dos radares meteorológicos conseguirem fazer leituras num raio de até 450 km, esses dados são mais confiáveis se
a distância não ultrapassar 250 km, por fatores como atenuação e o rápido ganho de altitude do
pulso de rádio, já mencionados anteriormente (ANGELIS et al., 2006).
Em São Paulo, conta-se principalmente com os radares de Bauru e de Presidente Prudente,
de responsabilidade do IPMet/UNESP. Desde 2004, um convênio do Departamento de Controle
do Espaço Aéreo (DECEA) com o Centro de Previsão do Tempo e Estudos Climáticos (CPTECINPE) está sendo realizado para integração dos radares nacionais. Atualmente, radares situados
nas regiões sul, sudeste e centro-oeste operam em rede, 24 horas por dia, e os dados são enviados
2.5 A computação gráfica na interpretação dos dados meteorológicos
31
para o CPTEC em tempo real (ANGELIS et al., 2006).
Para que os dados fossem suficientes para um estudo completo das precipitações brasileiras, seria necessário um número bem maior de radares, cobrindo toda a extensão do território
nacional. Atualmente, não existem planos para tal expansão.
2.5
A computação gráfica na interpretação dos dados meteorológicos
Apesar da obtenção e armazenamento dos dados serem problemas já bem estudados pelo
meio científico, existem ainda desafios a serem resolvidos no que diz respeito à visualização e
interpretação das informações.
Nos primórdios da utilização do radar, bastava que o aparelho emitisse algum aviso quando
um objeto era detectado na direção observada. Quando aplicações mais modernas surgiram
(como os radares de base rotatória), tornou-se necessário o desenvolvimento de ferramentas
que pudessem auxiliar o trabalho dos técnicos.
Os primeiros sistemas capazes de reproduzir adequadamente leituras de radar foram adaptações de osciloscópios. Eles utilizavam uma conversão simples da força e direção do sinal
para os eixos X e Y da tela. Existiram basicamente quatro variações desse sistema, utilizadas
principalmente pelos militares (NAVAL HISTORICAL CENTER, ).
A-Scope apresenta a distância do objeto detectado, em (x,y), onde X é a distância e Y é a
quantidade de energia refletida.
B-Scope apresenta distância e azimute em (x,y), onde x é o azimute e y é a distância.
C-Scope apresenta altitude e azimute em (x,y), onde x é o azimute e y é a altitude.
PPI (Plan Position Indicator, do inglês, indicador de posição no plano) é a mais conhecida
forma de visualização dos dados de radar, normalmente utilizada em filmes de ação. O
display é um circulo cujo centro representa a posição da antena do radar, e os objetos
são representados por coordenadas azimutais, com o raio representando a distância e o
ângulo, a direção.
O PPI ainda é o meio mais utilizado para visualização geral de um evento meteorológico,
apesar de que desde a década de 80, sejam preferidos monitores de rasterização, pois são mais
baratos e razoavelmente precisos.
2.6 Considerações finais
32
A visualização de dados meteorológicos é, no entanto, mais complexa. Um radar Doppler
gera dados sobre posição, intensidade, velocidade e direção do deslocamento precipitações, que
são difíceis de projetar de maneira satisfatória. A maioria dos sistemas de software, como o Java
NEXRAD Tools, opta por apresentar os dados em camadas separadas.
O problema da visualização de fenômenos meteorológicos foi extensivamente examinado
(PAPATHOMAS; SCHIAVONE; JULESZ, 1988), (SCHÖNHUBER et al., 1997), (MCCASLIN; MCDONALD; SZOKE, 2000), mas apesar dos esforços, ele parece persistir. Apesar de ainda não ter
sido obtido um resultado ideal (RILEY et al., 2004), algumas soluções não-livres foram propostas, as quais foram responsáveis por grande parte no avanço do ramo. Empresas como a IBM
reconhecem o potencial desse ramo da ciência, e investem ativamente em ferramentas especializadas (TREINISH, 1999).
Na computação gráfica, trabalhos foram propostos desde o início da década de 80 (KAJIYA;
HERZEN, 1984), focando-se na visualização de fenômenos atmosféricos de maneira a aproveitar
as então novas tecnologias digitais. O uso dos modernos algoritmos de renderização, bem
como do poder crescente do hardware voltado para gráficos também gerou frutos, inspirando
pesquisas e soluções baseadas em um poder de processamento cada vez mais notável (HAASE et
al., 2000).
Alguns sistemas modernos se propõem a uma representação volumétrica dos corpos meteorológicos. Essa idéia começou no final da década de 80 (DREBIN; CARPENTER; HANRAHAN,
1988), mas só se tornou realmente viável e capaz de produzir resultados em tempo real com
o advento de novas técnicas de processamento 3d e do barateamento do hardware relacionado
(ENGEL; KRAUS; ERTL, 2001), (KNISS et al., 2002).
Por fim, vale também citar que ainda é inviável tecnologicamente coletar e reproduzir todas as informações que poderiam ser importantes para a exibição dos dados meteorológicos.
Existem sistemas que sanam esse problema utilizando modelos matemáticos complexos para
simular e gerar informações que servirão para tapar as lacunas existentes (EBERT; MUSGRAVE,
2003), (STAM; FIUME, 1995).
2.6
Considerações finais
Neste capítulo, foi apresentado um breve histórico dos sistemas de radar utilizados para
medições meteorológicas. Inicialmente, houve a exposição dos primeiros estudos sobre eletromagnetismo e ondas de rádio, ainda no século XIX. Foram citados trabalhos precursores ao
radar, e sobre a alavancada que a Segunda Guerra Mundial exerceu sobre as pesquisas de de-
2.6 Considerações finais
33
tecção de objetos à distância. Falou-se também sobre os primeiros usos de sistemas de radar
para detecção de nuvens e precipitações, e sobre o rápido interesse militar – e posteriormente,
econômico - dessas aplicações.
Uma abordagem sobre o funcionamento dos radares, incluindo descrição dos principais
problemas encontrados nesses sistemas e sua influência nas leituras meteorológicas. Foi feita
também uma explicação do efeito Doppler e do funcionamento dos radares Doppler, bem como
o uso dessa tecnologia para fins meteorológicos.
Também se falou sobre a rede norte-americana de radares, o NEXRAD, e sua importância
para a população local. Uma breve descrição das instalações brasileiras foi dada, incluindo o
problema da falta de estrutura para melhor desenvolvimento das pesquisas.
Por fim, foram citados os principais tópicos que utilizam a computação gráfica como ferramenta para visualizar os dados meteorológicos.
34
3
Visualização de dados de radar
meteorológico usando OpenGL
“Como regra, os homens se preocupam mais com
o que não podem ver do que com o que podem.”
Julio Cesar
A vizualização dos dados de radar normalmente é feita por meio de software não-livre. É
portanto interessante o desenvolvimento de software livre para o mesmo fim.
Em Bauru e Presidente Prudente os radares Sigmet, sob responsabilidade do IPMet 1 , são
fontes valiosas de informação para o estado de São Paulo. Infelizmente, os dados produzidos
por esses aparelhos só podem ser visualizados com facilidade no sistema fechado IRIS 2 , da
própria Sigmet. Esses sistemas são dependentes de plataforma e são muito caros, o que impede
que muitos cientistas possam estudar os dados de maneira satisfatória.
Propomos nesse capítulo um sistema de visualização dos dados dos radares Sigmet, de
maneira a mimetizar algumas das funções do software IRIS, utilizando a API OpenGL.
3.1
Motivação
Em meados de 2006, 75% da população brasileira ocupava o espaço urbano, proporção
que chegava aos 90% em estados como São Paulo. Esse fenômeno, típico de países em desenvolvimento, tem sido significativo desde a década de 70. Com a concentração da população
nos centros urbanos, ocorreu uma queda na qualidade de vida nas cidades não só por fatores
socioeconômicos, mas também climáticos. As inundações são consideradas um fenômeno típico decorrente dessa urbanização acelerada, quando diz respeito à água no meio urbano. São
normalmente decorrentes da ocupação de áreas ribeirinhas com risco de inundação, e de locais
1
2
Instituto de Pesquisas Meteorológicas
Interactive radar Information System
3.2 Objetivos
35
com grandes inclinações, como morros urbanos, que estão sujeitos a deslizamentos após período de chuvoso. Na medida em que aumentam os aglomerados urbanos impermeabilizando
o solo, diminuindo sua capacidade de infiltração, a quantidade de água que chega ao mesmo
tempo no sistema de drenagem aumenta, produzindo inundações mais freqüentes, atingindo
principalmente a população ribeirinha (TUCCI; PORTO; BARROS, 1995).
Seria inviável, na maioria dos casos, a instalação de uma rede pluviométrica de superfície
grande o suficiente para que se possam obter todas as informações necessárias para o correto
estudo das chuvas. Entra aí o radar meteorológico, um sistema de monitoramento das condições atmosféricas em tempo real, capaz de cobrir as falhas deixadas pela insuficiência da rede
pluviométrica já existente, como por exemplo, sub ou super estimativa do total de chuva ou sua
variabilidade espacial. Com os radares, é possível observar a área onde a precipitação que está
ocorrendo em um determinado momento ou então de forma acumulada em um determinado
período em uma área extensa. A previsão de chegada de um sistema precipitante sobre um
local determinado com algumas horas de antecedência, dada com o uso de modelos numéricos
de alerta à ocorrência de precipitação intensa, contribui para a redução de impactos de prejuízos em diversas escalas, como por exemplo, sobre regiões suscetíveis a inundações abruptas
(ANTÔNIO, 1998).
Os radares de Bauru e Presidente Prudente foram fabricados pela Sigmet, uma empresa
norte-americana especializada em sistemas de radares. São equipamentos caros, delicados e
de difícil manutenção. Os dados gerados pelos radares são interpretados nativamente pela
plataforma IRIS, produzida pela mesma empresa. Essa é uma plataforma não-livre, ou seja,
não se sabe exatamente o que acontece dentro dela, só suas entradas e saídas. Cada radar
custa em torno de U$1.000.000,00, sem incluir a instalação; o software IRIS custa em torno de
U$40.000,003 . O IRIS é muito caro e dependente de plataforma, o que torna seu acesso limitado, mesmo aos cientistas do ramo. Existem alternativas mais baratas, mas a maioria delas se
aplica aos dados de radar do NEXRAD, o que as torna pouco útil para pesquisadores brasileiros.
Além disso, não existem aplicações de código aberto que possam ser ajustadas às necessidade
dos usuários ou evoluída conforme novas tecnologias se tornem disponíveis.
3.2
Objetivos
Devido aos problemas apresentados, decidimos criar a base para um sistema de visualização dos dados dos radares meteorológicos focado nos casos específicos de Bauru e Presidente
3
Dados cedidos pelo Sigmet.
3.3 Problema
36
Prudente. O trabalho visa a implementação um sistema que possa ser utilizado por pesquisadores que não tenham acesso ao IRIS e que desejem examinar os dados de radar de maneira
satisfatória.
O trabalho visa, em sua fase inicial, a criação de um visualizador em PPI dos dados gerados
pelo radar com controles para ampliação de imagem, seleção de cortes e circulares e exibição
de valores numéricos de uma determinada região do mapa exibido. Além disso, é interessante
que o software possa salvar esses dados em formato texto ou em imagem, para que seja possível
focar o estudo em partes relevantes das informações obtidas pelo radar.
3.3
Problema
Para modelar nosso sistema, tivemos primeiro que entender o funcionamento do IRIS. Antes mesmo de iniciarmos o planejamento da interface e das funcionalidades, foi necessário
compreender a organização interna dos arquivos gerados pelo IRIS.
Depois disso, discutimos as funcionalidades do IRIS que são desejáveis para nosso software, e algumas funcionalidades extras que decidimos por implementar, dado potencial de uso.
3.3.1
Os arquivos de radar
Computacionalmente falando, os arquivos de radar são representados por matrizes de dados
de dimensão elevada4 . Uma leitura completa tem em torno de 4 megabytes mas, graças à evolução do hardware nos últimos anos, é possível trabalhar confortavelmente com arquivos desse
tamanho na memória.
Um problema que surge é fato dos arquivos serem em formato ASCII, possuindo uma
grande quantidade de informação distribuída de maneira não uniforme, o que torna a leitura
mais complicada, pois o programa precisa diferenciar o tipo de informação que está lendo a
cada passo de sua execução.
Depois de uma análise do problema, percebemos que é possível dividir cada arquivo de
radar em três partes significativas, que devem ser tratadas diferentemente pela função de leitura
– O Nome do Arquivo, o Cabeçalho e a Matriz de Dados. Essas serão descritas nas próximas
sessões.
4
Em torno de 360 × 2000
37
3.3 Problema
Tabela 3.1: Campos fixos no nome do arquivo
Caracteres
Significado
1,2 e 3
Origem
4e5
Ano
6e7
Mês
8e9
Dia
10 e 11
Horas
12 e 13
Minutos
14 e 15
Segundos
16
“.”, marcação de fim da Data
Tabela 3.2: Campos variáveis no nome do arquivo
Caracteres
Significado
Entre “.” e “km” Raio inicial da leitura, de 1 a 3 casas
km
Marcação de final de raio inicial
Entre “km” e “-”
Azimute inicial, de 1 a 3 casas
Marcação de final do azimute inicial
Entre “-” e “az”
Azimute final, de 1 a 3 casas
az
Marcação de final do azimute final
3.3.1.1
Nome do arquivo
O IRIS utiliza um padrão bastante interessante para nomear os arquivos gerados pelo radar.
Ele contém dados da Localização, momento da leitura e outras informações úteis para a exibição
dos dados.
Muitos desses dados não podem ser encontrados em nenhum outro lugar do arquivo, e
são, portanto, extremamente úteis para o escopo de nosso trabalho. Nessa seção, utilizamos
como exemplo o arquivo PPR070104151526.257km87-100az. Para facilitar a compreensão,
transcrevemos essas informações na Tabela 3.1.
Arquivos com a matriz inteira costumam ter o nome só até esse ponto, seguindo uma extensão qualquer, como “.txt”. Os demais arquivos (que foram os mais comuns em nosso material de
testes) exibem ainda uma extensão dessas informações. Eles são então compostos pelos dados
da Tabela 3.1, com as adições da Tabela 3.2.
Exemplo
O nome do arquivo já exibido, PPR070104151526.257km87-100az, pode ser de-
codificado conforme mostra a Tabela 3.3. Sabemos então que ele diz respeito a uma leitura em
Presidente Prudente, no primeiro de janeiro de 2007, pouco depois das 15 horas e 15 minutos,
e começou no quilômetro 257 (distância do radar).
38
3.3 Problema
Tabela 3.3: Exemplo de decodificação do nome de arquivo
Caracteres
Significado
PPR
Origem (Presidente Prudente)
07
Ano
01
Mês
04
Dia
15
Horas
15
Minutos
26
Segundos
.
Marcação de fim da Data
257
Raio inicial da leitura
km
Marcação de final de raio inicial
87
Azimute inicial
Marcação de final do azimute inicial
100
Azimute final
az
Marcação de final do azimute final
Sabemos agora como é codificado o nome do arquivo, mas ainda é interessante estudar
o cabeçalho do mesmo para que possamos compreender o tipo de informações que pode ser
extraída de lá.
3.3.1.2
Cabeçalho
A seguir, apresentamos o cabeçalho do arquivo PPR070104151526.257km87-100az, já exibido na seção 3.3.1.1.
------------- Product Summary for PPR070104151526.RAWMRYJ ------------Ingest site name
: ’Sao Paulo,Brazil’, Version: 8.10
Ingest hardware name: ’Sao Paulo,Brazil’
Product site name
: ’Sao Paulo,Brazil’, Version: 8.10
File size: 933888 bytes (Disk space: 933888 bytes)
Product type is: Raw Data
PCO name: SURVEILLANCE,
TCO name: SURVEILLANCE
PRF: 250Hz, Wavelength: 10.70cm, Nyquist: 6.69m/s(V), 6.69m/s(W)
XMT Polarization: Horizontal, Wind:???
Constant:72.74 dB, I0:-112.09 dBm, Cal Noise:-80.92 dBm, Bandwidth:0 kHz.
Heights: Radar: 493m, Ground: 473m, Melting: ????m MSL
Maximum range: 450.0 km
Single sweep #1, Force 8-bit, All data recorded
Ingest time: 15:15:26
Volume scan time: 15:15:26
4 JAN 2007 BRT (180 minutes west)
4 JAN 2007 BRT (LT: BRT 180 minutes)
Oldest Ing time: 15:15:26
4 JAN 2007 LT
Product Gen time: 18:16:08
4 JAN 2007 UTC
Input count: 1
Product is not composited.
Information from INGEST Header
39
3.3 Problema
-----------------------------Site name: ’Sao Paulo,Brazil’,
Scan: PPI Full,
Task name: ’SURVEILLANCE’
Speed: 9.00 deg/sec,
Resolution:1.00 deg
Description: ’Surveillance to 450 km’
Location:
22◦ 10.5’S
51◦ 22.5’W,
Volume Time: 15:15:26.673
Altitude: 493 meters, Melting height:Unknown
4 JAN 2007 BRT (180 min. west) (LT: BRT 180 min.)
Flags: SPT, SPV, 3lag, ship, unfold, fall, block, attn, target
PRF: 250Hz,
PulseWidth: 1.91 usec (1)
BeamWidth: 2.00/2.00 deg.
Radar constant: 72.74/72.74 dB, Receiver bandwidth 0 kHz.
Calibration I0: -112.09/-104.30 dBm, with noise -80.92/-72.37 dBm.
LOG-Noise: 0.1613, Lin-Noise: 0.1613, I-Off: 0.0000, Q-Off: 0.0000
SOPRM Flags: 0x04af, LOG Slope: 0.480, Z-Cal: -39.31dBZ, H/V: 0.00 dB
Filters: Dop:2, Log:0;
PntClt: 0, Thresh: 0.0 dB;
Samples: 32
Processing Mode: FFT
Zdr Threshold: LOG
GDR = 0.00 dB,
T Threshold: LOG
LOG =
1.8 dB
Z Threshold: LOG & CSR
SIG =
5.0 dB
V Threshold: SQI & CSR
CSR = 18.0 dB
W Threshold: SIG & SQI & LOG
SQI = 0.50
XDR = 0.00 dB
Available moments are: dBT dBZ V W
Original moments were: dBT dBZ V W
Starting range 1.000 km, range bin spacing 250 meters
There are 1 sweeps, each having 360 rays and 1797 bins
Angle list:
0.3
This RAW product contains only sweep #1.
What parameter do you wish to display? Sorry, unrecognized parameter, try again:
What parameter do you wish to display? Do you want just performance information?
Enter starting range in km:
Sweep began at: 15:15:26
4 JAN 2007 BRT
Com uma leitura rápida, é fácil perceber que o cabeçalho possui uma série de informações
relevantes ao teor de nosso trabalho. Dessas, as mais importantes são apontadas a seguir.
Starting range 1.000 km, range bin spacing 250 meters
Dessa linha, notamos que cada uma das leituras do radar é feita com um incremento de 250
metros de raio em relação à medida anterior. Percebemos também que o primeiro quilômetro
de leituras não é computado nos dados. Na linha seguinte, temos outra informação valiosa:
There are 1 sweeps, each having 360 rays and 1797 bins
É possível saber que temos apenas uma tabela de dados no arquivo (1 sweep, ou seja, apenas
uma leitura do radar), que ela tem 360 linhas (ou seja, o radar disparou 360 feixes de rádio),
e que tem 1797 colunas (em outros termos, significa que o radar separou as leituras em 1797
intervalos de tempo, e, diretamente, distâncias).
40
3.3 Problema
Percebemos que informações relevantes, como número de colunas e linhas, ou distância
inicial da leitura, são omitidas nesse cabeçalho. Para essas informações, a Seção 3.3.1.1 nos
mostra uma alternativa bem mais aceitável.
Outro motivo que nos desencoraja o estudo do cabeçalho é a grande quantidade de informações técnicas encontradas. Cada arquivo tem uma coleção de dados sobre a calibragem do
equipamento e outros fatores que fogem ao escopo de nosso trabalho.
3.3.1.3
A Matriz de dados
O arquivo gerado pelos radares do IPMet possuem, como já mencionado, um cabeçalho de
dados, mas a maioria dessas informações só é significativa nas mãos de técnicos de radar, pois
tratam de aspectos relacionados à calibragem e configuração do aparelho. Para os estudiosos
das informações observadas pelo radar, é mais interessante o foco nos dados da leitura.
Esses dados só se iniciam depois de um cabeçalho de tamanho variável que, para nosso
estudo, deve ser desconsiderado da leitura. É necessário então entender exatamente onde terminam os cabeçalhos e começam os dados. A seguir, vemos exemplos da transição do cabeçalho
para a matriz onde estão os dados. Omitimos os dados, pois uma única linha da tabela poderia
ocupar várias páginas. Eles estão disponíveis no CD que acompanha esse texto, cujo conteúdo
está referenciado no Anexo B.
Exemplo
Leitura do arquivo PPR070126014527.51km256-285az
Sweep began at: 01:45:27 26 JAN 2007 BRT
#
0
Az: 359.34,
Exemplo
0.51
El:
0.35,
0.31
Size:1797
1:46:06
Leitura do arquivo BRU070126014508.292km271-279az
Sweep began at: 01:45:08 26 JAN 2007 BRT
#
0
Az: 359.37,
0.53
El:
0.31,
0.33
Size:1797
1:45:35
Como a linha iniciada por # é uma espécie de cabeçalho de cada linha de dados (omitida nesses exemplos), percebemos que a primeira linha a ter informações relativas aos dados
começa logo após a linha iniciada por “Sweep began at:”
Percebemos também que nenhuma linha do exemplo de cabeçalho começa com o caractere
#. Isso pode ser constatado para todas as linhas, observando o cabeçalho completo já exibido na
3.3 Problema
41
Subseção 3.3.1.2. Sem grandes dificuldades, pode-se bolar um algoritmo para que a leitura do
arquivo só seja iniciada nesse ponto, bastando posicionar a cabeça de leitura na primeira linha
iniciada pelo caractere “#”.
Então, nos resta entender como fazer a leitura da matriz dos dados propriamente dita. Primeiro, notemos que a linha “# 0 Az: 359.37, 0.53 El: 0.31, 0.33 Size:1797 1:45:35” pode ser
decodificada facilmente. São-nos interessantes apenas os termos iniciais “0 Az: 359.37”. Desses, o número “0” representa o índice da matriz (no campo dos azimutes), enquanto o número
“359.37” é o azimute da leitura que vamos tratar.
Terminada a obtenção dos dados a respeito do conteúdo da linha, devemos iniciar a leitura
das informações por ela contida. Os valores são formatados de maneira bem simples: as linhas
te dados são compostas por seqüencias de palavras entre 3 e 5 dígitos (incluindo também os
símbolos “.” e “-”), separadas por espaços ou caracteres diferentes de “#”. Nosso software deve
ler essas linhas, colocando os dados de cada uma das palavras na coluna respectiva da tabela de
dados.
Não existe padrão para a quantidade mínima e máxima de colunas da tabela, apesar de
termos um limite teórico de 1800 colunas para as leituras, o que equivaleria a 450 km em
condições padrão. Também não existe necessidade de que exista o mesmo número de colunas
por linha, pois muitos cortes reduzem o intervalo de azimutes estudado. Por outro lado, é
necessário manter a ordem das colunas durante a leitura. Isso pode ser feito simplesmente
retornando a cabeça de escrita para a coluna inicial já conhecida devido aos cabeçalhos do
arquivo.
A leitura continua até que seja encontrado o final do arquivo ou um erro na formação dos
dados. Podemos então partir para a segunda fase de nosso projeto, que é a exposição das
informações do arquivo em formato inteligível.
3.3.2
Requisitos
Já conhecemos o tipo de informação que precisamos ler do arquivo. Devemos agora definir
exatamente quais são os objetivos de nosso sistema no que diz respeito à interface e utilização.
Para isso, temos como base o software IRIS.
Em nosso estudo, tivemos contato apenas com screenshots5 do IRIS, o que não nos possibilitou conhecer a fundo todas suas funções. Utilizamos então informações sobre como os dados
eram utilizados por pesquisadores, com a intenção de criar uma ferramenta que facilitasse esse
5
Capturas de telas ou fotos de um software em funcionamento
42
3.3 Problema
tipo de uso.
3.3.2.1
Exibição dos dados
No IRIS, a exibição básica dos dados é feita nos modelos do PPI, já explicado no item 2.5.
Significa que devemos projetar os dados da matriz utilizando coordenadas azimutais em um
espaço basicamente cartesiano.
Para isso, tivemos de primeiro converter as coordenadas azimutais em coordenadas polares,
e por fim, transformá-las em pares no plano cartesiano. A equação 3.1 ensina como calcular
as coordenadas polares a partir das coordenadas azimutais (uma simples conversão de azimutes
para graus), enquanto o sistema 3.2 nos mostra como proceder para encontrar o par (x, y) de
coordenadas cartesianas.
Θ = 90 − Φ

 x = r · cos Θ
(3.1)
(3.2)
 y = r · sen Θ
r é o raio (distância em relação ao radar), em colunas.
Θ é o ângulo, em graus.
Φ é o azimute, em graus.
(x, y) é o vetor de coordenadas do plano cartesiano.
Assim, basta que implementemos uma função em nosso programa que varra a matriz de
dados e imprima na tela, em PPI, os dados encontrados. Claro, seria muito difícil ler esses
dados em valor numérico, por isso, utilizamos a escala de cores mencionada na Tabela 2.2.
Outro ponto importante é que nosso visualizador seja semelhante ao do IRIS, para maior
conforto dos usuários que já estejam habituados ao sistema. O IRIS possui uma série de informações bastante úteis, como marcadores de distância e azimute, como mostra a Figura 3.1.
Seria pouco prático se nosso programa não fosse capaz de reproduzir essas funções.
Dessa forma, garantimos que nosso sistema é semelhante, pelo menos visualmente, ao que
os cientistas estão acostumados a trabalhar. Com as decisões básicas do design tomadas e com
43
3.3 Problema
Figura 3.1: Screenshot do IRIS
a idéia do mecanismo por trás da exibição do PPI, devemos agora nos concentrar em tornar o
sistema fácil de compreender e usar pelos pesquisadores da área.
3.3.2.2
Interatividade
Não seria possível utilizar o programa de maneira produtiva, caso não houvesse funções
especiais desempenhadas em resposta às ações do usuário. Em nosso sistema, a maior parte
dessa interatividade é feita com o uso do mouse.
Para facilitar a visualização das informações do PPI, optamos pelo uso de um mostrador
que apresente os dados relativos à posição do ponteiro do mouse, ou seja, distância e azimute
em relação ao radar, além valor da leitura no ponto escolhido. Com isso, o usuário pode obter
exatamente as informações de um ponto da circunferência, sem necessitar de aproximações
intuitivas.
Decidimos também que utilizaríamos o recurso de clicar e arrastar para selecionar zonas
especiais de nossa exibição. As ações que escolhemos para o nosso sistema foram as seguintes:
• Ampliar: Amplia a projeção atual para que se foque nos dados do retângulo de seleção
escolhido pelo mouse. Útil para estudar detalhes.
3.4 Implementação
44
• Visualizar Setor Circular: Amplia a projeção atual num Setor Circular escolhido pelo
mouse, tornando o resto da amostragem invisível. Útil para se estudar partições dos dados
de maneira isolada.
• Visualizar Corte: Cria um gráfico escalar da linha reta entre dois pontos escolhidos pelo
mouse. Bastante importante para o estudo do perfil dos dados.
• Visualizar Formato Numérico: Mostra os dados de maneira numérica, em uma tabela,
centrada no ponto escolhido pelo mouse. Especialmente útil para visualizar informações
precisas sobre uma dada posição.
• Arrastar Projeção: Serve para deslocar a projeção, de modo que seja possível esturar os
demais dados sem a necessidade de fazer uma nova seleção.
Além disso, também foram definidos alguns comandos com o teclado, para maior comodidade dos usuários. As mais importantes são listadas logo abaixo:
• ESC: retorna o programa para um estado anterior. Dessa forma, é possível alternar rapidamente entre dois tipos de visualização de informação.
• c: altera rapidamente a opção de quantidade de cores do PPI de maneira circular.
• q: altera rapidamente a opção de qualidade da exibição do PPI de maneira circular.
• u: alterna rapidamente entre as unidades de medida da projeção (milhas e quilômetros).
3.4
Implementação
Definimos os problemas iniciais e as propostas para que o software fosse construído, e
agora resta a programação do sistema. Em nossa busca por encontrar as ferramentas ideais para
a implementação do projeto, tivemos de fazer duas escolhas importantes.
A primeira escolha diz respeito à API gráfica que usaríamos. Escolhemos o OpenGL por
ser leve e de fácil portabilidade, existindo sua implementação em várias arquiteturas distintas.
Como uma camada de abstração para facilitar a criação de janelas e o uso de comandos do
teclado e do mouse, escolhemos pela biblioteca GLUT, pelas mesmas facilidades do OpenGL. O
GLUT é uma coleção de rotinas que visa simplificar a programação de projetos em computação
gráfica, e é distribuído gratuitamente na internet, além de possuir uma documentação bastante
farta.
45
3.4 Implementação
Munidos da API, restava escolher a linguagem. Por sorte, o OpenGL e o GLUT foram portados para muitas linguagens diferentes. Optamos pelo C++, por ser uma linguagem moderna
e praticamente uma linguagem comum entre os cientistas da computação. Essa escolha foi
importante não só pelas poderosas capacidades da programação orientada a objetos, mas pela
facilidade de encontrar programadores da mesma, de forma a tornar o código fonte acessível a
uma parcela maior de desenvolvedores.
Também optamos por fazer uma ferramenta de código aberto, pois é interessante que o
sistema continue a evoluir conforme surgirem novas necessidades ou tecnologias. Também
outros desenvolvedores poderão fazer suas modificações, garantindo uma vida mais longa para
nosso trabalho.
Feitas essas colocações, é hora de entender os conceitos básicos de nossa implementação.
3.4.1
As janelas
Decidimos por implementar o sistema utilizando não somente uma, mas duas janelas diferentes. Muitas vezes, o usuário só está interessado na tela do PPI, e não se incomoda em não
observar os dados relativos ao local ou momento exato de um evento estudado. Utilizamos as
capacidades nativas do GLUT para gerar as duas janelas, definindo separadamente os controles
de cada uma delas.
Na janela principal, temos as projeções propriamente ditas. A tela inicia com o PPI do
arquivo, apontado na inicialização, mostrada na Figura 3.2, e contém as seguintes informações:
Figura 3.2: Janela PPI
46
3.4 Implementação
• Projeção colorida da matriz de dado, em coordenadas azimutais.
• Mapa do estado de São Paulo e vizinhanças, centrado na localidade do radar em questão.
• Escala de distância e azimute (variando a distância entre quilômetros e milhas).
• Um quadro mostrando qual a posição atual do ponteiro do mouse (distância e azimute em
relação ao radar), bem como o valor da leitura na região apontada (em dBZ).
Além dessas informações, podemos escolher, via botão direito do mouse, duas outras opções de visualização: observar os números diretamente (por uma tabela, como na Figura 3.3)
ou observar o gráfico da variação dos valores das medidas em um mesmo ângulo ou distância,
exemplificado pela Figura 3.4.
Figura 3.3: Valores numéricos
Na segunda janela, temos informações importantes para a identificação do arquivo. Em
nosso sistema, incluímos, seguindo o padrão do IRIS, o Lugar, Data e Hora em que foi realizada
a leitura que estamos exibindo. Também optamos por exibir uma escala das cores que utilizamos
para representar cada variação de dBZ, como podemos ver na Figura 3.5.
Em nossa implementação, optamos por utilizar as mesmas 32 cores que o IRIS possui.
Para deixar que o usuário escolha como deve ser feita essa impressão. Existem opções para
outros modos de cores (com menos ou mais cores, além do padrão de brilho utilizado antes
dos computadores modernos) e também outros modos para decidir que tipo de transição deve
existir entre as leituras do radar no PPI (dégradé suave, transição brusca ou pontos, utilizados
por alguns programas).
47
3.4 Implementação
Figura 3.4: Gráfico da variação em um dado corte
Figura 3.5: Janela de informações
3.5 Consideraçõs finais
3.4.2
48
Interatividade
Decidimos manter nossa solução baseada mais no uso do mouse que no do teclado. Essa
escolha foi feita para evitar que o usuário tenha que aprender vários comandos e teclas de atalho.
Em qualquer tela do programa, quando o usuário clica com o botão direito do mouse, surge
um menu com as opções relativas ao que ele pode fazer em dado momento. Na janela de
projeção, ele pode alterar a forma como os dados são apresentados. Quando essas opções são
escolhidas, normalmente o usuário deve clicar com o botão direito e arrastar o ponteiro, de
forma a escolher a partição de dados que gostaria de observar.
Na tela de informações, o usuário tem um menu para alterar as opções de exibição, como
quantidade de cores, qualidade da imagem e outras características do software. Na tela de
informações, também são exibidos os atuais valores de cada uma dessas opções, para que o
usuário possa escolher com mais facilidade.
3.5
Consideraçõs finais
Nesse capítulo, falamos sobre os problemas que nos motivaram à realização desse projeto.
Propusemos-nos a criar um software livre que pudesse realizar algumas funções do IRIS, um
sistema não-livre e bastante caro.
Nos aprofundamos no estudo dos arquivos de radar gerados pelo software da Sigmet, que
foram o principal foco de estudo durante a implementação de nosso sistema. Também discutimos brevemente as transformações de coordenadas necessárias para que nosso sistema pudesse
funcionar corretamente.
Por fim, falamos sobre nosso produto final, um visualizador de dados de radar utilizando
OpenGL e C++. Comentamos sobre nossas escolhas em relação à interface e interatividade, e
mostramos algumas capturas de tela do resultado final.
49
4
Testes e exemplos
“Nada é impossível para aquele que tenta.”
Alexandre o Grande
Nesse capítulo discutimos o produto final de nosso trabalho e também os resultados obtidos
com sua construção. Apresentamos detalhes que nos levaram a modificações e novas abordagens durante o período inicial de testes, e explicamos por que algumas decisões de modelagem
foram tomadas. Abordamos cada uma das principais funções do software desenvolvido, incluindo uma comparação com o IRIS.
4.1
Explicações necessárias
Antes de iniciarmos a apresentação de nossos resultados, devemos dar detalhes sobre as
condições onde o software foi testado. Isso inclui a máquina onde foi executado, o sistema operacional, e também quais foram os arquivos necessários para o software pudesse ser executado
sem problemas. Apresentamos, ainda, informações sobre as leituras de radar que utilizamos em
nosso exemplo, para que os testes possam ser repetidos por usuários futuros.
Nosso sistema foi desenvolvido utilizando a linguagem C++. Utilizamos a IDE Bloodshed
Dev-C++ versão 4.9.9.2 em todo o processo de programação, aliada ao compilador GCC versão
3.4.2. Também utilizamos uma série de bibliotecas disponíveis naturalmente junto ao GCC, a
C++ STL (Standard Template Library), para facilitar o desenvolvimento.
A API OpenGL, em sua versão 2.1, foi largamente utilizada no projeto, sendo a base de
todas as projeções. Também utilizamos, em menor escala, a biblioteca GLU (OpenGL Utility
Library) versão 1.3, e, em maior escala, a biblioteca GLUT (OpenGL Utility Toolkit) versão
3.7. O GLUT foi muito importante em nosso trabalho, responsável pelo controle de entrada do
mouse e teclado, bem como das janelas.
Além disso, utilizamos as bibliotecas ZLIB versão 1.2.3, libJPEG versão 6b e libTIFF
50
4.2 Comparação
Máquina
Processador
Memória RAM
Video
S.O.
Disco Rígido
Tabela 4.1: Máquinas usadas
Desktop 1
Notebook
Athlon XP 1800+ Athlon XP 3400+
512mb
256mb
GeForce4 Ti4200 GeForceGo6150
Windows 2003
Windows XP
286gb
40gb
Desktop 2
Pentium III 700mhz
128mb
Intel i810 8mb
Windows 98 SE
10gb
Tabela 4.2: Arquivos utilizados
Nome do Arquivo
BRU040107170009
BRU060826200000
BRU061015164507
(RINEHART, 1997)
versão 3.6.1 para realizar as funcionalidades relacionadas com salvar a amostra em formato de
imagem.
O executável é um arquivo único, com pouco mais de 1,2 megabytes. No Windows, são
necessários que os seguintes arquivos estejam na pasta System32 do diretório onde o sistema foi instalado ou no diretório do executável do programa: libtiff3.dll, jpeg62.dll, zlib1.dll,
opengl32.dll, glu32.dll, glut32.dll. Esses arquivos são relacionados às bibliotecas que utilizamos em nosso software.
Utilizamos três computadores diferentes para validar nosso projeto, de forma a minimizar a
chance de erros e localizar problemas relacionados com portabilidade. As máquinas utilizadas
para os testes possuíam as características apontadas na Tabela 4.1. Elas possuem características
bem distintas, para assegurar que o sistema pode ser executado em máquinas mais modestas e
nas mais modernas sem grandes diferenças de desempenho, mantendo resultados coerentes.
Em nossos testes, utilizamos os arquivos listados na Tabela 4.2, que contém leituras de
radar. O funcionamento e formatação desses arquivos foram devidamente tratadas na seção
3.3.1.
4.2
Comparação
Nessa primeira fase de nossos testes, tratamos da validação de um dos objetivos iniciais
propostos pelo projeto: a semelhança com o software IRIS, no qual baseamos parte de nosso
sistema. Fazemos uma comparação entre as visualizações (PPI) geradas por ambos os programas, com comentários relevantes a cada situação apresentada.
51
4.2 Comparação
4.2.1
Esclarecimentos
O IRIS mostra o PPI e as informações sobre a leitura em uma única janela. Em nosso
estudo, percebemos que muitas vezes a sub-janela de informações sobre a leitura nem sempre
é tão importante quanto a amostragem dos dados e, por isso, optamos pelo uso de duas janelas
diferentes, de forma que o usuário possa rapidamente se desfazer da janela de informações se
essa não o interessar.
Também devemos salientar que nosso padrão de cores foi baseado no padrão utilizado por
uma série de capturas de tela do IRIS em funcionamento. Em alguns dos exemplos, o usuário
alterou o padrão do IRIS de forma a enfatizar algum dado da leitura. Optamos por não alterar
nosso padrão de maneira semelhante, para facilitar a interpretação e comparação entre nossas
próprias capturas.
4.2.2
PPI inicial
O evento dessa primeira comparação é de uma leitura feita pelo radar de Bauru, em 26 de
agosto de 2006, às 20 horas. É uma leitura com alcance de 450km, e é interessante por possuir
área bem grande de precipitações.
A Figura 4.1 é o PPI gerado IRIS, acompanhado das informações relevantes. O padrão das
cores está levemente alterado, como mencionado na seção 4.2.1, tendendo mais para o verde,
enquanto nossa exibição tende mais para o amarelo. Essa divergência não é um erro, e sim, uma
variação das capacidades de exibir os dados.
Figura 4.1: Imagem do IRIS
52
4.2 Comparação
Nosso PPI e os dados são apresentados na Figura 4.2, e pode-se notar que as informações
são válidas, tomado como parâmetro o IRIS. A diferença no formato das precipitações deve-se
ao fato que o IRIS só começa a exibir os dados acima de 15 dBZ, enquanto nosso software
exibe informações desde -12.5 dBZ. Podemos argumentar que, nesse exemplo, nossa leitura é,
de fato, mais precisa que a do IRIS, apesar de normalmente informações abaixo de 0 dBZ não
serem tão úteis quanto as informações acima dos 20 dBZ (RINEHART, 1997).
Figura 4.2: Nosso sistema
Um detalhe ausente em nosso sistema é o detalhamento topográfico do mapa do estado de
São Paulo, como podemos ver na Figura 4.1. Essa opção não prejudica de forma considerável
o estudo dos dados, mas poderia ser considerada para um trabalho posterior. Em muitas fotos,
o IRIS não usa o mapa, como por exemplo, na Figura 4.3.
Outra diferença bastante marcante que pode ser considerada como um avanço de nosso sistema em relação ao IRIS é o marcador de posição do ponteiro do mouse. É o pequeno conjunto
de dados do lado esquerdo da tela, que informam sobre qual a distância do radar e o azimute do
ponto apontado no PPI, bem como o valor da leitura naquela posição. Essa pequena melhoria é
útil para encontrar rapidamente as informações, sem ser necessário aproximar mentalmente os
dados.
53
4.3 Exibição das funções
Figura 4.3: IRIS sem topografia
4.3
Exibição das funções
Nossos testes não poderiam estar completos sem que fosse realizada uma análise mais aprofundada de suas capacidades.
Como parte de nosso processo de validação do software, exibimos suas funcionalidades
do e dos detalhes que nos levaram a escolher uma ou outra abordagem durante a fase final do
desenvolvimento. Também fazemos uma revisão nos métodos de saida e manipulação de dados
que programamos em nosso sistema, com as devidas explicações para cada uma de nossas
escolhas.
No Capítulo 3, relatamos as diferentes maneiras implementadas em nosso sistema pelas
quais é possível exibir os dados obtidos pelas leituras do radar meteorológico. Apesar de nosso
principal foco ter sido o PPI simples, padrão na maioria dos sistemas estudados, nós também
exibimos gráficos escalares e a planilha dos valores numéricos, opções bastante úteis para um
estudo mais focado de uma região ou evento.
4.3.1
Salvando em texto
Uma das características mais importante de nosso sistema é sua capacidade de salvar partições dos dados de radar meteorológico exibidos num formato que permita sua re-interpretação
pelo sistema.
Nosso programa consegue salvar no formato do IRIS os dados de qualquer leitura bem
54
4.3 Exibição das funções
construída que possa ser exibida sem problemas. O processo, no entanto, requer uma condição
especial – o usuário deve estar visualizando os dados na forma de Corte da Seção Circular,
Gráfico Escalar ou a grade de valores numéricos.
Esse teste envolve as operações de selecionar, salvar e abrir os arquivos salvos. Em todos
os exemplos, utilizamos o arquivo de saída. TIFF para as capturas de tela.
4.3.1.1
Fatia
Nessa sub-seção, fazemos o teste de salvar como arquivo de texto os dados de uma partição
selecionada de um PPI gerado pela interpretação do arquivo BRU070225140101, como mostra
a Figura 4.4.
Figura 4.4: Primeiro evento
Na Figura 4.5, temos a seleção da partição, iniciando no raio 72km em relação ao radar
(ou range) até o raio 115km, no intervalo entre os azimutes 79 e 88. Esse arquivo será salvo
utilizando a função de salvar como texto de nosso software.
Por fim, temos a exibição sem ampliação de todo o PPI, tela inicial de nosso software, na
Figura 4.6. Esse resultado foi obtido utilizando o arquivo salvo anteriormente como arquivo
de entrada. Podemos observar que nosso sistema suporta a leitura de arquivos que ele mesmo
gerou.
55
4.3 Exibição das funções
Figura 4.5: Corte do PPI
Figura 4.6: Arquivo do corte aberto
56
4.3 Exibição das funções
4.3.1.2
Valores numéricos
Vamos apresentar um teste agora utilizando os valores numéricos de uma seleção do arquivo
BRU070316133101. Podemos observar o arquivo completo na Figura4.7.
Figura 4.7: Segundo evento
A grade numérica apresentada na Figura 4.8 é semelhante à captura de tela da Figura 3.3,
mas optamos por utilizar outro padrão de cores (uma das opções do software) para facilitar o
reconhecimento dos dados.
Nosso teste termina com o uso do arquivo gerado como entrada. Na Figura 4.9, podemos
ver o quão pequenos são o intervalo de pouco mais de 7 km que apresentamos na tela anterior,
quando exibidos em um PPI.
4.3.1.3
Gráfico
Como último teste, exibimos o gráfico relativo ao corte fixo no azimute 246, dos raios 77
km até 230 km. A Figura 4.10 e o PPI do arquivo BRU040107170009.
Vemos então o gráfico na Figura 4.11. As cores estão diferentes do gráfico apresentado na
Figura 3.4 apenas para podermos mostrar a função de alteração de cores de nosso sistema.
57
4.3 Exibição das funções
Figura 4.8: Valores numéricos exibidos
Figura 4.9: Reimpressão dos valores
58
4.3 Exibição das funções
Figura 4.10: Terceiro evento
Figura 4.11: Gráficos dos valores
4.4 Desempenho e soluções encontradas
59
Para finalizar os testes para salvar como texto, resta abrir o arquivo gerado utilizando nosso
sistema. Podemos ver o resultado na Figura 4.12.
Figura 4.12: Reimpressão da reta
Podemos concluir que os testes de imagens funcionaram com os três exemplos propostos. Melhor que isso, os arquivos gerados são compatíveis com os arquivos do IRIS, o que é
uma vantagem. Numa versão posterior, poderia ser implementada a capacidade de salvar esses
arquivos em formatos diferentes.
4.4
Desempenho e soluções encontradas
Nos primeiros testes que realizamos com o software, notamos uma lentidão considerável
ao abrir arquivos cujo alcance da leitura fosse superior a 100km. Na verdade, é fácil entender
o problema. Cada arquivo na verdade deve ser considerado como uma matriz de azimute ×
distância do radar, como já mencionado na Seção 3.3.1.3. Cada um desses pares é associado
a coordenadas (x, y) no plano cartesiano, que são utilizadas pelo OpenGL. Além disso, cada
par (r, θ) também é associado a um valor real, que é a intensidade, em dBZ, da leitura naquele
ponto.
O problema dessa interpretação é que uma matriz com 360 azimutes e 2000 intervalos de
4.5 Considerações finais
60
distância ocuparia quase 8MB na memória. É uma quantidade muito grande de dados para se
exibir de forma vetorial. Descobrimos que o tempo entre as atualizações de tela do OpenGL
eram de mais de 1 segundo, inaceitável para um software que não realiza operações complexas.
Uma abordagem diferente foi utilizada. Analisando com cuidado as capturas de tela do
IRIS, notamos que ele não parecia mostrar os dados em intervalos de 250m, mas em intervalos
de quase 1km. Resolvemos utilizar uma solução semelhante.
Optamos por criar uma nova matriz, com metade dos valores dos raios. Como opção de
desenvolvimento, o sistema atribui o maior valor entre duas leituras adjacentes para um único
valor da tabela simplificada. Com isso, passamos de 2000 valores em cada azimute para 1000
valores. O ganho em velocidade foi de mais de 50%, e não houve perda considerável na qualidade do PPI.
Como teste, reduzimos ainda mais uma vez esse valor, para 500 valores por azimute, obtendo um resultado bem mais interessante, com redução pouco significativa da qualidade da
exibição. Decidimos, porém, implementar uma opção para que o usuário possa decidir entre
qual das 3 versões usar.
Aumentos progressivos da distância mínima (oito ou 16 vezes maior) se mostraram ainda
mais rápidos, mas a qualidade do PPI ficou bastante degradada. Optamos por deixar esses
valores fora do software devido a esse problema.
Na versão final, o sistema consegue operar com leituras de 450 km com um intervalo mínimo de atraso.
4.5
Considerações finais
Nosso sistema pretendia mimetizar algumas das características visuais do IRIS, e nossos
testes mostram que fizemos um grande avanço nesse setor. Restam ainda algumas funcionalidades do programa não-livre, como capacidade de exibir mais de uma leitura ao mesmo tempo,
ou ainda, de fazer animações com a progressão dos eventos pelo tempo.
Além disso, nosso software mostrou ser capaz de manipular os dados e salva-los de maneira
que continuem compatíveis com os dados de leitura de radar gerados pelo IRIS. Essa característica é bem importante, e poderia ser explorada futuramente para a geração de outros formatos
de saída, para que os pesquisadores possam utilizar vários softwares para fazerem suas análises
numéricas.
Também estudamos o problema de desempenho com o qual lidamos até uma fase avançada
4.5 Considerações finais
61
de nosso projeto, e mostramos a solução apresentada. As idéias poderiam ser melhor ainda
aproveitadas, gerando mais comodidade ao usuário final.
62
5
Conclusões
“A vitória pertence aos mais perseverantes.”
Napoleão Bonaparte
Devido à importância da meteorologia, foram desenvolvidos vários meios de estudar os
fenômenos climáticos. Um deles foi o uso de radares para o estudo de precipitações, que pode
dar informações importantes sobre o regime de chuvas de uma região.
Um dos problemas gerados pelo estudo dos dados das leituras do radar é a visualização dos
mesmos. Apesar dos estudos nas formas de apresentar esses dados serem bastante avançados,
ainda existem carências no que diz respeito aos softwares utilizados para tal fim. Esse problema
foi bem explorado no Capítulo 2.
Este trabalho oferece um software livre que permite visualizar dados oriundos dos radares
do Sigmet.
5.1
O projeto
O Projeto na construção do software para visualizar dados de radar meteorológico usando
OpenGL foi concluído com sucesso. Ele dispõe de todas as funcionalidades requeridas em
nossa primeira análise de requisitos, e pode ser utilizado por pesquisadores da área.
Foi importante para nos ensinar mais sobre OpenGL e sobre C++, além de ter nos ensinado
bastante sobre administração de código. A versão final do código fonte tem cerca de 8 mil
linhas, totalmente formatadas e documentadas para facilitar manutenção futura.
Os testes mostraram que as funcionalidades foram atingidas. O resultado pode ser utilizado
profissionalmente, como ferramenta de auxilio aos estudos dos dados dos radares.
5.2 Futuro
5.2
63
Futuro
Apesar de nosso sistema já estar maduro o suficiente para ser utilizado por pesquisadores,
ele ainda não está completo. Faltam-lhe algumas capacidades que, se implementadas, poderiam
torná-lo uma ferramenta realmente poderosa para cientistas.
Não foram implementadas funcionalidades para abrir e fechar arquivos utilizando os diálogos do sistema operacional; impressão em papel seria bem vinda. A adição ao suporte de mais
formatos de arquivos seria de todo uma boa aquisição para as capacidades do software.
Pelo fato do código do sistema ser aberto, isso permitirá que desenvolvedores futuros adicionem funcionalidades extras para o software, conforme seja necessário ao seu campo de trabalho.
64
ANEXO A -- Manual do Software
Esse anexo é um pequeno manual para o software desenvolvido pelo projeto.
A.1
Abrir o arquivo
Para abrir um arquivo de radar, basta seguir um desses dois passos:
Linha de Código
Em linha de código, vá para a pasta onde está o arquivo bolacha.exe, e
digite:
bolacha.exe "caminho do arquivo de radar"
Onde “caminho do arquivo de radar”1 (sem aspas) pode incluir diretórios.
Arrastar e Soltar
Arraste o ícone do arquivo de dados de radar para cima do ícone do
programa bolacha.exe, e solte o botão do mouse.
A.2
Tela inicial
A tela inicial exibe a projeção completa do arquivo de radar. A partir desta tela, podemos
ter acesso a todas as funções do programa. Em arquivos muito grandes, o programa pode se
tornar lento. Isso ocorre devido ao grande número de pontos necessários para que a projeção
seja feita de forma correta. Existe uma segunda janela, com dados e informações sobre a leitura.
É possível melhorar o desempenho diminuindo a qualidade dos gráficos.
Na tela inicial, existe uma escala (em quilômetros ou milhas), cuja função é orientar o
usuário. No canto inferior esquerdo da tela, existe um quadro negro que mostra, dada a posição
1
Nota do Desenvolvedor: O programa só aceita dados de radar IRIS, no formato de texto padrão. Para que
seja possível utilizar o Mapa e o posicionamento correto do raio inicial, é recomendado que o arquivo de radar
tenha o formato apresentado na Seção 3.3.1.1 da monografia.
65
A.3 Menu
do ponteiro do mouse, os valores do raio e ângulo azimutal (em relação ao radar, no centro) e o
valor da refletividade em dBZ. Esse valor é atualizado conforme o cursor do mouse for movido.
Devido aos problemas da biblioteca GLUT, se os valores não estiverem se atualizando, basta
clicar com o botão esquerdo do mouse em qualquer parte da tela do programa.
Nessa tela, é exibido um mapa simplificado do estado de São Paulo e seus estados vizinhos,
além da localização de algumas cidades.2
A.3
Menu
O menu é acessado pelo clique do botão direito do mouse em qualquer ponto da tela do
programa.
A.3.1
Menu principal
Ampliar Amplia a imagem do PPI.
Visualizar→ Sub-menu de Visualização.
Voltar Retorna à tela inicial.
Salvar→ Sub-menu de Salvar.
Sair Sai do programa.
A.3.2
Sub-menu “Vizualizar”
Corte→ Sub-menu Corte.
Setor Circular Seleciona um setor circular do PPI.
Deslocar Bolacha Desloca o centro do PPI para outra posição.
Valores Numéricos Mostra a grade de números.
2
Nota do Desenvolvedor: Fica a cargo de futuros desenvolvedores a implementação de um mapa mais preciso,
bem como a presença de mais cidades. É um processo simples, porém braçal, e leva muito tempo.
A.4 Menu de opções
A.3.3
66
Sub-menu “Gráfico Escalar”
Intervalo Angular Gráfico por variação de azimute.
Intervalo Radial Gráfico por variação de raio.
A.4
Menu de opções
Fundo e Texto (Gráficos e Números) Altera as cores dos dados
Qualidade do Display Controla interpolação de cores.
Quantidade de Cores Define padrão das cores usadas.
Sistema de Unidades Quilômetros ou Milhas.
Distância entre Leituras Precisão da impressão.
A.5
Telas
Vamos agora explicar cada uma das telas do programa.
A.5.1
Tela ampliada
Na tela ampliada, o mouse funciona de maneira idêntica à na tela inicial, incluindo o menu.
A única diferença é que agora é possível deslocar o mapa utilizando as teclas direcionais do
teclado. Isso é muito útil para varrer uma região em busca de informações.
A.5.2
Tela de corte
Na tela de corte, o mouse funciona de maneira idêntica à na tela inicial, incluindo o menu.
A única diferença é que agora é possível deslocar o mapa utilizando as teclas direcionais do
teclado. Isso é muito útil para varrer uma região em busca de informações.
Além disso, todas as informações fora da área de corte são escondidas, para que seja mais
fácil analisar os dados.
67
A.5 Telas
A.5.3
Tela de gráfico escalar
A tela de gráfico escalar não se beneficia de nenhum menu, apesar de estarem disponíveis.
Ela se beneficia do teclado da mesma forma que as outras telas ampliadas, ou seja, os direcionais
alteram as unidades.
A.5.4
Tela dos dados numéricos
Essa tela imprime os valores dos dados numéricos, e é possível usar o teclado para alterar
o foco da tela, utilizando as teclas direcionais. O mouse nessa tela não tem funções, e o menu
não tem toda a funcionalidade.
68
ANEXO B -- Conteúdo do CD
Um CD acompanha essa monográfia, contendo os seguintes arquivos:
binario.rar Executável do programa.
codigo.rar Código fonte do programa.
monografia.pdf Esse texto, em sua integridade.
requisitos.rar Arquivos de pré-requisitos e bibliotecas necessárias para o uso do software.
exemplos.rar Eventos para testar o software.
69
Referências
ABER, R. Social and Economic Benefits of Weather Services: Assessment Methods,
Results and Applications’ in WMO. Econorra’c and Social Benefits of Meteorological and
Hydrological Services, v. 1, p. 26–30, 1990.
ANGELIS, C. F. et al. Rede de radares meteorológicos: ação conjunta decea - inpe/cptec.
CONGRESSO BRASILEIRO DE METEOROLOGIA, XIV - (CBMET), 2006.
ANTÔNIO, M. A. Técnica de ajuste em tempo real de medidas de chuva com radar. Tese
(Doutorado) — "Universidade Estadual Paulista, Faculdade de Ciências Agronômicas"UNESP,
1998.
ATLAS, D. E. Radar in meteorology. American Meteorological Society, 1990.
DEITEL, H.; DEITEL, P. C++ how to program. [S.l.]: Prentice Hall Upper Saddle River, NJ,
1998.
DREBIN, R.; CARPENTER, L.; HANRAHAN, P. Volume rendering. ACM SIGGRAPH
Computer Graphics, ACM Press New York, NY, USA, v. 22, n. 4, p. 65–74, 1988.
EBERT, D.; MUSGRAVE, F. Texturing and Modeling: A Procedural Approach. [S.l.]: Morgan
Kaufmann, 2003.
ECKEL, B. Thinking in C++. [S.l.]: Prentice-Hall, Inc. Upper Saddle River, NJ, USA, 1995.
ENGEL, K.; KRAUS, M.; ERTL, T. High-quality pre-integrated volume rendering using
hardware-accelerated pixel shading. Proceedings of the ACM SIGGRAPH/EUROGRAPHICS
workshop on Graphics hardware, ACM Press New York, NY, USA, p. 9–16, 2001.
FOLEY, J. Computer Graphics: Principles and Practice. [S.l.]: Addison-Wesley Professional,
1995.
HAASE, H. et al. Meteorology meets computer graphics-a look at a wide range of weather
visualisations for diverse audiences. Computers and Graphics, Elsevier Science, v. 24, n. 3, p.
391–397, 2000.
HEARN, D.; BAKER, M. Computer graphics: C version. [S.l.]: Prentice-Hall, Inc. Upper
Saddle River, NJ, USA, 1996.
JOHNSON, R. C. Airline flights get less turbulent. eetimes.com, 9 2007.
JOSS, J.; WALDVOGEL, A. Radar in Meteorology. Proc. Battan Memorial and 40th
Anniversary Radar Meteorol. Conf, p. 577–606, 1990.
Referências
70
KAJIYA, J.; HERZEN, B. V. Ray tracing volume densities. Proceedings of the 11th annual
conference on Computer graphics and interactive techniques, ACM Press New York, NY,
USA, p. 165–174, 1984.
KAWECKI, A. Economical aspects of the meteorological radar system synthesis. Acta
Geophysica Polonica, v. 26, n. 2, p. 173–184, 1978.
KILGARD, M. The OpenGL Utility Toolkit (GLUT) Programming Interface API Version 3.
Web Site: http://www. opengl. org/developers/documentation/glut, 1996.
KNISS, J. et al. Volume rendering multivariate data to visualize meteorological simulations:
a case study. Proceedings of the symposium on Data Visualisation 2002, Eurographics
Association Aire-la-Ville, Switzerland, Switzerland, 2002.
LUCK, D. Frequency Modulated Radar. [S.l.]: McGraw-Hill New York, 1949.
MCCASLIN, P.; MCDONALD, P.; SZOKE, E. 3D visualization development at NOAA
forecast systems laboratory. ACM SIGGRAPH Computer Graphics, ACM Press New York,
NY, USA, v. 34, n. 1, p. 41–44, 2000.
NATIONAL WEATHER SERVICE. NEXRAD Radar Operations Center, WSR-88D. Web
Site: http://www.roc.noaa.gov/, 03 2007.
NAVAL HISTORICAL CENTER. U.S. Radar - Operational Characteristics of Radar
Classified by Tactical Application,. [S.l.]: Department of the Navy.
NEIDER, J.; DAVIS, T.; WOO, M. OpenGL. Programming guide. [S.l.]: Addison-Wesley
Reading, Mass, 1997.
NEIDER, J. et al. OpenGL Programming Guide:: the Official Guide to Learning OpenGL.
[S.l.]: Pearson Education, 2005.
OLIVEIRA, J. de; FERREIRA, N.; JÚNIOR, A. Estimativas de precipitação derivadas de
imagens do satélite goes-8 e de radar meteorológico doppler.
OPENGL, A. OpenGL Reference Manual: The Official Reference Document to OpenGL,
Version 1.1. [S.l.]: Addison-Wesley, Reading, MA, 1997.
PAPATHOMAS, T.; SCHIAVONE, J.; JULESZ, B. Applications of computer graphics to the
visualization of meteorological data. Proceedings of the 15th annual conference on Computer
graphics and interactive techniques, ACM Press New York, NY, USA, p. 327–334, 1988.
RILEY, K. et al. A system for realistic weather rendering. 20th International Conference on
Interactive Information and Processing Systems, 2004.
RINEHART, R. Radar for Meteorologists. [S.l.]: Rinehart Publications Grand Forks, ND,
1997.
SCHÖNHUBER, M. et al. Weather radar versus 2D-video disdrometer data. Weather Radar
Technology for Water Resources Management, p. 159–171, 1997.
STAM, J.; FIUME, E. Depicting fire and other gaseous phenomena using diffusion processes.
Proceedings of the 22nd annual conference on Computer graphics and interactive techniques,
ACM Press New York, NY, USA, p. 129–136, 1995.
Referências
71
TREINISH, L. Task-specific visualization design. Computer Graphics and Applications, IEEE,
v. 19, n. 5, p. 72–77, 1999.
TUCCI, C.; PORTO, R.; BARROS, M. Inundações urbanas. Drenagem urbana, v. 1, p. 15–36,
1995.
WRIGHT, R.; LIPCHAK, B. OpenGL SuperBible. [S.l.]: Sams Indianapolis, IN, USA, 2004.
ZHU, Y. et al. The economic value of ensemble-based weather forecasts. Bulletin of the
American Meteorological Society, v. 83, n. 1, p. 73–83, 2002.

Documentos relacionados