edu.bonn.xulu.plugin.model.sleuth
Class UrbanGrowthModelCalibration

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.sleuth.UrbanGrowthModel
                  extended by edu.bonn.xulu.plugin.model.sleuth.UrbanGrowthModelCalibration
All Implemented Interfaces:
StepModel, XuluModel
Direct Known Subclasses:
UrbanGrowthModelCalibrationSelfModification

public class UrbanGrowthModelCalibration
extends UrbanGrowthModel

Calibration of the Urban Growth Model
This model is based on the Urban Growth Model, developed by Keith Clarke at the UC Santa Barbara, CA, within the Gigalopolis Project, funded by the USGS. It has exactly the same growth rules as its parent class, but runs with n Monte-Carlo Iterations. So the resulting map does not contain the urban extent after a model run, but the probability for new urbanization. The more often a cell has been selected for urbanization during the Monte-Carlo Iterations, the higher is that value in the output map. The model performs this procedure for every combination of the different coefficients. There is not a single coefficient value as in the original model, but a starting value, a step value and an end value. So, when starting with a coefficient of 5, a step value of 10 and an end value of 25, the model will perform 3 steps (for 5, 15, and 25). Be aware that entering many steps for many coefficients will result in a huge amount of possible combinations. Therefore the calibration should be performed sequential from a coarse calibration over a fine calibration to a final calibration. The perforamce of the different model runs is measured by the Multiple Resolution Comparison. This validation procedure has been adopted for this class and is integrated in a separate method. The original SLEUTH Urban Growth Model is calibrated by a different procedure. For a detailed description refer to Urban Growth Model, Urban Growth Model MC or Multiple Resolution Comparison
In addition to the UGM parameters, these parameters are needed:

Version:
1.1
Author:
Roland Goetzke
See Also:
UrbanGrowthModelCalibrationContentManager, UrbanGrowthModel, UrbanGrowthModel_MC

Field Summary
protected  double breedEnd
           
protected  double breedStart
           
protected  double breedStep
           
protected  double criticalSlope
           
protected  double dispEnd
           
protected  double dispStart
           
protected  double dispStep
           
protected  float[] finalArray
           
protected  int MonteCarlo
           
protected  float[] mrvTempResultArray
           
protected  int neighborhoodRange
           
protected  int numSteps
           
protected  ListPropertyWriteAccess outResults
           
protected  PropertyReadAccess RA_breedEnd
           
protected  PropertyReadAccess RA_breedStart
           
protected  PropertyReadAccess RA_breedStep
           
protected  PropertyReadAccess RA_criticalSlope
           
protected  PropertyReadAccess RA_dispEnd
           
protected  PropertyReadAccess RA_dispStart
           
protected  PropertyReadAccess RA_dispStep
           
protected  PropertyReadAccess RA_MonteCarlo
           
protected  PropertyReadAccess RA_referenceMap
           
protected  PropertyReadAccess RA_roadGravityEnd
           
protected  PropertyReadAccess RA_roadGravityStart
           
protected  PropertyReadAccess RA_roadGravityStep
           
protected  PropertyReadAccess RA_slopeEnd
           
protected  PropertyReadAccess RA_slopeStart
           
protected  PropertyReadAccess RA_slopeStep
           
protected  PropertyReadAccess RA_spreadEnd
           
protected  PropertyReadAccess RA_spreadStart
           
protected  PropertyReadAccess RA_spreadStep
           
protected  WritableGrid referenceMap
           
protected  float[][] resultArray
           
protected  double roadGravityEnd
           
protected  double roadGravityStart
           
protected  double roadGravityStep
           
protected  double slopeEnd
           
protected  double slopeStart
           
protected  double slopeStep
           
protected  double spreadEnd
           
protected  double spreadStart
           
protected  double spreadStep
           
protected  MultiGrid SumOutStep
           
protected  ListPropertyWriteAccess WA_outResults
           
protected  PropertyWriteAccess WA_SumOutStep
           
protected  int years
           
 
Fields inherited from class edu.bonn.xulu.plugin.model.sleuth.UrbanGrowthModel
areaHeight, areaMaxX, areaMaxY, areaMinX, areaMinY, areaRestr, areaWidth, breed, disp, disp_value, inputGrid, max_RG_value, max_search_index, NEIGHBOR, outputGrid, outStep, RA_areaRestr, RA_breed, RA_disp, RA_inputGrid, RA_roadGravity, RA_roadGrid, RA_slope, RA_slopeGrid, RA_spread, RA_steps, rg_value, roadGravity, roadGrid, slope, slopeGrid, slopeLUT, spread, steps, WA_outputGrid, WA_outStep
 
Fields inherited from class edu.bonn.xulu.model.AbstractStepModel
stepCount
 
Fields inherited from class edu.bonn.xulu.model.AbstractXuluModel
contManager, disposed, events, initialised, listeners, modelResourceProvider, running, statusOut, stopped
 
Constructor Summary
UrbanGrowthModelCalibration()
          Second Constructor.
UrbanGrowthModelCalibration(UrbanGrowthModelCalibrationContentManager contManager)
          First Constructor
 
Method Summary
 float[] MultipleResolutionComparison(WritableGrid simulationMap)
          MULTIPLE RESOLUTION VALIDATION
When all time steps are run, the result is being evaluated.
 void performModelDispose()
          like in every model: frees the resources
 void performModelInit()
          Initializes the model.
 void performModelStep(int stepNo)
          The main method of the Urban Growth Model.
 
Methods inherited from class edu.bonn.xulu.plugin.model.sleuth.UrbanGrowthModel
BreedGrowth, calculateNeighbors, countSetIndividuals, countTempUrbanCells, DispersionGrowth, EdgeGrowth, getSlopeExp, getSlopeLookup, getSlopeMax, getSlopeValue, RoadGrowth, roadWalk, writeToGrid
 
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, getModelSpecificGUI, 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, getModelSpecificGUI, getResourceProvider, getStatusOut, initModel, isDisposed, isInitialised, isRunning, isStopped, performError, removeModelListener, setStatusOut, startModelling, stopModelling
 

Field Detail

RA_referenceMap

protected PropertyReadAccess RA_referenceMap

RA_spreadStart

protected PropertyReadAccess RA_spreadStart

RA_spreadStep

protected PropertyReadAccess RA_spreadStep

RA_spreadEnd

protected PropertyReadAccess RA_spreadEnd

RA_dispStart

protected PropertyReadAccess RA_dispStart

RA_dispStep

protected PropertyReadAccess RA_dispStep

RA_dispEnd

protected PropertyReadAccess RA_dispEnd

RA_breedStart

protected PropertyReadAccess RA_breedStart

RA_breedStep

protected PropertyReadAccess RA_breedStep

RA_breedEnd

protected PropertyReadAccess RA_breedEnd

RA_roadGravityStart

protected PropertyReadAccess RA_roadGravityStart

RA_roadGravityStep

protected PropertyReadAccess RA_roadGravityStep

RA_roadGravityEnd

protected PropertyReadAccess RA_roadGravityEnd

RA_slopeStart

protected PropertyReadAccess RA_slopeStart

RA_slopeStep

protected PropertyReadAccess RA_slopeStep

RA_slopeEnd

protected PropertyReadAccess RA_slopeEnd

RA_criticalSlope

protected PropertyReadAccess RA_criticalSlope

RA_MonteCarlo

protected PropertyReadAccess RA_MonteCarlo

WA_outResults

protected ListPropertyWriteAccess WA_outResults

WA_SumOutStep

protected PropertyWriteAccess WA_SumOutStep

referenceMap

protected WritableGrid referenceMap

spreadStart

protected double spreadStart

spreadStep

protected double spreadStep

spreadEnd

protected double spreadEnd

dispStart

protected double dispStart

dispStep

protected double dispStep

dispEnd

protected double dispEnd

breedStart

protected double breedStart

breedStep

protected double breedStep

breedEnd

protected double breedEnd

roadGravityStart

protected double roadGravityStart

roadGravityStep

protected double roadGravityStep

roadGravityEnd

protected double roadGravityEnd

slopeStart

protected double slopeStart

slopeStep

protected double slopeStep

slopeEnd

protected double slopeEnd

criticalSlope

protected double criticalSlope

MonteCarlo

protected int MonteCarlo

outResults

protected ListPropertyWriteAccess outResults

SumOutStep

protected MultiGrid SumOutStep

years

protected int years

neighborhoodRange

protected int neighborhoodRange

numSteps

protected int numSteps

resultArray

protected float[][] resultArray

mrvTempResultArray

protected float[] mrvTempResultArray

finalArray

protected float[] finalArray
Constructor Detail

UrbanGrowthModelCalibration

public UrbanGrowthModelCalibration(UrbanGrowthModelCalibrationContentManager contManager)
First Constructor

Parameters:
contManager -

UrbanGrowthModelCalibration

public UrbanGrowthModelCalibration()
Second Constructor. The Content Manager is the parent content manager as well as the child content manager

Method Detail

performModelInit

public void performModelInit()
Initializes the model. Like in the init method of every XuluModel the resources are initalized.

Overrides:
performModelInit in class UrbanGrowthModel

performModelDispose

public void performModelDispose()
like in every model: frees the resources

Overrides:
performModelDispose in class UrbanGrowthModel

performModelStep

public void performModelStep(int stepNo)
The main method of the Urban Growth Model. For a detailed description refer to the performModelStep in UrbanGrowthModel. The difference is, that the number of steps is not based on the years that have to be modelled. The number of steps is always 1, all parameter combinations, Monte Carlo Iterations, and time steps are performed within this method. Those combinations are included in different for-loops.

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

MultipleResolutionComparison

public float[] MultipleResolutionComparison(WritableGrid simulationMap)
MULTIPLE RESOLUTION VALIDATION
When all time steps are run, the result is being evaluated. Therefore the Multiple Resolution Comparison is chosen (refer to ostanza(1989), Pontius (2002), Pontius et al. (2005), Lesschen et al. (2005), Pontius et al. (2008a), Pontius et al. (2008b)) For the original SLEUTH model a number of landscape measures are used for validation (refer to Clarke et al. (1997), Dietzel et al. (2007)), like e.g. the LeeSallee or OSM. Because the same method (MRV) is used within XULU to compare the results of different models, it was also chosen to evaluate the performance of the different calibration steps of the Urban Growth Model.