uk.ac.ucl.casa.andrew.phd.segregationModelRestricted
Class SegGISModel

java.lang.Object
  extended byuchicago.src.sim.engine.SimModelImpl
      extended byuk.ac.ucl.casa.andrew.phd.segregationModelRestricted.SegGISModel
All Implemented Interfaces:
uchicago.src.reflector.DescriptorContainer, uchicago.src.sim.engine.SimEventProducer, uchicago.src.sim.engine.SimModel

public class SegGISModel
extends uchicago.src.sim.engine.SimModelImpl

This is an extension of the basic segregation model however movement in the first instance is restricted to the polygon the agent is first in. However as the agents are randomly located within an area, agents on the boarders of two areas often move to another area. This model presumes that if an agent has chosen to live in the area it is satisfied with that area. Therefore for the first iteration of the model agents movement is restricted just to the area it is located within and not the surrounding area. Had to alter moveAgentUntilHappy method in Resident class. Added two new methods in Resident class: agentsInSameArea and polygonOfAgent and one new statcounter: agentCouldNotGetHappyInOriginalArea. Additionally, added 3 new things to data recorder redresidentAgentsMoved() blueresidentAgentsMoved() totalresidentAgentsMoved(). In Snap the current population of agents is calculated and in the urban agent class Also in urban agent two new fileds have been added: actuualPopRed actualPopBlue with the approatiate get and set methods. Also not the shapefiles regure 2 new extra fields REDNO BLUENO seen with setREDNO getREDNO setBLUENO getBLUENO methods

Version:
1 02-Aug-07
Author:
Andrew Crooks
Centre for Advanced Spatial Analysis, University College London.

Nested Class Summary
(package private)  class SegGISModel.blueresidentAgentsMoved
           
(package private)  class SegGISModel.happystats
           
(package private)  class SegGISModel.happystatsBlues
           
(package private)  class SegGISModel.happystatsReds
           
(package private)  class SegGISModel.landuseStats
           
(package private)  class SegGISModel.landuseStatsNine
           
(package private)  class SegGISModel.landuseStatsThree
           
(package private)  class SegGISModel.landuseStatsTwo
           
(package private)  class SegGISModel.redresidentAgentsMoved
           
(package private)  class SegGISModel.residentAgentsCount
           
(package private)  class SegGISModel.residentAgentsRemovedAsUnHappy
           
(package private)  class SegGISModel.residentAgentsRemovedAsUnHappyBlue
           
(package private)  class SegGISModel.residentAgentsRemovedAsUnHappyRed
           
(package private)  class SegGISModel.residentAgentsSocCountBlue
           
(package private)  class SegGISModel.residentAgentsSocCountRed
           
(package private)  class SegGISModel.totalHappyAndUnhappyAgents
           
(package private)  class SegGISModel.totalresidentAgentsMoved
           
(package private)  class SegGISModel.unhappystats
           
(package private)  class SegGISModel.unhappystatsBlues
           
(package private)  class SegGISModel.unhappystatsReds
           
 
Field Summary
(package private) static int blue_blue
           
(package private) static int BLUE_BLUE
           
(package private) static boolean closeModelOn
           
(package private) static java.lang.String datasource1
           
(package private)  javax.swing.JFileChooser fileChooser
           
(package private)  OpenMapData gisData
           
private  uchicago.src.sim.analysis.OpenSequenceGraph landuseGraph
           
(package private) static int movement
           
(package private) static int MOVEMENT
           
(package private) static int moveToWithIn
           
(package private) static int MOVETOWITHIN
           
(package private) static java.lang.String neighbourhoodFile1
           
private  uchicago.src.sim.gui.Legend newlegend
           
(package private)  anl.repast.gis.display.OpenMapDisplay omDisplay
           
(package private) static int perAgents
           
(package private) static int PERAGNETS
           
private  uchicago.src.sim.analysis.OpenSequenceGraph recorderHappyAgentsGraph
           
private  uchicago.src.sim.analysis.DataRecorder recorderLanduse
           
private  uchicago.src.sim.analysis.OpenSequenceGraph recorderTotalHappyAndSad
           
(package private) static int red_red
           
(package private) static int RED_RED
           
(package private)  java.util.ArrayList residentAgentsList
           
(package private) static boolean saveDataOn
           
(package private)  uchicago.src.sim.engine.Schedule schedule
           
(package private) static int search
           
(package private) static int SEARCH
           
(package private) static boolean searchOn
           
private  int simulationSpeed
           
(package private) static float sizeOfAgent
           
(package private) static float SIZEOFAGENT
           
(package private) static boolean snapshotOn
           
static int STEP_NUM
           
(package private)  double totalArea
           
(package private)  java.util.ArrayList urbanAgentList
           
 
Fields inherited from class uchicago.src.sim.engine.SimModelImpl
descriptors, modelManipulator
 
Constructor Summary
SegGISModel()
           
 
Method Summary
 void begin()
          alls the buildModel, buildDisplay and buildSchedule methods the method initialises the repast model In this order.
 void buildDisplay()
          Builds the display for the model
 void buildModel()
          Reads in the data and builds the model
 void buildSchedule()
          Schedules the execution of the specified method (ie step)on the specified object(ie this model) to start at the specified clock tick and continue every tick thereafter.
 void closeModel()
          Checks to see if all the agents are happy.
 void createShapefileForAgents()
          Creates a new point shapefile containting all the resident agents this uses information from the Resident class specifically information in the gisPropertyList()each element in the dbf file needs a get and set method in a similar way to reading in and storing changes in the urban agent.
private  void densityStats(java.util.ArrayList urbanAgentList)
          Used to calculate max and miniuim density of Urban agent along with average density of the area.
 int getBlue_blue()
           
 boolean getCloseModelOn()
           
 java.lang.String[] getInitParam()
          This method gets the inital parameters of the model it returns an array of string variables.
 int getMovement()
           
 int getMoveToWithin()
           
 java.lang.String getName()
          Replaces repast with the name of the project on the control bar
 java.util.ArrayList getNeighborAgents(int[] neighbors)
          Gets the neighbourhood info for the urban agents
 int getNeighbourhood()
           
 int getPerAgents()
           
 int getRed_red()
           
 java.util.ArrayList getResidentAgents()
           
 boolean getSaveDataOn()
           
 uchicago.src.sim.engine.Schedule getSchedule()
          gets the schedule
 boolean getSearchOn()
           
 float getSizeOfAgent()
           
 boolean getSnapshotOn()
           
 int getSTEP_NUM()
           
 java.util.ArrayList getUrbanAgentList()
           
static void main(java.lang.String[] args)
           
 void metresToDecimalDegress()
           
static float movementInDegreesCalculation()
           
private  void numberOfHappyResdientAgents(java.util.ArrayList residentAgentsList)
          Used to calculate the number of unhappy agents in the area.
 void postStep()
          Calls methods and functions to be carried out in PostStep
 void preStep()
          Calls methods to be carried out in PreStep
 void reset()
          The reset method is called whenever the model is reset.
 void saveGALFile()
          Takes a copy of the existing gal file and creates a new copy of it
 void saveShapefile()
          Any change to the urban layer is saved to a new shapefile
 void setBlue_blue(int i)
           
 void setCloseModelOn(boolean on)
           
 void setMovement(int mov)
           
 void setMoveToWithin(int newMovementToWithin)
           
 void setNeighbourhood(int ser)
           
 void setPerAgents(int pa)
           
 void setRed_red(int a)
           
 void setResidentAgents(java.util.ArrayList residentAgents)
           
 void setSaveDataOn(boolean show)
           
 void setSearchOn(boolean show)
           
 void setSizeOfAgent(float soa)
           
 void setSnapshotOn(boolean show)
           
 void setSnapShotRecording()
          Created to save time when images are wanted when running a simulation.
 void setSTEP_NUM(int step_num)
           
 void setup()
          the setup() function returns the model to the initial conditions
 void setUrbanAgentList(java.util.ArrayList agentList)
           
 void step()
          Step method tells the program what to do at evey step THis therefore should contain infomation about agent movement, what agents are where etc.
 void takesnapshot()
          Record snapshots of all of the displays, so one does not have to select the displays to be saved manually
 
Methods inherited from class uchicago.src.sim.engine.SimModelImpl
addPropertyListener, addSimEventListener, clearMediaProducers, clearPropertyListeners, fireBooleanPropertyEvent, fireEndSim, fireNumericPropertyEvent, fireObjectPropertyEvent, firePauseSim, fireSimEvent, fireStopSim, fireStringPropertyEvent, generateNewSeed, getController, getMediaProducers, getModelManipulator, getParameterDescriptors, getPropertiesValues, getRngSeed, getTickCount, pause, registerDisplaySurface, registerMediaProducer, removePropertyListener, removeSimEventListener, setController, setRngSeed, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

fileChooser

javax.swing.JFileChooser fileChooser

RED_RED

static final int RED_RED
See Also:
Constant Field Values

red_red

static int red_red

BLUE_BLUE

static final int BLUE_BLUE
See Also:
Constant Field Values

blue_blue

static int blue_blue

PERAGNETS

static final int PERAGNETS
See Also:
Constant Field Values

SIZEOFAGENT

static float SIZEOFAGENT

MOVEMENT

static final int MOVEMENT
See Also:
Constant Field Values

SEARCH

static final int SEARCH
See Also:
Constant Field Values

perAgents

static int perAgents

sizeOfAgent

static float sizeOfAgent

search

static int search

movement

static int movement

totalArea

double totalArea

MOVETOWITHIN

static final int MOVETOWITHIN
See Also:
Constant Field Values

moveToWithIn

static int moveToWithIn

datasource1

static java.lang.String datasource1

neighbourhoodFile1

static java.lang.String neighbourhoodFile1

gisData

OpenMapData gisData

omDisplay

anl.repast.gis.display.OpenMapDisplay omDisplay

urbanAgentList

java.util.ArrayList urbanAgentList

residentAgentsList

java.util.ArrayList residentAgentsList

schedule

uchicago.src.sim.engine.Schedule schedule

STEP_NUM

public static int STEP_NUM

simulationSpeed

private int simulationSpeed

landuseGraph

private uchicago.src.sim.analysis.OpenSequenceGraph landuseGraph

recorderLanduse

private uchicago.src.sim.analysis.DataRecorder recorderLanduse

recorderHappyAgentsGraph

private uchicago.src.sim.analysis.OpenSequenceGraph recorderHappyAgentsGraph

recorderTotalHappyAndSad

private uchicago.src.sim.analysis.OpenSequenceGraph recorderTotalHappyAndSad

searchOn

static boolean searchOn

snapshotOn

static boolean snapshotOn

saveDataOn

static boolean saveDataOn

closeModelOn

static boolean closeModelOn

newlegend

private uchicago.src.sim.gui.Legend newlegend
Constructor Detail

SegGISModel

public SegGISModel()
Method Detail

main

public static void main(java.lang.String[] args)

begin

public void begin()
alls the buildModel, buildDisplay and buildSchedule methods the method initialises the repast model In this order. Therefore things created in build model are seen in builddisplay etc.


buildModel

public void buildModel()
Reads in the data and builds the model


buildDisplay

public void buildDisplay()
Builds the display for the model


buildSchedule

public void buildSchedule()
Schedules the execution of the specified method (ie step)on the specified object(ie this model) to start at the specified clock tick and continue every tick thereafter.


step

public void step()
Step method tells the program what to do at evey step THis therefore should contain infomation about agent movement, what agents are where etc.


preStep

public void preStep()
Calls methods to be carried out in PreStep


postStep

public void postStep()
Calls methods and functions to be carried out in PostStep


setSnapShotRecording

public void setSnapShotRecording()
Created to save time when images are wanted when running a simulation. Images are stored in the same location as the shapefiles.


closeModel

public void closeModel()
Checks to see if all the agents are happy. if they are the model will close.


takesnapshot

public void takesnapshot()
Record snapshots of all of the displays, so one does not have to select the displays to be saved manually


numberOfHappyResdientAgents

private void numberOfHappyResdientAgents(java.util.ArrayList residentAgentsList)
Used to calculate the number of unhappy agents in the area. Make a new iterater based on residentlist, get each residents happyness and then count them. Then print out the totals.


densityStats

private void densityStats(java.util.ArrayList urbanAgentList)
Used to calculate max and miniuim density of Urban agent along with average density of the area. Uses popDensity method from Urban Agent


getNeighborAgents

public java.util.ArrayList getNeighborAgents(int[] neighbors)
Gets the neighbourhood info for the urban agents


setup

public void setup()
the setup() function returns the model to the initial conditions


reset

public void reset()
The reset method is called whenever the model is reset. Everything is reset to null


getSchedule

public uchicago.src.sim.engine.Schedule getSchedule()
gets the schedule


saveShapefile

public void saveShapefile()
Any change to the urban layer is saved to a new shapefile


createShapefileForAgents

public void createShapefileForAgents()
Creates a new point shapefile containting all the resident agents this uses information from the Resident class specifically information in the gisPropertyList()each element in the dbf file needs a get and set method in a similar way to reading in and storing changes in the urban agent. Needed to rewrite anl.repast.gis.data.OpenMapData class specifically writeDbfFromAgents() becuase write to string was not working. Also writeAgentsNoShp() so a point file would be created from an OM circle otherwise the file would be of type polygon.


saveGALFile

public void saveGALFile()
Takes a copy of the existing gal file and creates a new copy of it


getName

public java.lang.String getName()
Replaces repast with the name of the project on the control bar


getInitParam

public java.lang.String[] getInitParam()
This method gets the inital parameters of the model it returns an array of string variables. Each parameter in the list needs a get and set method.


getCloseModelOn

public boolean getCloseModelOn()

setCloseModelOn

public void setCloseModelOn(boolean on)

getRed_red

public int getRed_red()

setRed_red

public void setRed_red(int a)

getBlue_blue

public int getBlue_blue()

setBlue_blue

public void setBlue_blue(int i)

getSaveDataOn

public boolean getSaveDataOn()

setSaveDataOn

public void setSaveDataOn(boolean show)

getSnapshotOn

public boolean getSnapshotOn()

setSnapshotOn

public void setSnapshotOn(boolean show)

getMoveToWithin

public int getMoveToWithin()

setMoveToWithin

public void setMoveToWithin(int newMovementToWithin)

getSearchOn

public boolean getSearchOn()

setSearchOn

public void setSearchOn(boolean show)

getPerAgents

public int getPerAgents()

setPerAgents

public void setPerAgents(int pa)

getSizeOfAgent

public float getSizeOfAgent()

setSizeOfAgent

public void setSizeOfAgent(float soa)

getMovement

public int getMovement()

setMovement

public void setMovement(int mov)

getNeighbourhood

public int getNeighbourhood()

setNeighbourhood

public void setNeighbourhood(int ser)

getUrbanAgentList

public java.util.ArrayList getUrbanAgentList()

setUrbanAgentList

public void setUrbanAgentList(java.util.ArrayList agentList)

getResidentAgents

public java.util.ArrayList getResidentAgents()

setResidentAgents

public void setResidentAgents(java.util.ArrayList residentAgents)

getSTEP_NUM

public int getSTEP_NUM()

setSTEP_NUM

public void setSTEP_NUM(int step_num)

metresToDecimalDegress

public void metresToDecimalDegress()

movementInDegreesCalculation

public static float movementInDegreesCalculation()