# Forest Fires, Epidemics and Models

## What can forest fires tell us about epidemic modelling?

--

Using code, we can simulate forest fires. This is often an introductory lesson in programming languages.

This simple model of a forest fire can inform us about the epidemic spread of diseases.

# Setting up the lattice

In R, there is the *igraphs* package. This package can make lattice graphs.

The basic lattice sets up a grid where each vertex connects to its four adjacent neighbours. Mathematicians call that central vertex and those four neighbours the **von Neumann neighbourhood**.

`test_lattice <- make_lattice(length = 5, dim = 2, nei = 1)`

test_lattice %>% plot(layout = layout_on_grid)

For forest fires, diagonal connections to each vertex are important too.

There is no setting in the *make_lattice *function for these extra connections. We need to create the extra edges, and add them.

`extra_edges_df <- tibble(x = as.numeric(1:20,`

w = case_when(x %% forest_length == 1 ~ NA_real_,

TRUE ~ x + forest_length - 1),

z = case_when(x %% forest_length == 0 ~ NA_real_,

TRUE ~ x + forest_length + 1)) %>%

pivot_longer(cols = 2:3,

names_to = "column",

values_to = "y",

values_drop_na = TRUE) %>%

select("x", "y")

The *add_edges* function takes matrices in a counter-intuitive way.

`extra_edges_v <- cbind(extra_edges_df$x, extra_edges_df$y)`

%>% t() %>% c()

We can then add these edges on.

`test_lattice_added <- test_lattice %>% add_edges(edges = extra_edges_v)`

test_lattice_added %>% plot(layout = layout_on_grid)

Mathematicians call a vertex and its eight neighbours the **Moore neighbourhood**.

We can then set up fixed or probabilistic rules for the three different states:

**Alive:**the tree is green, and could be set on fire by neighbouring trees.**On fire:**the tree is on…