ALIs

kommt noch

IRIS Explorer

IRIS Explorer ist ein Software-Entwicklungssystem mit modularem Aufbau, das im LRZ nur auf SGIs installiert ist. Anwendungen zur Visualisierung von Daten können mit einer graphischen Oberfläche erstellt werden.

Programmversion und Plattform

Hersteller:
NAG
Version:
IRIS Explorer 5.0.1
Rechner:
  • Silicon Graphics Workstations

Allgemeines

IRIS Explorer ist ein Visualisierungssystem. Unter Visualisierung versteht man die Bearbeitung von numerischen Daten mit dem Ziel, anschauliche graphische Darstellungen zu gewinnen. Meist handelt es sich dabei um enorm große Datenmengen, deren direkte Auswertung äußerst mühsam wäre, z.B. Werte in einem Gitter als Resultat von Finite-Elemente-Berechnungen oder Messergebnisse. Die Ableitung qualitativer Aussagen steht bei der Visualisierung im Vordergrund, quantitative Aussagen werden selten gewonnen.

Einige Beispiele für die Darstellungsmöglichkeiten, die IRIS Explorer bietet sind:

  • Darstellung einer Funktion f(x,y) als "Funktionsgebirge"
  • Abbildung der Werte in einem 2D-Gitter auf eine Farbskala
  • Schnitte durch 3D-Gitter mit Abbildung der Werte auf der Schnittfläche auf eine Farbskala
  • Isoflächen
  • Niveaulinien
  • schattierte Darstellung von Vollkörpern, Transparenzeffekte
  • interaktive Eingriffsmöglichkeiten wie z.B. Drehen, Zoomen etc.

An diesen Beispielen zeigt sich, daß die Aufgaben, die an ein Visualisierungssystem gestellt werden, vielfältig sind. Allen gemeinsam ist aber meist die Bearbeitung der Daten in mehreren aufeinanderfolgenden Schritten, z.B. um ein "Funktionsgebirge" aus den Funktionswerten auf einem zweidimensionalen Gitter zu gewinnen:

  Einlesen des        Verschiebung       Umwandlung        Darstellung
  2D-Gitters          der Gitter-        des Gitters       auf dem
  und der Werte -->   punkte in    -->   in ein geom. -->  Bildschirm
  an den              z-Richtung         Objekt
  Gitterpunkten       (Höhe)

Einzelne Teilschritte können bei verschiedenen Anwendungen oder auch mehrmals in einer Anwendung auftreten. Daher arbeiten heute viele Visualisierungssysteme nach dem Prinzip der Modularisierung: Jeder Bearbeitungsschritt ist ein eigenständiges Programm, ein sog. Modul. Dem Benutzer steht eine ganze Palette von Modulen zur Verfügung, die er mit Hilfe einer graphischen Benutzeroberfläche auswählt und mit der Maus spezifiziert, wie und welche Daten von Modul zu Modul weitergereicht werden sollen. Das dadurch entstehende System (das durch Verzweigungen und Zusammenführungen im Datenfluß fast beliebig komplex werden kann) heißt Map. Es läßt sich mit einem Fließband vergleichen, auf dem die Eingabedaten verschiedene Bearbeitungsstationen durchlaufen.

Zusätzlich zu den oben genannten Problemstellungen der Visualisierung beinhaltet IRIS Explorer außerdem eine große Anzahl von Modulen zur Bildverarbeitung, z.B.

  • Kontrastverbesserung von Bildern
  • Abbildung von Farbe auf Graustufen
  • Hervorhebung von Kanten im Bild
  • Fouriertransformation

usw.

Das Gesamtsystem besteht im Wesentlichen aus 3 Komponenten:

Map Editor:
graphische Benutzeroberfläche, die als "Arbeits- unterlage" für das Erstellen neuer und Starten vorgefertigter Maps dient. (Aufruf mit dem Kommando explorer)
Data Scribe:
Hilfsmittel zur Konversion eigener Daten in ein für IRIS Explorer verwertbares Format, ebenfalls mit einer graphischen Oberfläche. (Aufruf mit dem Kommando dscribe)
Module Builder:
Hilfsmittel zum Erstellen eigener Module, wird hier nicht behandelt.

IRIS Explorer ist eine OpenGL-Applikation, deren Funktionsrepertoire im LRZ am besten an der Konsole einer SGI-Workstation genutzt werden kann.

Arbeiten mit IRIS Explorer

Hinweis: Die vorliegende Beschreibung wurde auf der Basis der Version IRIS Explorer 4.0 erstellt und stimmt möglicherweise nicht in allen Details auch für die Version 5.0.1. Ziehen Sie im Zweifelsfall die Herstellerdokumentation heran.

Aufruf und grundsätzliche Arbeitsschritte

Die graphische Benutzeroberfläche, mit der Applikationen bzw. Maps zusammengestellt und zur Ausführung gebracht werden, wird aufgerufen mit dem Befehl

explorer

Danach erscheinen drei Fenster am Bildschirm:

Librarian
sog. Module Librarian, enthält alle Module und einige vorgefertigte Maps zur Auswahl
Map Editor
sog. Map Editor, Arbeitsfläche, auf der eine Map zusammengestellt wird.
Explorer Log
hier erscheinen Ausgaben der Module, z.B. Fehlermeldungen.

Der Aufbau einer Map erfolgt durch zwei sich wiederholende Arbeitsschritte, nämlich dem

  • "Holen" von Modulen aus dem Module Librarian durch: Anklicken mit der linken Maustaste - gedrückt halten - in den Map Editor bewegen - loslassen.
  • Verbinden von Modulen wie im Abschnitt Umgang mit den Modulen beschrieben, und zwar stets der Ausgabeport eines Moduls mit dem Eingabeport eines Moduls.

Jedes Modul, das in den Map Editor geladen wurde, beginnt sofort zu arbeiten, wenn es über eine Verbindung am Eingabeport Daten erhält und gibt seine Ergebnisse weiter, sobald eine Verbindung am Ausgabeport anliegt. I. d. R. wird eine Map mindestens ein Modul enthalten, das Daten aus einer Datei liest (am Anfang) und mindestens eines, das graphische Ausgabe auf den Bildschirm erzeugt (am Ende).

Der Map Editor bietet einige Editiermöglichkeiten für Maps. Die Operationen beziehen sich stets auf selektierte Module.

Selektieren eines Moduls:    Anklicken in der Kopfleiste
Selektieren mehrerer Module: Anklicken in der  Kopfleiste
                             bei gleichzeitig gedrückter Shift-Taste
Deselektieren:               Klicken auf dem Hintergrund

Selektierte Module sind durch eine weiße Kopfleiste gekennzeichnet.

Im Menü Edit finden sich Operationen wie z.B.:

"Cut"          löschen mit Speichern im Zwischenpuffer
"Copy"         kopieren
"Paste"        kopieren aus dem Puffer
"Destroy all"  löschen des gesamten Inhalts des Map Editors

usw.

Der Module Librarian enthält neben einzelnen Modulen auch vorgefertigte Maps. Diese sind als Beispiel für den Einstieg gedacht, decken aber auch häufig vorkommende Aufgabenstellungen der Visualisierung ab und können als Grundlage für eigene Maps benutzt werden. Sie sind z.T. im Explorer User's Guide (siehe Dokumentation) beschrieben. Maps sind im Module Librarian blau gekennzeichnet im Gegensatz zu Modulen (beige).

Das Abspeichern einer vollständigen oder teilweisen Map geschieht durch den Menüpunkt Save All oder Save selected des Menüs File im Module Librarian. Vorsicht: Maps sollten unbedingt in Dateien mit der Endung .map abgespeichert werden, sonst gibt es später beim Einladen Probleme.

Beenden

Im Map Editor findet sich unter dem Menü Admin der MenüpunktQuit zum Beenden des Explorer.

Umgang mit den Modulen

Die Module sind Programme, die über einen Eingabeport Daten von anderen Modulen erhalten und die Resultate ihrer Bearbeitung über einen Ausgabeport an nachfolgende Module weitergeben können. Das Arbeiten mit Modulen besteht im wesentlichen aus:

  • Verbinden von Ein- und Ausgabeports
  • Setzen von Parameterwerten

die in diesem Abschnitt kurz beschrieben werden.

Darstellungen von Modulen

Sobald ein Modul aus dem Module Librarian geholt wurde, gibt es drei Darstellungsformen für Module, die unterschiedlich detailliert die Funktionalität des Moduls wiedergeben:


(1) Micro - klein

(2) Diminutif - mittel

(3) Full scale - groß

Die Darstellung eines Moduls auf dem Bildschirm wird auch control panel genannt.

Die Module erscheinen zunächst in Form (2), wenn sie im Map Editor plaziert werden. In der Kopfleiste weisen sie rechts oben nebeneinander zwei kleine Knöpfe auf: einen runden zum Hin- und Herschalten zwischen (1) und (2) und einen quadratischen zum Aufruf der Darstellungsform (3).

Zu (1):
Diese Darstellung dient eigentlich nur dazu, im Map Editor Platz zu sparen.
Zu (2):
Diese Form wird benutzt, um Module miteinander zu verbinden. Die control panels tragen in der oberen Hälfte zwei schmale Querbalken. Sie repräsentieren den Eingabeport (links) und den Ausgabeport (rechts).
Zu (3):
Ruft man diese Darstellung auf, so erscheint ein separates Fenster. Es zeigt für alle Parameter des Moduls "Widgets", das sind z.B. Drehskalen, Schieberegler etc., mit denen Werte für Parameter interaktiv eingestellt werden können.

Das Standardmenü der Module

In der Darstellung (2) (s.o.) kann man durch Drücken der rechten Maustaste in der Modul-Kopfleiste ein Menü aufrufen. Es enthält u.a.

"Fire now"      -- erzwingt die Ausgabe der im Modul berechneten Daten
                   (was sonst automatisch nach jeder Neuberechnung der
                   Daten passiert)
"Help"          -- Ein  neues  Fenster  mit  Online-Dokumentation  zum
                   Modul erscheint.
"P-func Editor" -- Editor  zur  Definition  von  Funktionen, mit denen
                   Parameter  verschiedener  Module  zueinander in Be-
                   ziehung gesetzt werden können.
"Destroy"       -- Beseitigen des Moduls.  Einmaliges  "Destroy" zeigt
                   bei manchen Fehlerfällen noch keine  Wirkung, muß
                   u.U. zweimal betätigt werden.

Verbinden von Modulen

Drückt man die rechte Maustaste auf einem Ein- oder Ausgabeport (in Darstellung (2), siehe Abschnitt Darstellungen von Modulen), so erscheint ein Menü. Es enthält im oberen Teil eine Auflistung aller Datentypen, die das Modul lesen kann bzw. schreibt und im unteren Teil alle Parameter, die die Verarbeitung der Daten beeinflussen. Eine Beschreibung der Datentypen findet man im Explorer User's Guide (siehe Dokumentation).

Durch Positionieren der Maus und loslassen wählt man einen Eintrag an. Im Map Editor werden daraufhin alle Ports anderer Module hellgrün gekennzeichnet, die einen passenden Eintrag enthalten. Nur Einträge gleichen Typs können miteinander verbunden werden. Man stellt die Verbindung her, indem man mit der rechten Maustaste an einem in Frage kommenden Port den "Kommunikationspartner" anwählt. Eine blaue Linie symbolisiert danach den Fluß der Daten.

Löschen von Verbindungen

In den Port-Menüs sind Einträge, von denen eine Verbindung ausgeht, durch einen Rechtspfeil gekennzeichnet. Zieht man die Maus hier nach rechts, so zeigt ein Submenü, womit der Eintrag verbunden ist. Läßt

man genau darauf die Maustaste los, so wird die Verbindung wieder gelöscht. Im selben Submenü kann aber auch ein Punkt <Connect> ausgewählt werden, um eine weitere Verbindung vom selben Eintrag aus aufzubauen.

Schleifen

Für den Anfang wird der Benutzer meist Maps mit linearem bzw. verzweigtem Datenfluß erzeugen. Seit Version 2.0 erlaubt Explorer jedoch auch Schleifen, d.h. der Ausgabeport eines Moduls liefert Daten an ein früheres Modul in der Kette zurück. Das ist für Animationssequenzen oder eine Rückkoppelung zwischen Modulen sehr nützlich. Genaueres steht hierzu im Explorer User's Guide (siehe Dokumentation).

Setzen von Parametern

Parameter beeinflussen die Arbeitsweise von Modulen. Man kann sie auf zwei Arten setzen:

  • ihre Werte werden als Ausgabe anderer Module erzeugt und wie Daten eingelesen
  • ihre Werte werden interaktiv gesetzt (Dieser Fall ist häufiger.)

Um Parameter interaktiv zu setzen, ruft man die detaillierte Darstellung (3) auf (siehe Abschnitt Darstellungen von Modulen). Hier kann man mit Hilfe von graphischen Bedienelementen, sog. Widgets, Werte eingeben. Widgets sind z.B. Drehskalen, Schieberegler, Texteingabefelder, Druckknöpfe etc. Ein besonderes Widget sind File Browser: separate Fenster zum Anklicken von Directories und Dateien mit der Maus. File Browser müssen anders als die meisten Widgets extra aufgerufen werden. Module, die Dateinamen benötigen, haben dazu in der Kopfleiste des detaillierten control panel ein Menü File.

Um Parameterwerte aus anderen Modulen einzulesen, verbindet man die Module wie unter Verbinden von Modulen beschrieben, wobei man an den Ports die entsprechenden Parameter anwählt. Der Benutzer muß hier allerdings selbst darauf achten, daß die Koppelung von Parametern aus verschiedenen Modulen auch sinnvoll ist. Parameter können übrigens auch über eine Funktion verknüpft werden, dazu ruft man in dem Modul, das den Parameter liest, den P-func Editor auf (im Standardmenü, siehe auch den Abschnitt Das Standardmenü der Module).

Weitere Möglichkeiten

Der Map Editor bietet weitere Möglichkeiten zum Editieren und Gestalten von Maps, z.B.

  • Bildung von Modulgruppen, für die eigene control panels entworfen werden können. Dabei können irrelevante Parameter unterdrückt und damit die Oberfläche der Applikation übersichtlicher gehalten werden.
  • Anordnen von häufig benutzten Modulen im Module Librarian in separaten Listen, sog. categories.

Über diese und andere Möglichkeiten, die für die ersten Schritte nicht benötigt werden, informiert man sich am besten in Explorer User's Guide der Dokumentation.

Datentypen

IRIS eXPlorer kennt im Prinzip fünf verschiedene Datentypen. Der Benutzer wird i.d.R. nicht gerade diese erzeugen, sondern soweit möglich seine eigenen Daten mit Hilfe des Programms dscribe (siehe auch Abschnitt Eingabe eigener Daten) in ein von IRIS Explorer verwertbares Format bringen. Dennoch trägt ein kurzer Überblick über die Datentypen sehr zum Verständnis der Arbeitsweise von IRIS Explorer bei.

Lattice

Mit Lattice werden im IRIS Explorer Gitter bezeichnet - darunter versteht man eine Kombination aus einem ein- oder mehrdimensionalen Array von Gitterpunkten und einem zugehörigen Array von Werten, die den einzelnen Gitterpunkten zugeordnet sind. Diese Werte stellen oft physikalische Größen dar, z.B. Temperatur- oder Geschwindigkeitswerte an den Gitterpunkten. Entsprechend können sie von verschiedenem Typ sein (reelle Zahlen, Integerwerte, Vektoren etc. ), sie sind aber innerhalb eines Gitters vom gleichen Typ.

Nach der Anordnung der Gitterpunkte unterscheidet IRIS Explorer drei Typen:

uniform

Die Gitterpunkte sind parallel zu den Achsen angeordnet und haben entlang jeder Achse gleichen Abstand. Es genügt also, die Ausdehnung des Gitters und die Anzahl der Punkte in jede Richtung zu anzugeben um das Gitter völlig zu beschreiben. Bsp. (für zwei Dimensionen):

             x   x   x   x

             x   x   x   x

             x   x   x   x

perimeter

Die Gitterpunkte sind parallel zu den Achsen angeordnet, haben aber beliebige Abstände, d.h. in jede Achsenrichtung ist ein Vektor von Positionen nötig, um das Gitter zu beschreiben. Bsp. (für zwei Dimensionen):

             x x   x      x


             x x   x      x
             x x   x      x

Im Explorerformat für diesen Gittertyp sind alle Positionsvektoren zu einem einzigen zusammengefaßt. Die Positionen für jede Achsenrichtung erscheinen einfach nacheinander. (In diesem Beispiel hätte der Positionsvektor also 4+3=7 Elemente.)

curvilinear

Die Schichten des Gitters (Punktteilmengen, die man durch Festhalten von Indices im Array erhält) sind evtl. "unregelmäßig", d.h. nicht parallel zu Achsen oder Koordinatenebenen. Man muß in dem Fall die Koordinaten jedes Gitterpunktes explizit speichern. Bsp. (für zwei Dimensionen):

                          x
                   x
                x     x        x
                 x
               x    x
                          x

Gelegentlich können Module nur den einen oder anderen Gittertyp behandeln.

Pyramid

Eine Hierarchie von Gittern mit Zusatzinformationen, wie diese miteinander verbunden sind. Wird im Prinzip verwendet für Daten aus Finite-Elemente-Modellen oder Molekülbeschreibungen. Benutzerdaten können leider nicht einfach in diesen Typ umgewandelt werden, dazu muß sich der Benutzer mit der Beschreibung im Explorer Module Writer's Guide der Dokumentation auseinandersetzen und selbst ein Programm schreiben. Für viele Anwendungen braucht man sich jedoch nicht um dieses Format zu kümmern.

Geometry

Eine Sammlung von Grundelementen wie Polygonen, Linien, Punkten etc., die einen Körper geometrisch beschreiben. Dieses Format wird als Eingabe vom Modul Render verlangt und von einer großen Anzahl von anderen Modulen erzeugt.

Parameter

Parameter sind Skalarwerte (Integers, reelle Zahlen oder Strings). Sie können von Modul zu Modul weitergegeben werden, meistens werden sie jedoch interaktiv gesetzt durch Schieberegler, Knöpfe, Drehscheiben etc.

Pick

Pick ist eine spezielle Datenstruktur, die zum Abfragen von Informationen aus einer Bilschirmdarstellung heraus verwendet wird. Wenn der Benutzer z.B. im Fenster des Moduls Render (stellt geometrische Objekte dar) oder DisplayImage (stellt Bilder dar) eine Stelle anklickt, wird die zu dem Oberflächenpunkt des angeklickten Objekts bzw. dem Bildpixel gehörige Information ermittelt und als Pick-Daten am Ausgabeport zur Verfügung gestellt. Einige Module können diese Informationen weiterverwenden, z.B. um eine Beschriftung mit einem Zahlenwert oder ein geometrisches Objekt an der angeklickten Stelle zu erzeugen.

Einige wichtige Module

In diesem Abschnitt werden zwei häufig benutzte Module kurz beschrieben. Details finden sich im Explorer User's Guide der Dokumentation.

Darstellen von geometrischen Objekten - Render

Render dient der dreidimensionalen Darstellung von geometrischen Objekten. Diese werden über den Eingabe-Port eingelesen und müssen vom Typ Geometry sein. Daneben liest Render auch Zusatzinformationen, wie z.B. Beschriftung, Legende und Transformationen, über den Eingabe-Port. Möchte man Daten vom Typ Lattice (Gitter) oder Pyramid darstellen, ist zur Konversion das Modul LatToGeom bzw. PyrToGeom vorzuschalten. (Zu Datentypen siehe Abschnitt Datentypen oder Explorer User's Guide der Dokumentation.)

Innerhalb der Map ist das Render-Ausgabefenster nur angedeutet. Um Render sinnvoll nutzen zu können, muß man durch Drücken auf den kleinen quadratischen Knopf (rechts oben) die full scale Darstellung aufrufen. Ist dieses Fenster zu klein, so kann es durch "Ziehen" am Rahmen wie jedes Terminalfenster vergrößert werden, die Graphik vergrößert sich entsprechend mit.

Render arbeitet in zwei verschiedenen Modi: Viewing und Pick/Edit, die dem Benutzer verschiedene Manipulationsmöglichkeiten bieten. Im Viewing-Modus (der nach Starten des Moduls eingestellt ist) kann z.B. die Position der gesamten in Render sichtbaren Szenerie oder der Betrachterstandpunkt verändert werden. Im Pick/Edit-Modus können dagegen einzelne Objekte ausgewählt werden, um deren Eigenschaften (Farbe, Transparenz, Darstellungsparameter) zu ändern oder ihnen sog. Manipulatoren anzuheften, die ein Drehen oder Verschieben einzelner Objekte möglich machen. Der Pick/Edit-Modus wird unter dem Kopfleistenmenü Viewing an- und wieder abgeschaltet. (Letzteres führt automatisch zurück in den Viewing-Modus).

Im Viewing-Modus bieten sich mehrere alternative Methoden an, um Objekte oder Betrachterstandpunkt zu bewegen (unter den Kopfleistenmenü Viewing können gewählt werden: Examiner, Fly, Walk, Plane). Voreinstellung ist der Examiner, bei dem das Objekt wie in einer unsichtbaren Glaskugel fixiert betrachtet wird. Mit der linken Maustaste kann man die Kugel in jede Richtung drehen. Mit der mittleren Maustaste verschiebt man sie. Zum Zoomen werden linke und mittlere Maustaste zusammen gedrückt und der Mauszeicher nach oben (vergrößern) oder unten (verkleinern) bewegt.

Render besitzt auch ein Pop-up Menü (rechte Maustaste im Fensterhintergrund). Einige der Funktionen sind

Functions-->View all
alle Objekte werden vollständig ins Bild gebracht. (Ist trotz korrekt aufgebauter Map am Ende in Render nichts zu sehen, so empfiehlt sich diese Option auf jeden Fall als erster Versuch).
Draw Style
Wahl der Darstellungsart. wireframe beschleunigt z.B. die Bewegungsoperationen enorm.
Decorations
umrahmt das Renderfenster mit weiteren Bedienelementen, z.B. Knöpfen, die einige Funktionen aus den Kopfleistenmenüs schneller zugänglich machen.

GenerateColormap

Bei vielen Aufgaben sollen skalare Werte auf Farbe abgebildet werden. Dazu benutzt man eine Colormap mit 256 Einträgen. Der Wertebereich der Daten wird dementsprechend unterteilt und allen Datenwerten in einem Intervall dieselbe Farbe zugeordnet. Zuordnung von Farben findet in all den Modulen statt, die als Eingabe u. a. eine Colormap akzeptieren, ersichtlich am Eintrag Colormap --Lattice im Eingabeport-Menü. Eine solche Colormap kann man entweder selbst schreiben oder, was wesentlich einfacher ist, das Modul GenerateColormap in die Map einbauen. Dieses liefert eine Standard-Colormap, die man leicht interaktiv verändern kann, wenn man das detaillierte control panel (Darstellung (3), siehe Darstellungen von Modulen) aufruft. Es zeigt die Farbskala, die durch zwei Modelle beschrieben werden kann:

  • R-G-B (red-green-blue)
  • H-S-V (hue-saturation-value)

Zwischen ihnen kann man durch den Button Color Space hin und herschalten. Jeder Eintrag der Colormap wird durch vier Werte (z.B. red-green-blue-opacity) beschrieben. Die einzelnen Werte variieren über die Farbskala, was im control panel durch vier Kurven dargestellt wird. Man wählt mit Color Band diejenige Größe, die als nächste verändert werden soll, z.B. Red, und kann dann die zugehörige Kurve durch Verschieben von Kontrollpunkten manipulieren. Neue Kontrollpunkte fügt man mit dem Knopf Edit Mode --> Insert ein, sofern benötigt.

Ist die neue Colormap fertig, stellt man unter Output? von BUILD auf RUN um, erst dadurch wird die Colormap an den Ausgabeport weitergegeben.

Eingabe eigener Daten

Arbeiten mit DataScribe

Eines der schwierigsten Probleme beim Umgang mit einem Visualisierungssystem ist die Umwandlung eigener Daten in das vom System verlangte Format. Für den häufigsten Fall von Gitterdaten als Eingabe gibt es beim IRIS Explorer eine Möglichkeit zum Einlesen von Daten, ohne diese durch ein eigenes Programm vorher konvertieren zu müssen. Mit Hilfe von DataScribe, einer Art Datenkonvertierungstool mit graphischer Oberfläche, geht man dabei in mehreren Schritten vor:

  1. Beschreibung der Eingabedaten
  2. Beschreibung des Zieldatenformats
  3. Verknüpfung von Eingabedaten und Zieldaten
  4. Erzeugung eines Explorermoduls, das die Konvertierung vornimmt
  5. Einbau dieses Moduls in eine Map

Für die Schritte (1) bis (4) ruft man DataScribe auf mit dem Befehl

dscribe

Es erscheinen zwei Fenster: ein großer Arbeitsbereich und eine "Palette" von Datentypen (wie z.B. integer, float, vector, array...), die die Grundbausteine eines Datensatzes in einer Datei darstellen.

Das Arbeitsfenster ist senkrecht zweigeteilt: In der linken Hälfte werden die Benutzerdaten, in der rechten die zu erzeugenden Explorerdaten beschrieben. Dazu ruft man jeweils ein sog. Template (=Formular) auf: man wählt im Menü Template den Punkt Template und spezifiziert im daraufhin erscheinenden Dialogfenster:

  - ob das neue Formular für Ein- oder Ausgabedaten dient;
  - das Format der Daten:
          "Ascii" oder "Binary" für Benutzerdaten (meist Eingabe)
          "Explorer" für Explorer-Format (meist Ausgabe).

In den Templates werden nun die Daten aufgelistet, die im Eingabedatensatz erscheinen bzw. in der Ausgabe enthalten sein sollen, indem man aus der Palette von Datentypen ensprechende Icons auswählt und mit der Maus in das Template "herüberzieht". Benutzerdaten beschreibt man mit den Icons unter Scalars und Arrays, für Explorerdaten kommen die Gittertypen unter Lattices in Frage. Beim Plazieren ins Template werden die Icons größer: sie enthalten jetzt rechts noch einen Knopf. Bei komplexeren Datentypen kann damit das Icon geöffnet werden, um die einzelnen Komponenten der Daten näher zu spezifizieren (z.B. Festlegen der Dimensionierung bei Arrays etc.)

Sobald Ein- und Ausgabedaten beschrieben sind, werden die einander entsprechenden Komponenten miteinander verknüpft. Im Kopfbereich jedes Templates gibt es dazu zwei schmale Leisten, die linke steht für Eingabeport, die rechte für Ausgabeport. Mit der rechten Maustaste (auf der Leiste drücken und gedrückt halten) kann man sich alle im Template definierten Größen anzeigen lassen und auch anwählen. Durch Anwahl zweier Größen aus verschiedenen Templates unmittelbar nacheinander werden diese einander zugeordnet. Auf diese Weise wird vollständig spezifiziert, welche Komponenten der Eingabedaten des Benutzers auf welche Komponenten eines Explorer-Datentyps abgebildet werden sollen.

Ist die Verknüpfung von Ein- und Ausgabedaten abgeschlossen, kann sie mit dem Menüpunkt Parse im Menü File getestet werden. Tauchen im unteren Teil des Arbeitsfensters keine Fehlermeldungen auf, so ist die Zuordnung (zumindest syntaktisch) korrekt, und man kann sie mit Save as unter File abspeichern. Wählt man als Namen z.B. read_my_file, so entstehen im aktuellen Verzeichnis folgende Dateien:

  • read_my_file.doc
  • read_my_file.help
  • read_my_file.mres
  • read_my_file.scribe
  • Imakefile
  • MODULES
  • Makefile

Zusammen definieren sie ein neues Explorer-Modul, das die Benutzerdaten einliest und konvertiert. (Wirklich wichtige Information enthalten zu diesem Zeitpunkt nur die .mres und .scribe Datei).

Beim nächsten Aufruf von explorer erscheint read_my_file in der Auflistung aller Module und kann in den Map Editor geladen werden. Die Oberfläche des Moduls ist einfach: Zwei Texteingabezeilen, der Inhalt der ersten sollte nicht geändert werden, in die zweite wird die einzulesende Datei eingetragen.

DataScribe bietet mehr Möglichkeiten zum Gestalten eines Einlesemoduls, als hier skizziert wurde. Dazu gehören z.B. Parameter, Auswahl von Teildatensätzen, Gestaltung der Bedienoberfläche usw. .

Format der Benutzerdaten

Das Format der Eingabedaten unterliegt nur wenigen Einschränkungen. Sie müssen in der einzulesenden Datei in der Reihenfolge erscheinen, in der sie mit dscribe im Eingabe-Template aufgeführt sind, also genau so wie sie der Benutzer selbst beschrieben hat.

Ascii-Daten

Bei Daten im Ascii-Format sind Blanks als Trennzeichen zwischen Zahlen am einfachsten zu handhaben, aber auch andere Zeichen sind möglich, weil mit dscribe beliebige Strings gelesen werden können. Zeilenenden sind unerheblich, es stellen z.B.

        3  3
        1 2 4
        11 55 66
        1 2 3

und

        3
        3
        1 2 4 11 55 66 1 2
        3

denselben Datensatz dar.

Binär-Daten

Eingabedaten können auch binär eingelesen werden. Nach Auswahl von Binary für das Eingabe-Template erscheint eine neue Zeile mit drei Knöpfen, mit denen nach Recordmarken abgefragt wird. In Frage kommen: Maybe, True, False.

Binärdaten können unterschiedlich in einer Datei angeordnet sein, je nachdem wie sie erzeugt wurden. Entweder die Daten erscheinen einfach nacheinander in der Datei (z.B. durch write-Aufrufe in C-Programmen) oder sie sind in sog. Records gegliedert, die durch Recordmarken gekennzeichnet sind (z.B. bei unformatiertem Schreiben in Fortran). Das Aussehen der Recordmarken variiert zwischen verschiedenen Rechnersystemen, für Explorer ist nur der auf UNIX-Workstations gängige "f77-Stil" lesbar.

Angaben über das Vorhandensein von Recordmarken durch Drücken von True oder False sind von Vorteil. Maybe schaltet eine Heuristik zur Strukturerkennung ein.

Dokumentation und Betreuung

Die beste Informationsquelle dürften folgende Webseiten sein: http://www.iec.co.uk/Welcome_IEC.html

Man findet dort unter anderem eine Online-Version der Hersteller-Dokumentation, die aus mehreren Bänden besteht. Die wichtigsten Titel für den Anfang sind dabei sicher

  • IRIS Explorer User's Guide
  • IRIS Explorer Module Writer's Guide