Jump to content

Spreading2: Difference between revisions

From SELESwiki
No edit summary
No edit summary
Line 1: Line 1:
[[Image:Spreading2.gif]]
==Model code==
==Model code==
===Spreading.scn===
===Spreading.scn===
SELES Scenario
Model Dimensions: 500, 500
Model.sel
SimPriority Low Priority


SELES Scenario
===Model.sel===
Seles Model
Time Units: milliYear Year 1000 1000000
Landscape Events:
  Spreading.lse DEBUG


Model Dimensions: 100, 100
Global Constants:
Model.sel
  MaxTSF = 100
SimPriority Low Priority


===Model.sel===
Spatial Variables:
Seles Model
  TimeSinceFire[MaxTSF]
Time Units: Step KiloStep 1000 100
   Attempted[1]
Landscape Events:
   Spreading.lse DEBUG


Spatial Variables:
Global Variables:
   DistanceFromSrc[(NumRows^2 + NumCols^2)^0.5+1]
   SpreadDist = 1
   Visited[1]
   pSpread = 1
  SpreadType = 1
  pFire = 1


Global Variables:
  SpreadType = 0


===Spreading.lse===
===Spreading.lse===
LSEVENT: SpreadingTypes
LSEVENT: Spreading
DEFINITIONS
  LAYER: TimeSinceFire, Attempted


DEFINITIONS
   GLOBAL VARIABLE: SpreadDist, pSpread, SpreadType, pFire
   LAYER: DistanceFromSrc, Visited
   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)
 
SPREADLOCATION
  maxD = IF (1 <= SpreadType <= 3) THEN 1.5 ELSE 1
 
   REGION CENTRED(1, maxD)
       DECISION DistanceFromSrc > (DISTANCE(StartLocation, Location))
ENDSL
 


SPREADPROB
  Attempted = 1
   SPREADPROB = 1
ENDSL
SPREADPROB
   SPREADPROB = pSpread
   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

Revision as of 21:29, 8 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