ALIs

kommt noch

AVS/Express

AVS/Express ist ein modular aufgebautes Software-Entwicklungssystem, das für die wissenschaftliche Datenvisualisierung eingesetzt wird. Der vorliegende Beitrag gibt eine Übersicht über AVS/Express im LRZ und Hinweise zum Einstieg. Er ergänzt die Originaldokumentation, ersetzt sie aber nicht.

Allgemeines

AVS/Express ist eine objektorientierte Software-Entwicklungsumgebung der Firma AVS, deren Schwerpunkt in der Entwicklung von Visualisierungsanwendungen liegt. Man arbeitet dabei mit einer grafischen Oberfläche, dem sog. Network Editor, in dem vorgefertigte und selbsterstellte Softwarebausteine (sog. reusable application components) mit der Maus zu kompletten Applikationen zusammengefügt werden. AVS/Express ist vom Konzept her ein Entwicklerwerkzeug, das eine gewisse Einarbeitung erfordert. Seine Stärke liegt dafür in der Erweiterbarkeit und Flexibilität. Möchte der Benutzer hauptsächlich Basistechniken der Datenvisualisierung nutzen (z.B. Höhenlinien, Isoflächen, Stromliniendarstellungen und viele andere Verfahren), so kann er sich an vorhandenen Beispiel-Applikationen orientieren, so dass das Entwicklerwerkzeug AVS/Express also auch als Visualisierungssystem für Anwender eingesetzt werden kann.

AVS/Express (bzw. die Vorläuferversion AVS) existiert schon seit über 16 Jahren und kann als ein "Klassiker" unter der Visualisierungsprogrammen bezeichnet werden. Leider wird der Benutzer bei AVS eine Reihe von neueren Verfahren und Algorithmen zur Datenvisualisierung vermissen. Wir stellen im LRZ dennoch zwei Floating-Lizenzen zur Verfügung, insbesondere für Benutzer mit schon existierenden Applikationen, die auf AVS aufbauen. Falls Sie ein neues Projekt mit AVS/Express beginnen möchten, setzen Sie sich bitte zuvor mit Jutta Dreer in Verbindung, da die Lizenzen im LRZ nicht mehr für unbegrenzte Zeit zur Verfügung stehen werden.

Das Programm AVS/Express gibt es in verschiedenen Varianten, die nachfolgend kurz beschrieben werden. Nur für zwei Floating-Lizenzen der Standard-Version hat das LRZ noch einen Wartungsvertrag mit dem Hersteller. Die PST- und die MPE-Version sind installiert und können noch aufgerufen werden, für diese Varianten wurde die Wartung allerdings beendet. Benutzer, die langfristig auf die PST- oder MPE-Version angewiesen sind, sollten sich daher um eigene Lizenzen kümmern. 

  • AVS/Express Standard:
    Das LRZ verfügt über 2 Floating-Lizenzen der Standardversion, die sowohl auf LRZ-Rechnern, als auch auf Institutsrechnern von Münchner Hochschulen genutzt werden dürfen. (AVS/Express gibt es übrigens in zwei Abstufungen, der Developer's Edition und der Visualization Edition Die Developer's Edition stellt in Bezug auf die Funktionalität gewissermaßen eine Obermenge der Visualization Edition dar und ist, wie der Name schon sagt, eher für Entwickler gedacht. Sie ermöglicht es z.B. dem Benutzer, die standardmäßig mitgelieferten Software-Bausteine weitgehend zu "zerlegen". Er kann diese dann nach Wunsch modifizieren oder für eigene Zwecke neu zusammenstellen. Für viele Anwendungen im Bereich der wissenschaftlichen Datenvisualisierung wird die Visualization Edition ausreichend sein. Die Lizenzen des LRZ sind für beide Versionen geeignet.)
  • AVS/Express mit PST (Parallel Support Toolkit):
    Erlaubt die Parallelisierung von Visualisierungsanwendungen. Berechnungen (wie z.B. bei Isoflächen u.a.) können auf mehrere Prozessoren verteilt werden.
  • AVS/Express mit MPE (Multi Pipe Extension):
    Diese Version ist an einer Projektionsanlage für Virtual-Reality-Anwendungen, der sog. Holobench, nutzbar und liefert immersive und dadurch besonders anschauliche Darstellungen.

Der vorliegende Beitrag beschreibt den Zugang zu AVS/Express und gibt eine sehr kurze Einführung, insbesondere in die Möglichkeiten, eigene Daten für AVS aufzubereiten. Er ersetzt nicht die Originaldokumentation, die Online vorliegt.

Installierte Version: AVS/Express 7.2 (im VR-Labor: 7.1)

Die Screenshots in diesem Dokument wurden  mit AVS/Express 4.0 erstellt und weichen daher in Details von der aktuellen Version ab.

Zugang zu AVS/Express

Nutzung an LRZ-Systemen

AVS/Express an den Remote-Visualisierungsservern des LRZ

An den Remote-Visualisierungsservern laufen normalerweise Anwendungen, die von den leistungsstarken Graphik-Karten des Servers profitieren, und der Benutzer ist daran interessiert, die Graphikausgabe vom Server über ein Rechnernetz an seinen lokalen Arbeitsplatz zu transportieren. Wie das bewerkstelligt wird, ist im Dokument Remote Visualization at the LRZ. beschrieben. Bitte informieren Sie sich anhand dieses Dokuments , ob Sie im Raw Mode oder im Direct Mode arbeiten möchten und welche Vorbereitungen (Reservierung einer Graphik-Karte, Start von lokalen Software-Komponenten usw.) zu treffen sind. Wenn diese Fragen geklärt sind, kann man AVS/Express wie folgt starten:

  • Raw Mode: Nach dem Start des tvncserver klickt man entweder das entsprechende Icon auf dem Desktop an oder benutzt eines der Kommandos

    /usr/local/qscripts/vnc-express-serial

    für die Standard-Version von AVS-Express oder

    /usr/local/qscripts/vnc-express-parallel

    für die PST-Version. (Bitte beachten Sie die Warnhinweise zur PST-Version im vorherigen Kapitel.)
  • Direct Mode: Nach dem Starten des vglclient und dem Verbindungsaufbau mit ssh -2 -4 -X reserviert man sich eine Graphik-Karte und erhält dabei eine Queue-ID, eine Buchstaben-Ziffernkombination als Name einer Job-Warteschlange. Die serielle Version startet man dann mit

    qsub -q Queue-Id /usr/local/qscripts/RUN.express-serial

    und die parallele Version mit

    qsub -q Queue-Id /usr/local/qscripts/RUN.express-parallel

Ein schlichter Aufruf mit dem Kommando express ist zwar möglich, führt aber nur zu einem Betrieb mit Software Rendering. Diese Betriebsart hat an den Remote-Visualisierungsservern wenig Sinn.

Bemerkungen zur Parallel-Version PST

Zu AVS/Express PST gibt es eine gesonderte Dokumentation des Herstellers, die Online zur Verfügung steht. Diese informiert über die Besonderheiten bei der Erstellung einer Visualisierungs-Applikation. Nicht alle AVS-Module sind in einer parallelen Variante vorhanden!

Die Parallelität bei AVS/Express PST bezieht sich auf den Compute-Anteil der Module. Die Erzeugung von Bildschirmdarstellungen findet dagegen immer nur in einer einzigen Graphik-Karte statt. Es hat also keinen Sinn, mehrere Karten zu reservieren. Im Dokument Remote Visualization at the LRZ. wird der Zusammenhang zwischen der Anzahl an Cores, die man belegen darf, und der Anzahl an reservierten Graphik-Karten erläurtert. Die Voreinstellung für AVS/Express PST richtet sich nach dieser Zuordnung und sieht entsprechend 3 Cores für parallele Module vor, wenn der Benutzer diese Voreinstellung nicht ändert, indem er die Variable EXPRESS_NCOMPUTENODES setzt, z.B. so:

export EXPRESS_NCOMPUTENODES=6

Als verantwortungsvoller Benutzer sollte man sich vor der Verwendung einer größeren Anzahl von Cores über die Auslastung des Systems informieren, da die Belegung von Cores systemseitig nicht kontrolliert wird.

AVS/Express am Linux-Cluster

Die Standardversion von AVS/Express kann derzeit an den Interaktiv-Knoten des Linux-Clusters vom Typ x86_64  gestartet werden. Bedenken Sie bitte, dass hier je nach lokaler Ausstattung des Benutzer-Arbeitsplatzes nur eine mäßige oder gar keine Graphik-Beschleunigung der Darstellung zu erwarten ist. In vielen Fällen wird ohnehin nur Software-Rendering funktionieren. Die parallele Version wird am Linux-Cluster nicht angeboten.

Der Aufruf muss vorbereitet werden, indem man zuvor die richtigen Einstellungen lädt:

module load avs_express/serial/7.2

Da sich die Versionsnummer nach Veröffentlichung dieser Dokumentation ändern kann, wenn es neuere Versionen gibt, informiert man sich am besten vor dem Laden mit

module avail

über die aktuell zur Verfügung stehenden Versionen. Nun erfolgt der eigentliche Aufruf mit:

express

für die Developer's Edition und

express -viz

für die Visualization Edition.

AVS im VR-Labor

Seit April 2000 gibt es AVS/Express auch als sogenannte Multi-Pipe-Edition (MPE). Diese Version ist für den Einsatz auf immersiven Projektionsanlagen konzipiert, und läuft im LRZ auf der Holobench, einer großformatigen Stereo-Projektionsanlage. AVS projiziert die im Viewer dargestellten Modelle stereoskopisch auf zwei Projektionsflächen und unterstützt die Nachverfolgung der Blickrichtung (Head Tracking) mit Hilfe eines sog. Tracking-Systems. Dadurch entsteht eine quasi-realistische Darstellung, bei der insbesondere komplexe Modelle wesentlich besser erfasst werden können als am Bildschirm.

Wenden Sie sich bitte an Jutta Dreer wenn Sie Ihre Visualisierung mit AVS/Express im VR-Labor des LRZ durchführen möchten.

Nutzung auf Institutsrechnern

Wenden Sie sich bitte an Jutta Dreer, wenn Sie AVS/Express auf einem Rechner in Ihrem Institut installieren möchten. Es ist möglich, mit einer lokalen Installation auf eine Floating-Lizenz im LRZ zuzugreifen.

Erste Schritte nach dem Aufruf

Aufrufoptionen

Eine Vielzahl von Aufrufoptionen ist in der Originaldokumentation beschrieben, hier seien nur die wichtigsten erwähnt:

<file>
Startet gleich eine in <file> enthaltene Applikation. Die Applikation könnte z.B. aus einer früheren Sitzung stammen, in der sie mit dem Menüpunkt "Save Application" abgespeichert wurde. Der Network Editor als Entwicklungsumgebung und der Kommandoprompt werden in diesem Fall nicht angezeigt, es sei denn man fordert sie durch weitere Optionen explizit an.
-project <directory>
Spezifikation eines Projektverzeichnisses
-usage
Ausgabe aller möglichen Optionen mit kurzer Erläuterung

Applikationstyp wählen

Ruft man AVS/Express ohne Angabe einer schon existierenden Applikation auf, so startet AVS/Express mit einer neuen, "leeren" Applikation, deren Typ zu Beginn mit folgendem Menü ausgewählt werden muss:

Bild 2: Applikationstyp
Abbildung 2: Auswahl des Applikationstyps

Die Applikationstypen sind:

SingleWindow DataViewer
eine neue Applikation wird geöffnet, die als vorläufig einzigen Softwarebaustein einen DataViewer enthält. DataViewer bringen Objekte auf den Bildschirm und stellen Menüs für das Ändern von Darstellungsparametern (Farben, Lichtquellen, Position des dargestellten Objekts usw.) zur Verfügung, sind also ein wichtiger Bestandteil einer Visualisierungsanwendung.
Dieser Applikationstyp wird für viele Anwendungen der richtige sein und ist daher auch der voreingestellte Typ.
MultiWindow DataViewer
diese Applikation unterscheidet sich von der Option "SingleWindow DataViewer" im wesentlichen darin, dass der DataViewer die Darstellung von Objekten und die Bereitstellung von Menüs in zwei getrennten Fenstern liefert.
Application
dies öffnet eine neue, völlig leere Anwendung.
None
es wird keine Applikation geöffnet, stattdessen kann man mit File -> Load Application eine schon existierende Applikation laden.
Scratch Pad
dies öffnet als spezielle "Applikation" eine Arbeitsumgebung zur Entwicklung neuer Objekte. Das Scratch Pad kann wie jede andere Applikation auch nachträglich noch geladen werden.
Load Application
zum Laden einer schon vorhandenen Applikation.

Behält man die Voreinstellung "SingleWindow DataViewer" bei, so erscheinen folgende Fenster auf dem Bildschirm:

Bild 1: Start von AVS/Express
Abbildung 1: Network Editor und DataViewer von AVS/Express

Beenden von AVS/Express

Zum Beenden von AVS/Express wählt man im Kopfzeilenmenü unter File den Punkt Exit.

Alternativ dazu kann man in dem Fenster, in dem AVS/Express aufgerufen wurde, neben dem AVS-Prompt $quit eingeben:

OM(Root) -> $quit

Arbeiten mit AVS/Express

Die Benutzerschnittstellen von AVS/Express

Um mit AVS/Express zu arbeiten, werden im wesentlichen folgende drei Schnittstellen benutzt:

  1. Der Network Editor
    Der Network Editor stellt das grafische Interface für das Zusammenstellen von Applikationen dar. Er wird beim Aufruf von AVS/Express normalerweise gestartet und wird zu Anfang die "Methode der Wahl" sein, um mit AVS/Express zu arbeiten.

    Bild 3: Start von AVS/Express
    Abbildung 3: Der Network Editor mit einer Anwendung

    Im oberen Teil des Networkeditors werden die "Bausteine" angeboten, aus denen der Benutzer seine Applikation aufbauen kann. Er zieht die gewählten Symbole mit der Maus in den unteren Arbeitsbereich, wo hier eine bereits fertiggestellte, kleine Applikation zu sehen ist. Man nennt diese Darstellung eines Anwendungs-Bauplans "Network".

  2. Die Programmiersprache V
    Ein wesentlicher Bestandteil von AVS/Express ist die Programmiersprache V. Viele Benutzer werden sich möglicherweise erst im fortgeschrittenen Stadium mit V beschäftigen, auf jeden Fall bietet die Nutzung von V interessante Zugangsmöglichkeiten zu dem schier unerschöpflichen Funktionsrepertoire von AVS/Express.

    V ist keine prozedurale Programmiersprache (wie z.B. Fortran), sie beschreibt vielmehr den Zustand von Objekten in einer Anwendung. Arbeiten mit V bedeutet, sich durch die Hierarchie von Objekten zu bewegen, Objekte zu erzeugen, zu ändern und zu löschen, oder auch Objekte miteinander zu verbinden. Die V-Kommandos werden dabei von dem "V Command Processor" (VCP) interpretiert.

    V ist übrigens auch die Sprache, mit deren Hilfe AVS/Express Applikationen beschreibt und abspeichert. V-Dateien im ASCII-Format (erkenntlich an der Endung .v) können mit einem Editor bearbeitet werden (bei entsprechender Kenntnis der Sprache V).

  3. Das Application Programmer Interface (API)
    Dieses erlaubt es dem Benutzer, die Programmiersprachen C, C++ oder Fortran im Zusammenhang mit AVS/Express einzusetzen. Dabei kann man
    • innerhalb eines AVS-Softwarebausteins eine Methode realisieren durch Einbindung von C/C++/Fortran-Routinen.
    • in einem Programm Definitionen von AVS-Objekten erzeugen und manipulieren, deren Ausführung dann von AVS/Express übernommen wird.

Beispiel-Applikationen

Ein so komplexes Paket wie AVS erfordert leider auch eine intensive Einarbeitung. Zusätzlich zum Studium der Dokumentation (siehe weiter unten) gewinnt der Benutzer ein weitergehendes Verständnis für Aufbau und die Funktionsweise von AVS/Express-Applikationen, indem er sich vorhandene Beispiel-Applikationen ansieht. Dazu geht man so vor:

  1. AVS/Express starten
  2. als Startapplikation None wählen
  3. unter Libraries die Rubrik Examples wählen

Eingeteilt in verschiedene Themenbereiche findet man hier eine ganze Reihe von kompletten Anwendungen. Die Namen der Anwendungen sind in Klammern gesetzt. Das bedeutet, dass deren Definition erst gelesen wird, wenn man darauf klickt - die Klammern verschwinden dann und man kann das Icon der Applikation in den Bereich "Applications" ziehen:

Bild 4: Starten einer Beispiel-Applikation
Abbildung 4: Auswahl einer Beispiel-Applikation

Die Applikation wird dann geöffnet und automatisch gestartet. Der Aufbau der Applikation ist als "Network" zu sehen und kann für eigene Anwendungen auch modifiziert werden.

Bild 5: Starten einer Beispiel-Applikation
Abbildung 5: Geöffnete Beispiel-Applikation

Datenimport

Das Datenmodell in AVS/Express

Der Standard-Datentyp, der in AVS/Express verwendet wird, heißt Field. Unter diesem Oberbegriff werden Daten von verschiedenartiger Struktur zusammengefasst, z.B. Bilder, Strömungsfelder, Finite Elemente - Modelle usw. Die Strukturen, die prinzipiell Teil einer Field-Beschreibung sein können, sind nicht immer alle für die vollständige Beschreibung eines Datensatzes notwendig oder sinnvoll. Zahlreiche AVS-Module arbeiten de facto nur mit einer Field-Teilmenge. Als Oberbegriff bietet jedoch der Datentyp Field einen einheitlichen Beschreibungsrahmen für unterschiedliche Strukturen.

Ein Objekt vom Typ Field kann aus folgenden Komponenten aufgebaut sein:

Bild 6: Aufbau eines Field

Die Komponenten beinhalten Informationen über die einzelnen Bestandteile eines Benutzer-Datensatzes:

  • Mesh
    Das sog. Mesh (engl. Netz) beschreibt die Geometrie des betrachteten Modells, d.h. die Anordnung von Datenpunkten (Node, engl. Knoten) im Raum. Diese Anordnung kann für sich selbst betrachtet eine wichtige Information darstellen (z.B. wenn das Mesh die Form einer Auto-Karosserie beschreibt), oder gegenüber den Datenwerten eine nur untergeordnete Rolle spielen (z.B. bei einem Bild, das als zweidimensionales Array von Pixeln betrachtet werden kann - die Farbinformation der Pixel ist relevant, das Gitter, in dem die Pixel angeordnet sind, ist dagegen trivial.)

    Bei allen Mesh-Beschreibungen muss der Benutzer angeben, ob er sein Modell im 1-, 2- oder 3-dimensionalen Raum betrachtet. Danach richtet sich die Anzahl an Komponenten, die die Koordinaten der Datenpunkte haben. Innerhalb von AVS-Objekten ist die Variable nspace für diesen Wert vorgesehen. nspace beschreibt aber nicht die Topologie des betrachteten Modells ! Auch für eine Fläche, die im 3D-Raum positioniert wird, gilt nspace=3.

    Man unterscheidet verschiedene Typen von Netzbeschreibungen. Je nach Typ können Mesh-Objekte als Bestandteile ein sog. Grid und ein oder mehrere Cell Sets haben.

    • Grid (engl. Gitter)
      Die folgende Gittertypen können die räumliche Anordnung von Datenpunkten beschreiben. Es wird jeweils aufgeführt, welche Informationen neben der Raumdimension, in der das Modell betrachtet wird (nspace) noch benötigt werden, um das Gitter hinreichend zu beschreiben.
      • uniform
        Bild 7: Uniform 2Dndim=2 Bild 8: Uniform 3Dndim=3

        Bei diesem Gittertyp sind die Knoten parallel zu den Achsenrichtungen angeordnet und in jeder Richtung äquidistant. Man muss nur die Modelldimensionen angeben, also ob es sich um eine Linie, Fläche oder einen "Block" handelt (ndim), und die Anzahl von Knoten in jede Richtung (dims[ndim]). Ein Beispiel für diesen Gittertyp sind Bilder.

      • rectilinear
        Bild 9: Rectilinear 2Dndim=2

        Auch hier sind die Knoten parallel zu den Achsenrichtungen, aber nicht äquidistant. Neben den Modelldimensionen (ndim) und der Anzahl von Knoten in jede Richtung (dims[ndim]) ist die genaue Position jeder "Gitterschicht" zu spezifizieren. Dies geschieht in einem einzigen Vektor, der nacheinander Knoten entlang jeder Achsenrichtung enthält (points).

      • structured
        Bild 10: Structured 3Dndim=3 Bild 10: Structured 3Dndim=2,nspace=3

        Die Knoten sind beim strukturierten Gitter nicht mehr unbedingt parallel zu den Achsenrichtungen angeordnet, sondern können beliebige Positionen einnehmen. Dabei gilt aber immer noch die Maßgabe, dass das Gitter in "Schichten" organisiert ist. Die Nachbarschaftsbeziehungen der Knoten sind wie bei Gittern vom Typ uniform oder rectilinear, nur sind die Knoten im Raum verschoben. Neben den Modelldimensionen (ndim) und der Anzahl von Knoten in jede Richtung (dims[ndim]) braucht man die Koordinaten aller Knoten (coordinates).

      • unstructured
        Bild 10: Unstructured 3Dndim=3

        Bei diesem Typ sind die Knoten beliebig im Raum angeordnet und auch völlig unstrukturiert miteinander verbunden. Um ein solches Modell zu beschreiben, spezifiziert man die Gesamtzahl an Knoten (nnodes), und eine Liste der Koordinaten aller Knoten (coordinates). Damit ist aber erst ein "Haufen" von Punkten im Raum beschrieben. Für die strukturelle Information braucht man den Cell Set (s.u.)

    • Cell Sets
      Ein Cell Set liefert die Beschreibung einer Menge von sog. cells (engl. Zellen). Die Zellen können beispielsweise die Gestalt von Tetraedern, Hexaedern, Dreiecken, Rechtecken, usw. haben, je nachdem ob man ein Volumen oder eine Fläche beschreibt. Auch eindimensionale Zelltypen gibt es. Eine einzelne Zelle entsteht durch Verbindung von vorher spezifizierten Knoten. Dabei benennt man die Knoten durch Angabe ihrer Nummer in der Knotenliste.

      Bild 10: Hex-ZelleHex Cell

      Es reicht aus, die Knotenindizes in der richtigen Reihenfolge aufzulisten, um eine Zelle zu charakterisieren. Welches die richtige Reihenfolge für den jeweiligen Zelltyp ist, entnimmt man z.B. dem Manual Visualization Techniques.

      Mehrere Cell Sets sind möglich (ncell_sets), z.B. wenn das Modell in verschiedene Teile gegliedert werden soll. Verschiedene Cell Sets werden u.U. auch durch die Tatsache nötig, dass ein Cell Set nur einen Typ von Zellen enthalten darf. Die wichtigsten Informationen zur Beschreibung eines Cell Sets sind: Anzahl der Zellen (ncells), Zelltyp, Knotenverbindungsliste für alle Zellen des Sets.

  • Data
    Die Datenwerte, die zu einem Modell gehören, werden in einem AVS-Field durch das Subobjekt Data beschrieben. Es sind mehrere Datenkomponenten möglich, die jeweils skalar oder vektoriell sein können.
    • Node Data
      Node Data sind den Knotenpunkten zugeordnet. Man spezifiziert sie als Array oder Liste, je nachdem welchem Gittertyp sie zugeordnet werden sollen.
    • Cell Data
      Diese Art von Datenwerten gehören zu den Zellen eines Cell Sets. Die Werte werden als Liste angegeben, in derselben Reihenfolge, in der die Zellen spezifiziert wurden. Cell Data sind natürlich nur sinnvoll, wenn mindestens ein Cell Set vorhanden ist.
    Ein Modell kann gleichzeitig Node Data und Cell Data haben. Es kann aber auch ohne Daten auskommen, z.B. wenn die interessante Information ganz in der Objekt-Geometrie steckt.

Methoden zum Datenimport

Die wichtigste Hürde beim Arbeiten mit einem Visualisierungssystem stellt oft der Import eigener Daten dar. Für die Umsetzung von Datenmaterial in den in AVS/Express universell verwendeten Datentyp Field gibt es eine Reihe von Methoden, aus denen man nach der Struktur der Eingabedaten die geeignete ausgewählen sollte. Hier folgt eine kurze Charakterisierung der wichtigsten Methoden, eine ausführlichere Beschreibung findet man im Manual Visualization Techniques (siehe Abschnitt Dokumentation).

  1. Das Modul Read_Column_File
    Dieses Modul findet man in der Library Main unter der Rubrik DataIO. Es eignet sich für Daten im ASCII-Format, die in Spalten angeordnet sind.

    Das User Interface des Moduls erlaubt die Angabe eines Dateinamens und eine einfache Beschreibung des Dateiinhaltes. Man kann angeben, wie viele Spalten vorhanden sind und welche davon gelesen werden sollen. Nach dem Lesen der Daten liegen die gelesenen Daten am linken Ausgang des Moduls als Array von Arrays, die jeweils die Werte einer Spalte enthalten, an. Verbindet man diesen Port mit dem Modul table_to_uniform_field, das man in der Rubrik Main unter Mappers findet, so kann man die Daten umwandeln in ein Uniform Grid mit zugeordneten Daten.

  2. Beschreibung der Eingabedaten als AVS field file
    Diese Methode wurde bereits in der Vorläuferversion AVS 5 verwendet. Sie basiert darauf, die eigenen Eingabedaten mit Hilfe eines kleinen Headers zu beschreiben. Dieser besteht aus mehreren Zeilen ASCII-Text in einer Datei mit der Endung .fld. In der Regel wird in diesem Header auf die Datei, die eigentlich die Daten enthält, verwiesen. Die Methode eignet sich für ASCII- oder Binärdaten, die einfach strukturiert sind. Ein Header für einen zweidimensionalen Datensatz mit 40 mal 40 Punkten könnte z.B. so aussehen, wenn die ersten 20 bytes übersprungen werden und nur jeder zweite Datenwert gelesen werden soll:
      # AVS field file
      #
      ndim=2
      dim1=40
      dim2=40
      nspace=2
      veclen=1
      data="http://www.lrz-muenchen.de/services/software/grafik/express/float
    "  field=uniform
      variable 1 file=mydata filetype=binary skip=20 stride=2
    
    Die verwendbaren Schlüsselworte und ihre Bedeutung entnimmt man dem Manual Data Visualization Kit, Volume 1, Section 2.4. Mit dieser Methode können leider nur skalare Datenwerte eingelesen werden. Vektordaten muss man ggf. nach dem Einlesen einzelner Komponenten zusammensetzen (combine_vect).

    Die Header-Datei mit der Endung .fld kann vom Modul Read_Field (Library Main, Rubrik DataIO) eingelesen werden.

  3. Add File Import Module
    Diesen Mechanismus findet man im Kopfzeilenmenü Object. Er erzeugt ein neues Modul, dessen Aufgabe es ist, Daten aus einer oder mehreren Dateien zu lesen und sie auf Arrays im Hauptspeicher abzubilden. Dabei muss der Benutzer glücklicherweise nicht programmieren, sondern er klickt sich durch eine Serie von Formularen, mit denen er seine Eingabedateien beschreibt.

    Die Datenarrays, die das neue Lesemodul als Ausgabe zur Verfügung stellt müssen erst noch in ein AVS-Field umgesetzt werden. Dies bewerkstelligen sog. Field Mappers, die man unter Main->Field_Mappers aussucht. Meist gibt der Name ausreichend Aufschluss über den Field-Typ, der produziert wird. Z.B. würde der Field Mapper uniform_scalar_field ein Field erzeugen, das aus einem Uniform Grid und Node Data besteht. wenn man die Eingabeports mit einem Integer-Vektor, der die Dimensionierung beschreibt, und einem Array von Datenwerten verbindet.

    Die Methode ist geeignet für einfach strukturierte ASCII- oder Binärdaten. Man geht in folgenden Schritten vor:

    • den richtigen Field Mapper in Main->Field_Mappers aussuchen
    • feststellen, welche Eingaben vom Field Mapper benötigt werden
    • auf eine Library klicken, die das neue Import-Modul enthalten soll. Dazu eignet sich einer der "Workspaces" die man in der Library Library Workspaces vorfindet. Man klickt in die Titelleiste des meist noch leeren Containers.
    • Objects -> Add File Import Module
    • in nachfolgenden Dialogen Eingabefiles beschreiben. Dabei stößt man auf sogenannte "File Objects". Diese dienen dazu, eine Datei zu öffnen und ihren Inhalt zugänglich zu machen. Die sog. File Variable repräsentiert den Dateiinhalt im Hauptspeicher.
    • neues Modul zusammen mit Field Mappers verwenden
  4. Erstellung eines neuen AVS/Express-Moduls in C, C++ oder Fortran Hat die Eingabedatei einen komplizierteren Aufbau, der nicht einfach durch die bisher beschriebenen Methoden zu erfassen ist, so sollte man die Erstellung eines neuen AVS/Express-Moduls mit Hilfe von eigener Programmierung ins Auge fassen. AVS/Express leistet dabei eine Hilfestellung, wenn man im Kopfzeilenmenü Object -> Add Module auswählt. In einer Serie von Dialogfenstern werden Ein- und Ausgabeports spezifiziert. Man bekommt dann eine Art Modulskelett in der gewünschten Programmiersprache zur Verfügung gestellt, das die korrekte Einbindung des neuen Moduls in AVS/Express sicherstellt.

    Als Ausgabeobjekte kann man direkt ein AVS-Field erzeugen, wenn man die Funktionen der Field Acces Library zum Setzen der verschiedenen Komponenten eines Field verwendet. Weniger kompliziert ist es, einfach Datenarrays zu erzeugen, und diese mit Field Mappern (wie unter 3. beschrieben) in ein Field umzusetzen.

    Genaueres dazu finden Sie in der Originaldokumentation zu AVS (siehe Abschnitt Dokumentation).

Vorgehen bei Problemen
Wenn es beim Einlesen von Daten oder auch ihrer Weiterverarbeitung in einem AVS-Netzwerk Probleme gibt, sind vielleicht folgende Hinweise nützlich:

  • Verifizieren Sie das korrekte Einlesen ihrer Daten, indem Sie einige der Werte abfragen. Dies kann z.B. durch das Modul print_field (Main/DataIO) geschehen.
  • Verkleinern Sie große Datensätze bei den ersten Versuchen, sie zu visualisieren, z.B. mit crop oder downsize (unter Main/Filters).

Funktionsumfang von AVS

Visualisierungstechniken

AVS/Express stellt folgende Funktionen zur Verfügung:

  • alle gängigen Visualisierungstechniken für wissenschaftliche Daten, u.a.
    • Isolinien auf Oberflächen
    • Isoflächen bei Volumendaten
    • Schnitte durch das Modell mit Einfärbung gemäß Datenwerten, auch "Abschneiden" von Modellteilen
    • verschiedene Typen von Graphen und Diagrammen
    • Höhendiagramme (Geländemodelle, Wasserfalldiagramme, 3D-Histogramme...)
    • Repräsentation von Informationen durch geometrische Objekte
    • Interaktive Abfrage von Datenwerten an einzelnen Positionen
    • Partikelbewegung in Strömungsfeldern
    • Stromlinien
    • Texture-Mapping
    • einige GIS-Funktionen
    • u.v.m.
  • ein großes Repertoire an Bildverarbeitungsfunktionen
  • Erstellung von Ausgabedateien für qualitativ hochwertige Druckausgabe
  • Hilfestellung für die Anfertigung von Animationen
  • Stereoskopische Darstellung

Als Paket zur Anwendungsentwicklung kann AVS/Express im Funktionsumfang durch eigene Module erweitert werden.

Dokumentation

Folgende Quellen liefern Informationen zu AVS/Express:

  • Online-Dokumentation
    Die Online-Hilfe von AVS/Express kann man auf verschiedenen Wegen aufrufen:
    1. über das Kopfzeilenmenü Help
    2. Drücken der rechten Maustaste auf einem Modul-Icon und Auswahl von Help
    3. ohne die Software zu starten (man nimmt dann auch keine Lizenz in Anspruch, was bei einem längeren Studium der Dokumentation zu empfehlen ist), indem man die Datei /lrz/sys/graphics/avs-express/7.1_parallel/express/runtime/help/index.htm bzw. /lrz/sys/graphics/avs-express/7.2_standard/express/runtime/help/index.htm in einen Browser lädt.
  • Web-Seiten
    1. International AVS Center
      Auf den Seiten des IAVSC finden Sie insbesondere eine Sammlung von Modulen, die Benutzer freundlicherweise der Allgemeinheit zur Verfügung gestellt haben. Auch Kursunterlagen findet man hier.
    2. AVS Inc.
      Website des Herstellers.

Betreuung

Mit Problemen und Fragen zu AVS/Express wenden Sie sich bitte an: Jutta Dreer.