Using GridZilla

Purpose

GridZilla is an application for the visualizations of data sets of spatially distributed scalar values, called a grid in this manual. Each data point in the grid includes a scalar value and the corresponding point in space. The grid may have an experimental or a computed origin.

Examples of this type of data include:

GridZilla is at this time a quality piece of work, however it is not very full featured. Programs such as AVS or OpenDX have much more code for the visualization of this kind of data. Although we would love and to add more features to GridZilla, such as streamlines, the handling a two dimensional data, a more math operations for modifying grids, and the output of new grids, the current feature set is sufficient for most of the needs of the people the Modelzilla framework was written for. If the situation changes GridZilla may be expanded.

GridZilla makes use of the VisAD library for its iso-surfacing visualization. In the future we hope to use the abilities of the library more fully.

At this time GridZilla can read only three file formats. All of these formats are oriented towards the field of molecular biology. Interestingly, all these formats express exactly the same thing. The people that wrote the software that generate these files seemed to make no effort at all to look towards outputting the existing standards, and quite irresponsibly made up their own ad-hoc file formats. VisAD can read several file formats as well, most importantly the NetCDF format, which is becoming something of a standard format for expressing grids. If there is a need for it, GridZilla can be made to handle the NetCDF file format, since there are numerous programs that convert various ad-hoc grid formats to this format.

Currently the readable grid file formats include:

Another limitation of GridZilla at this time is that the grids must be linear. This means that the values must be in a regularly spaced array.


Organization

The GridZilla user interface is divided into three areas.

Using GridZilla generally involves these steps:


Grids

New

To load a new grid from a file, go to the "Grid" panel and use the "New Grid" function. This brings up a file entry dialog box. You may open files only in the formats given above. Hit the OK button in the file dialog and grid date is loaded into memory. An abstract visualization of the grid is put the viewport that shows the grid's boundaries in space and sample size.

The Current Grid

GridZilla has the idea of a current grid. This is intended to save the user the trouble of constantly re-specifying the grid work with for operations and require a handle to grid data. The current grid is set by selecting it in the grid list box. Creating a new grid will automatically make this grid the current grid.

Remove

To remove a grid and all of the grid's visualizations, use the "Remove Grid" function.

Resample

If the grid you are dealing with seems to have too many or too few data points is possible to re-sample this grid, creating a new grid object. This process is exactly analogous to the more familiar procedure of changing the size of an image in an image viewing program. To create a new re-sampled grid, use the "Resample Grid" function. This function will create a new grid that is a re-sampled version of the currently selected grid. To change the re-sampling rates, go to the properties of the re-sampled grid on bottom half of the grid panel and adjust the sample rate value.

Slice Grid

If you don't care about some of the grid data of an existing grid, GridZilla has the ability to slice the existing grid from any one of its six bounding faces. This process is exactly analogous cropping an image viewing program. To create a sliced grid use the "Slice Grid" function. This function will create a new grid that initially will have the same bounding faces as the original grid. To change the bounding faces go to the properties of the sliced grid and selecting the one of the max_x, max_y, max_z, min_x, min_y, min_z properties. If you select the "handle" check box, a graphical handle is added to the viewport, that lets you change this slice position in a convenient way that has a nice tactile feel.

Visualizations

All visualizations in that GridZilla are a created from the "Contours" panel. New visualization functions look at the current grid.

All of the visualizations have three parameters in common:

Iso Surface

The iso-surface visualization puts a surface through the grid everywhere an interpolated grid sample is equal to the user specified iso-value. The surface forms the boundary between the volume greater than the the iso-value, and the volume less than the iso-value. Once the iso surface object is created you may want to adjust some parameters, especially the iso-value.

Parameters:

  • isoValue: The iso value parameter defines where the ice surface will pass through the grid.
  • color: The overall color of the iso surface
  • basket weave: This is a true or false parameter. If it is made true, the surface will be rendered in lines. the lines of each lie within the plane of the linear grid, giving a shape that looks like a basket.

Planar section

The planar section visualization slices a planar surface through the grid. The surface is colored by the local value of the grid it slices through. This visualization allows you to sweep a plane to the grid volume to get a feel for the shape of the value distribution.

Parameters:

  • position: This is the height from the base plane to put the sectioning plane.
  • plane: This may be set to the XY plane, the YZ plane, or the ZX plane. The slicing plane will be parallel to this.
  • sample function: The sampling function determines how the value at the section point is interpolated from the local grid values. this visualization does its own re-sampling, which is equivalent to creating a new grid and using the linear sample option in the planter section, however doing the sampling within the planar section computation saves memory.
  • color map: This controls which current color map object to look at.
  • texture map: This is a true or false parameter. If it is made true, color will be applied to the section using texture mapping techniques. If it is false, the color will be applied to the section using conventional vertex coloring. Texture mapping techniques result in a more accurate color distribution, however they decrease performance

General section

The general section visualization slices an existing geometry through the grid. This geometry could be created with Vincent Van Mol, CAD-Zilla, or another application module. It is possible to duplicate the planar section visualization by creating a plane with CAD-Zilla and slicing this through the grid using the general section function. The general section object is simply a new copy of the slicing geometry with a color map applied to it's surface. The colors are determined by the local value of the grid. To create a general section, first select the geometry to section, then hit the General Section button. This will create general section object and that looks at the current grid and geometry have previously selected.

Parameters:

  • sample function: The sampling function determines how the value at the section point is interpolated from the local grid values. This visualization does its own re-sampling, which is equivalent to creating a new grid and using the linear sample option in the planter section, however doing the sampling within the planar section computation saves memory.
  • color map: This controls which current color map object to look at.
  • texture map: This is a true or false parameter. If it is made true, color will be applied to the section using texture mapping techniques. If it is false, the color will be applied to the section using conventional vertex coloring. Texture mapping techniques result in a more accurate color distribution, however they decrease performance.
  • pushDistance: Grid values are sampled at a point that is pushed by this distance off the sectioning surface. Positive is outside the surface, negative is inside. If you are mapping electrostatic potential on to a molecuar surface, this value should be set to 1.4. The space 1.4 angstroms off the molecuar surface is more relevent to molecuar docking physics than the space directly on the surface, and is much less noisy, resulting in smoother colors.

Point Cloud

The point cloud visualization distributes a cloud of points throughout the volume of the grid. Points are colored according to a color map object. The point clouded visualization is similar to the general section and the planar section, except that the sectioning geometry is a cloud of points. This visualization is actually nice to see entire contents of a grid at one time.

Parameters:

  • sample rate: This controls how many points will be shown.
  • point function:
    • "Uniform": Points will be distributed in a regularly spaced rectangular array
    • "Semi Uniform": Just like uniform distribution but the points are randomly preterbed from their uniform positions
    • "Random": Points are randomly distributed throughout the grid.

    The semi-uniform and random options is usually better than the uniform option when because it avoids the cornrow effect, which is an undesirable visual artifact in this case

Iso Curve

The iso curve initialization draws a set of curves through a set of iso values confined to a plane. This is equivalent to the familiar topological map. The iso curve has essentially the same purpose a planar section visualization, but it is to compute.

Parameters:

  • position: This is the height from the base plane to plane to go through. plane: this may be set to the XY plane, the YZ plane, or the ZX plane.
  • The slicing plane will be parallel to this.
  • color map: This controls which current color map object to look at.
  • min/maxIsoValue: These control the range of iso-values sold the contour
  • contourCount: This controls the number of iso-values that will be contoured between the minimum and maximum value

Color Maps

Several of the visualizations offered by GridZilla associate grid values to color. A color map object is used to control this mapping. Each visualization may look at a different color map object, or they may share color maps. If any one of these visualization is created and there no color map in existence, a color map object is made and added to the color map control panel. By default all visualizations will share the first color mapping object created. However using a color map control panel is possible to create a new color map object. This will then be the current color map and it will be the one that new visualizations will look at.

The color spectrum is done by and making a smooth spline between any number of control points in the HSV domain. The color control points are called "ducks". The default color spectrum has a duck at the beginning and the end. It is possible to add and remove ducks with the "Add Duck" and the "Remove Duck" function. The ducks are represented by white bars on the vertical color spectrum bar to the left of the color map control panel. If you select on of these white bars the duck becomes the current duck and you may change its HSV value with the hue saturation and value sliders.

The beginning and end of the color spectrum represents the maximum and minimum values of the grid. It is possible to change the minimum and maximum using the gridMin and gridMax settings in the color map control panel. If most of the interesting grid data is within a narrow range is usually smart to change these values to surround this narrow range because the color mapping will then have a greater variation within this range. Grid values outside of the maximum and minimum range will be considered the same as the minimum of if they're under, or the maximum if they're over.

The color corresponding to a grid value is computed in a two-stage process. The first stage maps to grid value to a point on the color spectrum range. This mapping is linear by default, but is possible to change the shape of this mapping by dragging the mouse in the area to the right of the color spectrum. By doing so is possible do such things as making a sharp change in color value at a certain grid value. The second stage looks up the color at this point on the color spectrum.

To see the color mapping updated in the visualization object in the view port you need to hit the "Apply" button. Changes made to the color map are not applied automatically because this application usually takes several seconds. So you get the color map right first, then hit "Apply".