Download presentation
Presentation is loading. Please wait.
Published byShanon George Modified over 9 years ago
1
Electron denisty, isosurfaces and contour trees Jack Snoeyink GCMB’07
2
Outline n Electron density (3D scalar fields) n The topology of isosurfaces/level sets n The Contour tree –Join tree + Split tree n Applications –Flexible contouring –Contour simplification
3
Density data f:Domain → R My route into geometric computation in molec. bio. n GIS: Geographic Information Systems –Terrain models –Watersheds n Molecular Scene Analysis –J. Glasgow & S. Fortier (Queens)
4
From crystal to structure Data from X-ray diffraction Electron density maps Threaded backbone ...
5
Density to surface We start with the easiest of these steps... Assume we have density, e.g., from the Uppsala Electron Density ServerUppsala Electron Density Server
6
Level sets in density data Many technologies give density samples: f(p) on a 3-D grid. Define Level Sets, a.k.a. isosurfaces, L(v)={p | f(p) = v}. n Requires interpolation.
7
Level sets in density data Many technologies give density samples: f(p) on a 3-D grid. Define Level Sets, a.k.a. isosurfaces, L(v)={p | f(p) = v}. n Define Contour as a connected component of the level set.
8
The Marching Cubes algorithm extracts an isosurface n Test values at cube corners to identify cube edges that intersect the isosurface. n 2 8 cases reduce to 14-16 cases by rotations. n Make triangles to represent portion of level set in cube. n Lorensen & Cline 87, Marching cubes n Nielsen & Hamma 91, fix ambiguities + + + ++ – -
9
Cases Ambiguity in cases w/ separate loops
10
Contour following + + + ++ – - n Can follow contour if we know a start point. n How to find start point? n Shinagawa et al. 91, extreme graph n Cignoni et al. 95, interval tree n Carr et al. 03, contour tree
11
Evolution of level sets Watch contours of L(v) as v increases
12
Evolution of level sets 7 8 9 10 5 6 4 3 1 2 Contour tree
13
Evolution of level sets 7 8 9 10 5 6 4 3 1 2 Contour tree
14
Evolution of level sets 7 8 9 10 5 6 4 3 1 2 Contour tree
15
Evolution of level sets 7 8 9 10 5 6 4 3 1 2 Contour tree
16
Evolution of level sets 7 8 9 10 5 6 4 3 1 2 Contour tree
17
Evolution of level sets Contours appear, merge, split, & vanish 7 8 9 10 5 6 4 3 1 2 Contour tree
18
Morse theory & Contour trees n Karron et al 95, digital Morse theory n Bajaj et al 97–99, seed sets n Van Kreveld et al 97, 2-D contour tree n Tarasov & Vyalyi 98, 3-D contour tree
19
How to compute contour trees without sweeping all level sets n Build join and split trees n Merge to form contour tree n Works in all dimensions...
20
The join tree Represents set {p | f(p) >= x} n Can be computed w/out the surface of the level set. 7 8 9 10 5 6 4 1
21
Join tree construction n Sort data by value Maintain union/find for comp. of {p | f(p) >= x} 7 8 9 10 5 6 4
22
Union/Find n Data structure for integers 1..n supporting: –Initialize() each integer starts in its own group for i = 1..n, g(i) = i; –Union(i,j) union groups of i and j g(Find(i)) = Find(j); –Find(i) return name of group containing i group = i; while group != g(group), group = g(group); // find group while i != group, {nx = g(i), g(i) = group, i = nx} // compress path n Does n union/finds in O(n a(n)) steps [T72] 1 2 3 4... 42... n
23
Join tree construction n Sort data by value Maintain union/find for comp. of {p | f(p) >= x} O(n+ t·α ( t ) ) after sort 7 8 9 10 5 6 4 1
24
The split tree 10 3 1 2 Represents the set {p | f(p) <= x} n Reverse join tree computation
25
Merge join and split trees 10 3 1 2 7 8 9 5 6 4 1 7 8 9 5 6 4 3 1 2
26
1. Add nodes from other tree n Nodes have correct up degree in join & down degree in the split tree. 7 8 9 10 5 6 4 1 7 8 9 5 6 4 3 1 2 3 2
27
2. Identify leaves n A leaf in one tree, with up/down degree < 1 in other tree 7 8 9 10 5 6 4 1 7 8 9 5 6 4 3 1 2 3 2
28
3. Add to contour tree n A leaf in one tree, with up/down degree < 1 in other tree 7 8 9 10 5 6 4 1 7 8 9 5 6 4 3 1 3 3 2
29
3. Add to contour tree 7 8 9 10 5 6 4 1 7 8 9 5 6 4 3 1 3 3 2
30
3. Add to contour tree 7 8 9 10 5 6 4 7 8 9 5 6 4 3 1 3 3 2
31
3. Add to contour tree n Note that 4 is not a leaf 7 8 9 10 5 6 4 7 8 9 5 6 4 1 3 2 4
32
3. Add to contour tree n The merge time is proportional to the tree size; much smaller than the data 8 9 10 5 6 4 8 9 5 6 4 1 3 2 4 7 5
33
4. Ends with Contour tree 7 8 9 10 5 6 4 3 1 2
34
Advantages n Doesn’t need the surface structure to build the contour tree. n The merge becomes simple, and works on a subset of the points n The tree structure can advise where to choose the threshold value n Can cut diff. branches at diff. values.
35
Flexible contouring n Threshold diff. areas at diff. values
36
Flexible contouring n Threshold diff. areas at diff. Values n Guided by the Contour Tree 7 8 9 10 5 6 4 3 1 2
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.