Jump to content

Spreading2: Difference between revisions

From SELESwiki
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Image:Spreading2.gif]]
==Model code==
==Model code==
===Spreading.scn===
===Spreading.scn===
 
SELES Scenario
SELES Scenario
Model Dimensions: 500, 500
 
Model.sel
Model Dimensions: 100, 100
SimPriority Low Priority
Model.sel
SimPriority Low Priority


===Model.sel===
===Model.sel===
Seles Model
Seles Model
Time Units: Step KiloStep 1000 100
Time Units: milliYear Year 1000 1000000
Landscape Events:
Landscape Events:
   Spreading.lse DEBUG
   Spreading.lse DEBUG
 
Global Constants:
Spatial Variables:
  MaxTSF = 100
   DistanceFromSrc[(NumRows^2 + NumCols^2)^0.5+1]
Spatial Variables:
   Visited[1]
   TimeSinceFire[MaxTSF]
 
   Attempted[1]
Global Variables:
Global Variables:
  SpreadType = 0
  SpreadDist = 1
  pSpread = 1
  SpreadType = 1
  pFire = 1


===Spreading.lse===
===Spreading.lse===
LSEVENT: SpreadingTypes
LSEVENT: Spreading
 
DEFINITIONS
DEFINITIONS
   LAYER: TimeSinceFire, Attempted
   LAYER: DistanceFromSrc, Visited
   GLOBAL VARIABLE: SpreadDist, pSpread, SpreadType, pFire
 
  GLOBAL CONSTANT: MaxTSF
   GLOBAL VARIABLE: SpreadType
 
   CLUSTER VARIABLE: StartLocation
   CLUSTER VARIABLE: StartLocation
   CELL VARIABLE: distInc, d
   CELL VARIABLE: distInc, d
ENDDEF
ENDDEF
 
INITIALSTATE
RETURNTIME
  INITIALSTATE = 1
  TimeSinceFire = MaxTSF
ENDIS
RETURNTIME
   RETURNTIME = 0
   RETURNTIME = 0
   DistanceFromSrc = (NUMROWS^2 + NUMCOLS^2)^0.5
   TimeSinceFire = MIN(TimeSinceFire+1, MaxTSF)
ENDRT
  Attempted = 0
 
ENDRT
EVENTLOCATION
EVENTLOCATION
   REGION LOCATION(LOCATION(NUMROWS/2, NUMCOLS/2))
   REGION WHOLE MAP
ENDEL
      DECISION TimeSinceFire > 50
 
ENDEL
PROBINIT
NUMCLUSTERS = IF (UNIFORM(0,1) < pFire) THEN 1 ELSE 0
   PROBINIT = 1
PROBINIT
   PROBINIT = TimeSinceFire/MaxTSF
   StartLocation = Location
   StartLocation = Location
   distInc = 0
   distInc = 0
   d = 0
   d = 0
ENDPI
ENDPI
 
TRANSITIONS
TRANSITIONS
   TRANSITIONS = TimeSinceFire > 0
   TRANSITIONS = (d < DistanceFromSrc)
   TimeSinceFire = 0
   Visited = 1
ENDTR
  DistanceFromSrc = d
SPREADTIMESTEP = distInc
ENDTR
SPREADLOCATION
 
   REGION CENTRED(1, SpreadDist) //, WRAPPED)
SPREADTIMESTEP = distInc
       DECISION IF SpreadType <= 1 THEN TimeSinceFire > 50
 
              ELSE (TimeSinceFire > 60) AND (!Attempted)
 
  Attempted = 1
SPREADLOCATION
ENDSL
  maxD = IF (1 <= SpreadType <= 3) THEN 1.5 ELSE 1
SPREADPROB
 
   SPREADPROB = pSpread
   REGION CENTRED(1, maxD)
       DECISION DistanceFromSrc > (DISTANCE(StartLocation, Location))
ENDSL
 
 
SPREADPROB
   SPREADPROB = 1
   d = ROUND(DISTANCE(StartLocation, Location))
   d = ROUND(DISTANCE(StartLocation, Location))
   distInc = CLASSIFY(SpreadType)
   distInc = IF SpreadType EQ 0 THEN 1 ELSE MAX(0,d - SOURCE d)
              0: 1
ENDSP
              1: 1
              2: DISTANCE(Location, SOURCE Location)
              3: MAX(0,d - SOURCE DistanceFromSrc)
              ENDFN
ENDSP

Latest revision as of 18:10, 14 November 2006

Model code

Spreading.scn

SELES Scenario
Model Dimensions: 500, 500 
Model.sel
SimPriority Low Priority

Model.sel

Seles Model
Time Units: milliYear Year 1000 1000000
Landscape Events:
  Spreading.lse DEBUG
Global Constants:
  MaxTSF = 100
Spatial Variables:
  TimeSinceFire[MaxTSF]
  Attempted[1]
Global Variables:
  SpreadDist = 1
  pSpread = 1
  SpreadType = 1
  pFire = 1

Spreading.lse

LSEVENT: Spreading
DEFINITIONS
 LAYER: TimeSinceFire, Attempted
 GLOBAL VARIABLE: SpreadDist, pSpread, SpreadType, pFire
 GLOBAL CONSTANT: MaxTSF
 CLUSTER VARIABLE: StartLocation
 CELL VARIABLE: distInc, d
ENDDEF
INITIALSTATE
  INITIALSTATE = 1
  TimeSinceFire = MaxTSF
ENDIS
RETURNTIME
  RETURNTIME = 0
  TimeSinceFire = MIN(TimeSinceFire+1, MaxTSF)
  Attempted = 0
ENDRT
EVENTLOCATION
  REGION WHOLE MAP
     DECISION TimeSinceFire > 50
ENDEL
NUMCLUSTERS = IF (UNIFORM(0,1) < pFire) THEN 1 ELSE 0
PROBINIT
 PROBINIT = TimeSinceFire/MaxTSF
 StartLocation = Location
 distInc = 0
 d = 0
ENDPI
TRANSITIONS
 TRANSITIONS = TimeSinceFire > 0
 TimeSinceFire = 0
ENDTR
SPREADTIMESTEP = distInc
SPREADLOCATION
  REGION CENTRED(1, SpreadDist) //, WRAPPED)
     DECISION IF SpreadType <= 1 THEN TimeSinceFire > 50
              ELSE (TimeSinceFire > 60) AND (!Attempted)
  Attempted = 1
ENDSL
SPREADPROB
  SPREADPROB = pSpread
  d = ROUND(DISTANCE(StartLocation, Location))
  distInc = IF SpreadType EQ 0 THEN 1 ELSE MAX(0,d - SOURCE d)
ENDSP