## 3.7 Visualizing 3-Dimensional Data

The following examples illustrate several ways of visualizing 3-dimensional data.

### Isosurfaces

This example uses cloud-water density data for a severe storm.

1. Open and execute visual program `.../Isosurface3D.net`.

   The "isovalue" used for generating the isosurface that appears is, by default, the average of all the data values. (The default isovalue can be found by selecting `Open Message Window` in the `Windows` pull-down menu.)

2. Change the isovalue:
   1. Open the configuration dialog box for `Isosurface`.
   2. In the `value` parameter field, set the value to "0.3."
   3. Click on `OK` and reexecute the visual program. The new isosurface is significantly smaller.

See Isosurface in IBM Visualization Data Explorer User's Reference.

### Slices

Following are a few examples of how to generate and process data slices.

For 3-dimensional data on any type of grid or for non-orthogonal slices, use the `MapToPlane` tool. If the data set is on a regular grid, use the `Slab` tool to take slices along connection elements. You can use other tools (e.g., `AutoColor` or `RubberSheet`) on data slices just as you can on any 2-dimensional object.

1. Open and execute visual program `.../MapToPlane.net`. The image is a colored plane through a 3-dimensional data field. By default, `MapToPlane` maps onto a plane at the center of the data. To change the orientation of this plane:
2. Open the configuration dialog box for `MapToPlane`, change the value in the `normal` parameter field to [1 1 1] and click on `OK`. The change of orientation will appear when the program is reexecuted.
3. Reexecute the visual program. `MapToPlane` performs the necessary interpolation for a data slice of any orientation in a 3-dimensional field.

   See MapToPlane in IBM Visualization Data Explorer User's Reference.

To visualize an orthogonal slice without interpolation, use `Slab`:

1. Open and execute visual program `.../Slab.net`. The image is a translucent isosurface with a colored slice (or slab) cutting through it. To visualize a slice through another part of the isosurface:
2. Open the configuration dialog box for `Slab` and change the `position` parameter value to "10."
3. Click on `OK` or `Apply`.
4. Reexecute the visual program. The position of the new slice is changed.

   See Slab in IBM Visualization Data Explorer User's Reference.

To create an animation that generates different slices of the data:

1. Select `Special` in the categories palette and then `Sequencer` in the tools palette.
2. Position the cursor to the right of `Slab` in the VPE.
3. Open the `Slab` configuration dialog box.
4. Click on the `position` toggle (unsetting the parameter value). The parameter field now reads "(all)" and the third input tab on the `Slab` icon (counting from the left) projects outward from the icon (instead of into it).
5. Click on `OK`.
6. Connect the output tab of `Sequencer` to this third input tab (i.e., "position") of `Slab`.
7. Double click on the `Sequencer` icon to display the `Sequence Control` panel.
8. Click on the frame button (`...`) to display the `Frame Control` panel.
9. Reset the limits:
   1. Click on the `min` field, type "0," and press Enter.
   2. Click on the `max` field, type "20," and press Enter.
10. Click on the Forward (>) button to play the sequence.

    See "Using the Sequencer" in this Guide and Sequencer in IBM Visualization Data Explorer User's Reference.

### Streamlines

The `Streamline` module traces the path of a massless particle through a static velocity field.

1. Open and execute visual program `.../Streamlines3D.net`. The image is a translucent isosurface with a single streamline starting from the point [25000 5000 25000] (as specified in the `Streamline` module's configuration dialog box). This streamline can be transformed into a ribbon:
2. Select `Annotation` in the categories palette and then `Ribbon` in the tools palette.
3. Position the `Ribbon` icon below `Streamline` in the VPE canvas.
4. Disconnect `Streamline` output from `Collect` input and reconnect it to `Ribbon` input.
5. Connect `Ribbon` output to `Collect` input.
6. Reexecute the visual program. The streamline changes to a ribbon.

If you want the twist of the ribbon to represent the vorticity of the wind field:

1. Open the `Streamline` configuration dialog box.
2. Change the `flag` parameter value from "(input dependent)" to "1" and click on `OK`. `Streamline` computes the degree of twist from the vorticity of the wind field.
3. Reexecute the visual program. The twist is greater in regions of higher wind vorticity.

To make the color of the ribbon correspond to wind velocity:

1. Select `Transformation` and then `AutoColor` in the palettes.
2. Position the `AutoColor` icon between `Ribbon` and `Collect` in the VPE canvas.
3. Disconnect the `Ribbon` output from the `Collect` input and reconnect it to the first (leftmost) input of `AutoColor`.

   Note: Both input tabs can accept a connection, but the semi-highlighting indicates required input (i.e., the module cannot function without it).

4. Connect the first (leftmost) output of `AutoColor` to the available input of `Collect`.
5. Reexecute the visual program. Note the variation of color in the ribbon.

   See Ribbon and Streamline in IBM Visualization Data Explorer User's Reference.

### 3-D Scalar Glyphs

Scalar glyphs can represent 3-dimensional as well as 2-dimensional data.

1. Open and execute visual program `.../AutoGlyph3DScalar.net`. The spherical glyphs on the isosurface represent a subset of the data elements.
2. To visualize the entire data set:
   1. Disconnect the `Map` output from `AutoGlyph`.
   2. Connect the output of the left-hand `Import` module to the first ("data") input tab of `AutoGlyph`.
   3. Reexecute the visual program. The number of glyphs is greatly increased.

You can also create your own glyphs (both scalar and vector). For example:

- Connect the output of `Shade` to the second ("type") input tab of `AutoGlyph`.
- Reexecute the visual program. The combination of `Construct`, `Connect`, and `Shade` produces a small pyramidal glyph.

  See AutoGlyph, Connect, Construct, and Shade in IBM Visualization Data Explorer User's Reference.

### 3-D Vector Glyphs

Vector glyphs can represent 3-dimensional as well as 2-dimensional data.

1. Open and execute visual program `.../AutoGlyph3DVector.net`. The image is a set of 3-dimensional arrow glyphs on an isosurface.
2. To visualize the entire data set:
   1. Disconnect `Map` output from `AutoGlyph`.
   2. Connect the output of the left-hand `Import` module to the first ("data") input tab of `AutoGlyph`.
   3. Reexecute the visual program. The number of glyphs is greatly increased.

### Volume Rendering

Volume rendering is a technique for using color and opacity to visualize the data in a 3-dimensional data set. (In contrast, surface techniques use tools like `Isosurface` and `MapToPlane` to display a 2-dimensional surface, although in 3-dimensional space.) The following are some simple examples.

1. Open and execute visual program `.../VolumeRendering.net`. As the network in the canvas shows, the color of the volume is determined by `AutoColor`. The data set contains relatively few high values (red) and relatively many low values (blue). No structure is apparent in the image.
2. Select `Transformation` and then `Equalize` in the palettes.
3. Position the `Equalize` icon between `Import` and `AutoColor`in the VPE canvas.
4. Disconnect `Import` output from `AutoColor` input and reconnect it to the first input tab ("data") of `Equalize`.
5. Connect `Equalize` output to the first input tab ("data") of `AutoColor`.
6. Reexecute the visual program. `Equalize` redistributes the data values more or less uniformly between the minimum and maximum of the data. Although the resulting image is somewhat diffuse, the structure of the data (the electron density of an imide molecule) is now visible.

`AutoColor` parameters can be used to add definition to the structure.

1. Delete the `Equalize` module: Click on the icon and select `Delete` in the `Edit` pull-down menu. The connections to `Import` and `AutoColor` are automatically deleted along with the icon.
2. Reconnect the `Import` output to the first input tab ("data") of `AutoColor`.
3. Open the `AutoColor` configuration dialog box.
4. Set the value of the `min` parameter to ".1" and click on `OK`.
5. Reexecute the visual program. All data values smaller than 0.1 are rendered invisible (black). The image is much darker, but still visible.
6. To increase the visibility of the data, increase the value of the `intensity` parameter in the `AutoColor` configuration dialog box to "5."
7. Click on `OK` and reexecute the visual program. The structure of image is now fairly distinct.

A color map gives you much greater control over the appearance of the image:

1. Disconnect `AutoColor` from `Image` and connect the `Color` output to the `Image` input.
2. Reexecute the visual program.
3. Bring up the Colormap Editor by double clicking on the `Colormap` icon. The color-bar, Hue, and Opacity settings are clearly reflected in the image: regions of low data values (green) and smaller regions of higher data values (red). All other data values have been rendered invisible.

   Note: To make a region or volume invisible, it is necessary to set both its intrinsic opacity and its color value to zero. The reason is that the volume rendering model assumes that regions emit light as well as absorb it. So even if its opacity is zero (no absorption), a region will still emit light unless its color is black ([0 0 0]).

It is interesting to contrast the volume rendering of previous images with a surface technique. For example:

1. Disconnect `Color` from `Image` and connect the `Isosurface` output to the `Image` input.
2. Reexecute the visual program. The resulting image is an isosurface representation of the structure of an imide molecule.

You can also combine surface techniques with volume rendering. For example:

1. Select `Structuring` and then `Collect` in the palettes.
2. Position the `Collect` icon above `Image` in the VPE canvas.
3. Disconnect `Isosurface` from `Image`.
4. Connect the first output tab ("mapped") of `AutoColor` to either of the `Collect` input tabs.
5. Connect the `Isosurface` output to the other `Collect` input tab.
6. Connect the `Collect` output to the `Image` input.
7. Reexecute the visual program. The result is a combination of the volume-rendering and isosurface images of the imide molecule.
8. To make the isosurfaces translucent, insert a new `Color` module (from the `Transformation` category) into the network between `Isosurface` and `Collect`. (Use the first, or "input," tab of the `Color` icon.)
9. Open the `Color` configuration dialog box and set the `opacity` parameter to ".3." (You can try other values as well.)
10. Click on `OK` and reexecute the visual program. The isosurfaces are now translucent.

[ OpenDX Home at IBM | OpenDX.org ]