Spatio-Temporal State Space
A spatio-temporal state space (or simply, state space) is the set of all spatial and non-spatial variables and constants — including their ranges of values and spatial bounds — combined with a time unit.
- Global and spatial constants do not vary over time by definition. Spatial constants may vary over space (e.g. elevation); global constants do not.
- Global variables may vary over time but not space (e.g. cumulative area burned).
- Spatial variables may vary over both space and time (e.g. tree stand age).
3.1 Defining a Spatio-Temporal State Space
A SELES dynamic model (defined in a .sel file) defines the state space as well as the set of landscape events that change state variables over time during a simulation.
A SELES state space can consist of the following element types:
| Type | Varies over space? | Varies over time? | Example |
|---|---|---|---|
| Global constant | No | No | MaxStandAge — maximum representable stand age |
| Global variable | No | Yes | FireRotation, WindDirection — broad-scale state accessible by any event |
| Spatial constant | Yes | No | Elevation — assuming geologic processes are not modelled |
| Spatial variable | Yes | Yes | StandAge — changes through disturbance and succession |
Parameters can generally be viewed as any input that sets the initial conditions of a model, though most often they refer to elements of the state space designed to be modified between scenarios.
Global constants and variables may be single values, one-dimensional arrays (vectors), or two-dimensional arrays (matrices).
3.2 Spatio-Temporal Contexts
At its core, SELES is a tool to define a state space and models of processes (landscape events) that navigate that state space over time, making changes to state variables. The simulation engine carries out this defined process.
The time and place of landscape change is abstractly called a spatio-temporal context (or simply, context). Examples include:
- The time and place a stand-replacing fire burns a stand (e.g. stand age set to 0).
- The time and place a road is built (e.g. changes to road and land cover layers).
- The time and place a logging cutblock is initiated (e.g. changes to target block size).
- The time at which fire rotation changes due to climate change (no spatial location in this case).
- The time at which spatial or non-spatial output is written to file (contexts also cover model control).
In a spatio-temporal context, the model has access to variable values unique to that time and grid cell. Variables and constants at that time and place can be used to modify event behaviour, and the event can modify those variables in turn.
In practical terms, a context is the set of variables available in a given section of a landscape event.
Context Types
The general process algorithm of landscape events can be mapped to specific context types:
| Step | Context Type | Description |
|---|---|---|
| Simulation start-up (Initial State) | Global Context | No spatial location, no active process |
| Event recurrence (Return Rate) | Event Instance Context | Non-spatial; active event instance not yet initiated in any cells |
| Event initiation | Spatial Context → Active Cell Context | Identifies cells in which event initiates; moves from potential cells to active ones |
| Occurrence test | Active Cell Context | Tests if event continues; terminates cell if test fails |
| Event spread | Active Cell Context → Recipient Context → Active Recipient Context | Identifies cells to spread to; creates new active cells |
| Post-spread | Active Cell Context | Spreading cell deactivated; recipients become active cells; loop continues with occurrence testing |
Figure 4 — Spatio-temporal contexts associated with steps of the general landscape event process algorithm. Contexts progress from Global → Event Instance → Spatial → Active Cell → Recipient → Active Recipient.
(Diagram from original documentation — to be recreated)
Why Contexts Matter
Certain state information is only available in certain contexts, and this can be essential for modelling specific processes. For example, a wildfire model that tracks fire intensity may need a unique intensity value for each burning cell (available in an Active Cell Context). When the fire spreads, the intensity of a new burning cell can depend on the intensity of the spreading cell — accessed during the spread step in an Active Recipient Context, before the spreading cell terminates.