# Visualização científica

Visualização científica é uma área dedicada à geração de imagens que auxiliam seus usuários na compreensão de dados e processos. Uma das principais características da área é a interdisciplinaridade, já que áreas tradicionais da ciências, tais como biologia, química, astronomia, etc., fazem uso e incitam o desenvolvimento de técnicas de visualização. O uso de imagens para transmissão de informação é um fenômeno antigo. No entanto, a disciplina de visualização científica é relativamente nova, sendo impulsionada pelos avanços computacionais das últimas décadas. Com a explosão do poder computacional e da capacidade de aquisição de dados, cientistas conseguem gerar uma grande quantidade de dados provenientes de simulações numéricas, sensores ou outras fontes. Consequentemente, a visualização tem um papel importante para ajudá-los a entender seus dados.

## Áreas de aplicação

* Astronomia. Exemplos incluem a visualização de formação e explosão de estrelas.
* Medicina. Exemplos incluem a visualização de dados oriundos de exames que utilizam tomografia computadorizada e ressonância magnética.
* Biologia. Visualização de proteínas.
* Ciências da terra. Exemplos incluem a visualização de estruturas geológicas, reservatório de petróleo, dados climáticos.
* Escoamento de fluidos. Exemplos incluem a visualização do campo de fluxo de escoamentos de fluidos em torno de objetos, fronteiras e superfícies (vide CFD).

## Tipo de dados

Cada área de aplicação possui restrições quanto à dimensão dos dados de entrada, que podem ter uma, duas, três ou ainda mais dimensões. Dependendo da dimensão, várias técnicas podem ser usada para visualização dos dados. Os tipos de dados encontrados comumente são campo escalar, vetorial e tensorial. A tabela abaixo ilustra algumas das técnicas disponíveis para visualização de cada tipo de dados para diversas dimensões. As próximas seções detalham cada uma das técnicas apresentadas na tabela a seguir.
Técnicas disponíveis para visualização de diferentes tipos de dados em cada dimensão. :
| - | Escalar | Vetorial | Tensorial |
| 1D | Gráfico de linha | - | - |
| 2D | Mapa de cor, isolinhas | LIC, Traçado de partículas, Glifos | - |
| 3D | Volume rendering, isosuperfícies | LIC, Traçado de partículas, Glifos | Elipsóides |

## Visualização de campo escalar

Um campo escalar associa um valor escalar a um ponto definido no espaço. Formalmente, um campo escalar é uma função $f:\mathbb {R} ^{n}\rightarrow \mathbb {R}$. Nesse artigo, $n=\{1,2,3\}$ (i.e., dados uni- bi- e tri-dimensionais) e portanto as funções $f$ podem ser $f(x)$, $f(x,y)$ ou $f(x,y,z)$. Na prática, frequentemente cientistas não tem acesso à função $f$, mas apenas a amostras em pontos determinados $x_{i}\in \mathbb {R} ^{n}$, denotada aqui como $f(x_{i})=f_{i}$. A seguir são apresentadas várias técnicas para visualização de campos escalares.

### Gráficos

Dados unidimensionais (ou 1D) são suficientemente simples para ilustrar a visualização de um campo escalar. Por exemplo, suponha que um biólogo esteja estudando o crescimento de uma população de bactéria e obtém o seguintes dados relacionando o número de bactérias em um período de um ano: $(1,10976),(2,82200),...,(365,5033)$, onde cada par representa (dia, população) $=(x,f(x))$. Avaliando apenas esse conjunto de dados pode ser difícil perceber tendências e o comportamento geral da população.
Contudo, existem diversos tipos de gráficos que podem ser usados para nterpretação desses dados. Nesse caso, o gráficos de linha já é suficiente para entender esse comportamento. Abaixo segue o código em Python que simula o experimento descrito anteriormente e exibe o gráfico de linha.
Gráficos também são úteis para colher estatísticas de campos escalares em dimensões maiores. No caso de visualização de imagens médicas, por exemplo, histogramas auxiliam no processo de exploração de isovalores de interesse.

### Mapa de cor

Mapa de cor é uma ferramenta simples e útil na visualização de campos escalar bidimensionais. Matemáticamente, um mapa de cor $m$ é uma função $m:\mathbb {R} \rightarrow \Omega$, ou seja, uma função que leva um valor escalar a espaço de cor $\Omega$. Entre os possíveis espaços de cor, se destacam RGB, HSV, CMYK e escala de cinza. Quando bem utilizado, o mapa de cor provê valiosas informações de natureza quantitativa ou qualitativa a respeito do conjunto de dados analisados. As figuras mostram duas visualizações usando cores e escala de cinza. Note que o uso de diferentes cores facilita a avaliação do nível de ozônio em determinado ponto (análise quantitativa) enquanto o uso de escala de cinza auxilia na comparação dos níveis de ozônio em pontos distintos do mapa (análise qualitativa).
Ao mesmo tempo que um mapa de cor bem desenhado pode ajudar na compreensão dos dados, a má escolha pode causar confusão e consequentemente uma interpretação errada dos dados. Esse é o caso do mapa de cor arco-íris, um mapa onde a matiz varia de forma a cobrir o espectro de cores visíveis (no caso da figura anterior, o mapa varia do azul ao vermelho). Ele é considerado um exemplo clássico de um mapa ruim. São vários os problemas com o mapa acro-íris: as cores não possuem uma ordem natural, ou seja, a comparação entre valores é prejudicada; a falta de luminância pode esconder características do conjunto de dados; e pode introduzir artefatos que não estão presentes nos dados. Apesar das críticas, o mapa arco-íris ainda é bastante utilizado no meio acadêmico.

### Isolinhas

Isolinhas de um campo escalar 2D são formadas pelo conjunto de pontos que tem o mesmo valor escalar. O campo escalar pode representar diversas grandezas físicas (e.g., pressão, temperatura, altitude, etc.) e são oriundos de diversas fontes (e.g., simulações numéricas, sensores, etc.). Matemáticamente, dado um campo escalar $f(x,y)$, as isolinhas $L$ referentes a um valor escalar $v$ são definidas como $L=\{(x,y)\in \mathbb {R} ^{2}|f(x,y)=v\}$. Um mapa de cor onde o isovalor de interesse tem possui uma cor A, enquanto todos os outros isovalores possuem uma outra cor B, também define uma isolinha. A isolinha é interface entre duas regiões distintas, ou seja é o bordo entre as regiões $f(x,y)>v$ e $f(x,y)<v$. A figura a seguir mostra as isolinhas (em vermelho) referentes aos níveis de ozônio 230 DU e 300 DU respectivamente. Todos os pontos ao longo das curvas vermelhas possuem o mesmo nível de ozônio.
Na prática, os valores escalares não estão disponíveis em todos os ponto $(x,y)\in \mathbb {R} ^{2}$, mas em apenas um conjunto de pontos. Dessa maneira, é existem algumas técnicas foram criadas para a extração de isolinhas a partir desse conjundo incompleto de dados. Esse processo é conhecido como extração de contorno. Uma opção para extração de contornos de imagens bidimensionais é o algoritmo conhecido como Marching squares. O marching squares utiliza uma grade regular de pontos para interpolar a posição da isolinhas. A partir daí, os pontos interpolados são interligados formando uma curva linear por parte.

### Isosuperfícies

Isosuperfícies de um campo escalar 3D são formadas pelo conjunto de pontos com mesmo valor escalar. A Isosuperfície é o análogo tridimensional das isolinhas: dado um campo escalar tridimensional $f(x,y,z)$, as isosuperfícies $L$ referentes a um valor escalar $v$ são definidas como $L=\{(x,y,z)\in \mathbb {R} ^{3}|f(x,y,z)=v\}$. Na prática, elas são comumente aproximadas por uma malha de triângulos. O processo envolvido na criação da aproximação da isosurperfície é conhecido como extração de isosuperfície. Nas últimas três décadas, vários algoritmos foram desenvolvidos para extração de superfícies. Algumas das classes são: triangulação de Delaunay; Marching Cubes; avanço de fronteira; entre outros. A figura ao lado foi extraída de um campo escalar oriundo de um C-Arm X-Ray, e representa um aneurisma cerebral.

### Renderização de volumes
## Conferências e jornais

* IEEE Visualization Conference
* IEEE Transactions on Visualization and Computer Graphics
* SIBGRAPI 2011