edu.bonn.xulu.plugin.model.ca.reservoir
Class SmallReservoirModel

java.lang.Object
  extended by AbstractNamedObject
      extended by edu.bonn.xulu.model.AbstractXuluModel
          extended by edu.bonn.xulu.model.AbstractStepModel
              extended by edu.bonn.xulu.plugin.model.ca.reservoir.SmallReservoirModel
All Implemented Interfaces:
StepModel, XuluModel

public class SmallReservoirModel
extends AbstractStepModel

Diese Klasse stellt eine Implementierung des Modells ImpetusFireCA dar. Dieses benoetigt 7 Ressourcen, welche durch den ImpetusFireCAContentManager spezifiziert werden:

  1. DHM (dhm): Raster mit einem Hoehenmodell (Ausgangsszenario).
  2. Staumauer (damWall): FeatureCollection (z.B. aus Shape-File) mit einem Line-String, die die Lage der Staumauer definiert.
  3. Hoehe der Staumauer (damWallHeight): Hoehe der Staumauer ueber NN.
  4. Versickerung pro Tag (infiltration): Versickerung in mm pro Tag.
  5. Verdunstung pro Tag (evaporation): Verdunstung in mm pro Tag.
  6. Modell-Schrittweite (stepSize): Schrittweite in Tagen, mit welcher das "Entleeren" des Stausees (durch Verdunstung und Versickerung) in Rastern und Zwischenwerten in den Ausgabe-Ressourcen protokolliert wird.
  7. Ausgabe: Groesse der ueberfluteten Flaeche in qm (outFloodedAreaSize): Flaeche in Hektar, die ueberflutet wird, sowie die Flaeche zu den spaeteren Zeitpunkten, wenn Versickerung und Verdunstung (pro Tag) beruecksichtigt wird.
  8. Ausgabe: Groesse der ueberfluteten Flaeche in qqm (outFloodedAreaVol): Volumen in Qubikmeter, die ueberflutet wird, das Volumen zu den spaeteren Zeitpunkten, wenn Versickerung und Verdunstung (pro Tag) beruecksichtigt wird.
  9. Ausgabe: Ueberfluteten Flaeche als Raster (outFloodedArea): Enthaelt die ueberfluteten Zellen als Raster zum Zeitpunkt 0 (wenn der Stausee voll ist) und zu den spaeteren Zeitpunkten, wenn Versickerung und Verdunstung (pro Tag) beruecksichtigt wird.
  10. Temporaere: Staumauer als DHM (damDHM): Enthaelt ein Hoehenmodell, in dem der Staumauer-Vektor dargestellt wird. Dieses wird automatisch berechnen.

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)
See Also:
SmallReservoirModelContentManager

Nested Class Summary
protected  class SmallReservoirModel.GUI
          Modell-spezifische GUI des Kleinstausee-Modells.
 
Field Summary
protected  double areaCellSize
           
protected  int areaMaxX
           
protected  int areaMaxY
           
protected  int areaMinX
           
protected  int areaMinY
           
protected  SmallReservoirModelContentManager contManager
          Speichert den ContentManager fuer das Modell.
protected  Set<Point>[] damCells
           
protected   damWall
           
protected  WritableGrid damWallDHM
           
protected  double[] damWallHeight
           
protected  double[] damWallHeightMax
           
protected  double[] damWallHeightMin
           
protected  WritableGrid dhm
           
protected  double evaporation
           
protected  Set<Point> floodedCells
           
protected  double infiltration
           
protected  int iterCount
           
static Logger LOGGER
          Logger fuer Debug-Ausgaben und Warnings.
protected  SmallReservoirModel.GUI modelGUI
           
protected  MultiGrid outFloodedArea
           
protected  WritableGrid outFloodedAreaGrid
           
protected  double outFloodedAreaSize
           
protected  double outFloodedAreaVol
           
protected static ResourceProvider RESOURCE
          ResourceProvider, der die Uebersetzungen fuer die GUI bereitstellt: locales.XuluModel_SmallReservoirModel
protected  int stepSize
           
protected  boolean storeStepResults
           
 
Fields inherited from class edu.bonn.xulu.model.AbstractStepModel
stepCount
 
Fields inherited from class edu.bonn.xulu.model.AbstractXuluModel
disposed, events, initialised, listeners, modelResourceProvider, running, statusOut, stopped
 
Constructor Summary
SmallReservoirModel()
          Erzeugt eine neue Instanz des Modells.
 
Method Summary
protected  void determineDamWallCells()
          Ermittelt die von dem Staumauer-Shape ueberlagerten Rasterzellen.
protected  void determineDamWallDHMAndInitStartCells()
          Berechnet ein DHM, welches an den Stellen der Staumauer die Hoehe der Staumauer ueber NN enthaelt und ansonsten 0.
protected  void emptyReservoir(int stepNo, int dayCount)
          Entleert den Stausee und berechnet pro Tag (oder je Modellschritt-Groesse) verbleibende die Ausmasse des Stausees.
protected  void fillReservoir()
          Berechnet die Ausmasse des Stausees (fuellt den Stausee).
 Component getModelSpecificGUI()
          Liefert die modell-spezifische GUI des Kleinstausee-Modells.
 void performModelDispose()
          Gibt die Lese/Schreibrechte auf das Ein- und Ausgaberaster wieder frei.
 void performModelInit()
          Initialisiert das Model, indem die Ressourcen aus dem ContentManager geladen werden und mit Lese/Schreib-Rechten versehen werden.
 void performModelStep(int stepNo)
          Fuehrt die Modell-Berechnung durch.
 
Methods inherited from class edu.bonn.xulu.model.AbstractStepModel
fireModelStepFinished, fireModelStepStarted, getStepCount, performModelStart
 
Methods inherited from class edu.bonn.xulu.model.AbstractXuluModel
addModelListener, checkBreakingCommands, determineCaption, disposeModel, fireModelDisposed, fireModelEvent, fireModelInitialised, fireModelStarted, fireModelStopped, getContentManager, getEvents, getResourceProvider, getStatusOut, initModel, isDisposed, isInitialised, isRunning, isStopped, performError, releaseAccess, removeModelListener, resetCaptions, setStatusOut, startModelling, stopModelling
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface edu.bonn.xulu.model.XuluModel
addModelListener, disposeModel, getContentManager, getEvents, getResourceProvider, getStatusOut, initModel, isDisposed, isInitialised, isRunning, isStopped, performError, removeModelListener, setStatusOut, startModelling, stopModelling
 

Field Detail

RESOURCE

protected static ResourceProvider RESOURCE
ResourceProvider, der die Uebersetzungen fuer die GUI bereitstellt: locales.XuluModel_SmallReservoirModel


LOGGER

public static final Logger LOGGER
Logger fuer Debug-Ausgaben und Warnings.


contManager

protected SmallReservoirModelContentManager contManager
Speichert den ContentManager fuer das Modell.

See Also:
SmallReservoirModelContentManager

dhm

protected WritableGrid dhm

damWall

protected  damWall

damWallHeight

protected double[] damWallHeight

damWallHeightMin

protected double[] damWallHeightMin

damWallHeightMax

protected double[] damWallHeightMax

infiltration

protected double infiltration

evaporation

protected double evaporation

outFloodedArea

protected MultiGrid outFloodedArea

outFloodedAreaSize

protected double outFloodedAreaSize

outFloodedAreaVol

protected double outFloodedAreaVol

outFloodedAreaGrid

protected WritableGrid outFloodedAreaGrid

damWallDHM

protected WritableGrid damWallDHM

stepSize

protected int stepSize

storeStepResults

protected boolean storeStepResults

areaMinX

protected int areaMinX

areaMaxX

protected int areaMaxX

areaMinY

protected int areaMinY

areaMaxY

protected int areaMaxY

areaCellSize

protected double areaCellSize

iterCount

protected int iterCount

damCells

protected Set<Point>[] damCells

floodedCells

protected Set<Point> floodedCells

modelGUI

protected SmallReservoirModel.GUI modelGUI
Constructor Detail

SmallReservoirModel

public SmallReservoirModel()
Erzeugt eine neue Instanz des Modells.

Method Detail

getModelSpecificGUI

public Component getModelSpecificGUI()
Liefert die modell-spezifische GUI des Kleinstausee-Modells.

Specified by:
getModelSpecificGUI in interface XuluModel
Overrides:
getModelSpecificGUI in class AbstractXuluModel
Returns:
null wenn das Modell keine zusaetzliche GUI zur Verfuegung stellt

performModelInit

public void performModelInit()
Initialisiert das Model, indem die Ressourcen aus dem ContentManager geladen werden und mit Lese/Schreib-Rechten versehen werden. Zudem werden Referenzen auf die Ressourcen in lokalen Variablen gespeichert, um waehrend des Modellablaufs effizienter darauf zugreifen zu koennen.

Specified by:
performModelInit in class AbstractXuluModel

performModelDispose

public void performModelDispose()
Gibt die Lese/Schreibrechte auf das Ein- und Ausgaberaster wieder frei. Interne Ressourcen brauchen keine aus dem Speicher entfernt werden.

Specified by:
performModelDispose in class AbstractXuluModel

performModelStep

public void performModelStep(int stepNo)
Fuehrt die Modell-Berechnung durch.

Specified by:
performModelStep in interface StepModel
Specified by:
performModelStep in class AbstractStepModel
Parameters:
stepNo - Nummer des Modellschritts (beginnend bei 1)

emptyReservoir

protected void emptyReservoir(int stepNo,
                              int dayCount)
Entleert den Stausee und berechnet pro Tag (oder je Modellschritt-Groesse) verbleibende die Ausmasse des Stausees.


fillReservoir

protected void fillReservoir()
Berechnet die Ausmasse des Stausees (fuellt den Stausee).


determineDamWallCells

protected void determineDamWallCells()
Ermittelt die von dem Staumauer-Shape ueberlagerten Rasterzellen. Zudem wird die minimale/maximale Staumauer-Hoehe ermittelt.


determineDamWallDHMAndInitStartCells

protected void determineDamWallDHMAndInitStartCells()
Berechnet ein DHM, welches an den Stellen der Staumauer die Hoehe der Staumauer ueber NN enthaelt und ansonsten 0. Zudem werden die Start-Zellen fuer den Wasserzufluss, sowie die minimale/maximale Staumauer-Hoehe ermittelt.