-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathadvancedModeling.Rmd
More file actions
289 lines (177 loc) · 13.1 KB
/
advancedModeling.Rmd
File metadata and controls
289 lines (177 loc) · 13.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
---
title: "Advanced Options"
author:
date:
output:
html_document:
fig_caption: false
toc: yes
toc_depth: 4
toc_float:
collapsed: false
smooth_scroll: false
---
```{r function, message=FALSE, warning=FALSE, include=FALSE}
my_plot_hook <- function(x, options) {
base <- knitr::opts_knit$get('base.url')
if (is.null(base)) {
base <- ""
}
alt <- ifelse(is.null(options$alt), "", options$alt)
cap <- ifelse(is.null(options$caption), "", options$caption)
tit <- ifelse(is.null(options$title), "", options$title)
w <- options[['out.width']]
h <- options[['out.height']]
if (!is.null(w) | !is.null(h)) {
str <- paste(c(sprintf('width=%s', w),
sprintf('height=%s', h)), collapse = " ")
str <- paste("{", str, "}")
}
if (cap == "") {
sprintf('%s\\', alt, base, x, paste0("'", tit, "'"), str)
}
else {
sprintf('%s\\\n\n<blockquote><p class = "caption">%s</p></blockquote>', alt, base, x, paste0("'", tit, "'"), str, cap)
}
}
```
```{r setHook, message=FALSE, warning=FALSE, include=FALSE}
library("knitr")
knit_hooks$set(plot = my_plot_hook)
```
***
### This page:
+ Describe *some* of the advanced modeling options available in [ST-Sim](https://syncrosim.com/packages/){target='blank'}
+ Explore ways to manipulate transition targets, multipliers, and state and transition attributes
+ Investigate the + and - of using spatial models
***
We have just skimmed the surface of the possibilities to begin working in the [ST-Sim](https://syncrosim.com/packages/){target='blank'} platform. Here we briefly describe a few advanced modeling options; more detailed descriptions of these can be viewed at the [Apex website](http://www.apexrms.com/){target='blank'} and documentation specific to ST-Sim can be found [here](http://docs.stsim.net/){target='blank'}. Several videos below were developed by Apex so they are considerably longer and more detailed than other videos on this website.
Visit the websites above to ensure you are seeing the latest version of the software. We encourage you to explore other advanced modeling options once you are familiar with the platform, but to not jump too quickly into advanced modeling options or complex models. This can cause confusion and slow progress.
**Ecosystems management is complex**. As you model you will most likely ask “*what if I could (fill in the blank) in the model*?"
```{r sagePhoto, echo = FALSE}
cap_txt <- "© TNC. Controlled burn in Shawnee County, Kansas"
alt_txt <- "I really want some coffee."
title_txt <- "Controlled burn in grasslands with dark purple sky"
img_location <- "images/kansas.jpg"
```
<div style= "float:right; padding:20px;width:50%;">
```{r, echo=FALSE, caption = cap_txt, alt = alt_txt, title = title_txt}
knitr::include_graphics("images/kansas.jpg")
```
</div>
Here we demonstrate how to address potential scenarios that you may encounter in your modeling process:
* **Implement limits:**
+ Ex: you may ask “_what would happen if we applied 1,000, 2,000 or 3,000 ha of controlled burning per year?_” Syncrosim can help answer that question.
* **Add variability to annual disturbance probabilities:**
+ Ex: an ecosystem may experience an insect that has relatively predictable population cycles, with maximum population size every 7 years. You can incorporate this in SyncroSim.
* **Apply and track attributes:**
+ Ex: you may know that a “value” of interest (i.e. some beetle species) occurs exclusively within a state class. You can track these "values" in SyncroSim.
<br>
## Transition Targets
The **transition targets property** allows the modeler to define targets/limits for the area to transition over time across the landscape for specific types of transitions. Targets can be established as operational constraints based on area, or when costs are added on available budgets. The target can be specified by iteration, BpS, and timestep.
```{r transTargets, echo = FALSE}
cap_txt <- "Screenshot of the SyncroSim modeling environment."
alt_txt <- "I really want some coffee."
title_txt <- "Screenshot of the SyncroSim modeling environment, specific scenario with a blue arrow pointing to Transition Targets on the top row of tabs."
img_location <- "images/transition-targets.JPG"
```
```{r, echo=FALSE, caption = cap_txt, alt = alt_txt, title = title_txt, out.width='70%'}
knitr::include_graphics("images/transition-targets.JPG")
```
For example, you can limit the amount of any probabilistic transition/disturbance to a specific number of acres in each timestep and iteration for a BpS based on the budget you expect to be available, or on the operational constraint created by your organization’s capacity or regulatory issues. If you expect your budget or capacity to increase over time, you can increase the target over the timesteps. This option is available for all disturbances/probabilistic transitions.
Note that you can also set transition targets using a **probability distribution** (such as Normal, Uniform or Beta) if you believe the transition target constraint will vary over time according to distribution (rather than a specific amount). Once selected, you can specify the standard deviation, minimum and maximum values for the distribution, and how often to draw a new value from the distribution.
<br>
## Transition Multipliers
It is useful to be able to vary transition probabilities over time not just operational limits (see Transition Targets). **Transition multipliers** allow the user to modify how often a probabilistic transition/disturbance/change will be imposed on a pixel across timesteps or iterations.
```{r transMults, echo = FALSE}
cap_txt <- "Screenshot of the SyncroSim modeling environment."
alt_txt <- "I really want some coffee."
title_txt <- "Screenshot of the SyncroSim modeling environment, specific scenario with a blue arrow pointing to the tab called Advanced on the top row of tabs and Transition multipliers."
img_location <- "images/transition-multipliers.JPG"
```
```{r, echo=FALSE, caption = cap_txt, alt = alt_txt, title = title_txt, out.width='70%'}
knitr::include_graphics("images/transition-multipliers.JPG")
```
For example, under different climate change scenarios, transition probabilities will vary over time (i.e. fire may increase, succession/growth may speed up or slow down, strata may change locations on the landscape). The **transition multiplier values property** specifies multipliers to be applied to transition probabilities over the course of the simulation (i.e. increase the amount of thinning by 50% for the first 10 timesteps, and then increase by 100% for the remaining timesteps). The user can also use an **expected distribution of multipliers** they create from past events or recent information, or they can select the Beta or Normal statistical distributions packaged with the software. Using statistical distributions may require additional information such as minimum, maximum and standard deviation.
### Temporal Variability in Transitions
<center>
<iframe width="896" height="504" src="https://www.youtube.com/embed/rLrsHQ-Z5ww" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</center>
<br>
### Statistical Variability
A second application of the **transition multiplier** is when the modeler wishes to incorporate statistical variability into the model parameters over the timesteps and iterations because the actual value is unknown or varies across timesteps.
For example, the probability of fire can vary each year. We can use **transition multipliers** to sample fire probabilities from a fire history we provide, or from a statistical distribution (instead of using a single probability over time or varying the probability by specific amounts).
<br>
### Transition multipliers & BpS
These videos describe how transition multipliers have been used with LANDFIRE BpS models.
<center>
<br>
<iframe width="896" height="504" src="https://www.youtube.com/embed/86AC9e8H9vg" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</center>
<br>
For a more detailed description of using a distribution as a transition multiplier in a real application view [this video.](https://www.youtube.com/embed/d855SupanQU?start=3){target='blank'}
<br>
## State and Transition Attributes
Suppose that you wish to estimate values that are associated with various model states and/or model transitions. Attributes can be used to roll up simulation results according to areas aggregated by either state classes or transitions.
```{r transAtts, echo = FALSE}
cap_txt <- "Screenshot of the SyncroSim modeling environment."
alt_txt <- "I really want some coffee."
title_txt <- "Screenshot of the SyncroSim modeling environment, specific scenario with a blue arrow pointing to the tab called Advanced on the top row of tabs and Attributes on the left side of the screen."
img_location <- "images/transition-attributes.JPG"
```
```{r, echo=FALSE, caption = cap_txt, alt = alt_txt, title = title_txt, out.width='70%'}
knitr::include_graphics("images/transition-attributes.JPG")
```
For example, how much smoke would be produced in a surface fire in a specific seral state (add an attribute reflecting average smoke production to surface fire transition)?
What is the total habitat score for a particular species under each simulated scenario (add a habitat value score attribute to each seral state)? These values can then be summarized over the simulations to provide additional results that can be compared across scenarios. Do I produce more or less smoke in this scenario? Do I increase or decrease the habitat score in this scenario?
>Transition Targets, Transition Multipliers and Attributes can all be combined.
Here's one application example from [Apex RMS](http://www.apexrms.com/){target='blank'}
<center>
<br>
<iframe width="896" height="504" src="https://www.youtube.com/embed/u2pqHG3694Q" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</center>
<br>
We encourage you to progress slowly and use advanced modeling options step-by-step. Doing so will allow you to understand your model, explain the results, and troubleshoot problems. These things become more difficult as the model increases in complexity.
<br>
<br>
## Spatial Models
We have demonstrated how to modify and apply STSMs aspatially. However, ST-Sim does allow the user to run these models using spatial functionality _if_ the required data sets and information are available.
```{r spatialModeling, echo = FALSE}
cap_txt <- "Screenshot of the SyncroSim modeling environment."
alt_txt <- "I really want some coffee."
title_txt <- "Screenshot of the SyncroSim modeling environment, specific scenario with a blue arrow pointing to the tab called Run Control and blue arrow pointing to Run model spatially."
img_location <- "images/spatial.JPG"
```
```{r, echo=FALSE, caption = cap_txt, alt = alt_txt, title = title_txt, out.width='70%'}
knitr::include_graphics("images/spatial.JPG")
```
A map of initial conditions can be specified as input to the STSM which can then produce a post-simulation output map. In addition, some “contagion” functionality is available that allows for disturbances to “spread” across the simulated landscape from a starting point (fire, insects/disease, etc.).
```{r spatialTransMults, echo = FALSE}
cap_txt <- "Screenshot of the SyncroSim modeling environment."
alt_txt <- "I really want some coffee."
title_txt <- "Screenshot of the SyncroSim modeling environment, specific scenario with a blue arrow pointing to the tab called Transition spatial initiation multipliers."
img_location <- "images/spatial multiplier.JPG"
```
```{r, echo=FALSE, caption = cap_txt, alt = alt_txt, title = title_txt, out.width='70%'}
knitr::include_graphics("images/spatial multiplier.JPG")
```
### Limitations
Running these models spatially can provide significant value, however, there are two cautions:
1. significant input information is required to make this spatial option useful
2. we recommend completing a thorough review of your model aspatially** to ensure you are satisfied before moving to the spatial option
<br>
<br>
## Spatial Modeling Using St-Sim
Incorporating spatial functionality increases the complexity of the model as well as the modeling options. Additional training or support from Apex RMS may be warranted as you move toward spatial implementation.
<br>
<br>
Spatial Modeling Using ST-Sim
<br>
<center>
<iframe width="896" height="504" src="https://www.youtube.com/embed/k0UeCCIGuf4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</center>
***
### What's next?
+ learn how to incorporate [climate change](./climateChange.html){target='blank'} impacts into BpS models
+ see a simple set of simulations (designed to reflect climate change impacts) and how they may impact our [Inter-Mountain Basins Montane Sagebrush Steppe BpS](./ModelingWork.html){target='blank'}
<div class="tocify-extend-page" data-unique="tocify-extend-page" style="height: 0;"></div>