NetLogo Models Library:
This model is a simulation of soil erosion by water. The user is presented with an empty terrain. Rain falls on the terrain and starts to flow downhill. As it flows, it erodes the terrain below. The patterns of water flow change as the terrain is reshaped by erosion. Eventually, a river system emerges.
The soil is represented by gray patches. The lighter the patch, the higher the elevation. Water is represented by blue patches. Deeper water is represented by a darker blue. Around the edge of the world is a "drain" into which water and sediment disappear.
Each patch has a certain chance per time step of receiving rain. If it does receive rain, its water depth increases by one.
The model uses the following naive model of flowing water. Water flows to the adjacent patch where the water level is lowest, as long as that patch is lower than the source. The amount of flow is proportional to the difference in level, so that the water level on the two patches is (if possible) equalized.
Erosion is represented by decreasing the elevation of the source patch a bit when flow occurs. The amount of erosion is proportional to the amount of flow.
The SETUP button generates a terrain. The smoothness of the terrain is controlled by the TERRAIN-SMOOTHNESS slider. Lower values give rougher terrain, with more variation in elevation. If you want a perfectly flat terrain, turn off the BUMPY? switch. If you want to start out with a hill in the middle, turn on the HILL? switch.
The GO button runs the erosion simulation.
You can use the HIDE-WATER button to make the water vanish so you can see the terrain beneath.
The RAINFALL slider controls how much rain falls. For example, if RAINFALL is 0.1, then each patch has a 10% chance of being rained on at each time step.
The SOIL-HARDNESS slider controls how "hard" or resistant to erosion the soil is. Higher values will cause the soil to be harder, and less likely to erode, while lower values will cause the soil to erode more quickly. A value of 1.0 means that the soil will not erode at all.
Initially, the world is covered by lakes. Then rivers start to form at the edge of the world. Gradually, these rivers grow until they have drained all the lakes.
Use the HIDE-WATER button to make the water invisible, and observe the terrain.
Experiment with the effect of the different sliders on the appearance of the resulting rivers.
See what happens when you start with a perfectly flat terrain. (Is what happens realistic, or does it reveal limitations of the model?)
See what happens when you start with a hill.
Add evaporation. Does this alter the behavior of the system in interesting ways?
Add "springs" -- point sources from which new water flows.
Add indicator turtles to show the direction and magnitude of flow on each patch.
Experiment with the rules for water flow. Currently, all of the water simply flows to the lowest neighbor. Would a more elaborate rule produce different results?
Add multiple soil types to the terrain, so that the land is of varying hardness, that is, varying speed of erosion.
What would it take to get river deltas to form? You'd need to model sediment being carried by water and then deposited.
Only patches are used, no turtles.
The code depends on agentsets always being randomly ordered.
Here is an eroded volcano in Kamchatka with a strong resemblance to this model: https://email@example.com,157.338467,7882m/data=!3m1!1e3?dg=dbrw&newdg=1
Thanks to Greg Dunham and Seth Tisue for their work on this model.
If you mention this model or the NetLogo software in a publication, we ask that you include the citations below.
For the model itself:
Please cite the NetLogo software as:
Copyright 2004 Uri Wilensky.
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at firstname.lastname@example.org.
This model was created as part of the projects: PARTICIPATORY SIMULATIONS: NETWORK-BASED DESIGN FOR SYSTEMS LEARNING IN CLASSROOMS and/or INTEGRATED SIMULATION AND MODELING ENVIRONMENT. The project gratefully acknowledges the support of the National Science Foundation (REPP & ROLE programs) -- grant numbers REC #9814682 and REC-0126227.