## 3 Methodology
### Model Parameterization
#### 3.1.2 Specifying Transition Rules  
The _Specify Transition Rules_ tool was developed to facilitate specification of explainable rule tables. Through a rule table structure [71], users can trace rule mechanisms that generate larger-scale patterns. The tool interface supports typical \"create, read, update, and delete\" (CRUD) operations applied to _Transition Rule_ files (\"._tr_) produced by the tool. There are no limits to the number of rules users can specify in _Transition Rule_ files. Once a _Transition Rule_ file is specified, it can be provided to the _Advanced CA_ tool described in Section 3.2. The initial version of the _Geographic Automata_ add-in supports five basic transition rule types that either generate or limit potential transitions based on previous works (Section 2.1). Generative rules include _Neighborhood-Based_, _Cell-Level_, and _Stochastic Disturbance_ rules, while _Allocation and Quantity_ and _Constraint_ rules limit propagation of changes (Figure 3). Figure 4 presents the UML diagram of _Transition Rule_ objects, which require a current state, the next state, and rule conditions. The generative rule types also offer a _Probability_ parameter that can be set to 100% to ensure deterministic behaviors. All rule types operate by modifying an intermediate raster grid before producing the outcome for the model iteration or timestep. Neighborhood-Based Rules  
A _Neighborhood-Based_ rule is used to propagate changes based on neighborhood conditions. Rules of this type require a current state (\(S_{T}\)), the possible next state (\(S_{T+1}\)), the cell state to search for within each cell's neighborhood (\(S_{T}^{N}\)), a neighborhood function (\(N_{T}\)) provided as an *._nb_ file, neighborhood composition conditions (\(min\leq\sum S_{T}^{N}\leq max\)), and the likelihood of the transition to occur (\(P\)). Numerous _Neighborhood-Based_ rules can be specified to represent behaviors for each cell state or class [72], to capture varying influences at different neighborhood extents [31], or to set separate transition probabilities for specific neighborhood conditions [11]. Additionally, the next state (\(S_{T+1}\)) is not required to be the same as the cell state being searched for in the cell's neighborhood (\(S_{T}^{N}\)). This supports portrayal of behaviours like \"road-influenced growth\" [30; 73], varying urban expansion patterns depending on nearby land use types [74], or presence of snow cover nearby [75]. Figure 3: An example of the _Transition Rules_ tool window. Each tab presents form-like inputs and buttons unique to each of the five rule types. A _Cell-Level_ rule is used to insigate changes based exclusively on a cell's current state. Rules of this type require a current state (\(S_{T}\)), the possible next state (\(S_{T+1}\)), and the likelihood of the transition to occur (\(P\)). A _Cell-Level_ rule can implement cell-level changes such as eventual plant death or exhaustion of resources [76], wildfire progression from newly burning, growing, to extinguished [77; 78], or spontaneous urban growth without proximity requirements [73]. Stochastic Disturbance Rules  
While modeling some phenomena may benefit from global random disturbance mechanisms, propagation of change is more often driven by nearby conditions [64]. A _Stochastic Disturbance_ rule is used to generate changes at locations featuring some \"affected state\" (\(S_{T}^{a}\)) within some cell distance (\(d_{min}\), \(d_{max}\)) from an \"emitter state\" (\(S_{T}^{c}\)) with a given probability (\(P\)). The possible next state of an affected cell is equivalent to \(S_{T+1}=S_{T}^{c}\). Each \"edge cell\" of the emitter state is permitted to propagate one stochastic disturbance if the probability mechanism is satisfied and if the potential change does not violate the minimum distance requirement of other emitter cells. A _Stochastic Disturbance_ rule can be used to implement behaviors like forest fire spotting [23] or invasive plant species propagation [76].