Visualisierung II 5. Skalartopologie Vorlesung: Mi, 9:15 – 10:45, INF 368 – 532 Prof. Dr. Heike Jänicke – http://www.iwr.uni-heidelberg.de/groups/CoVis/ Inhaltsverzeichnis 1. Daten in Biologie und Medizin 2. Volumenvisualisierung 3. Daten in Umwelt- und Technikwissenschaften 4. Raumteilungsverfahren 5. Topologische Verfahren 6. Analyse von Multivariaten Daten und Zeitreihen 7. Informationstheoretische Verfahren Visualisierung II – 5. Skalartopologie 2 Inhaltsverzeichnis 5. Skalartopologie 1. Isolinien und Isoflächen 1. Der Marching Cubes Algorithmus 2. Effiziente Berechnung im Spannraum (span space) 2. Das Konturspektrum 3. Theoretische Grundlagen 1. Topologie 2. Triangulierung und Simplizialkomplexe 3. Morse-Theorie 4. Der Konturbaum Visualisierung II – 5. Skalartopologie 3 Inhaltsverzeichnis 5. Skalartopologie 1. Isolinien und Isoflächen 1. Der Marching Cubes Algorithmus 2. Effiziente Berechnung im Spannraum (span space) 2. Das Konturspektrum 3. Theoretische Grundlagen 1. Topologie 2. Triangulierung und Simplizialkomplexe 3. Morse-Theorie 4. Der Konturbaum Visualisierung II – 5. Skalartopologie 4 Motivation [C. Scheidegger, Uni Utah] Visualisierung II – 5. Skalartopologie 5 Isolinien und Isoflächen ● Eine Kontur- oder Isolinie I ist als die Menge aller Punkt p eines Datensatzes definiert, die den gleichen Skalar- oder Isowert α haben: I ={ p∈D∣s p= } ● Im 2D ergeben sich Isolinien, im 3D Isoflächen. Visualisierung II – 5. Skalartopologie 6 Berechnung von Isolinien – Grundidee ● ● ● ● Benachbarte Zellen teilen sich die Information auf den Kanten. Dadurch können wir jede Zelle einzelnen betrachten. Isowert = 0.48 Für jede Zelle im Feld wird getestet, ob sie von einer Isokontur geschnitten wird oder nicht. Da wir innerhalb der Zelle (bi)linear interpolieren, muss man hierfür nur die Werte an den Eckpunkten der Zelle betrachten. Ist mindestens einer von ihnen größer und mindestens einer kleiner als der Isowert, so muss es innerhalb der Zelle Positionen geben, die exakt den Isowert haben. Somit muss also lediglich in jeder Zelle die positiv getestet wurde die Isolinie berechnet werden. Visualisierung II – 5. Skalartopologie 7 Berechnung von Isolinien – Grundidee ● ● Für Quadrate mit 4 Eckpunkten ergeben sich also 24 = 16 mögliche Belegungen der Eckpunkte (schwarz: ≥ Isowert, weiß < Isowert). Der Schnittpunkt p auf der Kante zwischen den Eckpunkten pi und pj wird mittels linearer Interpolation berechnet. Gewichte sind hierbei die Funktionswerte fi und fj an den Eckpunkten: p= Visualisierung II – 5. Skalartopologie pi f j −f p j f −f i f j −f i 8 Berechnung von Isolinien – Grundidee ● ● Aufgrund der linearen Interpolation innerhalb der Zellen sind die Isolinienstücke innerhalb der Zellen Strecken: Die Fälle 5 und 10 sind dabei nicht eindeutig bestimmt. Visualisierung II – 5. Skalartopologie 9 Berechnung von Isolinien – Mehrdeutige Fälle ● Im Falle von mehrdeutigen Zellen, kann dies wichtigen Einfluß auf die Topologie der entstehenden Kontur haben. Im ersten Fall erhalten wir zwei separate Konturen, im zweiten eine geschlossene. Visualisierung II – 5. Skalartopologie 10 Isoflächen – Marching Cubes ● ● Marching Cubes ist die Erweiterung des Marching Squares Algorithmus auf 3D. Er berechnet Isoflächen. Das Grundprinzip des Algorithmus ist ähnlich dem Marching Squares Algorithmus: – Berechne den topologischen Index der Zellen. Hier ergeben sich 28 = 256 mögliche Konfiguration, welche auf Grund von Symmetrien auf 15 reduziert werden können. Visualisierung II – 5. Skalartopologie 11 Inhaltsverzeichnis 5. Skalartopologie 1. Isolinien und Isoflächen 1. Der Marching Cubes Algorithmus 2. Effiziente Berechnung im Spannraum (span space) 2. Das Konturspektrum 3. Theoretische Grundlagen 1. Topologie 2. Triangulierung und Simplizialkomplexe 3. Morse-Theorie 4. Der Konturbaum Visualisierung II – 5. Skalartopologie 12 Rechenaufwand für Isoflächen ● ● ● ● ● Der vorgestellt Algorithmus nutzt bereits mehrere Charakteristika von zellbasierten Skalarfeldern aus und bietet so eine sehr effiziente Implementierung. Trotzdem ergibt sich hierbei im Allgemeinen eine Zeitkomplexität von O(n), wobei n die Anzahl der Zellen ist, da man für jeden Isowert einmal alle Zellen durchlaufen und ihren Knotenindex prüfen muss. Optimierte Algorithmen, die Octrees verwenden [J. Wilhelms, A. van Gelder. Octrees for fast isosurface generation, ACM Transactions on Graphics, 11(3), 201-277, 1992] kommen im schlechtesten Fall auf eine Zeitkomplexität von O( k + k log( n / k ) ), wobei k die Anzahl der von der Isofläche geschnittenen Zellen ist. Mittels des Spannraums kann die Zeitkomplexität auf O( √n + k) gesenkt werden. Grundidee ist, dass die Berechnung von Isoflächen in zwei Aufgaben geteilt werden kann: – Finde alle Zellen, die die Isofläche schneiden. – Berechne für alle Schnittzellen das entsprechende Teilstück der Fläche. Der Marching Cubes Algorithmus kümmert sich um das zweite Teilproblem, während der Spannraum ein effizientes lokalisieren der benötigten Zellen ermöglicht. Visualisierung II – 5. Skalartopologie 13 Der Spannraum ● Definition Spannraum: Sei C die Menge aller Zellen des Beobachtungsraumes B q + und s : B W eine auf B definierte Funktion mit Funktionswerten in W ⊆ℝ q∈ℤ . Wir definieren eine Punktmenge P = {pi } über W² mit ∀ c i ∈C assoziiere pi =ai , bi mit ai =min {v j }i j bi =max {v j }i j wobei {vj }i die Funktionswerte an den Vertices der Zelle ci sind. Visualisierung II – 5. Skalartopologie 14 Zellsuche im Spannraum ● ● Erste Teilaufgabe bei der Berechnung von Isoflächen war die Detektion aller Zellen, die die Isofläche schneiden. Verwenden wir hierfür den soeben eingeführten Spannraum, ergibt dies: Suche im Spannraum: Gegeben sei eine Menge von Zellen C und die assoziierte Punktmenge P im Spannraum. Ferner sei ein Isowert α ∈ W gegeben. Gesucht wird nun die Menge P ⊆P mit ∀ x i , y i ∈ P ● x i y i Die Suche im Merkmalsraum (Spannraum) hat mehrere Vorteile: – Die Suche ist unabhängig von der Geometrie des Beobachtungsraumes. Dies ist z.B. bei Saatkornmethoden nicht gegeben. – Auch die Topologie der Zellen ist nicht wichtig und der Ansatz ist auch für unstrukturierte Gitter geeignet. – Die Dimension des Problem wird gesenkt (Suche von Zellen in 3D → Suche in 2D) Visualisierung II – 5. Skalartopologie 15 Spannraum – Implementierung Als Datenstruktur für die effiziente Suche im Spannraum wird ein kd-Baum vorgeschlagen. Aufbau: ● ● ● Initialisiere den kd-Baum mit einem einzigen Blatt, das eine Liste aller min-/ max-Wertepaare enthält. Für jedes Blatt: – Wähle eine Dimension, die geteilt werden soll. – Enthält die zugehörige Zellliste mehr als zwei Elemente sortiere die Liste entsprechend des aktuellen Teilungskriteriums. – Speichere das Medianelement mit entsprechenden Werten im aktuellen Knoten und initialisiere die Kindknoten. Wiederhole den vorhergehenden Punkt, bis kein Blatt mehr geteilt werden kann. Visualisierung II – 5. Skalartopologie 16 Spannbaum – Datenstruktur ● ● ● ● Der kd-Baum kann in diesem Fall in einem Array gespeichert werden, da es sich um einen vollständig balancierten Baum handelt. Jeder Knoten des Baumes repräsentiert eine Zelle, wir können also den Speicher für den Baum im Vorfeld allokieren (Länge des Arrays entspricht Anzahl der Zellen). Der Wurzelknoten wird in der Mitte des Arrays gespeichert. Der linke Teilbaum enthält dann n/2 Knoten, der recht (n-1)/2 Knoten. Jeder Knoten repräsentiert eine Zelle und speichert folgende Informationen: – float: min-Wert, max-Wert – int: Index der Zelle Visualisierung II – 5. Skalartopologie 17 Spannraum – Pseudocode für Implementierung Visualisierung II – 5. Skalartopologie 18 Spannraum – Zellsuche ● ● Bei der Zellsuche sollen alle Zellen gefunden werden, deren min/max-Werte den Isowert umschließen. Dazu beginnen wir bei der Suche an der Wurzel und vergleichen die min/max-Wert mit dem Isowert. Für alle Knoten: – ● ● min < α && max > α: Berechne die Isofläche der Zelle. Bei inneren Knoten: – min-Level && min < α: Durchsuche beide Kinder. – min-Level && min ≥ α: Durchsuche das linke Kind. – max-Level && max > α: Durchsuche beide Kinder. – max-Level && max ≤ α: Durchsuche des rechte Kind. Optimierung: Für min < α können ab sofort alle min-Level für das linke Kind übersprungen werden. Analoges gilt für den max-Wert. Visualisierung II – 5. Skalartopologie 19 Spannraum – Pseudocode Zellsuche Visualisierung II – 5. Skalartopologie 20 Spannraum – Ergebnisse ● Der Ansatz heißt „near-optimal“, da er „nur“ im Standardfall k > √n optimal ist. In allen anderen Fällen kommt nach Autorenaussage ein vernachlässigbar kleiner Overhead hinzu. # Zellen Herz # Isozellen # Knoten geprüft Overhead Max. Unterbaum 69892 0.02 0.42 0.69 0.25 Torso 1290072 0.01 0.44 0.77 0.02 Gehirn 471770 0.02 0.21 0.68 0.03 2048383 0.03 0.07 0.82 0.25 FD-32 29791 0.10 0.18 0.75 0.25 FD-64 250047 0.10 0.06 0.54 0.25 FD-128 2048383 0.08 0.03 0.76 0.25 FD-256 16581375 0.07 0.01 0.54 0.25 Kopf Visualisierung II – 5. Skalartopologie 21 Spannraum – Ergebnisse 2000000 1500000 # Zellen # Isozellen # Knoten geprüft Overhead Max. Unterbaum 1000000 500000 0 Herz Torso Kopf FD-64 Gehirn FD-32 FD-128 80000 70000 60000 # Zellen # Isozellen # Knoten geprüft Overhead Max. Unterbaum 50000 40000 30000 20000 10000 0 Visualisierung II – 5. Skalartopologie Herz Torso Gehirn Kopf FD-32 FD-64 FD-128 22 Inhaltsverzeichnis 5. Skalartopologie 1. Isolinien und Isoflächen 1. Der Marching Cubes Algorithmus 2. Effiziente Berechnung im Spannraum (span space) 2. Das Konturspektrum 3. Theoretische Grundlagen 1. Topologie 2. Triangulierung und Simplizialkomplexe 3. Morse-Theorie 4. Der Konturbaum Visualisierung II – 5. Skalartopologie 23 Geschachtelte Isokonturen ● ● ● Die Auswahl eines guten Isowertes ist ein recht schwieriges Problem, da man prinzipiell alle Werte durchprobieren müsste, um keine Details zu übersehen. Die Folge unten stellt Isoflächen in einem 3D Datensatz der Elektronendichte eines Methanmoleküls dar. Je nach Parametereinstellung bekommt man sehr unterschiedliche Darstellungen. Um das breite Spektrum an unterschiedlichen Flächen abzudecken und dem Anwender einen Überblick über wesentliche Charakteristika der Isoflächen zu geben wurde das Konturspektrum entwickelt [Bajaj 1997]]. wachsender Isowert [V. Pascucci 2003] Visualisierung II – 5. Skalartopologie 24 Das Konturspektrum ● ● Im Wesentlichen ist das Kontourspektrum ein zusätzlichen Fenster, dass dem Nutzer verschiedene Charakteristika der Isoflächen bei wachsendem Isowert zeigen. Der Nutzer kann nun interaktiv den gewünschten Isowert auswählen und die entsprechende 3D-Fläche anzeigen. Visualisierung II – 5. Skalartopologie 25 Das Konturspektrum – Isoflächencharakteristika ● ● ● Für das Konturspektrum werden drei generische integrale Größen vorgeschlagen, die Isoflächen in beliebigen Dimensionen beschreiben können (man verwendet jedoch zumeist nur 2D oder 3D Daten). Im 2D verwendet man: – Länge der Isokontur – Von der Isokontur umschlossene Fläche – Kurvenintegral des Gradienten entlang der Isokontur Analog im 3D: – Flächeninhalt der Isofläche – Eingeschlossenes Volumen – Oberflächenintegral des Gradienten über die Isofläche Visualisierung II – 5. Skalartopologie 26 Das Konturspektrum – Berechnung ● ● ● Im Originalartikel werden Dreiecks- bzw. Tetraedergitter benutzt, da Länge bzw. Fläche bei linearer Interpolation einen B-Spline 2. Ordnung ergeben. Eingeschlossene Flächen bzw. Volumen ergeben sich mittels Integration ebenfalls als B-Spline. Für den Gradienten wird eine Konstante pro Zelle angenommen (Ableitung der skalaren Interpolation) und mit der Länge/Fläche multipliziert. Visualisierung II – 5. Skalartopologie 27 Das Konturspektrum – Beispiele Visualisierung II – 5. Skalartopologie 28 Inhaltsverzeichnis 5. Skalartopologie 1. Isolinien und Isoflächen 1. Der Marching Cubes Algorithmus 2. Effiziente Berechnung im Spannraum (span space) 2. Das Konturspektrum 3. Theoretische Grundlagen 1. Topologie 2. Triangulierung und Simplizialkomplexe 3. Morse-Theorie 4. Der Konturbaum Visualisierung II – 5. Skalartopologie 29 Geschachtelte Isokonturen ● ● ● Die Auswahl eines guten Isowertes ist ein recht schwieriges Problem, da man prinzipiell alle Werte durchprobieren müsste, um keine Details zu übersehen. Die Folge unten stellt Isoflächen ein einem 3D Datensatz der Elektronendichte eines Methanmoleküls dar. Je nach Parametereinstellung bekommt man sehr unterschiedliche Darstellungen. Die Topologie beschreibt diese Veränderungen und der Konturbaum ist eine Datenstruktur um die topologischen Veränderungen effizient zu speichern. wachsender Isowert [V. Pascucci 2003] Visualisierung II – 5. Skalartopologie 30 Topologie ● ● ● Die Topologie beschäftigt sich mit den Eigenschaften von Mengen, die sich bei kontinuierlicher Deformationen (z.B. Dehnen, Stauchen, Verbiegen) nicht ändern. Für die Untersuchung von Skalarfeldern ist die Topologie u.a. von Bedeutung, da man mit ihrer Hilfe untersuchen kann, wann Isolinien bzw. Isoflächen ihre grundlegende Struktur ändern. Dies hilft dabei wichtige Isowerte zu finden. Eine Änderung der Topologie entsteht z.B. wenn bei Veränderung des Isowertes aus einer Isolinie zwei Linien werden – irrelevant aus topologischer Sicht sind auf der anderen Seite z.B. Größenänderungen, also Länge der Kontur oder eingeschlossene Fläche. topologisch äquivalent nicht topologisch äquivalent Visualisierung II – 5. Skalartopologie oder oder 31 Topologie ● Sei X eine beliebige Menge und T eine Menge von Teilmengen von X. T wird eine Topologie von X genannt, wenn gilt: – Sowohl die leer Menge als auch X sind Elemente von T. ∅∈T – X ∈T Die Vereinigung einer beliebigen Anzahl von Elementen aus T ist ebenfalls ein Element von T. Wenn Z ⊂ X ist, so ist ∪ O∈T. O∈ Z – Die Schnittmenge einer endlichen Anzahl von Elementen aus T ist ebenfalls ein Element von T. Wenn Z ⊂ X endlich ist, so ist ∩ O∈T. O ∈Z ● Eine Menge X mit einer Topologie T heißt topologischer Raum. Visualisierung II – 5. Skalartopologie 32 Abbildung und Äquivalenz ● ● ● Seien X, Y topologische Räume und x X ein Punkt in X. Eine Abbildung f: X → Y heißt stetig in x, falls für jede Umgebung V von f(x) eine Umgebung U von x existiert, so dass f (U )⊆V . f heißt stetig, wenn f für alle x ∈ X stetig ist. Ist f: X → Y eine bijektive stetige Abbildung und auch f -1 stetig, so nennt man f einen Homöomorphismus. Topologische Räume X, Y heißen homöomorph (topologisch äquivalent), wenn es einen Homöomorphismus f: X → Y gibt. topologisch äquivalent nicht topologisch äquivalent Visualisierung II – 5. Skalartopologie oder oder 33 Inhaltsverzeichnis 5. Skalartopologie 1. Isolinien und Isoflächen 1. Der Marching Cubes Algorithmus 2. Effiziente Berechnung im Spannraum (span space) 2. Das Konturspektrum 3. Theoretische Grundlagen 1. Topologie 2. Triangulierung und Simplizialkomplexe 3. Morse-Theorie 4. Der Konturbaum Visualisierung II – 5. Skalartopologie 34 Affine und konvexe Hülle ● ● Besonders im Hinblick auf algorithmische Methoden ist es wünschenswert, topologische Räume durch endliche Strukturen darzustellen. Eine Möglichkeit dazu besteht in Simplizialkomplexen. Die affine Hülle einer Menge von Punkten P = {p0 , ...,pn } des IRn ist {∑ n aff P := i=0 ● ● n λ i p i∣∑ λ i =1, λ i ∈ℝ i=0 } P ist affin unabhängig, falls sich aff P von der affinen Hülle jeder echten Teilmenge von P unterscheidet. (Satz: Jede Teilmenge des En aus mindestens n+2 eindeutig bestimmten Punkten ist affin abhängig. → Sie besitzt hierdurch eine nichttriviale Darstellung der 0.) Die konvexe Hülle von P ist {∑ n conv P := i=0 n λ i pi∣∑ λ i =1,∀i : λ i ≥0 Visualisierung II – 5. Skalartopologie i =0 } 35 Simplices und ihre Beschreibung ● ● Ein k-Simplex ist die konvexe Hülle von k+1 affin unabhängigen Punkten. – Ein 0-Simplex heißt Ecke, – ein 1-Simplex Kante, – ein 2-Simplex Dreieck und – ein 3-Simplex Tetraeder. Ist P = {p0 , ...,pn } affin unabhängig, so ist die Dimension des k-Simplex σ dim σ=k =∣P∣−1 ● ● Eine Facette von σ ist ein (k-n)-Simplex, n∈[0, k ] τ = conv Q mit Q⊆ P. Die baryzentrischen Koordinaten eines Punktes x ∈σ sind die Koeffizienten λi der Affinkombination mit n n ∑ λi p i= x ∑ λi =1 i =0 Visualisierung II – 5. Skalartopologie i=0 36 Simplizialkomplex ● ● ● Ein Simplizialkomplex K ist eine endliche Familie von Simplizes mit folgenden Eigenschaften – Wenn σ ∈ K und τ eine Facette von σ ist, so ist τ∈ K . – Wenn σ , σ ' ∈ K sind, so ist σ∩σ ' leer oder eine Facette von σ und σ'. Die Eckenmenge von K ist vert K = { σ ∈K∣dim σ=0 } . Eine Triangulierung eines topologischen Raumes X ist ein Simplizialkomplex K zusammen mit einem Homöomorphismus h: |K| → X. |K| ist die geometrische Realisierung von X. Visualisierung II – 5. Skalartopologie [wikipedia] 37 Topologie von Isostrukturen (Level Sets) 2D 1D f(x) iso = 70 iso = 58 iso = 54 iso = 30 x 3D wachsender Isowert Visualisierung II – 5. Skalartopologie [V. Pascucci 2003] iso = 91 38 Inhaltsverzeichnis 5. Skalartopologie 1. Isolinien und Isoflächen 1. Der Marching Cubes Algorithmus 2. Effiziente Berechnung im Spannraum (span space) 2. Das Konturspektrum 3. Theoretische Grundlagen 1. Topologie 2. Triangulierung und Simplizialkomplexe 3. Morse-Theorie 4. Der Konturbaum Visualisierung II – 5. Skalartopologie 39 Morse-Theorie ● ● ● ● Im Allgemeinen stellt die Morse-Theorie einen Zusammenhang zwischen der Topologie von Mannigfaltigkeiten und darauf definierten differenzierbaren Funktionen her. Wir betrachten hierbei zwei einfachere Fälle: Die Mannigfaltigkeiten seien durch den Beobachtungsraum B (B⊂ℝ 2 ∨B⊂ℝ3 ) unseres Datensatzes definiert und die darauf definierten Funktionen sind die zugehörigen Skalarfelder. Mit Hilfe der Morse-Theorie (nach Marston Morse, 1892-1977) können Änderungen in der Topologie von Isostrukturen bei veränderlichem Isowert analysiert werden. Punkte an denen sich die Topologie der Isostrukturen ändert nennt man kritische Punkte. Sei f: B → IR eine C²-Funktion. Ein Punkt p ∈ B heißt kritischer Punkt, falls ∂f ( p)=0 ∂x f(x) ∂ f /∂ x( p) sind die partiellen Ableitungen nach den verschiedenen Raumrichtungen des Beobachtungsraumes. ● x Ein Wert w ∈ IR, zu dem es einen kritischen Punkt p ∈ B mit f (p) = w gibt, heißt kritischer Wert. Visualisierung II – 5. Skalartopologie 40 Kritische Punkte ● ● Für die weiteren Betrachtungen ist es ausserdem wichtig zu wissen, um welche Art von kritischen Punkt es sich handelt. Dies kann man über die Hessematrix (2. Ableitungen) bestimmen. ( ● ∂2 f ∂2 f ⋯ ( p) 2 ( p) ∂ x1 ∂ x b ∂ x1 ⋮ ⋮ ∂2 f ∂2 f ( p) ⋯ ( p) 2 ∂ x b ∂ x1 ∂ xb ) Kritische Punkte, deren Hessematrix vollen Rang hat, heißen Morsepunkte. Man unterscheidet ihren Typ anhand der Eigenwerte der Hessematrix: 0<λ 1 ≤λ 2 Visualisierung II – 5. Skalartopologie λ 1≤λ 2 <0 λ 1<0<λ 2 41 Morsefunktion ● ● ● ● Eine glatte reellwertige Funktion auf einer Mannigfaltigkeit M ist eine Morsefunktion, falls sie nur isolierte Morsepunkte mit unterschiedlichem kritischen Wert besitzt. Aufgrund der Struktur des Datensatzes (Simplizialkomplex mit linearer Interpolation innerhalb eines jeden Simplex) ist die Skalarfunktion s: B → IR eine Morsefunktion und kritische Punkte befinden sich immer auf den Vertices des Simplizialkomplexes. Der Morse-Smale-Komplex ist eine Unterteilung des Beobachtungsraumes in Bereiche in denen Integrationskurven im Gradientenfeld gleichen Ursprung (lok. Minimum) und gleiches Ziel (lok. Maximum) haben. Der Reeb-Graph oder Konturbaum einer Skalarfunktion beschreibt die Konnektivität von Isokonturen. Visualisierung II – 5. Skalartopologie 42 Inhaltsverzeichnis 5. Skalartopologie 1. Isolinien und Isoflächen 1. Der Marching Cubes Algorithmus 2. Effiziente Berechnung im Spannraum (span space) 2. Das Konturspektrum 3. Theoretische Grundlagen 1. Topologie 2. Triangulierung und Simplizialkomplexe 3. Morse-Theorie 4. Der Konturbaum Visualisierung II – 5. Skalartopologie 43 Konturbaum ● Der Konturbaum ist ein Baum aus dem man folgende Informationen ablesen kann: – Wertebereich der Funktion (oberes und unteres Ende des Baumes). – Anzahl der unabhängigen Isoflächen/-linien bei einem gegebenen Isowert (Anzahl der Schnitte mit dem Konturbaum bei gegebenem Isowert). – Entstehen, Verschwinden und Verschmelzen von Komponenten. (Blätter bzw. innere Knoten) – Evolution von Konturen Visualisierung II – 5. Skalartopologie [V. Pascucci] 44 Konturbaum – Algorithmus ● Zur Demonstration des Algorithmus verwenden wir eine topographische Karte von Vancouver [http://www.csi.ucd.ie/staff/hcarr/home/research/contourtrees/contourtrees.html] . Daten Colormap Iso-/ Höhenlinien Konturbaum Visualisierung II – 5. Skalartopologie 45 Konturbaum – Algorithmus ● Der Konturbaumalgorithmus besteht aus drei Teilen: – Berechne den VereinigungsBaum (JoinTree). – Berechne den TeilungsBaum (SplitTree). – Fasse die beiden Bäume im Konturbaum zusammen (ContourTree). Visualisierung II – 5. Skalartopologie 46 Konturbaum – Algorithmus Vereinigungsbaum ● ● Man startet mit dem größten Wert im Datensatz und zeichnet die entsprechende Isokontur ein (leere Menge). Nun geht man sukzessive alle Datenpunkte in absteigender Folge durch, d.h. vom größten zum kleinsten Wert) und zeichnet wieder die entsprechenden Konturen ein. Es können drei Ereignisse eintreten: – Die Anzahl der Zusammenhangskomponenten bleibt gleich. – Es kommt eine neue Komponente hinzu. – Zwei Komponenten verschmelzen zu einer und die Gesamtzahl der Komponenten verringert sich. Visualisierung 5. Skalartopologie isoII =– 30 iso = 54 iso = 91 iso = 70 iso = 58 47 Konturbaum – Algorithmus Vereinigungsbaum Behandlung der drei Fälle: ● ● ● Die Anzahl der Konturen bleibt gleich: Hänge den Knoten an seine entsprechende Kontur an. Es kommt eine neue Kontur hinzu: Ein neues Blatt wird auf Höhe des entsprechenden Skalarwertes in den Konturbaum eingefügt. iso = 70 Zwei Konturen verschmelzen zu einer und die Anzahl verringert sich: Ein innerer Knoten wird eingefügt und die Knoten, die die verschmelzenden Konturen repräsentieren, werden mit ihm verbunden. iso = 58 Visualisierung II – 5. Skalartopologie iso = 30 48 Konturbaum – Algorithmus Vereinigungsbaum Visualisierung II – 5. Skalartopologie 49 Konturbaum – Algorithmus Teilungsbaum ● ● ● Der Teilungsbaum wird analog zum Vereinigungsbaum berechnet, nur sortiert man die Vertices diesmal umgekehrt, also vom kleinsten zum größten. Der Vereinigungsbaum zeigt alle nach oben gerichteten Aufteilungen. iso = 0.5 Der Teilungsbaum zeigt alle nach unten gerichteten Aufteilungen des Konturbaumes. iso = 2 Visualisierung II – 5. Skalartopologie iso = 40 50 Konturbaum – Vereinigung beider Bäume ● Im letzten Schritt müssen Vereinigungs- (VB) und Teilungsbaum (TB) zusammengefasst werden. ● Man beginnt mit einem leeren Baum. ● Sukzessive werden alle Knoten eingefügt, bei denen gilt Grad nach oben im VB + Grad nach unten im TB = 1 Dies geschieht mit folgenden Operationen: – Ist der Knoten ein oberes oder unteres Blatt? ● oben: Füge die Kante entsprechend dem VB ein. ● unten: Füge die Kante entsprechend dem TB ein. – Lösche den Knoten aus beiden Bäumen und verbinde gegebenenfalls die übrigen Knoten neu. – Ist der Endpunkt der neuen Kante nun ein Blatt wird er in die Liste der zu bearbeitenden Knoten eingefügt. VB TB Visualisierung II – 5. Skalartopologie 51 Konturbaum – Die Vereinigung der beiden Bäume Visualisierung II – 5. Skalartopologie 52 Konturbaum – Die Vereinigung der beiden Bäume Visualisierung II – 5. Skalartopologie 53 Konturbaum – Die Vereinigung der beiden Bäume Visualisierung II – 5. Skalartopologie 54 Konturbaum – Beispiel Visualisierung II – 5. Skalartopologie 55 Konturbaum – Beispiele [S. Dillard] Visualisierung II – 5. Skalartopologie [V. Pascucci] 56 Literatur ● ● ● Y. Livnat, H.-W. Shen, C.R. Johnson. A Near Optimal Isosurface Extraction Algorithm Using the Span Space, IEEE Transactions on Visualization and Computer Graphics 2(1), 73 – 84, 1996. C.L. Bajaj, V. Pascucci, D.R. Schikore. The Contour Spectrum, In Proc. IEEE Visualization, 167 – 173, 1997. H. Carr, J. Snoeyink, U. Axen. Computing Contour Trees in All Dimensions, Computational Geometry 24(2), 75-94, 2003. Visualisierung II – 5. Skalartopologie 57