Presentation is loading. Please wait.

Presentation is loading. Please wait.

Electron denisty, isosurfaces and contour trees Jack Snoeyink GCMB’07.

Similar presentations


Presentation on theme: "Electron denisty, isosurfaces and contour trees Jack Snoeyink GCMB’07."— Presentation transcript:

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


Download ppt "Electron denisty, isosurfaces and contour trees Jack Snoeyink GCMB’07."

Similar presentations


Ads by Google