Skip to content

mlmac-seid/river-meanders-impermeable-surfaces

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

The River Meanders and Impermeabe Surfaces Model

Work completed for EES 4760 at Vanderbilt University. This model was developed as an extension of the River Meanders model from the NetLogo Models Library. The extension of the model includes impermeable surfaces to determine how the distance and permeability of surfaces in the built environment affects the sinuosity of a river.

Overview

Purpose and Patterns

The purpose of this model is to illustrate how impermeable surfaces affect the way a river meanders along its middle course. Specifically, the model illustrates both how the permeability of a surface affects how a river meanders and how the distance from an impermeable surface to a river's middle course affects how a river meanders. The main pattern that this model aims to measure is how the sinuosity of the river changes over time. Sinuosity is a measurement of how much a river meanders.

State Variables and Scales

The model has four agents: Land patches, Water turtles, Flow turtles, and Surface patches. This model has world wrapping turned off, giving the environment borders.

Land patches are green and represent land where neither the river is running nor an impermeable surface is present.

Water turtles are blue and represent a section of the water in the river. The water turtles contain physical characteristics including depth, amount of sediment deposited, and whether the turtle is a source or a drain. Connected paths of water turtles between a source and a drain form a flow gradient that represents the water flow direction.

Flow turtles are white and represent the highest velocity of the flow of the river. Flow turtles move with the flow gradient from sources to drains and also flow in the center of the river, where water is the fastest. Flow turtles drive the erosion and deposition processes.

Surface patches are black and represent impermeable surfaces. The characteristics of surface patches are permeability (a measure of the ability of water to flow through the surface), distance from the river’s center, and percent-water (the percentage of the patch that contains water).

Simulations in this model are 2,500 ticks long. The maximum and minimum x- and y-coordinates are 64 and -64 and the origin of the environment is located in the center.

Process Overview and Scheduling

The two processes that occur during each tick in this model are erosion and deposition.

During each tick, sediment is first deposited on all of the Water turtles. This increases each Water turtle’s “sediment-amount” by 1% each tick. When a Water turtle’s“sediment-amount” reaches 100%, that Water turtle is converted to a Land patch. After sediment is deposited, if a Flow turtle touches a Water turtle, it washes away some of the deposited sediment and the Water turtle’s “sediment-amount” is decreased by 15%.

Erosion occurs when a Flow turtle touches a Land patch, which converts that Land patch to a Water turtle. If a Flow turtle touches a Surface patch, it will not immediately convert to a Water turtle, but rather it will increase the Surface patch’s percent-water, depending on the permeability of the patch (if the patch is 50% permeable percent-water increases by 50%, if the patch is 15% permeable percent-water increases by 15%). Once the Surface patch’s percent-water reaches 100%, it will then convert to a Water turtle.

Design Concepts

Basic principles. The basic concept this model evaluates is how a river's shape changes as it flows over time.

Emergence. The main results from the model that are of interest are the sinuosity of the river over time and how the distance of an impermeable surface from the center of hte river and differences in a surface's permeability both affect the river's sinuosity. The results emerge from different distances betweenthe river's center and the impermeable surface and different permeability measures for the surfaces.

Adaptive behavior. This is a simpe model and neither the Water turtles nor Flow turtles exhibit adaptive behaviorbased on the sinuosity of the river. Since this model is examining a real world hydrological process, and not organizations or living things, there is no adaptive behavior in the model.

Sensing. Flow turtles can sense when they collide with a Land patch, Surface patch, or Water turtle.

Interaction. There are direct interactions between Flow turtles and Land patches, Flow turtles and Surface patches, and Flow turtles and Water turtles. These direct interactions dictate the erosion and deposition processes.

Stochasticity. There are two stochastic aspects of the model. Force is randomly added to simulate occasional random turbulence in the river flow. If the number of Flow turtles in the river reaches 1,500 a random subset equalling 30% of the Flow turtles will be deleted from the river to make the model run more smoothly.

Observation. The main output of the model is observed through the line graph that plots time (ticks) on the x-axis and sinuosity on the y-axis. Additionally, a monitor counts the number of Flow turtles as the model runs and another monitor updates the measure of sinuosity as the model runs.

Details

Initialization

To initialize the model, the create-terrain submodel is called. The Water turtles initialized have a size of 1.4, depth of 0, false source?, false drain?, 0 potential-energy, and 0 sediment-amount. Flow turtles are also initialized within the river where patches have an x-coordinate in between -2 and +2 by setting these patches' source? to true. Variables are also set to model defaults. This includes setting max-flow-speed to 40, flow-acceleration to 20, river-center-acceleration to 10, downwards-incline-force to 0.3, deposition? to true, erosion? to true, show-flow-gradient to false, show-flows? to false, impermeable? to false, permeability to 0, and surface-distance to 3.

Input Data

There is no input data for this model.

Submodels

Creating terrain. To create the terrain in the model environment, all patches are colored green as Land patches, except for patches that fall within -2 or +2 x-coordinates of the origin (center of the model environment), where Water turtles are initialized to create the river. If the impermeable? switch is true, impermeable Surface patches are created in the model environment and they are colored black. The permeability of the Surface patchesis determined by the slider in the model interface and the Surface patches' x-axis distance from the center of the river is also determiend by a slider in the model interface. Similar to the river, the Surface patches span the entire y-axis of the model environment.

Updating water. The depth of the Water turtles is updated based on how far the Water turtle is from the edge of the river. The maximum depth is 5 in the middle of the river and the depth decreases by 1 for each Water turtle outwards from the center of the river. The flow gradient is then updated such that the potential-energy of a source is 100 and the potential-energy of a drain is -100. Then, deposition occurs. Each tick, each Water turtle's sediment-amount increases by 1%. Once a Water turtle reaches 100% sediment, it turns into a Land patch.

Updating flows. If there is a Water turtle on the patch the Flow turtle is on, if that Water turtle’s sediment-amount is greater than or equal to 15, the sediment-amount is decreased by 15. Otherwise, it is set to 0 if it is less than 15. Set nearby-water to the Water turtles within a radius of 3 of the Water turtle. If there is no nearby-water, the Flow turtle dies. The minimum-potential-energy should be set to the minimum potential-energy of nearby-water. The nearby-min-water should be set to the nearby-water which has a potential-energy equal to min-potential-energy. The force direction should be set to heading. The x-coordinate force should be set to the mean x-coordinate of nearby-min-water. The y-coordinate force should be set to the mean y-coordinate of nearby-min-water. If the x-coordinate force does not equal the Flow turtle’s current x-coordinate and the y-coordinate force does not equal the Flow turtle’s current y-coordinate, the force-dir is set towards the x-coordinate force and the y-coordinate force. The add-force submodel is called with an input of the force direction and flow-acceleration. Random turbulence is added to the river 50% of the time and the force has a random heading from -6 to + 6 and a magnitude that is half of the flow-acceleration. The add-force submodel is called again with a direction input that is towards the nearby-water with maximum depth and a magnitude of river-center-acceleration. If the x-coordinate of the Flow turtle is greater than +3 or less than -3, the add-force submodel is called with a direction towards an x-coordinate of 0 and a magnitude of the x-coordinate squared times 0.005. This simulates a gravitational pull towards the center of the river. In order to simulate a gravitational force with the downwards incline, the add-force submodel is called with a direction of 180 and a magnitude of downwards-incline-force. The erosion submodel is then called. If there is a patch ahead of the Flow turtle’s current patch and there is a Water turtle on that patch, the Flow turtle moves forward a distance of 0.1 times speed and distance-traveled is set to distance-traveled plus 0.1 times speed. Otherwise, the Water turtle only moves forward 0.5 and distance-traveled is increased by 0.5. If there is no patch ahead and no water on it, the Flow turtle will die. If the Flow turtle reaches beyond the minimum y-coordinate, the Flow turtle dies. If the show-flows? switch is set to true, hidden? should be false, but if the switch is set to false, hidden? should be true.

Erosion. A Water turtle called this-water should be set to one-of water-here. A patch called following-patch should be set to 1 patch ahead of the current patch. If a following-patch exists and there is no water on the following-patch, check if the erosion? switch is true. If it is true, check if the following patch is a Land patch or Surface patch. If it is a Land patch, create water on the patch and set the potential energy of the water to the potential energy of this-water. If it is a surface patch, increase the Surface patch’s percent-water by a number equal to the Surface patch’s permeability. If the Surface patch’s percent-water equals 100, water is created on that patch and the potential energy of the water is set to the potential energy of this-water. Afterwards, the add-force submodel is called with an input direction of the Flow turtle’s heading plus 180 and a magnitude of speed + 0.1.

Updating sources and drains. Water flow is initialized from the top of the river by creating Water turtles within a radius of 1 patch of the top of the river. 2 Flow turtles are created in one of the patches in this radius of 1 patch around the top river patch. Within a radius of 5 patches from the top patch of the river, the heading of the Flow turtles is set to 180 and the speed of the Flow turtles is set to the max-flow-speed. To update the drain Water turtles along the bottom of hte river, the drain? of Water turtles with the minimum y-coordinate is set to true.

Creating water. In patches where water is created, the color of the patch is set to black and the Water turtles are sprouted. The shape of the Water turtles is square, the size is 1.4, depth is 0, color is blue + 1, soruce? is false, drain? is false, potential-energy is 0, and sediment-amount is 0.

Creating flows. This submodel takes an input number of flows and sprouts the inout number of Flow turtles on a patch. The color of flows is set to blue + 1, then the color is set to white, hidden? is set to true, speed is set to 0, and distance-traveled is set to 0.

Adding force. This submodel takes inouts for direction and magnitude. If the Flow turtle's speed is less than or equal to 0, the Flow turtle's heading is set to the direction input. The force in the x-coordinate direction is set to equal to the magnitude input times the sine of the direction input. The force in the y-coordinate direction is set to thet magnitude input times the cosine of the direction input. The new velocity in the x-coordinate direction is set equal to the current velocity in the x-coordinate direction times the Flow turtle's speed plus the force in the x-coordinate direction. The new velocity in the y-coordiante direction is set equal to the current velocity in the y-coordinate direction times the Flow turtle's speed in the y-coordinate direction. If the new x-coordinate velocity and the new y-coordinate velocity both equal 0, the Flow turtle's heading is set to the direction input. Otherwise, the heading is set to the tangent of the new x-coordinate velocity plus 0.001 times the new y-coordinate velocity minus 0.001. The new speed of the Flow turtle is set equal to the square root of the new x-coordinate velocity squared plus the new y-coordinate velocity squared. If the new speed is greater than the max-flow-speed, the new speed is set to the max-flow-speed. Speed is updated as the new speed.

Updating sinuoisity. The sinuosity of the river is updated if there are any Flow turtles in the bottom (minimum y-coordinates) of the river. The minimum flow is set to the Flow turtle with the minimum distance traveled. The river length is set to the distance that the minimum flow traveled. The shortest distance is set to the distance between the minimum flow's current position and the maximum y-coordinate of the river. Sinuosity is calculated as the river length divided by the shortest distance. Sinuosity is only updated if the current sinuosity is 0, or if the new sinuosity is less than the current sinuosity + 0.5.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published