Tutorium Fortgeschrittene Anwender

Aus ILMS-Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

JUICE - Jams User Interface Component Editor

Zum Aufsetzen und/oder Konfigurieren von Umweltmodellen wurde der JAMS Builder (JUICE) entwickelt. Mithilfe von JUICE können beliebige Modelle nach dem "Baukastenprinzip" zusammengesetzt und konfiguriert werden. Dafür stehen zwei Typen von "Bausteinen" zur Verfügung. Dies sind einerseits Komponenten, die einzelne Prozesse beschreiben. Andererseits existieren Kontextkomponenten, die die Modellausführung steuern. Für den Datenaustausch zwischen Komponenten und Kontexten werden Attribute benötigt. Dies können Variablen aber auch Parameter sein.

Aufbau und Nutzungsumfang des JUICE

Im folgenden soll die Oberfläche des JAMS Builder erläutert werden.

Mit der Installation Ihres JAMS wird der Button JAMS Builder auf dem Desktop und im Startmenü angelegt. Er verweist auf den JAMS User Interface Component Editor (JUICE). Nach dem Start öffnet sich das folgende Fenster, welches in drei Bereiche eingeteilt ist. Im oberen linken Fenster sind die geladenen Bibliotheken zu sehen. Im unteren linken Fenster die laufenden Prozesse. Der rechte Bereich ist für das Modell vorgesehen.

1.JUICE1.jpg

Aufbau der Menüleiste

JUICE1.jpg

Die Menüleiste beinhaltet die Punkte Datei, Bearbeiten, Modell, Protokolle, Fenster und Hilfe. Weiterhin sind folgende Funktionen durch Icons in die Menüleiste integriert:


1. Neues Modell öffnen

2. Modell laden

3. Modell speichern

4. Suchfunktion

5. Jams Einstellungen

6. Modell starten

7. JAMS Launcher öffnen

8. JAMS Datastore Editor öffnen

9. JADE öffnen

10. Modelloberfläche kopieren

11. Modelloberfläche einfügen

12. Infoprotokoll anzeigen

13. Fehlerprotokoll anzeigen

14. JAMS Website

15. Schließen


Unter dem Menüpunkt Datei ist es möglich Modelle zu laden, zu speichern oder zu schließen.

JUICE2.jpg

Der Menüpunkt Bearbeiten ermöglicht Einstellungen zu ändern, Einstellungen zu laden, Einstellungen zu speichern und bietet eine Suchfunktion.

JUICE3.jpg

Unter Einstellungen ändern können zum Beispiel verwendete Bibliotheken, der Ausgabeumfang, die Ausgabe von Modellprotokollen sowie Informationen zum Modellfenster beeinflusst werden. Diese können für eine spätere Modellierung unter dem Punkt Einstellungen speichern gespeichert werden und über Einstellungen laden wieder verwendet werden.


Der Menüpunkt Modell ist nur aktiviert, wenn ein Modell geladen wurde. Hier kann das Modell gestartet bzw. konfiguriert werden. Weiterhin ist der JAMS Explorer verlinkt, der zur Auswertung verwendeter Eingangsdaten und erzeugter Modellergebnisse verwendet wird. Sein Leistungsumfang wird im Tutorium für Anfänger ausführlich erläutert. Das Laden und Speichern von Parametersätzen kann mit Lade Modellparameter und Speichere Modellparameter realisiert werden. Weiterhin kann das Modell mithilfe des JAMS Launcher gestartet werden. Der Optimierungsassistent stellt eine Plattform zur automatischen Parameteroptimierung zur Verfügung.

JUICE4.jpg

Unter dem Menüpunkt Protokolle kann das Infoprotokoll angesehen werden. Dieses enthält neben Informationen zum Modellautor, zur Modellversion oder zum Anwender auch Informationen zur Modelleffizienz (Wie gut hat das Modell die gemessenen Werte abgebildet?), zum Modellaufbau (Welche Komponenten wurden wie oft benutzt?) und zur Modelllaufzeit. Das Fehlerprotokoll dokumentiert eventuell aufgetretene Fehler.

JUICE5.jpg

Im Menüpunkt Fenster sind alle aktuell geöffneten Fenster aufgelistet.

Unter dem Menüpunkt Hilfe können Sie durch einen Klick auf JAMS online zur Onlinehilfe von JAMS gelangen.

Systemleiste Hilfe1.jpg

Anwendung von JUICE für Modelldesign und Modellkonfiguration

Aufsetzen eines Modells

Mit dem JUICE können Modelle aufgesetzt werden. In den folgenden Schritten wird die Vorgehensweise exemplarisch am ABC-Modell durchgeführt.

1. Schritt

Wählen Sie im Menüpunkt Datei den Unterpunkt Neues Modell. Ein leeres Modell wird geöffnet. Im linken Teil des geöffneten Fenstern werden die (Kontext-)Komponenten angezeigt, die im Modell enthalten sind. Im rechten Teil des Fensters sind zwei Ansichten möglich. Zum einen die Komponentenkonfiguration. Hier werden die Modell(kontext)komponenten bearbeitet. Ihre Attribute werden verknüpft. Weiterhin kann eine Parametrisierung vorgenommen werden. Die zweite Ansicht zeigt den Oberflächeneditor. Hier kann die Modelloberfläche bearbeitet werden.

JUICE NeuesModell Schritt1.jpg


2. Schritt

Legen Sie eine Kontextkomponente des Typs "JAMS Temporal Kontext" an. Dieser übernimmt die zeitliche Iteration der Simulation. Klicken Sie dazu auf die Bibliothek jams-main.jar, die im linken oberen Fenster aufgelistet ist. Dort finden Sie unter jams.model den JAMSTemporalContext. Ziehen Sie diesen in das rechte Modellfenster ins "Neue Modell".

JUICE NeuesModell Schritt2.jpg


Legen Sie innerhalb des Modells das Kontextattribut modelTimeIntervall an. Klicken Sie auf Komponentenattribute in der Attributübersicht im Punkt Neues Modell.

Klicken Sie auf Hinzufügen. Setzen Sie als Namen modelTimeIntervall. Wählen Sie für den Typ des Attributes TimeInterval. Für die Simulation muss ein Zeitraum festgelegt werden. (Beachten Sie, dass immer Daten für den gewählten Zeitraum zur Verfügung stehen müssen.) Tragen Sie als Zeitraum 01.01.1970 bis 01.01.1975 ein. Wählen Sie als zeitliche Einheit Monat aus. Klicken Sie nun auf SET. Das Attribut modelTimeIntervall ist jetzt mit Ihrem gewählten Zeitraum verknüpft.

JUICE NeuesModell Schritt3.jpg


Wechseln Sie nun zur Komponente JAMSTemporalContext. Verknüpfen Sie das Komponentenattribut timeInterval mit dem bereits angelegten Modellattribut modelTimeIntervall. Wählen Sie dieses dazu aus der Attributsliste im unteren rechten Feld aus. Klicken Sie auf LINK.

JUICE NeuesModell Schritt4.jpg

Legen Sie ein neues Attribut time an und verlinken Sie dieses mit dem Komponentenattribut current.

JUICE NeuesModell Schritt5.jpg

3. Schritt

Fügen Sie dem Modell die Komponente ABCDataReader hinzu. Sie ist in der Bibliothek jams-democomponents.jar im Ordner jams.components.demo.abc zu finden. Die Komponente ABCDataReader ermöglicht das Einlesen von Daten. Er liest aus einem Textfile Datum, Niederschlags- und Abflusswerte. Das Textfile kann hier heruntergeladen werden: Datei:Abc.txt

JUICE NeuesModell Schritt6.jpg

Dem Komponentenattribut fileName muss der Ort der Datendatei übergeben werden. Tragen Sie aus diesem Grund als Wert des Attributs fileName den Pfad zu Ihrer Datendatei ein. Klicken Sie auf SET.

Legen Sie die Attribute precip (für Niederschlag) und obsQ (für gemessener Abfluss) im JAMSTemporalContext an. Sie sollen die Werte des gelesenen Niederschlags und des gemessenen Abflusses für den aktuellen Zeitschritt beinhalten. Wählen Sie dazu das Komponentenattribut precip. Es sollte jetzt BLAU hinterlegt sein. Tragen Sie im Feld Angepasstes Attribut den Namen precip ein. Klicken Sie auf LINK. Das Kontextattribut precip aus dem Kontext JAMSTemporalContext wurde angelegt und verknüpft.

JUICE NeuesModell Schritt8.jpg


Wählen Sie nun das Komponentenattribut runoff. Es sollte jetzt BLAU hinterlegt sein. Tragen Sie im Feld Angepasstes Attribut den Namen obsQ ein. Klicken Sie auf LINK. Das Kontextattribut obsQ aus dem Kontext JAMSTemporalContext wurde angelegt und verknüpft.

JUICE NeuesModell Schritt9.jpg

4. Schritt

Den zentralen Bestandteil des Modells stellt die Komponente ABC-Modell dar. Das ABC-Modell ist ein lineares Modell, das Niederschlag und Abfluss in Beziehung setzt.

Fügen Sie dem Modell die Komponente ABCModel hinzu. Sie ist in der Bibliothek jams-democomponents.jar im Ordner jams.components.demo.abc zu finden.

JUICE NeuesModell Schritt10.jpg

Verknüpfen Sie die Niederschlagsdaten mit der Komponente. Wählen Sie dazu das Komponentenattribut precip. Wählen Sie für das Feld Angepasstes Attribut das Attribut precip aus der Liste der bereits im JAMSTemporalContext enthaltenen Attribute. Klicken Sie auf LINK. Legen Sie neue Attribute für den Wasserspeicher (storage) und den simulierten Abfluss (simQ), wie in Schritt 3 beschrieben, an. Folgendes Bild sollte sich ergeben:

JUICE NeuesModell Schritt11.jpg

Die Komponentenattribute a,b,c und initStorage dienen der Parametrisierung der Komponente. Geben Sie Ihnen die folgenden Werte: a=0.2, b=0.2, c=0.75 und initstorage=50.

JUICE NeuesModell Schritt12.jpg

5. Schritt

Zur Visualisierung der Ergebnisse benötigen Sie die Komponente TSPlot. Fügen Sie dem Modell diese Komponente hinzu. Sie ist in der Bibliothek jams-components.jar im Ordner jams.components.gui zu finden.

JUICE NeuesModell Schritt13.jpg

Verknüpfen Sie das Komponentenattribut time mit dem Attribut time aus dem Kontext Neues Modell. Wählen Sie dazu das Komponentenattribut time. Wählen Sie im unteren rechten Feld den Kontext Neues Modell und wählen Sie das Attribut time aus. Klicken Sie auf LINK. Verknüpfen Sie das Komponentenattribut valueLeft mit den Attributen simQ und obsQ aus dem JAMSTemporalContext. Soll ein Komponentenattribut mit mehreren Kontextattributen verknüpft werden, so sind diese mittels Semikolon zu trennen. Das folgende Bild sollte sich ergeben.

JUICE NeuesModell Schritt14.jpg

6.Schritt

Nun soll für das ABC-Modell eine Modelloberfläche erzeugt werden. Wechseln Sie dazu zur Ansicht Oberflächeneditor.

JUICE NeuesModell Schritt14 1.jpg

Es soll die Möglichkeit geben über die Modelloberfläche die Attribute a,b, und c zu verändern. Legen Sie dazu eine neue Gruppe mit dem Namen "ABC-Modell" an. Über den Button Neuer Editor muss nun zu jedem Attribut ein Feld angelegt werden. Hier ist darauf zu achten, dass das Attribut mit der richtigen Komponente verknüpft ist. Weiterhin kann ein Wertebereich über das Setzen einer oberen und unteren Schranke für das Attribut angegeben werden. Beispielhaft sehen die Einträge für den Parameter a im Parametereditor folgendermaßen aus:

JUICE NeuesModell Schritt14 2.jpg

Die Gruppe ABC-Modell ist nun fertiggestellt und sollte folgendermaßen aussehen:

JUICE NeuesModell Schritt14 3.jpg

Weiterhin soll die farbliche Darstellung der Modellergebnisse im Diagramm beeinflussbar sein. Legen Sie dazu eine neue Gruppe mit dem Namen "Diagramm" an. Legen Sie einen Editor für das Attribut colorLeft an. Nennen Sie diesen Farben links und verknüpfen Sie die angelegten Attribute mit den Attributen aus der Komponente TSPlot.

Die Gruppe Diagramm ist nun fertiggestellt und sollte folgendermaßen aussehen:

JUICE NeuesModell Schritt14 4.jpg

Damit die Farben der Abflusskurven verlinkt werden können, wechseln Sie zur Komponentenkonfiguration des TSPlot. Geben sie colorLeft den Wert blue;red. Somit lassen sich die Farben später bei der Modellausführung ändern.

JUICE NeuesModell Schritt14 4 1.jpg

7.Schritt

Speichern Sie das Modell.

Das Modell ist fertig. Jetzt können Sie es entweder direkt aus dem JUICE oder über den JAMSLauncher starten. Starten Sie das Modell über den JAMSLauncher, so können sie alle Attribute, welche mit der Modelloberfläche verknüpft worden sind, bearbeiten.

JUICE NeuesModell Schritt14 5.jpg


Das folgende Ausgabefenster ergibt sich. Der gemessene Abfluss ist blau dargestellt, der simulierte Abfluss rot.

JUICE NeuesModell Schritt15.jpg

Konfiguration von Modellkomponenten

Der JUICE biete die Möglichkeit, Modellkomponenten zu konfigurieren. Somit kann leicht die Parametrisierung einer Komponente verändert werden. Die Vorgehensweise soll beispielhaft an der Komponente TSPlot aus dem im Punkt "Aufsetzen eines Modells" erstellten ABC-Modell erläutert werde.

Ein Beispiel

Im erstellten Modell wurde keine Parameterwerte für die Komponentenattribute gesetzt. Daher wurden vom System immer die voreingestellte Werte (Default-Werte) für die verschiedenen Parameter angenommen. Natürlich können diese geändert werden um das entstehende Diagramm, welches die Ergebnisse der Modellierung visualisiert, attraktiver zu gestalten.

JUICE Modifizieren Schritt1.jpg

Wir setzen zur Modifikation die folgenden Werte.

  • titleLeft (Titel der linken Diagrammachse) : Simulierter Abfluss; Gemessener Abfluss
  • titelRight (Titel der rechten Diagrammachse): Niederschlag
  • colorLeft (Farbenwerte der links dargestellten Größen): red;blue
  • colorRight (Farbenwerte der rechts dargestellten Größen): gray
  • typeLeft (Darstellungsart z.B. als Linien- oder Balkendiagramm): 0 (Linie)
  • typeRight (Darstellungsart z.B. als Linien- oder Balkendiagramm): 1 (Balken)
  • xAxisTitle (Titel der X-Achse): Zeit
  • leftAxisTitle (Titel der linken Y-Achse): Abfluss [m³/s]
  • rightAxisTitle (Titel der rechten Y-Achse): Niederschlag [mm]
  • rightAxisInverted: 1


Weiterhin muss das Komponentenattribut valueright mit dem Attribut precip aus dem JAMSTemporalContext verknüpft werden, damit die Niederschlagswerte angezeigt werden.

Neue Attributsübersicht:

JUICE Modifizieren Schritt2.jpg

Es ergibt sich die folgende Darstellung:

JUICE Modifizieren Schritt3.jpg

Auswechseln von Komponenten

Der JUICE bietet die Möglichkeit Modellkomponenten durch andere zu ersetzen. Dabei sollten sorgfältig Ein- und Ausgabeattribute verknüpft werden.

Ein Beispiel

Im Folgenden soll exemplarisch im Niederschlags-Abflussmodell J2K die Komponente CalcPotentialET durch die Komponente Penman ausgetauscht werden. Beide Komponenten berechnen die potentielle Verdunstung, jedoch mit verschiedenen Algorithmen.

1. Schritt: Modell öffnen und 2. Schritt: Komponente löschen

Laden Sie das Modell j2k_gehlberg.jam aus den Beispieldatensätzen, die Ihnen beim Herunterladen der Software zur Verfügung gestellt worden sind. Ein Klick auf die Komponente CalcPotentialET der HRULoop ergibt das folgende Bild. Löschen Sie die Komponente CalcPotentialET um eine andere Verdunstungskomponente ins Modell zu integrieren. Klicken Sie dazu mit der rechten Maustaste auf die Komponente und wählen Sie entfernen.

JUICE Austauschen Schritt2.jpg

3. Schritt: Neue Komponente hinzufügen

In der Bibliothek J2K.jar befindet sich im Ordner org.unijena.j2k.potET die Komponente Penman. Ziehen Sie diese an die Stelle der alten Komponente CalcPotentialET.

JUICE Austauschen Schritt3.jpg

4. Schritt: Parametrisieren

Geben Sie dem Attribut tempRes den Wert d sowie dem Attribut et_cal den Wert 1.2.

JUICE Austauschen Schritt4.jpg

5. Schritt: Kontextattribute Verknüpfen

Verknüpfen Sie die Komponentenattribute wind,tmean,rhum,netRad,elevation,area,potET und actET mit den zugehörigen Kontextattributen aus der HRULoop (Interaktion über alle räumlichen Einheiten).

JUICE Austauschen Schritt5.jpg

Die alte Komponente zur Berechnung der potentiellen Verdunstung CalcPotentialET erzeugte die Ausgangsattribute rs und ra. Diese wurden anschließend in der Komponente SpatialWeightedSumAggregator1 gewichtet zusammengefasst. Da die neue Komponente diese Attribute nicht erzeugt, müssen diese aus den Verknüpfungen in der Komponente SpatialWeightedSumAggregator1 entfernt werden.

Wählen Sie dazu die Komponente SpatialWeightedSumAggregator1 aus und entfernen Sie die Verknüpfungen des Komponentenattributs value mit den Kontextattributen rs und ra indem Sie im Feld Angepasstes Attribut diese Attribute löschen und neu verlinken.

JUICE Austauschen Schritt6.jpg

Starten Sie das neue Modell. Im folgenden Bild sehen Sie den Graph der Modellierung:

JUICE Austauschen Schritt7.jpg

Erstellen einer Modelldokumentation

(Hydrologische) Modelle bestehen aus einer Vielzahl von Modellkomponenten. Um Ihr Modell hinsichtlich seiner wissenschaftlichen Grundlage als auch in Bezug auf seine softwaretechnische Realisierung zu dokumentieren, steht Ihnen das JAMS-Doc Softwaretool zur Verfügung, die ins JUICE integriert worden ist. Seine Funktionsweise ist unter Tutorium Modelldokumentation genau beschrieben.

Modellvalidierung und Parameteroptimierung

Um hydrologische Modelle erfolgreich anwenden zu können, ist es notwendig die Modellparameter sorgfältig zu bestimmen. Eine direkte Messung der Parameter ist meistens nicht möglich, zu kostspielig oder es existiert kein eindeutiger physikalischer Zusammenhang. Aus diesen Gründen werden in einem Trial and Error Prozess die Parameter derart angepasst, dass die simulierten Größen (beispielsweise Abfluss) möglichst gut mit den gemessen Größen übereinstimmen. Diese Aufgabe kann eine zeitaufwändige und schwierige Aufgabe sein, wenn das zu Grunde liegende Modell komplex ist oder die Anzahl der Parameter groß. Aus diesem Gund ist es sinnvoll den Optimierungprozess zu automatisieren. Dazu steht ein Softwaretool zur Optimierung von Modellparametern und zur Sensitivitätsanalyse zur Verfügung. Die Modellvalidierung dient zum Nachweis der Eignung eines Modells für einen bestimmten intendierten Zweck (Bratley et al. 1987). Die Modellvalidierung ist ein wichtiges Werkzeug der Qualitätssicherung. Für die praktische Anwendung ist ein Modell dann nützlich, wenn es sich als vertrauenswürdiges Abbild realer Vorgänge erweist (Power 1993). Abhängig vom Einsatzzweck und Typ des Modells können verschiedene Kennzahlen und Nachweise nötig sein, um das Modell zu validieren. Seine Funktionalität ist unter Tutorium Modellvalidierung und Sensitivitätsanalyse genau beschrieben.

Debugging und Laufzeitanalysen mit Hilfe von Inspektionskomponenten

Die Ping-Komponente

Um die Arbeitsweise Ihres Modells nachzuvollziehen, steht Ihnen eine Komponente namens Ping zur Verfügung. Diese kann an jede beliebige Stelle des Modells eingebaut werden und gibt ein Signal (Ping) wenn sie durchlaufen wird im Infoprotokoll zum Modelllauf. Weiterhin zeigt die Komponente Ping an, zum wievielten Mal eine Komponente (z.B. innerhalb einer zeitlichen Iteration (Modellierung über mehrere Tage) oder innerhalb einer räumlichen Iteration (Modellierung innerhalb verschiedener räumlicher Einheiten)) aufgerufen worden ist.

Im folgenden wurde die Ping-Komponente in das ABC-Modell integriert, welches in Punkt 1.2.1 - Aufsetzen eines Modells erstellt worden ist. Die Komponente ist in Ordner jams-components unter jams.components.debug zu finden.

JUICE Ping.png

Nach der Modellierung ist die folgende Ausgabe im Infoprotokoll zu finden. Dieses ist im JUICE unter dem Menüpunkt Protokolle einzusehen. Hierbei muss darauf geachtet werden, dass unter dem Menüpunkte Bearbeiten/Einstellungen ändern im Ausgabe-Umfang 2 oder 3 eingestellt worden ist.

Ping Infoprotokoll.png

Somit ist für den Anwender ersichtlich, dass die Komponente Ping im ABC-Modell einmal bei der Modell-Initialisierung, 61 mal während der Modellierung (zeitlicher Kontext) und einmal beim Modell-Cleanup durchlaufen worden ist.

Laufzeitanalyse

Es ist möglich, die Laufzeiten der einzelnen Modellkomponenten im Infoprotokoll anzeigen zu lassen. Dieses ist im JUICE unter dem Menüpunkt Protokolle einzusehen. Hierbei muss darauf geachtet werden, dass unter dem Menüpunkte Bearbeiten/Einstellungen ändern im Ausgabe-Umfang 2 oder 3 eingestellt worden ist.

Im folgenden Bild ist beispielhaft die Laufzeitenanalyse für das Gehlbergmodell angegeben, welches unter http://www.geoinf.uni-jena.de/5580.0.html heruntergeladen werden kann.

Laufzeitanalyse.png

Anwendung von unterschiedlichen JAMS Ausführungsumgebungen

Die Laufzeitumgebung (runtime system) stellt in JAMS verschiedene zentrale Dienste zur Ausführung von Modellen bereit, wie z.B.

  • das Laden, Starten, Stoppen und Speichern von Modellen
  • ein zentrales Logging-System für Fehler- und Informationsausgaben (wärend des Ladens und Ausführens von Modellen)
  • die Verwaltung grafischer Modellausgaben

Um die Ausführung von Modellen an individuelle Anforderungen anzupassen, bietet JAMS einerseits eine Schnittstelle zur Implementierung eigener, angepasster Laufzeitumgebungen durch erfahrene Benutzer. Um auch weniger versierten Anwendern die Anpassung der Laufzeitumgebung an eigene Anforderungen zu ermöglichen, wurde die Standard-Laufzeitumgebung mit einer Reihe von Konfigurationsoptionen versehen. Hierzu gehören insbesondere die Steuerung des Umfangs der Modellausgaben und eine Option zum Abschalten sämtlicher grafischer Modellelemente, wie sie etwa zur Modellausführung auf Rechnern ohne grafische Benutzerschnittstelle notwendig wird. Letzteres wird durch Start von JAMS von der Kommandozeile (Eingabeaufforderung in Windows) unter Angabe des Parameters "-n" (alternativ "--nogui") erzwungen. Da hierbei keinerlei grafische Oberfläche zum Laden des Modells angezeigt wird, muss das auszuführende Modell mit dem Parameter "-m" (alternativ "--model") angegeben werden. So kann zum Beispiel das Modell J2000 mit folgendem Befehl ausgeführt werden: C:\Program Files\jams>jams.bat -n -m data\j2k_gehlberg\j2k_gehlberg.jam

Im Ergebnis lädt die Laufzeitumgebung das angegebene Modell und führt es sofort aus. Eventuell vorhandene grafische Modellkomponenten werden dabei nicht geladen, sämtliche Modellausgaben erfolgen an der Kommandozeile und werden -- falls konfiguriert -- in entsprechende Log-Dateien geschrieben. Mit dieser Methodik können JAMS-Modelle auf einfache Weise etwa auf entfernten Servern über eine Konsolenverbindung oder automatisiert mit Hilfe eines Batch-Skriptes aufgeführt werden.

Meine Werkzeuge
In anderen Sprachen