Visualisierung mit dem Open Visualization Data Explorer Volker Winkelmann, ZAIK/RRZK OpenDX – Open Visualization Data Explorer Übersicht ● leistungsfähige, flexible, erweiterbare Visualisierungsumgebung von IBM in Anlehnung an Tools wie apE, AVS, Covise oder AMIRA ● breite Palette von vorgefertigten Visualisierungsbausteinen: Transformation von Daten, Downsizing, Arithmetik 3-D-Darstellung von Daten, z.B. Berechnung von Isoflächen, VolumeRendering Stromlinien, Emission von Testteilchen, X/Y-Plots 3-D-Achsen, Achsenbeschriftung, Colorbars, Bildbeschriftung Transformation von dargestellten Objekten, Manipulation von Lichtquellen, Kameraeinstellungen, Layoutgestaltung, Animation Debugging ● einfache Bedienung, leicht erlernbar, wenige Graphikkenntnisse erforderlich ● Anwendung kann auf mehreren Workstations parallel laufen 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 2 Bedienung des Data Explorers Programmierung ● Graphisches Benutzerinterface: Visual Program Editor (VPE) ● ersatzweise: einfache Scriptsprache zur Programmierung ● Programmierschnittstelle zu C und FORTRAN Anwendungen ● Erstellung fertiger Visualisierungsanwendungen möglich, der Endanwender kann nur noch Parameter ändern oder neue Datensätze "betrachten" ● Erstellung vorgefertiger Visualisierungsanwendungen, die vom Endanwender ergänzt oder abgeändert werden können ● Erweiterung der Visualisierungspalette durch eigene Applikationen 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 3 Der Visual Program Editor (VPE) graphisches Benutzerinterface ● verfügbar unter Solaris, IRIX, AIX, Linux (RedHat, Fedora,SUSE), FreeBSD, Windows 2000, XP, setzt X Window System 11R5/6, und OpenGL voraus ● Palette von Modulen, die durch Icons dargestellt werden ● Entwurf eines Datenflußdiagramms bzw. Netzwerks, das den Verarbeitungsweg der Daten für die Visualisierung beschreibt ● Mausunterstützung, Verbindung der Ein- und Ausgänge der Module, spätere Korrektur ist möglich ● individuelle Anpassung der Modulparamter durch Modul-Menus ● interaktive Anpassung während des Visualisierungsprozesses durch Control Panels ● On-Line Help Facility 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 4 Der Visual Program Editor (VPE) Beispiel für ein Netzwerk im Visual Program Editor 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 5 Der Visual Program Editor (VPE) Beispiel für die Konfiguration von Modulen 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 6 Der Visual Program Editor (VPE) Beispiel für Control Panels mit verschiedenen Interaktoren 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 7 Data Explorer Scripting Language Script-Sprache zum Entwurf von Visualisierungen ● eigene Programmiersprache ● durch Programmaufrufe Entwurf des Datenflusses bzw. Netzwerks, das den Verarbeitungsweg der Daten für die Visualisierung beschreibt ● individuelle Anpassung der Modulparamter nur innerhalb des Scripts ● interaktive Anpassung nicht möglich ● auch an ASCII-Terminals einsetzbar, Output in Form von PostScript-Files etc. 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 8 Data Explorer Scripting Language Beispiel zur Script-Sprache // Einlesen der Elektronendichte electrondensity=Import(“/vol/dx4/share/dx/samples/data/watermolecule.dx“); // Kameraeinstellungen für die Betrachtung der Isofläche(n) camera = AutoCamera(electrondensity,resolution=640,aspect=0.75,width=2.5); // Das Makro berechnet eine Isofläche bzgl. eines angegebenen // Schwellwertes, erzeugt eine Beschriftung des Bildes und gibt // das Bild als Postscript File aus. Schliesslich wird das Bild // noch komprimiert. macro makeiso(isoval) { isosurface = Isosurface(electrondensity, isoval); caption = Format(“isoval = %g“,isoval); caption = Caption(caption); imagename = Format(“iso%4.2f.ps“,isoval); collected = Collect(caption,isosurface); image = Render(collected,camera); WriteImage(image,imagename,format=“ps“); command = Format(“compress %s“,imagename); System(command); } // Schwellwert 0.3 makeiso(0.3); 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 9 Datenfluss im Data Explorer Data Explorer ist Client/Server Anwendung ● Client: Fenster des VPE, Images ● Server: Ausführungskontrolle, startet alle rechenintensiven Module ● die meisten Module sind parallelisiert ● Module können auf verschiedene Workstations verteilt werden ● Module bearbeiten nur ihren Input und liefern Output ● Input- und Output-Daten werden von den Modulen gespeichert ● Nur bei Änderung des Inputs oder eines Modulparameters wird der Output neu berechnet 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 10 Das Datenmodell des Data Explorers -1objektbasierter Ansatz für die Datenbeschreibung ● Datensätze sind Objekte mit Angaben über Gittertyp, Datentyp, Dimension, und natürlich den Daten ● Gittertypen (grid types): regular orthogonal grid, reformed regular or curvilinear grid, irregular grid (triangular, tetrahedral), unstructured (no connections) ● Gitter bestehen aus Stützstellen (positions) und der Definition nächsten Nachbarn (connections) ● Gitter können „beliebig“ dimensional sein ● Daten: Rang: Kategorie: Typ: 8.-10.11.2006 Skalare, Vektoren, Tensoren reell oder komplex Integers, Bytes, Floating-Point-Zahlen Treffen des Arbeitskreises Grafik u. Multimedia 11 Das Datenmodell des Data Explorers -2Verschiedene Gittertypen ● Regular orthogonal grid ● deformed regular or curvilinear grid ● irregular grid (triangular, tetrahedral) ● unstructured (no connections) 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 12 Das Datenmodell des Data Explorers -3Beipieldatensatz für ein Skalarfeld auf regulärem Gitter Daten Gitter Connections Feld object 1 class array type float rank 0 items 15625 data 0 attribute ”dep” string ”positions” # object 2 class gridpositions counts 25 25 25 origin 0 0 0 delta 1 0 0 delta 0 1 0 delta 0 0 1 attribute ”dep” string ”positions” # object 3 class gridconnections counts 25 25 25 attribute ”element type” string ”cubes” attribute ”ref” string ”positions” # object ”potential” class field component ”data” value 1 component ”positions” value 2 component ”connections” value 3 attribute ”name” string ”potential” # end 0.0960492 0.0983035 0.100466 0.102511 0.104411 0.106141 0.10768 0.10901 0.110114 0.110983 0.111608 0.111985 . . . . 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 13 Aufbereitung eigener Daten für OpenDX General Array Importer ● Beschreibung der Daten eher problemorientiert ● Definition des Daten-Layouts und des Datenraumes (Gitter, Datenposition) # dx header fuer Dipol Potential file = /home/a0078/Kurse/dx/dipol.data grid = 25 25 25 structure = scalar format = ascii type = float field = potential end ● allgemein: Vorgehensweise gemäß Data Explorer User's Guide Kap. 3 ● Hilfsmittel: General Array Importer, QuickStart Guide Kap. 5.1 ff. Data Prompter ● interaktive Hilfe zur Beschreibung eigener Daten QuickStart Guide Kap. 5.4 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 14 Visualisierungshilfsmittel -1Rendering: ● Darstellung von Daten durch (virtuelle) Objekte als Image ● Welche Objekte generiere ich aus meinen Daten? Hilfsmittel des Data Explorers ● allgemein: Zuordnung von Farbe, Transparenz beliebige Schnitt- und Projektionsebenen Text, Achsen, Bounding Boxes ● Skalarfelder: Isolinien, Isoflächen Glyphs, z. B. Kugeln, Punkte 3D-Volumina Slices Ausblenden von Teilvolumina 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 15 Visualisierungshilfsmittel -2Hilfsmittel des Data Explorers ● Vektorfelder: Stromlinien (statische und dynamische Felder) Glyphs, z. B. Pfeile, Nadeln Ribbons, Tubes ● Tensorfelder: kaum Unterstützung, Forschungsobjekt Kontrollstrukturen im Data Explorer ● Macros ● sequencer, interactors ● file browser, selectors, switches ● Constructors 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 16 OpenDX auf eigenem Arbeitsplatz Bezugsquelle ● Homepage http://www.opendx.org/ ● Fertige Versionen gibt es z.Zt. für AIX, HP-UX, IRIX, RedHat Linux, Solaris ● Quellen erhältlich ● Portierung für Windows von Visualization and Imagery Solutions, Inc. unter Verwendung eines X11-Servers (es existiert auch Windows-Version von unter Verwendung von Cygwin ) 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 17 Beispiele Skalarer Datensatz (Potential zweier elektrischer Ladungen) auf 25x25x25 Gitter 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 18 Beispiel 1: Volumendarstellug Verwendung von AutoColor 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 19 Beispiel 2: Isoflächendarstellung Verwendung von Isosurface 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 20 Beispiel 3: Isoflächendarstellung (clipped) Verwendung von Isosurface und ClipPlane 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 21 Beispiel 4: Isoflächendarstellung (clipped) mit Schnittebene Verwendung von Isosurface, ClipPlane, Slab, und Sequencer 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 22 Beispiel 5: Isoflächendarstellung (mapped) Verwendung von Isosurface und Map 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 23 Beispiel 6: Symboldarstellung (Glyphs) Verwendung von AutoGlyph und Reduce 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 24 Beispiel 7: Höhendarstellung Verwendung von Rubbersheet 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 25 Beispiel 8: beliebige Schnittfläche Verwendung von MapToPlane und Probe 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 26 Beispiel 9: Felder und Feldlinien Verwendung von Streamline und AutoGlyph 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 27 Ende 8.-10.11.2006 Treffen des Arbeitskreises Grafik u. Multimedia 28