edu.bonn.xulu.plugin.model.parallel
Class ClueModel_deterministic

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.parallel.ClueModel_deterministic
All Implemented Interfaces:
StepModel, XuluModel

public class ClueModel_deterministic
extends AbstractStepModel

This class can be used to verify parallel versions of the ClueModel. It is only slightly modified so that it no longer uses purely random numbers for the generation of the iteration variable, but uses random numbers seeded with 0xCAFE. This guarantees that every run with the same input uses the same number of iterations and produces exactly the same result. *

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany), Dominik Appl (only slightly modified)
See Also:
ClueModelContentManager

Nested Class Summary
static class ClueModel_deterministic.ClueModelGUI
          Diese Klasse stellt eine modellspezifische GUI-Komponente fuer das CLUE-Modell dar.
 
Field Summary
protected  ClueModelContentManager contManager
          Speichert den ContentManager fuer das Modell.
static int TOLTYPE_ABS
          Konstante fuer die Toleranz-Art "absolut in Bedarf-Einheit".
static int TOLTYPE_PCT
          Konstante fuer die Toleranz-Art "prozentual".
 
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
ClueModel_deterministic()
          Erzeugt eine neue Instanz des CLUE-Modells.
 
Method Summary
protected  void calculateLUProbabilities(int stepNo)
          Berechnet die auf den Driving Forces basierenden Landnutzungs-Wahrscheinlichkeiten fuer einen Modell-Schritt und speichert diese in der Ressource "temp.
protected  void calulateNeighborhoodProbabilities(int stepNo, WritableGrid luGrid)
          Berechnet die auf den Nachbarschaftsbeziehungen basierenden Landnutzungs-Wahrscheinlichkeiten fuer einen Modell-Schritt und speichert diese in der Ressource "temp.
protected  boolean checkDemandCompliedAndCalculateIterVar(int stepNo, int iterNo)
          Prueft, ob die aktuelle LU-Konfiguration die einzelenen Bedarfsanforderungen (bis auf eine Abweichung) erfuellt und berechnet die Iterationsvariablen neu.
protected  boolean checkLUCCAllowed(int x, int y, int stepNo, int lastLU, int newLU, boolean alreadyLUCCFromNewType)
          Prueft, ob ein bestimmter LU-Wechsel fuer eine Zelle erlaubt ist.
protected  boolean checkLUCCGeneralAllowed(int x, int y, int stepNo, int lastLU, boolean alreadyLUCCToActualType)
          Prueft, ob ein genereller LU-Wechsel fuer eine Zelle erlaubt ist.
protected static boolean checkNoData(int x, int y, WritableGrid grid)
          Prueft, ob eine Rasterzelle mit NoData belegt ist
 Component getModelSpecificGUI()
          Liefert eine CLUE-spezifische GUI, in der die Abweichungen waehrend der Iteration angezeigt werden und ueber die die Toleranzen eingestellt werden koennen
 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 einen Schritt des Modellablaufs 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

TOLTYPE_PCT

public static final int TOLTYPE_PCT
Konstante fuer die Toleranz-Art "prozentual".

See Also:
Constant Field Values

TOLTYPE_ABS

public static final int TOLTYPE_ABS
Konstante fuer die Toleranz-Art "absolut in Bedarf-Einheit".

See Also:
Constant Field Values

contManager

protected ClueModelContentManager contManager
Speichert den ContentManager fuer das Modell.

See Also:
ClueModelContentManager
Constructor Detail

ClueModel_deterministic

public ClueModel_deterministic()
Erzeugt eine neue Instanz des CLUE-Modells.

Method Detail

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 einen Teil der 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 einen Schritt des Modellablaufs durch.

Specified by:
performModelStep in interface StepModel
Specified by:
performModelStep in class AbstractStepModel
Parameters:
stepNo - zu modellierender Schritt (beginnend bei 1!)

getModelSpecificGUI

public Component getModelSpecificGUI()
Liefert eine CLUE-spezifische GUI, in der die Abweichungen waehrend der Iteration angezeigt werden und ueber die die Toleranzen eingestellt werden koennen

Specified by:
getModelSpecificGUI in interface XuluModel
Overrides:
getModelSpecificGUI in class AbstractXuluModel
Returns:
Instannz von ClueModel_deterministic.ClueModelGUI

checkNoData

protected static boolean checkNoData(int x,
                                     int y,
                                     WritableGrid grid)
Prueft, ob eine Rasterzelle mit NoData belegt ist

Parameters:
x - Raster-Koordinate
y - Raster-Koordinate
grid - zu pruefendes Raster

calculateLUProbabilities

protected void calculateLUProbabilities(int stepNo)
Berechnet die auf den Driving Forces basierenden Landnutzungs-Wahrscheinlichkeiten fuer einen Modell-Schritt und speichert diese in der Ressource "temp. Ausgaberaster fuer die LU-Wahrscheinlichkeiten".
Werden keine dynamischen Driving Forces verwendet, geschieht die Berechnung nur beim ersten Modellierungsschritt.

Parameters:
stepNo - modellierter Schritt (beginnend bei 1)

calulateNeighborhoodProbabilities

protected void calulateNeighborhoodProbabilities(int stepNo,
                                                 WritableGrid luGrid)
Berechnet die auf den Nachbarschaftsbeziehungen basierenden Landnutzungs-Wahrscheinlichkeiten fuer einen Modell-Schritt und speichert diese in der Ressource "temp. Ausgaberaster fuer die Nachbarschafts-Wahrscheinlichkeiten".
Da sich die Landnutzung mit jedem Zeitschritt aendert geschieht dies vor jedem Zeitschritt neu.
Diese Methode macht nichts, wenn ohne Nachbarschafts-W'keiten simuliert wird, also wenn keine Angabe fuer die "Neighborhood-Weights" gemacht wird.

Parameters:
stepNo - modellierter Schritt (beginnend bei 1)
luGrid - LU-Raster aus dem die Umgebung der jeweiligen Zellen ermittelt werden

checkLUCCGeneralAllowed

protected boolean checkLUCCGeneralAllowed(int x,
                                          int y,
                                          int stepNo,
                                          int lastLU,
                                          boolean alreadyLUCCToActualType)
Prueft, ob ein genereller LU-Wechsel fuer eine Zelle erlaubt ist.

Parameters:
x - Raster-Koordinate
y - Raster-Koordinate
stepNo - modellierter Schritt (beginnend bei 1)
lastLU - Bedeckung von (x,y) zum Zeitpunkt stepNo-1
alreadyLUCCToActualType - Flag gibt an, ob in der laufenden Iteration bereits ein LU-Wechsel in den den aktuellen Typ der Zelle (lastLU) vorgenommen wurde.
Dieses Flag wird zur Zeit nicht verwendet!

checkLUCCAllowed

protected boolean checkLUCCAllowed(int x,
                                   int y,
                                   int stepNo,
                                   int lastLU,
                                   int newLU,
                                   boolean alreadyLUCCFromNewType)
Prueft, ob ein bestimmter LU-Wechsel fuer eine Zelle erlaubt ist.

Parameters:
x - Raster-Koordinate
y - Raster-Koordinate
stepNo - modellierter Schritt (beginnend bei 1)
lastLU - Bedeckung von (x,y) zum Zeitpunkt stepNo-1
newLU - potentielle neue Bedeckung von (x,y)
alreadyLUCCFromNewType - Flag gibt an, ob in der laufenden Iteration bereits ein LU-Wechsel vom potentiellen neuen Typ in einen anderen Typ vorgenommen wurde.
Dieses Flag wird zur Zeit nicht verwendet!

checkDemandCompliedAndCalculateIterVar

protected boolean checkDemandCompliedAndCalculateIterVar(int stepNo,
                                                         int iterNo)
Prueft, ob die aktuelle LU-Konfiguration die einzelenen Bedarfsanforderungen (bis auf eine Abweichung) erfuellt und berechnet die Iterationsvariablen neu.

Parameters:
stepNo - modellierter Schritt (beginnend bei 1)
iterNo - aktuelle Iteration (beginnend bei 1)