Skip to main content

Landscape Events

Landscape events are the primary abstraction in SELES for modelling processes of landscape change. A landscape event is designed to represent any process that recurrently initiates on a landscape, possibly spreads (in contiguous or non-contiguous patches), and makes changes in the spatio-temporal contexts it visits.


4.1 Landscape Event Properties

Landscape events define when and where state changes should occur, and the nature of those state changes, using a set of properties. Each property is defined by a set of assignments and expressions.

Table 2 — Landscape event properties

PropertyDescription
Initial StateSpecifies the number of initial event instances created at simulation start.
Return Time (ReturnTime)The time interval between recurrences of the event. Specifies the time between a new instance being created and when it is processed.
Event Location (EventLocation)Defines the set of cells (spatial region) in which the event can potentially initiate. Default is the whole map.
Number of Clusters (NumClusters)The number of cells in which to initiate the event. If not specified, each cell in EventLocation is tested independently using ProbInit as an absolute probability.
Probability of Initiation (ProbInit)Absolute or relative probability of the event initiating at a specific spatial location, as a function of cell state. Used in conjunction with NumClusters.
TransitionsTests whether the event "occurs" in an active cell (reached by initiation or spread). Determines if state change happens and whether the event will spread. This is the logical location for main state transitions.
Spread Time (SpreadTime)In spreading events: the time interval to schedule spreading from the current cell to its neighbours. Processed after Transitions, before spreading.
Spread Location (SpreadLocation)In spreading events: the set of cells to which an event can potentially spread from the current cell. Default is the cardinal neighbours.
Number of Recipients (NumRecipients)In spreading events: the number of cells to which the event should spread from the current cell. Works in conjunction with SpreadProb.
Probability of Spread (SpreadProb)In spreading events: the absolute or relative probability that the event spreads to a particular neighbouring cell.
End Cluster (EndCluster)Processed when a cluster terminates (no more active cells). In SELES 10, only the preliminary context is defined.
End Event (EndEvent)Processed when an event instance terminates (no more active clusters). In SELES 10, only the preliminary context is defined.

ProbInit and NumClusters Together

ProbInit and NumClusters together specify the cells in which events will initiate. Many processes are sensitive to the underlying spatial structure of the landscape, so the probability of initiation at a specific location may be conditional on the state of that location.

ProbInit may specify either an absolute probability (used when NumClusters is not defined) or a relative probability (used when NumClusters is defined, to weight cell selection).

Table 3 — Relationship between ProbInit and NumClusters

ProbInit NOT specified (all cells equal probability)ProbInit specified (each cell has individual probability Pi)
NumClusters NOT specifiedEvent initiates in every cell of EventLocationProbInit is the absolute probability; expected initiations = sum(Pi)
NumClusters specified (event initiates in exactly N cells)N locations chosen at random, equal probabilityProbInit is a relative probability; exactly N cells chosen

For each cell that initiates, a new active cell and cluster are created. The Transitions property then determines whether or not the event occurs in that cell, and whether it will spread.

:::note Initiation vs Occurrence SELES distinguishes between initiation (an event instance is "dropped" into a cell) and occurrence (the Transitions property evaluates to true). For example, a lightning strike may initiate a fire in the cell it hits, but whether the fire actually occurs depends on fuel and weather conditions. :::

SpreadTime and Spreading

SpreadTime specifies when an active cell will spread to its neighbours — analogous to ReturnTime but computed at the current location. An active cell can only spread if it has occurred (i.e. passed the Transitions test). If it did not occur, it terminates without spreading.

When spreading is processed, new active cells are created in neighbouring cells within the same active cluster and event instance as the original spreading cell. SpreadLocation, SpreadProb, and NumRecipients work together to select which neighbours receive the spread — analogous to how EventLocation, ProbInit, and NumClusters work for initiation.

Eventually a cluster (the set of active cells sharing a common initiation cell) runs out of active cells and terminates, triggering EndCluster. When all clusters of an event instance terminate, EndEvent is triggered.


4.2 Landscape Event Instances

It is important to distinguish between the definition and an instance of a landscape event.

  • The definition is the set of assignments and expressions in the .lse file.
  • Instances are dynamically created and scheduled on the event queue during a simulation.

When an instance is taken off the queue and executed, it initially has no spatial location. The first step is initiation: selecting cells according to EventLocation, NumClusters, and ProbInit. After initiation (and usually before spreading), the instance schedules a new instance for a later time via ReturnTime.

An instance remains active as long as it has at least one active cluster. A cluster remains active as long as it has at least one active cell. A cell is active if it is currently being processed or scheduled to spread. An active cell is terminated either by failing Transitions, or after finishing spreading.

More than one instance of a single landscape event may be active simultaneously — for example, one instance of a logging process may be created for each management unit.

:::note Cell identity The identity of an active cell is determined by the source of its initiation, not by its location. It is therefore possible for more than one active cell to exist simultaneously in the same grid cell (e.g. if a fire spreads to the same cell from two different clusters). If this is undesirable, the landscape event should include state and conditions to prevent it. :::

For brevity, both landscape event definitions and instances are simply referred to as "landscape events" throughout the rest of this documentation.


4.3 Dynamic Context Variables

In addition to the shared state space (global and spatial variables and constants), a landscape event may declare four types of local dynamic context variables:

TypeScopeDescriptionExample
Local variableLandscape eventNon-spatial variable local to this event (not in the shared state space)A running tally used only within this event
Event variableEvent instanceUnique to each active instance of the eventNumFires — count of fires per storm instance
Cluster variableClusterUnique to each active cluster within an instanceFireSize — target size for each individual fire patch
Cell variableActive cellUnique to each cell on the active frontIntensity — fire intensity at each burning cell

When a new event instance, cluster, or active cell is created, its respective variable types are dynamically created (with no initial value). When an entity is extinguished, its variables are removed.

Figure 5 — The hierarchical structure of the dynamic state. Each active event has a unique set of event variables and one or more active clusters. Each active cluster has a unique set of cluster variables and one or more active cells. Each active cell has a unique set of cell variables.

(Diagram from original documentation — to be recreated)

SELES handles memory management automatically. Modellers declare variables of the appropriate type and use them in the appropriate contexts; the system handles allocation and destruction. Before their first assignment, dynamic context variables are undefined.

This hierarchical structure allows lower-order entities (e.g. cell level) to act semi-independently while still coordinating with higher-order entities (cluster, event, and global levels).


4.4 Spatio-temporal Contexts of Properties

Each property has two associated contexts:

  • The operating context is the context in which the property's main expression is evaluated, along with any preliminary expressions. It reflects the behaviour of the landscape event that led to this point.
  • The consequent context arises from evaluating the property, and may result in zero or more new contexts (e.g. specifying that 3 fires will ignite creates 3 active spatial contexts, one at each ignition point).

Property contexts are automatically managed by SELES, letting modellers focus on high-level behaviour rather than technical context management.

The contexts associated with each property in the general process algorithm are:

PropertyOperating ContextConsequent Context
Initial StateGlobalEvent Instance (creates first instances)
Return TimeEvent InstanceEvent Instance (schedules processing at future time)
Event LocationEvent InstanceSpatial (identifies potential initiation cells)
Number of ClustersEvent InstanceActive Cell (creates cluster and active cell for each chosen cell)
Probability of InitiationSpatial (potential cells)Active Cell (creates cluster and active cell for each chosen cell)
TransitionsActive CellActive Cell (continues) or terminated
Spread TimeActive CellActive Cell (schedules spreading at future time)
Spread LocationActive CellRecipient (identifies potential spread cells)
Number of RecipientsActive CellActive Recipient (creates new active cell for each chosen cell)
Probability of SpreadRecipientActive Recipient (creates new active cell for each chosen cell)
End ClusterActive Cell (last)— (cluster terminates)
End EventActive Cell (last of last cluster)— (event instance terminates)

Figure 6 — Spatio-temporal contexts associated with the property operating context and consequent context, refining the general process algorithm.

(Diagram from original documentation — to be recreated)


4.5 Landscape Event Property Details

This section gives a detailed description of the behaviour of each landscape event property. The following notation is used:

  • Q — the simulation engine priority event queue (see Section 2.1).
  • S — the set of n variables available in the current context. For spatial contexts, Sᵢⱼ is a vector of n variables containing state variable values at cell (i, j).

Each property is described by:

  • Result — the contexts created or modified.
  • Default — the behaviour when the property is not defined.
  • Context — the operating and consequent contexts; determines which state variables are accessible. Contexts in order from least to most specific: global → event instance → spatial → active cell → recipient → active recipient.
  • Description — the property's function and timing.

InitialState

Defines the number of event instances to create at simulation start-up.

  • Result: A set of event instances.
  • Default: One instance.
  • Context:
    • Preliminary expressions: global
    • Main expression: global
    • Consequent expressions: event instance
  • Description: The main expression defines the number of event instances to create at simulation start. Preliminary expressions are evaluated once; consequent expressions are evaluated for each new event instance. Event variables are not available in the preliminary context (no instance exists yet). After each instance is created, ReturnTime is evaluated to schedule it for future processing.

Figure: InitialState flow — Preliminary expressions → Main expression → for each event instance: Create instance → InitialState consequent expressions → process instance via ReturnTime.

(Diagram from original documentation — to be recreated)


ReturnTime

Defines the interval between creation of new event instances and when they are processed.

  • Result: Schedule a new event instance on Q for future processing.
  • Default: Schedule the event to be processed exactly once at simulation start-up (ReturnTime = 0).
  • Context:
    • Preliminary expressions: event instance
    • Main expression rt(S): event instance
    • Consequent expressions: event instance
  • Description: When an event instance is created, the preliminary expressions and main expression rt(S) are evaluated. The instance is scheduled to be processed rt(S) time units in the future. When taken off Q, consequent expressions are evaluated, then EventLocation is invoked to begin initiation. Once initiation completes, a new instance is created — its initial variable values are copied from the previous instance. Note: a spreading event instance may not have terminated before the next instance is created.

Figure: ReturnTime flow — Preliminary expressions → Main expression → Schedule on Q → (time passes) → Consequent expressions → Initiation.

(Diagram from original documentation — to be recreated)


EventLocation

Defines the set of potential cells in which an event can initiate.

  • Result: A set of spatial locations for potential initiation (InitRegion).
  • Default: Every cell in the landscape.
  • Context:
    • Preliminary expressions: event instance
    • Main expression: event instance (must be a region expression)
    • Consequent expressions: spatial
  • Description: The region returned by the main expression defines the landscape as seen during initiation via ProbInit and NumClusters. Only cells in InitRegion are candidates for initiation. Preliminary expressions are evaluated once; consequent expressions are evaluated in each cell of InitRegion. Consequent expressions can refer to layer variables but not active cell variables (active cells have not yet been created at this point).

Figure: EventLocation flow — Preliminary expressions → Main expression → Consequent expressions (for each cell in region) → Initiate cells.

(Diagram from original documentation — to be recreated)


ProbInit

Defines the probability (relative or absolute) that an event will initiate in a particular cell.

  • Result: A transient probability surface over InitRegion, with a floating-point initiation potential pInit for each cell.
  • Default: Every cell in InitRegion has value 1.0.
  • Context:
    • Preliminary expressions: spatial
    • Main expression pi(S): spatial
    • Consequent expressions: active cell
  • Description: Preliminary expressions and pi(S) are evaluated for each cell in InitRegion. The value is normally between 0 and 1 for absolute probabilities. Cluster and active cell variables cannot be referenced in preliminary/main expressions (no active cells exist yet). Consequent expressions are evaluated only in cells where the event actually initiates (determined by NumClusters).

Figure: ProbInit flow — Preliminary expressions (per cell in region) → Main expression (per cell in region) → [cells where event initiates via NumClusters] → Consequent expressions.

(Diagram from original documentation — to be recreated)


NumClusters

Defines the number of clusters (initiation cells) for an event instance.

  • Result: A set of active cells derived from InitRegion and pInit.

  • Default: Each cell in InitRegion is tested independently using pInit as an absolute probability — the number of initiating cells is emergent (unbounded).

  • Context:

    • Preliminary expressions: event instance
    • Main expression nc(S): event instance
    • Consequent expressions: active cell
  • Description: Once ProbInit has produced the probability surface pInit, NumClusters determines how many cells to initiate. Cells are selected stochastically from InitRegion with relative probabilities from pInit. Consequent expressions for both NumClusters and ProbInit are evaluated in each initiated cell.

    If NumClusters is not defined (or evaluates to < 0), cells are selected independently using pInit as an absolute probability.

Figure: NumClusters flow — Preliminary expressions → Main expression → Select N locations from InitRegion → for each: Create cluster + active cell → NumClusters and ProbInit consequent expressions → Initiate event in cell.

(Diagram from original documentation — to be recreated)


Transitions

Defines whether the event occurs in an active cell.

  • Result: Either a continuing or a terminating active cell.
  • Default: The event occurs (continues).
  • Context:
    • Preliminary expressions: active cell
    • Main expression tr(S): active cell (Boolean)
    • Consequent expressions: active cell
  • Description: When an active cell initiates (via initiation or spread), preliminary expressions and tr(S) are evaluated. If tr(S) is TRUE (> 0), the event occurs: consequent expressions are evaluated and spreading is attempted (via SpreadTime). If FALSE, the active cell terminates without spreading or consequent expressions.

Figure: Transitions flow — Preliminary expressions → Main expression → if TRUE: Consequent expressions → Schedule spread; if FALSE: terminate active cell.

(Diagram from original documentation — to be recreated)


SpreadTime

Defines the time between occurrence of an event in a cell and its spread to neighbouring cells.

  • Result: Schedule an active cell on Q for future spread processing.

  • Default: Event does not spread.

  • Context:

    • Preliminary expressions: active cell
    • Main expression st(S): active cell
    • Consequent expressions: active cell
  • Description: After occurrence (Transitions = TRUE), preliminary expressions are evaluated, then st(S) determines how far in the future the active cell schedules its spread. After spreading is processed, consequent expressions are evaluated and the active cell terminates.

    Immediate mode: If st(S) is negative, spreading bypasses Q and is processed immediately using a temporary internal queue for the cluster. The magnitude orders cells within that queue (e.g. −1 is processed before −2). This allows patches to spread completely before the next cluster initiates. Use with caution: a model that allows immediate spreading repeatedly to the same cell can create infinite loops.

Figure: SpreadTime flow — Preliminary expressions → Main expression → Schedule on Q → (time passes) → Process spreading → Consequent expressions → active cell terminates.

(Diagram from original documentation — to be recreated)


SpreadLocation

Defines the set of potential cells to which an active cell can spread.

  • Result: A set of spatial locations for potential spread (SpreadRegion).
  • Default: The four cardinal neighbours (north, south, east, west).
  • Context:
    • Preliminary expressions: active cell
    • Main expression: active cell (must be a region expression)
    • Consequent expressions: recipient
  • Description: The region defines the landscape seen during spread via SpreadProb and NumRecipients. Only cells in SpreadRegion are spread candidates. Preliminary expressions are evaluated once; consequent expressions in each cell of SpreadRegion. Consequent expressions can refer to cluster variables and — via the SOURCE prefix — to the source spreading cell's layer and cell variables. Active cell variables of the recipient cells are not available (they have not yet been activated).

Figure: SpreadLocation flow — Preliminary expressions → Main expression → Consequent expressions (for each cell in region) → Spread to cells.

(Diagram from original documentation — to be recreated)


SpreadProb

Defines the probability (relative or absolute) that an active cell will spread to a particular cell.

  • Result: A transient spread probability surface over SpreadRegion with a floating-point value pSpread for each cell.
  • Default: Every cell in SpreadRegion has value 1.0.
  • Context:
    • Preliminary expressions: recipient
    • Main expression sp(S): recipient
    • Consequent expressions: active recipient
  • Description: Preliminary expressions and sp(S) are evaluated for each cell in SpreadRegion. Consequent expressions are evaluated only in cells that the active cell actually spreads to (determined by NumRecipients). Since the source spreading cell is still active, SOURCE-prefixed layer and cell variables refer to values at the source. The consequent context (active recipient) additionally includes active cell variables for the newly activated cell.

Figure: SpreadProb flow — Preliminary expressions (per cell in region) → Main expression (per cell in region) → [cells spread to via NumRecipients] → Consequent expressions.

(Diagram from original documentation — to be recreated)


NumRecipients

Defines the number of cells to which to spread.

  • Result: A set of active cells derived from SpreadRegion and pSpread.

  • Default: Each cell in SpreadRegion is tested independently using pSpread as an absolute probability — the number of cells spread to is emergent (unbounded).

  • Context:

    • Preliminary expressions: active cell
    • Main expression nr(S): active cell
    • Consequent expressions: active recipient
  • Description: After SpreadProb has produced the spread probability surface, NumRecipients determines the target number of cells to spread to. Cells are selected stochastically from SpreadRegion with relative probabilities from pSpread. Consequent expressions for both NumRecipients and SpreadProb are evaluated in each newly activated cell (active recipient), then Transitions is invoked for each new cell.

    If NumRecipients is not defined (or < 0), cells are selected independently using pSpread as an absolute probability.

Figure: NumRecipients flow — Preliminary expressions → Main expression → Select N locations from SpreadRegion → for each: Create active cell in same cluster → NumRecipients and SpreadProb consequent expressions → Initiate event in cell.

(Diagram from original documentation — to be recreated)


EndCluster and EndEvent

EndCluster is processed when a cluster terminates (no more active cells in the cluster). EndEvent is processed when an event instance terminates (no more active clusters). In SELES 10, only the preliminary context of these two properties is defined — the main expression is undefined. They provide a finalisation context useful for cleanup or output at the end of a cluster or event instance.