opendx : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · opendx :...

32
OpenDX : tutoriales b´ asicos Luis M. de la Cruz Salas [email protected] 5 de octubre de 2005 Resumen Este documento introduce al lector en el uso del Data Prompter para importar datos en OpenDX y en la construcci´ on de programas visuales utilizando algunos m´ odulos asicos. La secci´ on 2 contiene 9 tutoriales en los cuales se describe en detalle como importar datos para diferentes tipos de datos. El ´ enfasis de esta primera secci´ on es en la lectura de datos, por lo que siempre se utiliza la opci´ on de visualizaci´ on autom´ atica. A pesar de esto, en esta secci´ on se hacen peque˜ nas modificaciones sobre los programas visuales generados por OpenDX. En la secci´ on 3 se describe como construir programas visuales y se utilizan algunos de los archivos generados en la secci´ on 2. Las subsecciones que tienen el mismo t´ ıtulo est´ an relacionadas entre s´ ı. Todos los ejemplos son para datos definidos en dos dimensiones. ´ Indice 1. El Data Prompter 2 2. Importaci´ on de datos y visualizaci´ on autom´ atica 3 2.1. Mallas estructuradas regulares uniformes .................. 3 2.2. Mallas estructuradas irregulares ....................... 6 2.3. Datos dispersos ................................ 9 2.4. Mallas no estructuradas irregulares ..................... 10 2.5. Series de tiempo ................................ 11 2.6. utiples variables ............................... 14 2.7. Datos entremezclados ............................. 16 2.8. Im´ agenes m´ edicas ............................... 17 2.9. Formatos HDF, netCDF y CDF ....................... 17 c 2005 Depvis, DCI-DGSCA, LMCS

Upload: others

Post on 24-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

OpenDX : tutoriales basicos

Luis M. de la Cruz [email protected]

5 de octubre de 2005

Resumen

Este documento introduce al lector en el uso del Data Prompter para importar datosen OpenDX y en la construccion de programas visuales utilizando algunos modulosbasicos. La seccion 2 contiene 9 tutoriales en los cuales se describe en detalle comoimportar datos para diferentes tipos de datos. El enfasis de esta primera seccion es enla lectura de datos, por lo que siempre se utiliza la opcion de visualizacion automatica.A pesar de esto, en esta seccion se hacen pequenas modificaciones sobre los programasvisuales generados por OpenDX. En la seccion 3 se describe como construir programasvisuales y se utilizan algunos de los archivos generados en la seccion 2. Las subseccionesque tienen el mismo tıtulo estan relacionadas entre sı. Todos los ejemplos son para datosdefinidos en dos dimensiones.

Indice

1. El Data Prompter 2

2. Importacion de datos y visualizacion automatica 3

2.1. Mallas estructuradas regulares uniformes . . . . . . . . . . . . . . . . . . 3

2.2. Mallas estructuradas irregulares . . . . . . . . . . . . . . . . . . . . . . . 6

2.3. Datos dispersos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4. Mallas no estructuradas irregulares . . . . . . . . . . . . . . . . . . . . . 10

2.5. Series de tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.6. Mutiples variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.7. Datos entremezclados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.8. Imagenes medicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.9. Formatos HDF, netCDF y CDF . . . . . . . . . . . . . . . . . . . . . . . 17

c©2005 Depvis, DCI-DGSCA, LMCS

Page 2: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

INDICE DE FIGURAS 1

3. Programas visuales para analisis de datos en 2D 183.1. Mallas estructuradas regulares uniformes . . . . . . . . . . . . . . . . . . 183.2. Mallas estructuradas irregulares . . . . . . . . . . . . . . . . . . . . . . . 203.3. Mallas no estructuradas irregulares . . . . . . . . . . . . . . . . . . . . . 213.4. Series de tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.5. Multiples variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.5.1. Lectura de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.5.2. Vectores y contornos . . . . . . . . . . . . . . . . . . . . . . . . . 273.5.3. Mapas de color . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Indice de figuras

1. Ventana inicial del Data Prompter. . . . . . . . . . . . . . . . . . . . . . 22. Dominio de estudio de este ejemplo. . . . . . . . . . . . . . . . . . . . . . 33. Dialogo de Grid or Scattered file. . . . . . . . . . . . . . . . . . . . . . . . 44. Ventana simplificada para la descripcion de los datos. . . . . . . . . . . . 55. Extracto del programa visual despues de los pasos 6, 7 y 8. . . . . . . . . 86. Extracto del programa visual despues del paso 4, 5 y 6. . . . . . . . . . . 107. Extracto del programa visual despues de los pasos 4,5 y 6. . . . . . . . . 128. Interfaz del secuenciador. . . . . . . . . . . . . . . . . . . . . . . . . . . . 139. Parametros del modulo Import . . . . . . . . . . . . . . . . . . . . . . . . 1810. Programas visuales sencillos. . . . . . . . . . . . . . . . . . . . . . . . . . 1911. Programa visual para visualizacion con superficie y color. . . . . . . . . . 2212. Programa visual de este ejemplo en diferentes etapas. . . . . . . . . . . . 2313. Configuracion del Sequencer. . . . . . . . . . . . . . . . . . . . . . . . . . 2514. Programa visual para la visualizacion de datos que cambian con el tiempo. 2515. (a) Panel de control de Selector, (b) Atributos del panel de control. . . . 2716. VPE con cuatro paginas. Se muestra el programa visual de la pagina

Lectura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2817. Programa visual que determina si el campo es escalar o vectorial. . . . . 2918. Programa visual para seleccionar entre diferentes mapas de color de acuer-

do con el nombre de la variable. . . . . . . . . . . . . . . . . . . . . . . . 3019. Editor del mapa de color basado en el modelo HSV. Se pueden agregar

puntos de control para realizar modificaciones interactivamente. . . . . . 31

c©2005 Depvis, DCI-DGSCA, LMCS

Page 3: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

2 INDICE DE FIGURAS

1. El Data Prompter

El Data Prompter es una interfaz para importar datos de varios tipos dentro deOpenDX, vease figura 1. Esta interfaz se obtiene a traves de la ventana de inicio selec-cionando Import Data o desde la lınea de comandos con : dx -prompter.

Figura 1: Ventana inicial del Data Prompter.

Las opciones Data Explorer, CDF, netCDF y HDF, permiten importar datos en esosformatos, solo es necesario especificar el nombre del archivo correspondiente en el campode texto. El boton · · · , que se encuentra a la derecha del campo de texto, abre una cajade dialogo con una lista de directorios, la cual se puede modificar mediante la variablede ambiente DXDATA1. En los casos, Image File, Grid or Scattered file y Spreadsheet formatfile, se deben definir algunos parametros importantes antes de importar los datos. ElData Prompter importa datos en formato ASCII o binario, organizados por bloques opor columnas. Por ejemplo, si tenemos tres arreglos X, Y y Z que representan variablesdefinidas en un dominio geometrico, entonces el almacenamiento puede estar en una delas siguientes formas:

Bloques:X0 X1 X2 · · ·Y0 Y1 Y2 · · ·Z0 Z1 Z2 · · ·

Columnas:

X0 Y0 Z0

X1 Y1 Z1

X2 Y2 Z2...

......

Las variables que representan los arreglos X, Y y Z pueden ser las posiciones de lospuntos de la malla y/o valores de variables.

1Por ejemplo: export DXDATA=$HOME, para acceder a los archivos del directorio home del usuario.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 4: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

2. Importacion de datos y visualizacion automatica 3

2. Importacion de datos y visualizacion automatica

Los siguientes tutoriales tienen como objetivo ilustrar la manera en que se puedenimportar datos que representan variables definidas en diferentes tipos de mallas. Ademasse muestra como generar programas visuales de manera automatica para visualizar losdatos.

2.1. Mallas estructuradas regulares uniformes

En esta practica vamos a definir valores sobre una malla estructurada regular uni-forme en dos dimensiones, como la que se muestra en la figura 2.

Figura 2: Dominio de estudio de este ejemplo.

1 ⇀ En algun editor de textos (vi, emacs, nedit, jot, etc.), crear el archivo “mallaestruc”con los siguientes numeros (separados por un espacio, un tabulador o un cambio delınea): 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0. Este sera el archivo de datos,en donde se desea que el valor 15 corresponda al nodo 0, el valor 14 al nodo 1, el13 al nodo 2, etc.

2 ⇀ Inicie el Data Prompter. Seleccione Grid or Scattered file, esto desplegara las op-ciones que se muestran en la figura 3. Por ahora dejaremos las opciones comoaparecen de inicio.

3 ⇀ Pulse el boton Describe Data. Aparecera una ventana en donde se debe describir laorganizacion de los datos, figura 4. Esta es una version simplificada de la interfaz

c©2005 Depvis, DCI-DGSCA, LMCS

Page 5: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

4 INDICE DE FIGURAS

Figura 3: Dialogo de Grid or Scattered file.

para describir los datos, que para este ejemplo es suficiente. Si se desea ver laversion completa seleccione Options→Full prompter.

4 ⇀ En el campo de texto Data file escriba “mallaestruc” y presione enter. Lo an-terior activara el boton Browse Data del Data Prompter, si se pulsa este botonaparecera una ventana en la que se puede ver una seccion de los datos que estanalmacenados en el archivo.

5 ⇀ En este ejemplo tenemos una malla de 4×4, ingrese estos datos en los dos primeroscampos de Grid size. El formato del archivo es ASCII(Text) y el orden es Row.

6 ⇀ En la parte de Grid positions se deben ingresar los valores del origen de coordenadasdonde se describira la malla y el incremento en cada direccion. En este caso la mallainiciara en (0,0) y dado que la malla es regular uniforme, el incrmento es constante,vease figura 2. De acuerdo con lo anterior, los valores deben ser 0, 0.3333 para x(para el primer par origin, delta) y 0, 0.3333 en y (para el segundo par origin, delta).

7 ⇀ Guarde el archivo seleccionando File→Save As. En la caja de dialogo que apareceponga “mallaestruc”. OpenDX le agrega a este nombre la extension “.general”,por lo tanto el archivo que describe la informacion de la malla se llamara “mal-laestruc.general” y contendra lo siguiente:

1 file = mallaestruc2 grid = 4 x 43 format = ascii4 interleaving = record5 majority = row

c©2005 Depvis, DCI-DGSCA, LMCS

Page 6: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

2.1 Mallas estructuradas regulares uniformes 5

Figura 4: Ventana simplificada para la descripcion de los datos.

6 field = field07 structure = scalar8 type = float9 dependency = positions

10 positions = regular, regular, 0, 0.33333, 0, 0.333331112 end

8 ⇀ Una vez que se ha guardado el archivo “mallaestruc.general” los botones TestImport y Visualize Data del Data Prompter, se activaran. Pulsar el primero deestos botones para realizar una verificacion de los datos, si no hay mensaje deerror significa que los datos estan correctamente definidos.

9 ⇀ Pulse ahora el boton Visualize Data. Este boton realiza una visualizacion au-tomatica de los datos. En este caso se construye un mapeo de color sobre la malla,asignando el color rojo al maximo valor y el azul al mınimo, calcula contornos ylos dibuja en color negro 2. Aparecen tambien, dos ventanas que contienen paneles

2Para ver el programa visual que se genera seleccione Windows→Open Visual Program Editor en laventana de imagen.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 7: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

6 INDICE DE FIGURAS

de control, uno para definir que contornos se calculan y otro para leer el archivoa visualizar.

10 ⇀ En el panel de control que contiene los valores para los contornos, seleccione Exe-cute→Execute on Change. Esto ejecutara el programa visual inmediatamente des-pues de hacer cualquier cambio en los parametros. Por ejemplo, agrege el valor 9.0a la lista de contornos y observe el resultado.

11 ⇀ Active los ejes y verifique que la longitud de la malla sea de 1 en ambas direcciones.Esto se realiza en Options→AutoAxes. Habilite el boton AutoAxes enabled en laventana de dialogo de configuracion de los ejes. Seleccione On en Frame y Grid, yetiquete los ejes.

12 ⇀ Seleccione Options→View Control..., y en la ventana de dialogo seleccione el puntode vista Diagonal.

13 ⇀ Edite el archivo “mallaestruc.general” en la lınea 5, cambiando row por column.Ahora, en la ventana de imagen (IW) seleccione Connection→Reset Server 3 y luegoejecute 4 el programa una vez mas y observe el efecto.

14 ⇀ Modifique el valor 15 del archivo “mallaestruc” y cambielo a 150. Seleccione Con-nection→Reset Server y luego ejecute el programa una vez mas y observe el efecto.

15 ⇀ Cambie la parte de dependeny = positions del archivo “mallaestruc.general”por dependeny = connections. Seleccione Connection→Reset Server y vuelva aejecutar el programa.

16 ⇀ Cierre todas las ventanas (no guarde el programa visual).

Observacion. En este ejemplo, la conectividad es generada automaticamente porOpenDX, de tal manera se puede construir una superficie y un mapa de color medianteinterpolaciones.

2.2. Mallas estructuradas irregulares

El siguiente programa genera las posiciones de una malla estructurada irregular:

1 #include <iostream>2 #include <cmath>3 #include <fstream>4 #define PI 3.141514925

3Esta accion elimina todos los archivos de la memoria usada por OpenDX (en este caso los archivos“mallaestruc” y “mallaestruc.general”).

4Esto vuelve a importar los archivos necesarios y los aloja en la memoria usada por OpenDX (ahoracarga los archivos “mallaestruc” y “mallaestruc.general”, este ultimo actualizado).

c©2005 Depvis, DCI-DGSCA, LMCS

Page 8: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

2.2 Mallas estructuradas irregulares 7

6 int main() {7 int Nx = 20, Ny = 20;8 double dx = 1.0/(Nx-1), dy = 1.0/(Ny-1);9 std::ofstream file("tunel", std::ios::out);

1011 for(int i=0; i < Nx; ++i)12 for(int j=0; j < Ny; ++j) {13 file << dx * i << "\t"14 << 0.25 * (sin(2 * PI * dx * i) + 4 * j * dy) << "\t"15 << sin(2 * PI * dx * i) * cos( 2 * PI * dx * j) << "\n";16 }17 return 0;18 }

1 ⇀ Escriba el programa anterior y compılelo de la siguiente manera: make curva,aquı hemos supuesto que el archivo que contiene el programa se llama “cur-va.cpp”5. El comando anterior creara el archivo ejecutable “curva”, el cual seejecuta de la siguiente forma: ./curva. La ejecucion del programa generara unarchivo con el nombre “tunel” que contendra, en forma de columnas, las posi-ciones (x, y) de los puntos de la malla y un valor asociado a cada punto. La mallagenerada sera de 20× 20.

2 ⇀ Inicie el Data Prompter y seleccione Grid or Scattered file. Ahı seleccione el tipode malla curvilınea (tercera opcion de Grid type). Los parametros para este casoson:

Number of variables : 1

Dimension : 2

Data organization : Columnar

Los parametros restantes se dejan sin modificacion.

3 ⇀ Pulse Describe Data y describa el formato de los datos:

Data file : tunel

Grid size : 20× 20

Data order : Column

Guarde la descripcion en un archivo que se llame “tunel.general”.

4 ⇀ Pulse Visualize Data... y agrege los ejes a la visualizacion resultante.

5El programa esta escrito en C++ y se puede compilar con el compilador de GNU de la siguientemanera: g++ curva.cpp -o curva.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 9: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

8 INDICE DE FIGURAS

5 ⇀ Edite el archivo “tunel.general” y cambie majority = row por majority = column.Seleccione Connection→Reset Server en la ventana de imagen (IW) y ejecute nue-vamente. ¿Que sucede?.

6 ⇀ Abra el programa visual seleccionando Windows→Open Visual Program Editor en laventana IW. Seleccione el folder scalar viz. Adicione el modulo Collect al programavisual de la siguiente manera: en la lista de modulos (Tools) haga click sobreCollect, despues mueva el raton al canvas del programa visual y haga click otravez. Incluya tambien el modulo ShowConnections.

7 ⇀ Conecte la salida de imported a la entrada de ShowConnections como sigue: hagaclick en el recuadro inferior de imported y sin soltar mueva el mouse al recuadrosuperior de ShowConnections, en esa posicion suelte el mouse. Esta accion debedibujar una lınea entre ambos modulos como se ve en la figura 5. Depues, conectela salida de ShowConnections a una de las entradas de Collect.

8 ⇀ Desconecte la salida de colored que esta conectada al modulo RubberSheet: hagaclick en la entrada de RubberSheet y sin soltar mueva el mouse a algun lugarvacıo del canvas. Ahora conecte a la entrada que queda libre del modulo Collectla salida de colored . Finalmente, conecte la salida de Collect a la primera entradade RubberSheet.

9 ⇀ Ejecute el programa.

Figura 5: Extracto del programa visual despues de los pasos 6, 7 y 8.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 10: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

2.3 Datos dispersos 9

2.3. Datos dispersos

En esta practica vamos a utilizar el archivo “tunel” de la practica anterior. El objetivoes observar la conectividad que genera el modulo Connect con los mismos datos delejemplo anterior.

1 ⇀ Inicie el Data Prompter y seleccione Grid or Scattered file. Ahı seleccione datosdispersos, es decir, el ultimo tipo de malla (cuarta opcion de Grid type). Cuandose selecciona esta opcion, OpenDX no genera automaticamente la conectividadentre los puntos. La conectividad la genera a traves del modulo Connect. En estecaso los parametros deben ser:

Number of variables : 1

Positions in data file : activado

Dimension : 2

Data organization : Columnar

Los parametros restantes no se modifican.

2 ⇀ Pulse Describe Data y describa el formato de los datos. En este caso solo tieneque dar el nombre del archivo de datos (“tunel”) y el numero de puntos (400).Despues de salvar el archivo pulse Visualize Data y posteriormente agrege los ejes.

3 ⇀ Abra el programa visual y en el VPE vaya al folder import, observe que la salida deImport se conecta directamente a la entrada del modulo Connect. Esto generara unaconectividad basada en triangulos.

4 ⇀ Ahora vaya al folder connected v. Agrege los modulos RubberSheet y ShowConnec-tions.

5 ⇀ Conecte la salida de connected a la entrada de ShowConnections, y luego la salidade este ultimo a la primera entrada de RubberSheet.

6 ⇀ Desconecte la salida de Collect de la entrada de connected viz . Conecte la salidade RubberSheet a la entrada de connected viz .

7 ⇀ El resultado de los pasos anteriores se puede ver en la figura 6.

8 ⇀ Ejecute el programa.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 11: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

10 INDICE DE FIGURAS

Figura 6: Extracto del programa visual despues del paso 4, 5 y 6.

2.4. Mallas no estructuradas irregulares

En esta practica generaremos puntos aleatorios en el plano x− y, los leeremos comopuntos dispersos de tal manera que OpenDX construya una malla no estructurada apartir de esos puntos. El siguiente programa genera las coordenadas de los puntos y unvalor para cada punto.

1 #include <cstdlib>2 #include <ctime>3 #include <iostream>4 #include <fstream>56 int main() {7 srand(static_cast<unsigned>(time(0)));8 double x, y, f_xy;9 std::ofstream file("mallanoestruc", std::ios::out);

10 for(int index=0; index < 100; index++){11 x = rand() / (RAND_MAX + 1.0);12 y = rand() / (RAND_MAX + 1.0);13 f_xy = rand() / (RAND_MAX + 1.0);14 file << x << "\t" << y << "\t" << f_xy << "\n";15 }16 }

c©2005 Depvis, DCI-DGSCA, LMCS

Page 12: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

2.5 Series de tiempo 11

1 ⇀ Escriba el programa anterior, compılelo y ejecutelo. Lo anterior creara un archivode nombre “mallanoestruc” que contiene las coordenadas (x, y) de 100 puntos, yun valor asignado a cada posicion.

2 ⇀ Inicie el Data Prompter y seleccione Grid or Scattered file. Seleccione los puntosdispersos de Grid type. Los parametros para este caso son:

Number of variables = 1;

Positions in data file = activado;

Dimension = 2; y

Data organization = Columnar.

3 ⇀ Pulse Describe Data y describa el formato de los datos. Solo hay que dar el nombredel archivo de datos y el numero de puntos. Guarde la descripcion en un archivoque se llame “mallanoestruc.general”. y posteriormente pulse Visualize Data.

4 ⇀ Abra el programa visual. En el folder image desconecte todas las entradas quellegan a Image.

5 ⇀ Vaya al folder connected v, seleccione connected y luego en el menu del VPEseleccione Edit→Copy. Regrese al folder image y seleccione Edit→Paste y hagaclick dentro del canvas del programa visual.

6 ⇀ Agrege el modulo ShowConnections. Conecte la salida de connected a la entradade ShowConnections. Conecte la salida de ShowConnections a la primera entradade Image.

7 ⇀ El resultado de los pasos anteriores se puede ver en la figura 7.

8 ⇀ Ejecute el programa.

2.5. Series de tiempo

En este ejemplo usaremos el siguiente programa para generar una variable escalardefinida sobre una malla regular estructurada de 20 × 20. Los valores de la variable sevan modificando durante 100 pasos de tiempo. Estos valores se escriben en formato debloque.

1 #include <iostream>2 #include <fstream>3 #include <cmath>4 #define PI 3.14159256 int main()

c©2005 Depvis, DCI-DGSCA, LMCS

Page 13: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

12 INDICE DE FIGURAS

Figura 7: Extracto del programa visual despues de los pasos 4,5 y 6.

7 {8 int nx = 20, ny = 20;9 int nsteps = 100;

10 int npoints = nx * ny;11 std::ofstream file("serietiempo", std::ios::out);12 file << "# Series de tiempo \n";13 for(int step = 1; step <= nsteps; step++) {14 file << "# Time " << step << "\n";15 for(int index=0; index < npoints; index++)16 file << sin(4*PI*index/npoints + 0.2*step) << " ";17 file << "\n";18 }19 }

1 ⇀ Escriba, compile y ejecute el programa de arriba. Lo anterior creara un archivo denombre “serietiempo”. El archivo estara ordenado en forma de bloques:

# Series de tiempo# Time 10.198669 0.229356 0.259816 0.29002 0.319938 0.34954 0.378796 0.407680.43616 0.464211 ......# Time 20.389418 0.418157 0.446484 0.47437 0.501787 0.52871 0.55511 0.5809630.606243 0.630924 ......

c©2005 Depvis, DCI-DGSCA, LMCS

Page 14: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

2.5 Series de tiempo 13

El archivo contiene un encabezado inicial de dos lıneas, luego entre cada bloquehay una lınea que identifica el inicio del bloque.

2 ⇀ Inicie el Data Prompter y seleccione Grid or Scattered file. Seleccione una mallaregular uniforme en Grid type. Los parametros son:

Number of variables : 1

Positions in data file : desactivado

Single time step : desactivado

Data organization: Block

3 ⇀ Pulse Describe Data, esto iniciara el Full prompter. En este caso los parametrosson:

Data file : “serietiempo”

Header : activado en # of lines = 2

Grid size : 20× 20

Series : activado y n = 100

Series separator : # of lines = 1

4 ⇀ Guarde la descripcion en un archivo que se llame “serietiempo.general”.

5 ⇀ Pulse Visualize Data y agrege los ejes.

6 ⇀ Presione el play (I) del Sequence Control, vease figura 8. Esto ira mostrandolos diferentes pasos de en el tiempo de la variable. Se puede interactuar con laanimacion, intente por ejemplo hacer una rotacion.

Figura 8: Interfaz del secuenciador.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 15: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

14 INDICE DE FIGURAS

2.6. Mutiples variables

Es posible que en un mismo archivo se almacenen mas de una variable. El programaque sigue, genera el archivo “multivar” el cual contiene 3 variables definidas en unamalla de 20× 20. La primera variable es la temperatura, la segunda es la velocidad y latercera es la presion.

1 #include <iostream>2 #include <fstream>3 #include <cmath>4 #define PI 3.1415925 int main()6 {7 int nx = 20, ny = 20;8 int npoints = nx * ny;9 std::ofstream file("multivar", std::ios::out);

10 file << "# Series de tiempo \n";11 file << "Temperatura\n";12 for(int i = 0; i < nx; ++i)13 for(int j = 0; j < ny; ++j)14 file << sin(4*PI*i/nx)*sin(4*PI*j/ny) << " ";15 file << "\n";16 file << "Velocidad\n";17 for(int i = 0; i < nx; ++i)18 for(int j = 0; j < ny; ++j)19 file << -cos(PI*j/ny) * sin(PI*i/nx) << " "20 << sin(PI*j/ny) * cos(PI*i/nx)<< " ";21 file << "\n";22 file << "Presion\n";23 int M = 10;24 for(int i = 0; i < nx; ++i)25 for(int j = 0; j < ny; ++j)26 file << cos( 2 * PI * sqrt((i-M)*(i-M) + (j-M)*(j-M)) / nx ) *27 exp( PI * sqrt((i-M)*(i-M) + (j-M)*(j-M)) / ny) << " ";28 file << "\n";29 return 0;30 }

1 ⇀ Escriba, compile y ejecute el programa anterior. Esto creara un archivo de nombre“multivar” que contiene definidas 3 variables en formato de bloque:

# Series de tiempoTemperatura0 0 0 0 0 0 -0 -0 -0 -0 -0 0 0 0 0 0 -0 -0 -0 -0 0 0.345491 0.559017...Velocidad

c©2005 Depvis, DCI-DGSCA, LMCS

Page 16: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

2.6 Mutiples variables 15

-0 0 -0 0.156434 -0 0.309017 -0 0.45399 -0 0.587785 -0 0.707107 -0...Presion-2.45504 -3.86399 -4.75361 -5.23306 -5.41335 -5.39685 -5.27103...

Notese que cada valor del bloque de la variable Temperatura, corresponde a unnodo de la malla, pues es una variable escalar. Lo mismo sucede con la variablePresion. Sin embargo, la variable Velocidad es vectorial, y como estamos en dosdimensiones se tiene que a cada nodo de la malla corresponde un par de valoresdel bloque de dicha variable.

2 ⇀ Inicie el Data Prompter y seleccione Grid or Scattered file. Seleccione una mallaregular uniforme en Grid type. Los parametros son:

Number of variables = 3

Positions in data file = desactivado

Single time step = activado

Data organization = Block

3 ⇀ Pulse Describe Data y seleccione Options→Full Prompter. Los parametros son:

Data file : “multivar”

Header : activado en # of lines = 2

Grid size : 20× 20

4 ⇀ En la parte derecha del Full Prompter haga lo siguiente:

Seleccione field0 de Field list, modifique el nombre en Field name y pongaTEMPERATURA. Una vez que haya ingresado el nuevo nombre, presione elboton Modify para guardar el nombre.

Haga lo mismo con field2 ingresando el nombre PRESION.

En el caso de field1 cambie el nombre a VELOCIDAD. Modifique la estructurade los datos en Structure, ahı seleccione 2-vector.

No olvide presionar el boton Modify cada vez que realize una modificacion 6.

5 ⇀ Regrese a la parte izquierda del Full prompter y seleccione: Vector interleaving :X0Y0,X1Y1,...,XnYn.

6Cuando se ha realizado una modificacion y esta no ha sido guardada, aparecera un boton amarilloindicando que se debe presionar el boton Modify para guardar los cambios.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 17: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

16 INDICE DE FIGURAS

6 ⇀ Ahora, active el boton Record Separator y seleccione same between all records:.Seleccione # of lines y ponga el valor de 1, despues presione enter. De estamanera se esta indicando que hay una lınea de texto que separa a los bloques delas variables.

7 ⇀ Salve el archivo con el nombre “multivar.general” y pulse Visualize Data de laventana Data Prompter.

8 ⇀ En la ventana Control Panel, seleccione Execute→Execute on change. Luego cam-bie la variable TEMPERATURA por alguna otra de la lista en alguno de los trespaneles de control. Pruebe varias combinaciones y observe el efecto.

2.7. Datos entremezclados

Algunas veces los datos numericos estan entremezclados con informacion adicionaly separadores especiales. OpenDX permite saltar esta informacion y leer solo los datosnumericos de interes. En este ejemplo utilizaremos un archivo de datos de los ejemplosde OpenDX: $HOME DX/dx/samples/data/CO2fragment.lis.

1 ⇀ Inicie el Data Prompter y seleccione Grid or Scattered file. Seleccione datos disper-sos en Grid type. Los parametros son:

Number of variables : 1

Positions in data file : activado

Dimension : 2

Single time step : activado

Data organization: Columnar

2 ⇀ Pulse Describe Data. Los parametros de este caso son:

Data file : $HOME DX/dx/samples/data/CO2fragment.lis. Presione BrowseData para ver el formato del archivo.

Header : activado en # of lines = 8

# of Points : 21.

3 ⇀ Abra el Full prompter y haga lo siguiente:

Seleccione locations en Field list, active el boton Layout. Para saber el valorde skip posicione el raton al inicio del primer dato de latitud (-37.95) en laventana File Browser. El valor que aparece en From start of line es el que hayque colocar en skip (33).

En width ponga un valor de 12, que es el numero de caracteres que contienecada valor de latitud y longitud. Presione Modify.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 18: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

2.8 Imagenes medicas 17

Seleccione ahora field0, cambie su nombre a CO2. Ponga el valor de cero enskip y 10 en width. Presione Modify.

4 ⇀ Salve el archivo y presione Visualize Data del Data Prompter.

2.8. Imagenes medicas

Es posible tambien leer datos provenientes de aparatos medicos. Es importante cono-cer el formato de los datos para poder leerlos en OpenDX. En este ejemplo usaremosel archivo $HOME DX/dx/samples/data/MRI.data de los ejemplos de OpenDX. Estosdatos provienen de una resonancia magnetica y son datos tridimensionales definidos enuna malla de 128× 128× 16. Los datos estan en formato binario y cada valor es de tipounsigned short. En este ejemplo se tienen 16 cortes, y cada plano contiene 128× 128bytes.

1 ⇀ Inicie el Data Prompter y seleccione Grid or Scattered file. Seleccione una mallaregular estructurada en Grid type. Los parametros son:

Number of variables : 1

Data organization: Columnar

Los demas parametros se dejan como estan.

2 ⇀ Presione Describe Data. Los parametros deben ser los siguientes:

Data file : $HOME DX/dx/samples/data/MRI.data

Grid size : 128× 128× 16

Data format : Binary (IEEE)

Seleccione field0 y modifique el tipo en Type = unsigned short.

Presione Modify una vez que haya realizado todos los cambios.

3 ⇀ Guarde el programa y presione Visualize Data del Data Prompter.

2.9. Formatos HDF, netCDF y CDF

Cuando se tienen archivos en los formatos HDF, netCFD o CDF y se han com-pilado las bibliotecas correspondientes para manejar estos formatos, es posible leerlosdirectamente en OpenDX por medio del Data Prompter.

En la ventana del Data Prompter se selecciona el formato correspondiente y poste-riormente se da el nombre del archivo en el campo de texto. Despues se puede presionarTest Import... para verificar que el archivo ha sido leeido correctamente. Tambien esposible visualizarlo automaticamente, aunque esto puede ocasionar errores debido a quealgunas operaciones no seran validas para ciertos archivos.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 19: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

18 INDICE DE FIGURAS

3. Programas visuales para analisis de datos en 2D

3.1. Mallas estructuradas regulares uniformes

Para esta practica utilizaremos los archivos “mallaestruc” y “mallaestruc.general”creados en la practica de la seccion 2.1.

1 ⇀ Iniciar OpenDX con el comando dx. Seleccionar New Visual Program.... Estoabrira el Visual Program Editor (VPE) listo para iniciar un nuevo programa visual.

2 ⇀ De acuerdo con el pipeline de visualizacion, el primer paso es la importacion de losdatos. Seleccione el modulo Import de la lista de herramientas Tools y coloqueloen el canvas del VPE.

3 ⇀ De doble click sobre Import para abrir su lista de parametros, vease figura 9. Lamayorıa de los modulos de OpenDX abrira una ventana como la que se muestraen la figura 9. Active el boton name y en el campo de texto ponga el nombre“mallaestruc.general”, de enter y presione OK.

Figura 9: Parametros del modulo Import

En la figura 9 se muestran 4 secciones:

Notation: Aquı se puede ver el nombre del modulo.

Inputs: En esta parte aparece la lista de parametros validos para cada modulo.La columna Name indica el nombre del parametro, Type es el tipo de dato quese espera para cada parametro (string, float, int, vector, etc.), Source indicala fuente de donde proviene el parametro y Value es el valor del parametro.

Outputs : En esta seccion se tiene la informacion de las salidas del modulo.Las columas Name y Type indican lo mismo que en el caso de Inputs. EnDestination se tiene informacion de los modulos a donde se conecta cada unade las salidas.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 20: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

3.1 Mallas estructuradas regulares uniformes 19

La ultima seccion contiene una serie de botones:

• OK para actualizar los valores de los parametros y cerrar la ventana.

• Apply para actualizar los valores de los parametros sin cerrar la ventana.

• Expand para ver la lista completa de parametros del modulo. Inicialmentesolo aparece una lista reducida que es esencial para el funcionamiento delmodulo.

• Collapse contrae la lista de parametros.

• Description describe la lista de parametros de entrada y las salidas.

• Help on Syntax es una ayuda rapida de como dar los valores de losparametros.

• Restore regresa a la configuracion inmediatamente anterior.

• Cancel cerrar la ventana sin hacer ningun cambio.

4 ⇀ Agregue los modulos AutoColor e Image al programa. Conecte la salida de Import ala primera entrada de AutoColor, luego la primera salida de este ultimo a la entradade Image. De esta manera hemos construido un programa visual muy simple, elcual debe lucir como se ve en la figura 10 (a).

Figura 10: Programas visuales sencillos.

5 ⇀ Ejecute el programa. El resultado debe ser una imagen de un cuadrado coloreadode acuerdo a los valores del archivo “mallaestruc”. Por omision, el valor rojo semapea al maximo valor, mientras que el azul al mınimo.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 21: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

20 INDICE DE FIGURAS

6 ⇀ Agreguemos ahora algunos contornos. Incorpore el modulo Isosurface al programavisual. Conecte la salida de Import a la primera entrada de Isosurface.

7 ⇀ Agregue ahora el modulo Collect. Este ultimo combina salidas de varios modulosen una sola. Conecte la salida de Isosurface a la primera entrada de Collect. Luego,desconecte la salida de AutoColor de Image y conectela a la segunda entrada deCollect. Finalmente conecte la salida de Collect a la entrada de Image. En estepunto el programa visual debe lucir como se ve en la figura 10 (b).

8 ⇀ Ejecute el programa. Se debe obtener, ademas del cuadrado coloreado, algunaslıneas que son los contornos. Para modificar el numero de lıneas, de doble clicksobre el modulo Isosurface y modifique el valor de number (ponga 10 por ejemplo),presione OK y ejecute nuevamente el programa.

9 ⇀ Modifique ahora el programa anexando los modulos que faltan para obtener elprograma visual que se muestra en la figura 10 (c). Observese que en este caso, elmodulo Collect tiene tres entradas. La manera de de agregar entradas a algunosmodulos se realiza como sigue:

Seleccione el modulo deseado (en este caso Collect).

Vaya al menu principal y seleccione Edit→Input/Output Tabs→Add Input Tab.

10 ⇀ Abra el modulo Color, elija el color purpura y ejecute el programa.

Los modulos Color y ColorBar son para cambiar el color de un objeto y desplegaruna barra de color con los valores que se estan mapeando, respectivamente.

3.2. Mallas estructuradas irregulares

En algunos casos el valor de una varible puede ser representado por alturas sobre unplano horizontal. Ası, una topografıa puede ser representada por coordenadas (x, y, z),donde las dos primeras son coordenadas sobre el plano horizontal, mientras que la terceraes la altura. En el caso donde los valores estan dados sobre una malla estructuradaregular uniforme, solo es necesario conocer el valor de las alturas z, el origen de la mallay los incrementos en las direcciones x y y, con esto OpenDX genera las coordenadas yla conectividad.

En esta practica haremos uso de los datos generados en la practica de la seccion 2.2(archivos “tunel” y “tunel.general”).

1 ⇀ Inicie OpenDX y abra el VPE con comando: dx -edit , esto abria automatica-mente el VPE. Agregue los modulos FileSelector, Import, RubberSheet, Scalar, Au-toColor, ShowConnections, Collect e Image al canvas.

2 ⇀ Conecte la primera salida de FileSelector a la primera entrada de Import. AbraFileSelector, en este caso el unico parametro que hay que definir es el nombre de un

c©2005 Depvis, DCI-DGSCA, LMCS

Page 22: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

3.3 Mallas no estructuradas irregulares 21

archivo. Presione el boton · · · en el panel de control Import name. Aparecera unacaja de dialogo en donde se puede seleccionar el nombre de un archivo. Seleccione“tunel.general” y presione OK.

En este caso el archivo “tunel.general” hace referencia al archivo de datos “tunel”que contiene las coordenadas (x, y) y un tercer valor z que sera representado comoalturas.

3 ⇀ Conecte ahora la salida de Import a la primera entrada de RubberSheet. Conectela salida de RubberSheet a la entrada de Image. Ejecute el programa.

4 ⇀ Abra RubberSheet y ponga el valor 1.0 en el parametro de escala (scale). Ejecuteel programa.

5 ⇀ Abra otra vez RubberSheet, deshabilite el parametro de escala y presione OK.

6 ⇀ Ahora conecte la salida de Scalar a la segunda entrada de RubberSheet (que cor-responde a la escala).

7 ⇀ Abra Scalar, aparecera un panel de control en donde se puede modificar el valordel escalar. Antes de modificar dicho valor, seleccione Execute→Execute on Changedel menu. Ahora modifique el valor del escalar usando las flechas de RubberSheetscale: y observe el resultado en la imagen.

8 ⇀ Seleccione Edit→Set Attributes... del menu de la ventana Control Panel. En la cajade dialogo que aparece, modifique el incremento (Global Increment) a 0.1 y presioneOK. Ahora vuelva a experimentar con diferentes valores de RubberSheet scale.

9 ⇀ Desconecte la salida de RubberSheet y conectela a la primera entrada de Collect.De igual manera, conecte la salida de RubberSheet a ShowConnections, y la salidade este ultimo a la segunda entrada de Collect. Finalmente conecte la salida deCollect a la entrada de Image. Ejecute el programa.

10 ⇀ Desconecte la salida de RubberSheet que se conecta a la primera entrada de Collecty conectela a la primera entrada de AutoColor. Conecte ahora la primera salida deAutoColor a la primera entrada de Collect. Ejecute el programa. En este punto elprograma visual deber lucir como se muestra en la figura 11.

11 ⇀ Agregre una barra de colores y ejecute el programa.

3.3. Mallas no estructuradas irregulares

Ahora utilizaremos los archivos “mallanoestruc.general” y “mallanoestruc” constru-idos en la practica de la seccion 2.4. En este caso los puntos son dispersos y no se tienedefinida una conectivida explıcitamente. Utilizaremos el modulo Connect para generaruna conectividad a partir de los datos dispersos.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 23: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

22 INDICE DE FIGURAS

Figura 11: Programa visual para visualizacion con superficie y color.

1 ⇀ Inicie OpenDX y abra el VPE. Agregue los modulos FileSelector, Import, ShowPosi-tions e Image. Conectelos en secuencia: FileSelector 7→Import7→ShowPositions 7→Image.En FileSelector seleccione el archivo “mallanoestruc.general”. Ejecute el programa.Esto debe generar un conjunto de puntos dispersos.

2 ⇀ Agregue el modulo Glyph. Desconecte ShowPositions de Image y conectelo a Glyph.Luego conecte Glyph a Image. Ejecute el programa.

El modulo Glyph contiene un conjunto de formas para representar los puntos, sise abre este modulo en la opcion type se puede seleccionar una representaciondiferente.

3 ⇀ Agregue los modulos Connect, ShowConnections y Collect. Conecte: Import7→Connect7→ShowConnections 7→Collect. Enseguida, desconecte Glyph de Image y conectelo aCollect. Finalmente conecte Collect a Image, el programa debe lucir como se ve enfigura 12(a). Ejecute el programa.

El modulo Conect genera una triangulacion de los puntos dispersos, construyendouna malla no estructurada. En este punto los puntos y la malla deben estar sobreun plano.

4 ⇀ Agregue los modulos RubberSheet y Color. Conecte la salida de Conect a Rubber-Sheet (sin desconectar Conect de ShowConnections), luego la salida de este ultimoa Color y finalmente conecte Color a Collect. NOTA: Debe agregar una entradaextra a Collect. Seleccione un color purpura en Color. Ejecute el programa.

El modulo RubberSheet genera superficies a partir de las coordenadas (x, y) y elvalor de una variable que es utilizado como coordenada z.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 24: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

3.3 Mallas no estructuradas irregulares 23

Figura 12: Programa visual de este ejemplo en diferentes etapas.

5 ⇀ Desconecte la entrada de ShowConnections de Connect. Conecte la salida de Rub-berSheet a ShowConnections. Ejecute el programa.

El efecto de esta accion es que la malla se dibuja sobre la superficie generada porRubberSheet. Entonces, es importante el orden en que se ponen los modulos en elprograma visual: primero se genera la conectividad (Connect), luego la superficie(RubberSheet) y finalmente la malla (ShowConnections) sobre la superficie.

6 ⇀ Para poner los puntos sobre la superficie se seguira la misma estrategia del puntoanterior. Desconecte la salida de Import de la entrada de ShowPositions. Conectela salida de RubberSheet a la entrada de ShowPositions. Ejecute el programa.

7 ⇀ Agregue los modulos AutoColor y ColorBar. Conectelos como se ve en la figura12(b). Ejecute el programa.

8 ⇀ Modifique el color de fondo a blanco en Options→Set Background Color y cambie

c©2005 Depvis, DCI-DGSCA, LMCS

Page 25: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

24 INDICE DE FIGURAS

el color de las etiquetas del ColorBar a negro7. Ejecute el programa.

9 ⇀ Agregue el modulo Scalar y conectelo de tal manera que se pueda modificar inter-activamente el tamano de las esferas que representan las posiciones, vease figura12(b).

3.4. Series de tiempo

En esta practica utilizaremos los archivos generados en la practica de la seccion2.5 (“serietiempo” y “serietiempo.general”). La idea es construir una animacion de losdiferentes tiempos de los datos que tenemos.

1 ⇀ Inicie OpenDX y abra el VPE. Adicione y conecte los modulos FileSelector 7→Import7→7→AutoColor 7→Image.

2 ⇀ En FileSelector seleccione el archivo “serietiempo.general”. En Import active lasentradas start y end y pongales valor y igual a cero a las dos. Ejecute el programa.

Se esta visualizando el primer paso de tiempo de la serie guardada en el archivo“serietiempo” y se ha coloreado de manera automatica con el modulo de AutoColor.

3 ⇀ Agregue el modulo RubberSheet y conectelo entre AutoColor e Image. Ejecute elprograma. Luego agregue el modulo ShowConecctions y conectelo entre Rubber-Sheet e Image para obtener una superficie coloreada. Ejecute el programa.

4 ⇀ Agregue ahora el modulo Sequencer. Este modulo permite ir leyendo los diferentestiempos y visualizarlos uno a la vez. Abra el modulo Import y deshabilite las en-tradas start y end y presione OK. Conecte la salida de Sequencer a las entradasstart y end de Import 8. Abra el Sequencer, presione el boton · · · , con esto apare-cera el Frame Control, figura 13, ahı escriba el valor de cero en Min y 99 en Max.Presione el play (I) del Sequence Control.

5 ⇀ Ahora agregue los modulos Format y Text. Con estos modulos se agregara untexto que ira cambiando con el paso del tiempo. Abra el Format y ponga en laentrada template la cadena: ’’tiempo = \%02d’’ y presione OK. 9 Conecte lasalida de Sequencer a la entrada value de Format. Abra Text, active la entradaposition y coloque el vector: [8 20 3], presione OK. Conecte la salida de Format ala entrada string de Text. Agregue un Collect y conecte a este ultimo las salidas deShowConnections y Text. Finalmente conecte la salida de Collect a Image. Presioneel play (I) del Sequence Control.

7Debe abrir el modulo ColorBar, expandir la lista de parametros (boton Expand), activar el parametrocolor y poner black.

8El nombre de las entradas y salidas de cada modulo se obtiene presionandolas con el mouse sinsoltar, aparecera un texto en el area del modulo con el nombre de la entrada/salida.

9Observe que se utiliza notacion parecida a lenguaje C, en donde el % indica que comienza el formatode una cadena, el 0 indica xque se complete la cadena con ceros a la izquierda, el 2 indica que se tendrandos elementos de tipo entero, esto ultimo es indicado por la d.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 26: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

3.5 Multiples variables 25

Figura 13: Configuracion del Sequencer.

6 ⇀ Agregue una entrada a Collect y conecte a esa nueva entrada la salida de RubbeSheet.Presione el play (I) del Sequence Control.

7 ⇀ Mueva de posicion el texto modificando la entrada position de Text a traves deluso del modulo Vector. La figura 14 muestra el programa visual final.

Figura 14: Programa visual para la visualizacion de datos que cambian con el tiempo.

3.5. Multiples variables

En esta practica utilizaremos los archivos “multivar” y “multivar.general” generadosen la practica 2.6. Visualizaremos las variables condiferentes estrategias y separaremos

c©2005 Depvis, DCI-DGSCA, LMCS

Page 27: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

26 INDICE DE FIGURAS

en varios folders para ordenar mejor el programa visual.

3.5.1. Lectura de datos

1 ⇀ Inicie OpenDX con: dx -edit. Agregue tres paginas mas al programa mediante:Edit→Page→Create Empty Page. Seleccione la pestana Untitled 1 y modifique elnombre seleccionando Edit→Page→Configure Page ..., ponga el nombre Lectura.

2 ⇀ Ahora agregue a esta pagina los modulos: FileSelector, Import, Selector y Select.

3 ⇀ Seleccione “multivar.general” en FileSelector y conectelo a Import. Depues conectela salida de Import a la primera entrada de Select.

La primera entrada de Select recibe todos los datos desde Import. En la segundase recibe una opcion con la que se determina la seccion de datos que se van aleer para la visualizacion. El modulo Selector es un panel de control que permiteagregar las diferentes opciones.

4 ⇀ Abra el modulo Selector, esto abrira la ventana que se muestra en la figura 15(a).Dentro del panel de control, haga doble click sobre Selector, aparecera una ventanapara modificar los atributos, figura 15(b). Seleccione 1 = on y modifique estos val-ores: en el campo de texto Value: ponga 1 y en Label: escriba TEMPERATURE10.Observe que estamos usando la etiqueta que esta definida dentro del archivo “mul-tivar.general” para seleccionar el campo de temperatura. Ahora seleccione 0 = offy sustituya los valores por 1 y VELOCIDAD. Adicione una opcion mas para lapresion: primero escriba 2 y PRESION en los campos de texto; despues presioneel boton Add. Con esto tenemos la lista completa de las variables definidas en elarchivo “multivar.general”.

5 ⇀ Conecte Import a Selector y este ultimo a la segunda entrada de Select.

De esta manera, cuando seleccionemos alguna de las opciones en Selector se leera laparte del archivo que corresponde a la variable correspondiente.

6 ⇀ Para poder usar los datos que se leen en esta pagina en las otras, utilizaremosel modulo Transmitter. Incorpore este modulo y abralo. En la parte del nombre(wireless 1), escriba la cadena Datos y presione OK. Contecte la salida de Select aDatos.

Posteriormente podremos usar la etiqueta Datos mediante un Receiver.

7 ⇀ Tambien usaremos el nombre de cada opcion de Selector. Agregue otro Transmitter,pongale el nombre etiqueta y conectelo a la segunda salida de Selector.

8 ⇀ Con esto tenemos la parte del programa visual que se encarga de leer y seleccionarlos datos que deseamos visualizar, vease figura 16.

10Cada vez que haga una modificacion dentro de los campos de texto debe dar un enter.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 28: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

3.5 Multiples variables 27

(a)

(b)

Figura 15: (a) Panel de control de Selector, (b) Atributos del panel de control.

3.5.2. Vectores y contornos

1 ⇀ Cambie el nombre de las paginas Untitled 2, Untitled 3 y Untitled a Vectores, Colore Imagen.

2 ⇀ Seleccione la pagina Vectores. Agregue el modulo Receiver y cambie el nombre porDatos. Agregue el modulo AutoGlyph y conecte su primera entrada a Datos. AbraAutoGlyph y en type seleccione arrow2D, presione OK. Agregue un Transmitter ycambie el nombre a flechas. Conecte flechas a la salida de AutoGlyph.

3 ⇀ Seleccione la pagina Imagen. Agregue un Receiver, en este caso el nombre de estereceptor debe ser flechas 11. Conecte el recptor a Image.

4 ⇀ Seleccione la pagina Lectura. Abra el panel de control Selector y elija la opcionVELOCIDAD. Ejecute el programa.

En este caso se estan dibujando flechas, para lo cual se requiere de un campo vec-torial. Si seleccionamos, por ejemplo TEMPERATURA, la ejecucion del programaocasionara un error.

Para corregir el error, usaremos el modulo Inquire para determinar cuando tenemosuna variable escalar y cuando una vectorial.

5 ⇀ En la pagina Vectores agregue los modulos Inquire, Isosurface, Compute y Switch.

11Comunmente, OpenDX automaticamente pone el nombre al receptor usando el mismo nombre delultimo transmisor utilizado.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 29: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

28 INDICE DE FIGURAS

Figura 16: VPE con cuatro paginas. Se muestra el programa visual de la pagina Lectura.

6 ⇀ Conecte la salida de Datos a la primera entrada de Inquire. Abra este ultimo, activeinquiry y en el valor escriba “is vector”, presione OK.

El modulo Inquire recibe la porcion de datos seleccionada de acuerdo a las opcionesde Selector. Inquire puede preguntar varias cosas acerca de los datos, entre ellas siel campo es vectorial, que es nuestro caso. Si el campo es vectorial, la salida deInquire sera 1. En otro caso la salida sera igual a 0.

7 ⇀ Conecte la salida de Inquire a la primera entrada de Compute y la salida de esteultimo a la primera entrada de Switch.

El modulo Switch selecciona entre su segunda o tercera entrada dependiendo delvalor de la primera entrada. Si este valor es igual a 1 entonces se toma la segundaentrada. Si el valor es 2 entonces se toma la tercera entrada. Dado que la salidade Inquire es 0 o 1 es necesario sumar un 1 a esta para que sea compatible con laentrada de Switch.

8 ⇀ Abra Compute y escriba a + 1 en la parte de Expression, presione OK. Conecte la

c©2005 Depvis, DCI-DGSCA, LMCS

Page 30: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

3.5 Multiples variables 29

salida de Compute a Switch.

9 ⇀ Conecte Datos a la primera entrada de Isosurface. Abra este ultimo modulo y en suparametro number coloque el valor de 10. Conecte Isosurface a la segunda entradade Switch. Desconecte AutoGlyph de flechas y conectelo a la tercera entrada deSwitch. Finalmente conecte la Switch a flechas, vease figura 17.

10 ⇀ Seleccione la pagina Lectura y abra Selector. En el panel de control seleccioneExecute→Execute on Change. Seleccione cada una de las variables y observe elefecto en la ventana de imagen.

Figura 17: Programa visual que determina si el campo es escalar o vectorial.

3.5.3. Mapas de color

Dado que en este ejemplo se tienen tres variables, es conveniente colorear cada unade ellas con un mapa de color diferente. La figura 18 muestra un programa visual queutiliza dos mapas de color: uno para la temperatura y el otro para la presion y lavelocidad.

Se utiliza un receptor etiqueta para recuperar el nombre de la variable. Este receptores la entrada de Inquire, en donde el el parametro inquiry es “string match”, lo cual

c©2005 Depvis, DCI-DGSCA, LMCS

Page 31: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

30 INDICE DE FIGURAS

Figura 18: Programa visual para seleccionar entre diferentes mapas de color de acuerdocon el nombre de la variable.

significa que se hara una comparacion entre cadenas. En este caso usamos tambien elparametro value en donde ponemos la cadena “TEMPERATURA”: Inquire compara elvalor que recibe de etiqueta con esta cadena.

etiqueta tambien se utiliza como entrada de ColorBar, en su parametro label, paraque se escriba el nombre de la variable en la barra de colores que se desplegara en laimagen.

La segunda entrada del Switch corresponde al mapa de color calculado con AutoColory sera utilizado en caso de que se seleccione la velocidad o la presion. La tercera entradadel Switch proviene del mapa de color que se utiliza para la temperatura. En este casose utiliza un Colormap el cual se puede modificar. Si se abre este modulo se obtiene unaventana en la que se puede variar interactivamente el rango de colores asignado a losvalores de la variable, vease figura 19.

c©2005 Depvis, DCI-DGSCA, LMCS

Page 32: OpenDX : tutoriales b´asicosmmc2.geofisica.unam.mx/luiggi/documents/opendx_tutos.pdf · OpenDX : tutoriales b´asicos Luis M. de la Cruz Salas luiggi@ixtli.unam.mx 5 de octubre de

3.5 Multiples variables 31

Figura 19: Editor del mapa de color basado en el modelo HSV. Se pueden agregar puntosde control para realizar modificaciones interactivamente.

1 ⇀ Agregue el programa visual a la pagina Color con los parametros antes descritos.

2 ⇀ Agregue un tercer mapa de color para que cada variable se coloree con su propiomapa de colores.

3 ⇀ Mapee la presion a una superficie usando RubberSheet.

4 ⇀ Haga que los contornos se dibujen sobre las superficies.

5 ⇀ Agregue un Scalar para modificar interactivamente el numero de contornos que sedibujan.

6 ⇀ Cambie el fondo de la ventana de imagen a blanco.

7 ⇀ Cambie el color de los vectores y los contornos a negro.

8 ⇀ Cambie la etiquetas de los ColorBar a negro.

c©2005 Depvis, DCI-DGSCA, LMCS