FishDensityDependentGrowth

No preview image

1 collaborator

Default-person Eliza Gilbert (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.2.2 • Viewed 67 times • Downloaded 7 times • Run 0 times
Download the 'FishDensityDependentGrowth' modelDownload this modelEmbed this model

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


WHAT IS IT?

This model explores the effect of density on growth rates and age class populations. Each tick is analagous to a year. Fish increase in size (i.e,.total length) each year, which places the fish into a size class (adult, juvenile, or young of year). Adults can reproduce annually and when they do, they produce young of year fish. ADULT-MORTALITY is defined by the user except when an adult reaches 15 years of age, they die of old age. Juvenile and young of year mortality is set within the code.

HOW IT WORKS

The program was developed to explore two main variables.

The first vairable is related to density dependent growth effects on populations of population size. To explore this, the user defines "high density" and then ascribes a growth rate once that density has been exceeded.

The model counts the number of fish within a radius of 10 patches. If this value exceeds the DEFINE-HIGH-DENSITY then the DENSITY-DEPENDENT-GROWTH-RATE is used. The fish then increases in total length by that value. When user defined density is not exceeded (i.e., a low density environment) a fish will grow based on a Von Bertalanffy growth equation that is specific to Channel Catfish from the San Juan River (Pennock et al. 2018).

The second variable that can be explored, is changing the ADULT-MORTALITY rate. This rate can be kept constant throughout a run or changed while the model is running to assess how mortality rates effect the overall population and age class distribution.

The two plots, track the number of fish in each age class overtime. The second plot does not include the young of year totals. The number of fish in each age-class is also enumerated in monitor boxes.

HOW TO USE IT

SETUP produces 1000 young of year fish GO causes each fish to: -move -adults reproduce based on a probability, -each individual identifies the number of fish within its vicinity -each individual increases in size based on whether there is a low or high number of fish within the individual's vicinity -each individual has a probability of dying -each individual ages one year for each tick.

The model will halt when the population dies out or when it exceeds 10,000 individuals.

THINGS TO NOTICE

The population is highly sensitive to ADULT-MORTALITY and values greater than ~35% tend to crash the population.

THINGS TO TRY

Find the adult mortality rates that result in an increasing population, stability, or crash it. Then figure out the effect of density dependent growth rates on these patterns.

Set the model running and then change DEFINE-HIGH-DENSITY and see what crashes the population, what causes it to explode, and what results in stability. Do the same for changes in the DENSITY-DEPENDENT-GROWTH-RATE.

EXTENDING THE MODEL

-Reduce adult mortality as adult density varies (i.e., make it harder for fishermen to remove adults from the populaiton when there are less adults to find) -Add code so 10% of age 3, 50% of age 4, and 75% of >= age 5 female fish reproduce -Add a function of fecundity and size example: log10 (fecundity) = [log10(total-length) x 2.443] - 2.318 -Recode to run the fish in parallel like the termites model

NETLOGO FEATURES

I used "set density count other fishes in-radius 10" and there may be better ways to determine the density of fish around a given individual

RELATED MODELS

Wolf Sheep Predation model.

CREDITS AND REFERENCES

Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

Pennock, C. A., Durst, S. L., Duran, B. R., Hines, B. A., Cathcart, C. N., Davis, J. E., ... & Franssen, N. R. (2018). Predicted and observed responses of a nonnative Channel Catfish population following managed removal to aid the recovery of endangered fishes. North American Journal of Fisheries Management, 38(3), 565-578.

Comments and Questions

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

Click to Run Model

globals ;; used to track the three size classes
[red-count
 blue-count
 yellow-count
]

breed [
  fishes fish]

fishes-own
[total-length     ;; length or size of fish
 density          ;; number of neighbors within a radius
 fish-age         ;; age of fish at each tick
]

to setup
  ca
  set-default-shape fishes "fish"
  create-fishes 1000
  [setxy random-xcor random-ycor
  set total-length 0
  set fish-age 0
  set color yellow
  ]
  reset-ticks
end 

to go
  if not any? fishes [user-message "All Fish Die" stop] ;; stops the model when all fish die
  if count fishes > 10000 [user-message "Population Explosion Model Stops" stop] ;; stops the model when population bigger than a potential carrying capacity
  ask fishes
  [
    move             ;;spreads fish out and creates density parameters for growing season and idealized as occuring spring/summer
    reproduce        ;;idealized as occurring that spring
    determine-grow   ;;fish don't grow if they are at their maximum size
    identify-density ;;quanitfies how many fish there are around the individual fish
    size-class       ;;based on the fishes' total-length a size-class is assigned (juvenile, sub-adult, adult), this would be assigned as the size-class in the fall
    age              ;;fish ages a year and in the fish world the fish is the next year older starting January 1
    death            ;;occurs as a probability or after it has reached its oldest possible age
  ]
  tick
end 

to death;;;;
  if fish-age = 15 [die]
  if color = yellow [if random-float 100 < 75 [die]]                              ;; mortality rate of young of year (value has not been validated)
  if color = red [if random-float 100 < 40 [die]]                                 ;; mortality rate of juveniles
  if color = blue [if random-float 100 < adult-mortality [die]]                   ;; mortality rate of adults set by user
end 

to reproduce
  if total-length > 300
  [if random-float 100 < 50          ;; assumes a 1:1 male female ratio so half of population (i.e., females) would have the ability to reproduce
    [hatch 5                       ;; number of young of year produced by each female (value has not been validated)
      [rt random-float 360 fd 5      ;; randomly moves the hatched fish
       set total-length 10           ;; young of year size set to 10 mm
       set color yellow              ;; young of year color set to yellow
       set size 1                    ;; set pixel size
       set fish-age 0]                    ;; all reproduced fish are 0 years of age
      ]
  ]
end 

to move                ;; fish move randomly within environment as fish would normally do and this changes the density in which they find themselves
  rt random 0.5
  lt random 0.5
  fd random 10
end 

to determine-grow
  if total-length < 810 [grow]      ;; fish stop growing when the reach 810 mm in length
end 

to identify-density                 ;; counts the number of fish including self within the surrounding 10 patches
  set density count other fishes in-radius 10 with [color = blue or color = red]
end 

to grow
  if density < Density-threshold [set total-length 810 * (1 - exp (-0.089 * (fish-age - (-2.378))))]                                  ;;Density-threshold set by user
  if density > Density-threshold [set total-length 810 * (1 - exp (-(K-coeff) * (fish-age - (-2.378))))]                ;;K coefficient set by user
end 

to size-class                      ;; sets size class color based on size/total-length
  if total-length >= 300 [set color blue]
  if total-length >= 300 [set size 2]
  if total-length < 300 and total-length >= 150 [set color red]
  if total-length < 300 and total-length >= 150 [set size 1.5]
  if total-length < 150 [set color yellow]
  if total-length < 150 [set size 0.5]
end 

to age
  set fish-age fish-age + 1
end 

There is only one version of this model, created almost 2 years ago by Eliza Gilbert.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.