Guide No: 1.0 version
DKWC
Please visit https://rpubs.com/HeatWave2019
Keywords: Agent-based Model, Tree burnt, Simulation
Aug. 9 2021
using Agents, Random
using InteractiveDynamics
using CairoMakie
@agent Automata GridAgent{2} begin endgridlength_x = 200
gridlength_y = 100
function forest_fire(; density = 0.7, griddims = (gridlength_x , gridlength_y ))
space = GridSpace(griddims; periodic = false, metric = :euclidean)
forest = ABM(Automata, space; properties = (trees = zeros(Int, griddims),))
for I in CartesianIndices(forest.trees)
if rand(forest.rng) < density
forest.trees[I] = I[1] == 1 ? 2 : 1
end
end
return forest
endforest = forest_fire()function tree_step!(forest)
for I in findall(isequal(2), forest.trees)
for idx in nearby_positions(I.I, forest)
if forest.trees[idx...] == 1
forest.trees[idx...] = 2
end
forest.trees[I] = 3
end
endstepnumber = 10
Agents.step!(forest, dummystep, tree_step!, stepnumber)
count(t == 3 for t in forest.trees)