Agent Based Modeling
Resources:
Agent Based Modeling in Python using Mesa
We will install ABM framework MESA, run some example models, and then modify and expand the fire model to reuse it as a tree disease spread model.Installation
Use pip to install Mesa, note that Mesa requires Python 3:pip install mesa
Test if successfull:
mesa --help
# alternatively ~/.local/bin/mesa --help
Download Mesa v0.8.5, unzip and in command line go to examples folder,
pick an example folder (for example Schelling
) and install dependencies:
pip install -r requirements.txt
mesa runserver
Inspect the code in model.py
defining the agent rules.
From fire to disease spread ABM
Copy folderforest_fire
and rename it to disease_spread
.
Now run the model in the same way and observe the behavior.
Inspect the code in model.py
, agent.py
and server.py
.
Now the task is to change and expand the forest fire model to represent a tree disease spread simulation. Start by renaming the categories: "On Fire" to "Infected", "Burned Out" to "Dead". Then independently work on these possible tasks, or come up with your own rules and behaviors:
- Change mortality to have trees die after a specified number of steps
- Add stochastic behavior, for example, infect neighbor only with certain probability
- Increase distance how far the disease can spread
(use
model.grid.iter_neighbors
) - Implement prevailing spread direction, can be stochastic
- Add another agent (use
MultiGrid
) who is doing random walk and spreading disease - Add slider/dropdown box to the web interface to interactively explore the effects
Modeling coupled human and natural systems using MedlanD
Things to download: Start GRASS in the provided Location and create new mapset. Unzip the reclassification rules to a directory and place there the scripts r.agropast.adaptive2.py and r.landscape.evol2.py. Change to the directory where the rule files and the scripts are and run the simulation for 3 iterations:python3 r.agropast.adaptive2.py -1 numpeople=30 years=3 prefx=sim costsurf=farm_catch_10yr_30ppl_cost_surface agcatch=farm_catch_10yr_30ppl grazecatch=graze_catch fodder_rules=fodder_rules.txt inlcov=init_veg infert=init_fert lc_rules=luse_reclass_rules.txt cfact_rules=cfactor_recode_rules.txt elev=DEM initbdrk=init_bdrk