Estimating Stream Diversity 2.0

Estimating Stream Diversity 2.0 preview image

1 collaborator

Default-person Bella Fassett (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 5.0 • Viewed 720 times • Downloaded 85 times • Run 0 times
Download the 'Estimating Stream Diversity 2.0' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


Quantifying Stream Biodiversity

It is common to hear ecologists talking about biodiversity, particularly in terms of conservation biology. It is one of those terms that is used a lot, and is considered to refer to something important, yet, rarely is it clear exactly what is being discussed. In fact, ‘biodiversity’ can refer to many things, and has many specific definitions.

The most common definition of biodiversity refers to the number of different species in a given area or species diversity. The greatest biodiversity by this measure would be the number of different species found in tropical rain forests which is estimated to be in the millions. Sometimes biologists refer to the diversity within a particular taxon. For example, the southern Appalachians are the world’s ‘hotspot’ for salamander diversity. There are many indices of species diversity that we will explore later.

Biodiversity, in the broad sense, can also refer to variation within species, or among populations. Many species have populations which can be differentiated by morphology or behavior. Typically this occurs within species with large ranges. Consider for example, the extraordinary differences among human populations across the globe. This variation reflects underlying differences in allele proportions among populations and is called genetic diversity. Genetic diversity is of special concern to endangered species because small populations tend to lose genetic diversity through random genetic drift. Without genetic diversity, populations lose their ability to adapt to changing environments, and are more susceptible to be decimated by disease. In populations with normal genetic diversity there will a range of disease resistance among individuals. An extreme example of a species with low genetic diversity is the cheetah. Cheetah’s are so similar genetically that they can accept skin grafts from unrelated individuals without tissue rejection.

On a larger scale, we can consider ecosystem diversity. In this case we are not considering individual species, rather a species assemblage in a particular habitat. Ecosystem diversity is a broad concept, encompassing any level of ecological organization above species (e.g. habitat, community, and ecosystem). An example of a major threat to ecosystem diversity in the US is the loss of wetlands to development. It is not easy to quantify ecosystem diversity, as the edges of things like habitat and communities are hard to define. However, it can be argued that the most natural way to preserve all levels of biodiversity is to protect as much and as varied habitat as possible, and then let nature take care of the rest.

Using the Model

When this model opens, you will see a section of stream with 16 containers lined up on the bank. Using the control buttons you can open a seine in the middle of the stream and catch any of the animals that float into it. Captured animals are then sorted into the appropriate containers. The controls and reporters are described below.

Controls

Reset
Clears the graph, sets time to 0, removes the seine, releases animals

Go
Sets the stream in motion with animals drifting down

Pollution
Selects stream pollution level (None, Moderate, Severe)

Sampling_Time
The amount of time the seine will be open (simulated seconds)

Open Seine
Places the seine in the middle of the stream, starts sampling & plotting data

Close Seine
Removes the seine, stops plotting data

Release
Dumps captured animals downstream

Clear Plot
Clears lines from the plot, otherwise runs are overlaid

Speed
The slider above the world-view, controls the speed of the simulation

Reporters

Individual Species Counts
The numbers of each species caught (row below world-view)

Total Catch
Number of all individuals caught

Total Species
Number of different species represented in sample

Sampling Time
The amount of time the seine has been open (simulated seconds)

Line Graph
Cumulative species vs. Sampling time

Copyright 2012, Virtual Biology Lab, all rights reserved

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

breed [seine seines]
breed [critter critters]
globals [time StTime catchem s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 sTot]

to startup
  setup
end 

to setup
  ;; (for this model to work with NetLogo's new plotting features,
  ;; __clear-all-and-reset-ticks should be replaced with clear-all at
  ;; the beginning of your setup procedure and reset-ticks at the end
  ;; of the procedure.)
  clear-all
  reset-ticks
  setup-patches
  ;import-pcolors "streampic4.jpg"
  set catchem 0
end 

to setup-patches
  ask patches
  [
    set pcolor blue
    if pycor < 25 [set pcolor black]
    if pycor < 23 and pycor > 2 [set pcolor blue + 2]
    if pycor < 23 and pxcor < 11 [set pcolor black]
    if pycor < 23 and pxcor > 88 [set pcolor black]
    if pycor < 23 and (pxcor = 9 or pxcor = 10) [set pcolor black]
    if pycor < 23 and (pxcor = 19 or pxcor = 20) [set pcolor black]
    if pycor < 23 and (pxcor = 29 or pxcor = 30) [set pcolor black]
    if pycor < 23 and (pxcor = 39 or pxcor = 40) [set pcolor black]
    if pycor < 23 and (pxcor = 49 or pxcor = 50) [set pcolor black]
    if pycor < 23 and (pxcor = 59 or pxcor = 60) [set pcolor black]
    if pycor < 23 and (pxcor = 69 or pxcor = 70) [set pcolor black]
    if pycor < 23 and (pxcor = 79 or pxcor = 80) [set pcolor black]
    if pycor < 23 and (pxcor = 89 or pxcor = 90) [set pcolor black]
    if pycor <= 14 and pycor >= 11 [set pcolor black]
  ]
end 

to go
  init-critters
  move-critters
  update
  if catchem = 1 [do-plots]
  if sttime = 1 [set time time + .1]
  if time > sampling-time [close]
  tick
end 

to init-critters
  let x random 100
  if random 100 < 5
  [
    create-critter 1
    [
    set size 3
    set xcor 100 set ycor 45 + random 10 - random 10
    if Pollution = "None"
    [
      if x <= 10  [set shape "caddisfly"]
      if x > 10 and x <= 15 [set shape "mayfly"]
      if x > 15 and x <= 25 [set shape "stonefly"]
      if x > 25 and x <= 30 [set shape "rifflebeetle"]
      if x > 30 and x <= 35 [set shape "waterpenny"]
      if x > 35 and x <= 40 [set shape "gilledsnail"]
      if x > 40 and x <= 45 [set shape "dobsonfly"]
      if x > 45 and x <= 50 [set shape "cranefly"]
      if x > 50 and x <= 55 [set shape "dragonfly"]
      if x > 55 and x <= 60 [set shape "crawdad"]
      if x > 60 and x <= 65 [set shape "sowbug"]
      if x > 65 and x <= 70 [set shape "worm"]
      if x > 70 and x <= 75 [set shape "blackfly"]
      if x > 75 and x <= 80 [set shape "midge"]
      if x > 80 and x <= 85 [set shape "leech"]
      if x > 85  [set shape "lungedsnail"]
    ]
    if Pollution = "Moderate"
    [
      if x <= 0  [set shape "caddisfly"]
      if x > 0 and x <= 2 [set shape "mayfly"]
      if x > 2 and x <= 4 [set shape "stonefly"]
      if x > 4 and x <= 6 [set shape "rifflebeetle"]
      if x > 6 and x <= 8 [set shape "waterpenny"]
      if x > 8 and x <= 10 [set shape "gilledsnail"]
      if x > 10 and x <= 15 [set shape "dobsonfly"]
      if x > 15 and x <= 22 [set shape "cranefly"]
      if x > 22 and x <= 32 [set shape "dragonfly"]
      if x > 32 and x <= 50 [set shape "crawdad"]
      if x > 50 and x <= 60 [set shape "sowbug"]
      if x > 60 and x <= 70 [set shape "worm"]
      if x > 70 and x <= 75 [set shape "blackfly"]
      if x > 75 and x <= 80 [set shape "midge"]
      if x > 80 and x <= 85 [set shape "leech"]
      if x > 85  [set shape "lungedsnail"]
    ]
    if Pollution = "Severe"
    [
      if x <= 0  [set shape "caddisfly"]
      if x > 0 and x <= 0 [set shape "mayfly"]
      if x > 0 and x <= 0 [set shape "stonefly"]
      if x > 0 and x <= 0 [set shape "rifflebeetle"]
      if x > 0 and x <= 0 [set shape "waterpenny"]
      if x > 0 and x <= 0 [set shape "gilledsnail"]
      if x > 0 and x <= 3 [set shape "dobsonfly"]
      if x > 3 and x <= 6 [set shape "cranefly"]
      if x > 6 and x <= 9 [set shape "dragonfly"]
      if x > 9 and x <= 13 [set shape "crawdad"]
      if x > 13 and x <= 20 [set shape "sowbug"]
      if x > 20 and x <= 60 [set shape "worm"]
      if x > 60 and x <= 75 [set shape "blackfly"]
      if x > 75 and x <= 80 [set shape "midge"]
      if x > 80 and x <= 85 [set shape "leech"]
      if x > 85  [set shape "lungedsnail"]
    ]
    ]
   ]
end 

to move-critters
  ask critter
  [

    ifelse [pcolor = black] of patch-ahead 1
    [
      set heading heading + 260 - random 20
      fd .2
      if ycor > 24 [set xcor xcor - .5]
    ]
    [
      set heading heading + random 20 - random 20
      fd .2
      if ycor > 24 [set xcor xcor - .5]
    ]
    if xcor < 1 [die]
    if catchem = 1 and xcor < 50 and xcor > 48 and ycor < 48 and ycor > 34
    [
      if shape = "caddisfly" [setxy 15 19]
      if shape = "mayfly" [setxy 25 19]
      if shape = "stonefly" [setxy 35 19]
      if shape = "rifflebeetle" [setxy 45 19]
      if shape = "waterpenny" [setxy 55 19]
      if shape = "gilledsnail" [setxy 65 19]
      if shape = "dobsonfly" [setxy 75 19]
      if shape = "cranefly" [setxy 85 19]
      if shape = "dragonfly" [setxy 15 9]
      if shape = "crawdad" [setxy 25 9]
      if shape = "sowbug" [setxy 35 9]
      if shape = "worm" [setxy 45 9]
      if shape = "blackfly" [setxy 55 9]
      if shape = "midge" [setxy 65 9]
      if shape = "leech" [setxy 75 9]
      if shape = "lungedsnail" [setxy 85 9]
    ]
  ]
end 

to update
   ifelse count critter with [shape = "caddisfly" and ycor < 24] > 0 [set s1 1] [set s1 0]
   ifelse count critter with [shape = "mayfly" and ycor < 24] > 0 [set s2 1] [set s2 0]
   ifelse count critter with [shape = "stonefly" and ycor < 24] > 0 [set s3 1] [set s3 0]
   ifelse count critter with [shape = "rifflebeetle" and ycor < 24] > 0 [set s4 1] [set s4 0]
   ifelse count critter with [shape = "waterpenny" and ycor < 24] > 0 [set s5 1] [set s5 0]
   ifelse count critter with [shape = "gilledsnail" and ycor < 24] > 0 [set s6 1] [set s6 0]
   ifelse count critter with [shape = "dobsonfly" and ycor < 24] > 0 [set s7 1] [set s7 0]
   ifelse count critter with [shape = "cranefly" and ycor < 24] > 0 [set s8 1] [set s8 0]
   ifelse count critter with [shape = "dragonfly" and ycor < 24] > 0 [set s9 1] [set s9 0]
   ifelse count critter with [shape = "crawdad" and ycor < 24] > 0 [set s10 1] [set s10 0]
   ifelse count critter with [shape = "sowbug" and ycor < 24] > 0 [set s11 1] [set s11 0]
   ifelse count critter with [shape = "worm" and ycor < 24] > 0 [set s12 1] [set s12 0]
   ifelse count critter with [shape = "blackfly" and ycor < 24] > 0 [set s13 1] [set s13 0]
   ifelse count critter with [shape = "midge" and ycor < 24] > 0 [set s14 1] [set s14 0]
   ifelse count critter with [shape = "leech" and ycor < 24] > 0 [set s15 1] [set s15 0]
   ifelse count critter with [shape = "lungedsnail" and ycor < 24] > 0 [set s16 1] [set s16 0]
   set sTot s1 + S2 + s3 + s4 + s4 + s5 + s6 + s7 + s8 + s9 + s10 + s11 + s12 + s13 + s14 + s15 + s16
end 

to open
  ask seine [die]
  create-seine 1
  [
    set shape "seine"
    set size 15
    set xcor 50 set ycor 40
  ]
  set catchem 1
  set sttime 1
end 

to Close
  ask Seine [die]
  set catchem 0
  set sttime 0
end 

to release
  plot-pen-up
  ask critter
  [ if ycor < 24 [setxy 40 45]]
  set time 0
  set stot 0
  do-plots
  plot-pen-down
end 

to do-plots
  set-current-plot "Cumulative Species"
  set-current-plot-pen "Total"
  plotxy time sTot
end 

to show-species-count
  let caddisfly-count count critter with [shape = "caddisfly" and ycor < 24]
  let mayfly-count count critter with [shape = "mayfly" and ycor < 24]
  let stonefly-count count critter with [shape = "stonefly" and ycor < 24]
  let rifflebeetle-count count critter with [shape = "rifflebeetle" and ycor < 24]
  let waterpenny-count count critter with [shape = "waterpenny" and ycor < 24]
  let gilledsnail-count count critter with [shape = "gilledsnail" and ycor < 24]
  let dobsonfly-count count critter with [shape = "dobsonfly" and ycor < 24]
  let cranefly-count count critter with [shape = "cranefly" and ycor < 24]
  let dragonfly-count count critter with [shape = "dragonfly" and ycor < 24]
  let crawdad-count count critter with [shape = "crawdad" and ycor < 24]
  let sowbug-count count critter with [shape = "sowbug" and ycor < 24]
  let worm-count count critter with [shape = "worm" and ycor < 24]
  let blackfly-count count critter with [shape = "blackfly" and ycor < 24]
  let midge-count count critter with [shape = "midge" and ycor < 24]
  let leech-count count critter with [shape = "leech" and ycor < 24]
  let lungedsnail-count count critter with [shape = "lungedsnail" and ycor < 24]

  print (caddisfly-count)
  print (mayfly-count)
  print (stonefly-count)
  print (rifflebeetle-count)
  print (waterpenny-count)
  print (gilledsnail-count)
  print (dobsonfly-count)
  print (cranefly-count)
  print (dragonfly-count)
  print (crawdad-count)
  print (sowbug-count)
  print (worm-count)
  print (blackfly-count)
  print (midge-count)
  print (leech-count)
  print (lungedsnail-count)
end 

to display-species-count
  show-species-count
end 





There are 7 versions of this model.

Uploaded by When Description Download
Bella Fassett almost 2 years ago format Download this version
Bella Fassett almost 2 years ago format data Download this version
Bella Fassett almost 2 years ago x Download this version
Bella Fassett almost 2 years ago formatting Download this version
Bella Fassett almost 2 years ago fix pop up format Download this version
Bella Fassett almost 2 years ago fixed popup counts Download this version
Bella Fassett almost 2 years ago Initial upload Download this version

Attached files

File Type Description Last updated
Estimating Stream Diversity 2.0.png preview Preview for 'Estimating Stream Diversity 2.0' almost 2 years ago, by Bella Fassett Download

This model does not have any ancestors.

This model does not have any descendants.