Delta Smelt Population Simulation
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
The purpose of this model is to represent how various environmental and human influential factors affect the population of the Delta Smelt. Be it the amount of smelts, temperature, predation, fish and contaminants introduced into the environment by humans, prey availability, invasive plant species, and water turbidity (the clearness of the water), if just one of these factors change, it can affect the population of the Smelt drastically.
HOW IT WORKS
Based in NetLogo, this model utilizes turtles and patches, monitors, graphs, sliders, and buttons.
Since this model simulates how the factors of the environment can directly affect the Delta Smelt, it mainly utilizes sliders. These sliders can be used to change the amount of an "item" the user can start out with and this will change the environment. An example of this is when a user increases or lowers the amount of waterweed present. When increased, the turbidity of the water clears up, and vice versa.
HOW TO USE IT
Sliders: The first thing a user should focus on. Each slider is unique, but al play a role into environmental change. Users can decrease and increase amounts to their content to experiment how different factors can change the population of the Smelts.
Setup button: When selected, the program will reset each time. If one has changed any values on the sliders, this will take into effect as well.
Go button: When selected the program will run with new values taking into effect if changed. Note: The program will keep running even if setup is selected, so to stop it, simply select go once again.
THINGS TO NOTICE
Slider Values
If a user wants to find out what conditions are better or worse, or even just "right", use the following tips to adjust it to your content.
Smelt: If increased, the population of the Delta Smelt will increase, and vice versa when decreased.
Temperature: This is unique compared to other sliders. Delta Smelt, along with prey, the shrimp, and predator, the Striped Bass, can "live" to the maximum at a temperature of around 70°F. When below or above this temperature, the fish, or living organisms will "die" at a faster rate.
Bass: When the value for this is increased, the Delta Smelt population will eventually decrease at a faster rate, simulating a supply and demand need, however when decreased, though the Smelt population rate will still decrease, it will do so at a noticeably lower rate.
Contaminants: When lowered, the Delta Smelt population will have increasingly lower numbers eventually, but when raised, the Delta Smelt population will experience a relatively similar population as to when started, However, this is without other factors, so it will vary when other factors are added.
Shrimp(zooplankton in actuality): When at a higher initial rate, the smelt population will eat almost all of the shrimp population, leaving a high mortality rate in the long run, but when at a more sustainable rate, the population of shrimp and smelt will flourish.
Waterweed: When there is more waterweed presence, the water will clear, and when there is less present, the water will be murkier. This shows turbidity as waterweed is known to clear up water, and turbidity is the clearness of the water. It is best for the Smelt for it to be murkier as in real life, as well as in this simulation, the Delta Smelt is transparent, allowing it to hide from predators. In this simulation, it is essentially the same. The more waterweed there is, the higher mortality rate is for the Delta Smelt, and, once again, vice versa.
Fun Fact: The Turtle Shapes are unique and designed solely by this team. These shapes include: bass, shrimp, smelt, and waterweed.
THINGS TO TRY
As this model is aimed at seeing what can change the population of the Delta Smelt, an important aspect of this is to experiment. So, to keep it short and sweet, try different values each time to see what benefits and disadvantages the Delta Smelt.
EXTENDING THE MODEL
Some things to extend in this model would be to add more predators and types of prey, and find a way to make the fish go towards the food, and away from the predators.
NETLOGO FEATURES
Some interesting codes we used were globals, turtles-own, and breed. globals and turtles-own are very similar, they each give the patches and turtles a value that is "theirs" that we can alter. Breed identifies the turtles, so, instead of coding create-turtles 5 [set color blue set shape "flower"], you can say create flowers [set color blue set shape "flower"], and we can now have codes only affect those turtles by having it directly affect flowers.
RELATED MODELS
This model is similar to the "wolf sheep predation" model, they both are simulating an environment in which there is a type of predator and prey who are each trying to survive, the wolves and bass act as the predator, the sheep and smelts as the prey, and the grass and shrimp as food for the prey.
CREDITS AND REFERENCES
This model was made by: Andrew Fredeluces Noah Price Glitches Martinez Emma Colburn Professor Sina Hussaini Ke Sean Blanchard Conor Kreitzer
Comments and Questions
breed [smelts] breed [clouds] breed [bass] breed [contaminants] breed [contaminants2] breed [waterweed] breed [shrimp] turtles-own [age energy] contaminants2-own[touched] globals [temperature] to setup ca reset-ticks set temperature initial_temperature create-waterweed initial_waterweed [ set shape "waterweed" set size 5 ifelse random 2 = 1 [ set heading 270] [ set heading 90] setxy -65 + random 160 7] ask patches [set pcolor scale-color 76 (pycor) -70 (160 - (count waterweed + temperature))] ;; water green-blue ask patches with [pycor > -10 and pycor < 0 and pxcor > 80] [set pcolor scale-color 5 (pxcor) 40 140] ;;contaminant pipe ask patches with [pxcor < -70] [set pcolor scale-color 35 (pxcor) -130 -20] ;; levee brown ask patches with [pycor > -40 and pycor < -30 and pxcor < -60] [set pcolor scale-color 5 (pxcor) -120 -20] ;; diversion pump ask patches with [pycor > 10] [set pcolor scale-color 86 (pycor) -30 70] ;; sky blue create-turtles 1 [ set shape "levee" setxy -85.2 13.3 set heading 0 set size 60 set color scale-color 35 (pxcor) -130 -20] ;;make levee create-turtles 1 [ set shape "sun" setxy 98 48 set heading 180 set size 40 set color 46] ;; sun create-clouds 3 [ set shape "cloud" set xcor -70 + random 140 set ycor 20 + random 20 set color scale-color 8 (pycor) -20 50 set size 20 ifelse random 2 = 1 [ set heading 90] [ set heading 270]] ;; cloud create-smelts initial_smelts [ set age random 10 set shape "smelt" set size 5 set ycor -50 + random 60 set xcor -60 + random 145 set color [255 215 0 60]] ;;smelt create-turtles 1 [ set shape "person" set color black set size 15 setxy -86 22 set heading 90] ;; person on levee create-bass initial_bass [ set shape "bass" set size 10 set heading 45 setxy -86 22 set color blue] ;striped bass create-shrimp initial_shrimp [ set shape "shrimp" set size 1 set ycor -50 + random 60 set xcor -60 + random 145 set color red] end to reproduce [nums] ;reproduction set nums first nums set energy energy + 1 if energy = 40 + random 10 [ hatch nums [set energy random 10 set age random 10]] end to get_old ;;all aging process of turtles set age age + 1 if temperature > 70 [set age age + 1] ;;hot temperature ages smelt if temperature > 80 [set age age + 1] if temperature > 90 [set age age + 1] if temperature < 60 [set age age + 1] ;;cold temperature ages smelt if temperature < 50 [set age age + 1] if temperature < 40 [set age age + 1] if any? contaminants2 in-radius 2 [set age age + 3] if age > 280 - count waterweed * 2 + random 40 [die] end to float ;;movement of clouds fd .3 if xcor >= 95 [set heading 270] if xcor <= -95 [set heading 90] end to float_waterweed ;floating movement for waterweed fd .3 if xcor <= -65 [set heading 90] if xcor >= 95 [set heading 270] end to move ;;movement in water if ticks mod 10 = 0 [set heading random 360] if xcor > 98 [set heading 190 + random 160] if ycor > 5 [set heading 100 + random 160] if ycor < -48 [set heading 280 + random 160] if xcor < -65 [ if ycor > 0 [ set heading 100 + random 70] set heading 10 + random 160] fd 1 end to bass_move ;;movement of bass if ticks < 40 [set heading ticks * 3 + 50 fd 2] ;;arc of bass being thrown if ticks > 40 and ticks < 45 [set heading 130 fd 1.5] if ticks > 45 and ticks < 60 [set heading 100 + random 135 fd 1] ;; if ticks > 60 [move] end to contaminant_behavior ;;contaminants die when touched "touched" number of times and move towards the center before diffusing if ticks mod 100 < 40 [ face one-of patches with [pycor = -49 + random 60] fd 2] if ticks mod 100 = 40 [hatch 1 [set breed contaminants2 set shape "dot"] die] fd 1 end to go no-display wait 0.05 tick ifelse temperature < 100 and temperature > 40 [ if temperature_change = "Extreme Increase" [ifelse random 4 > 0 [set temperature temperature + 1] [set temperature temperature - 1]] if temperature_change = "Gradual Increase" [ifelse random 4 > 1 [set temperature temperature + 1] [set temperature temperature - 1]] if temperature_change = "Random Change" [ifelse random 2 = 0 [set temperature temperature + 1] [set temperature temperature - 1]] if temperature_change = "Gradual Decrease" [ifelse random 4 > 1 [set temperature temperature - 1] [set temperature temperature + 1]] if temperature_change = "Extreme Decrease" [ifelse random 4 > 0 [set temperature temperature - 1] [set temperature temperature + 1]]] [ ifelse temperature = 100 [set temperature temperature - 1] [set temperature temperature + 1]] ask patches with [pxcor >= -70 and pycor <= 10] [set pcolor scale-color 76 (pycor) -70 (160 - (count waterweed + temperature))] ;; water green-blue ask patches with [pycor > -40 and pycor < -30 and pxcor < -60] [set pcolor scale-color 5 (pxcor) -120 -20] ;; diversion pump ask patches with [pycor > -10 and pycor < 0 and pxcor > 80] [set pcolor scale-color 5 (pxcor) 40 140] ;;contaminant pipe ask clouds [float] ask waterweed [float_waterweed] ask smelts [move] ask smelts [if count smelts < 100 [reproduce [2]]] ask smelts [get_old] ask smelts [if count shrimp < 5 and random 50 < 10 [die]] ask smelts [if count smelts < 100 and count bass < 3 [reproduce [1]]] ask bass [bass_move] ask bass [if count bass < 20 [reproduce [1]]] ask bass [get_old] ask bass [if count smelts < 5 and random 50 < 10 [die]] ask shrimp [get_old] ask shrimp [move] ask shrimp [if count shrimp < 600 [reproduce [4]]] if ticks = 10 or ticks mod 100 = 0 [create-contaminants initial_contaminants [ set shape "dot" set size 1 setxy 82 -6 set heading 90 + random 270 ifelse random 2 = 1 [ set color black] [ set color white] if ticks = 0 [hide-turtle]]] ;;contaminants ask contaminants [if count contaminants2 < 500 [contaminant_behavior]] ask contaminants2 [move fd 1] ask contaminants2 [if any? smelts in-radius 2 [set touched touched + 2]] ask contaminants2 [if any? bass in-radius 2 [set touched touched + 4]] ask contaminants2 [if any? shrimp in-radius 2 [set touched touched + 1]] ask contaminants2 [if touched > 6 [die]] ask shrimp [if any? smelts in-radius 3 [die]] ask shrimp [if any? bass in-radius 3 [die]] ask smelts [if any? bass in-radius 4 [die]] ask smelts [if any? shrimp in-radius 3 [ set age age - 100]] ask bass [if any? smelts in-radius 4 [set age age - 50]] display end
There is only one version of this model, created about 9 years ago by Noah Price.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.