Contour Tree Simplification

Although contour trees are useful for visualization tasks, the presence of noise in the data can result in the contour tree being far too large for use as an interface to the data. While direct manipulation of flexible isosurfaces is unaffected by this, indirect manipulation requires a strategy for coping with extremely large trees, which may involve millions of edges.

A Molecular Data Set with a Large Contour Tree

Since noise typically adds many small features to the data and to the contour tree, an obvious approach is to remove small features from the contour tree to reveal the underlying major structure. In doing so, we need to identify what impact operations in the tree have on the underlying data set. For isosurface rendering, removing a leaf on the tree is equivalent to flattening out the corresponding region of the data set, as shown here:

Effects of Leaf Removal on Underlying Data

While this approach is not necessarily ideal for terrain (2-D data), this is partially because the human visual system is sensitive to changes in the silhouette of the terrain. In three dimensions, where we cannot see the entire data set at once in the same way, this is less applicable, and suppressing small features is more practical. Moreover, our choice of which edges to remove from the tree can be dictated by local geometric measures: geometric properties of the contours belonging to an edge of the contour tree.

Simplified Using Height (Persistence)
Simplified Using Volume
Simplified Using Hypervolume
Contour Tree for UNC Head Simplified from 1,573,373 Edges Using Different Local Geometric Measures

Once we have simplified the contour tree to remove unwanted features, we can now apply the flexible isosurface interface even to large datasets such as the UNC Head, allowing new forms of data exploration:

(Simplified) Flexible Isosurface Exploration of the UNC Head Data Set