Forest Dynamic Model - Bell (2000)

No preview image

1 collaborator

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.3.0 • Viewed 259 times • Downloaded 24 times • Run 0 times
Download the 'Forest Dynamic Model - Bell (2000)' 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?

Neutral models refer to communities of ecological similar species in which individuals compete with one another and do not describe trophic interactions (Bell, 2001). Here I developed the NetLogo model that used in Bell's (2000) paper. Bell (2000) describes the properties of a very simple neutral model. It represents macro-ecological patterns of a community of functionally identical species. He used the term "neutral" to mean that individuals possess the same properties, regardless of species membership; thus, individuals of different species are indistinguishable (Bell, 2000).

Bell (2000) assumed followings:

  1. Species of community terms) is drawn from a external regional pool of JMS species.

  2. The community initially consists of Ni individuals of each species (Bell, 2000).

Bell (2000) assumed the following dynamics in his model.

  1. Immigration: A single individual is added to the community from each species in the pool with probability m.

  2. Birth: Each individual gives rise to a single offspring with probability b.

  3. Death: Each adult individual dies with probability d.

  4. Density regulation: If the community exceeds its capacity of K individuals, excess individuals are removed at random, each individual having the same probability of being removed, until the community is reduced to exactly K individuals before the next cycle is begun.

Note: "It is individuals that are culled, and that all species are treated alike, so that each species is on average culled in proportion to its relative abundance alone. Species do not differ in their sensitivity to density, and there are no implicit or explicit interactions among species (Bell, 2000)".

The model is different from Hubbell's model becaused Bell (2000) used a species pool where each species has equal chance, not individuals, to immigrate.

HOW IT WORKS

There are two sets of turtles. Trees and meta-species. Trees and meta-trees own property called "species". Patches have a property called "occupied". If a tree or meta-tree occupied the local community then patch is 'occupied'. When a patch is vacant patch is 'unoccupied'. Initial abundances of species are set to Ni.

HOW TO USE IT

Sliders

  1. JMS: Species present in the regional species pool. It is equal to size of the regional pool. JMS= (w1 + 1)2. The JMS slider automatically changes when w1 changes.

  2. w1: It is used to decides the JMS.

  3. Ni: Initial abundances of species (all the populations have equal sizes).

  4. initial-local-richness: This decides the inital species richness of the local community.

  5. JL: This is the initial local community size. Initial local community size (JL) is also a automatically change. Initial abundances of species are set to Ni. Therefore, initial abundance of the community is equal to 100 times initial-local-richness.

  6. w2: This decides the size of the local community, the maximum capacity. (w2 + 1)2.

  7. m: It is the rate of immigration of species from the regional pool.

  8. K: Automatic slider. It is the maximum capacity community can hold. Also called carrying capacity.

  9. K = (w2 + 1)2.

  10. b: It is the birth rate of individuals.

  11. d: It is the death rate of individuals.

THINGS TO NOTICE

The model can then be used to describe the relationship of diversity and abundance to the six parameters of the model: pool size JMS species, size of the initial species populations (Ni individuals), community capacity K individuals, immigration rate m per species per cycle, birth rate b, and death rate d per individual per cycle. It can then be determined whether the patterns exhibited by natural populations differ systematically from those generated by a finite stochastic birth-death-immigration process.

Outputs

  1. Local Community Trees: Number of trees or meta-trees in the local community

  2. Total dead trees from t = 0 to t = t: Total number of deaths happened in the local community.

  3. Immigrant-trees from t = 0 to t = t: Total number of immigrations happened in the local community.

  4. New Births from t = 0 to t = t: Total number of births happened in the local community.

  5. Local community species richness: Species richness of the local community.

  6. Number of temporal extinct species in the local community: Total number of temporal extinctions happened in the local community.

Plots

  1. Local Community Size: Abundance of the local community.

  2. Local Community Species Richness: Number of species in the local community.

  3. Species Abundance Distribution of Local-Community: Species abundance distribution of the local community.

  4. Relative Species Abundance Distribution: Relative species abundance distribution of the local community.

THINGS TO TRY

Change the sliders (i.e. b for birth rate, d for death rate, and m for immigration rates, initial-species-richness for initial species richness). Use slider w1 to change the regional species richness (JMS) and slider w2 to chnage the carrying capacity (K)). See how community species richness and community species abundance vary.

EXTENDING THE MODEL

NETLOGO FEATURES

RELATED MODELS

Bell, G. (2000). The Distribution of Abundance in Neutral Communities. The American Naturalist, 155 (5), pp. 606-617.

Bell, G. (2001). Neutral Macroecology. Science, 293(5539), 2413–2418.

CREDITS AND REFERENCES

Please cite the NetLogo software as:

Comments and Questions

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

Click to Run Model

extensions [table csv]
globals [meta-sp extinct-species n-speciation spi local-s K1 i1 K2 i2 hist-frq-local rel-hist-frq-local local-richness local-richness-counts count-dead-trees immigrant-trees count-new-trees n crowding conspecifics di-locx di-locy neighbor-patch JL1]
breed [meta-trees meta-tree]
breed [trees tree]
meta-trees-own [species]
trees-own [species h]
patches-own [occupied]
circles-own []
breed [circles a-circle]

to setup2
  clear-all
  set meta-sp 0
  set JMS (w1 + 1) * (w1 + 1)
  resize-world 0 (w1 + w2 + 20) 0 (w1 + w2 + 20)
  ;set hist-frq-meta sort-by > map count table:values table:group-agents meta-trees [ meta-species ]
  ;set rel-hist-frq-meta map [ i -> i / JM ] hist-frq-meta
  set extinct-species 0
  set n-speciation 0
  set JL initial-local-richness * Ni
  set K (w2 + 1) * (w2 + 1)
  set w2 w2
  set n 0
  set di-locx 0
  set di-locy max-pycor
  ask patches with [pycor <= max-pycor AND pycor >= w1 + 20 AND pxcor >= 0 AND pxcor <= w2] [
    set pcolor gray
    set occupied 0 ]
  species-generator-1
  species-generator-4
  set hist-frq-local sort-by > map count table:values table:group-agents turtles with [ycor >= w1 + 20] [species]
  set rel-hist-frq-local map [ i -> i / JL ] hist-frq-local
  set local-richness local-s
  set count-dead-trees 0
  set immigrant-trees 0
  set count-new-trees 0
  create-channel
  reset-ticks
end 

to species-generator-1
  set k1 -1
  while [k1 < w1 ] [
    set k1 k1 + 1
    set i1 -1
    while [i1 < w1 ] [
      set i1 i1 + 1
      create-meta-trees 1 [
        let random-patch one-of patches with [pycor <= w1 AND pycor >= 0 AND pxcor >= 0 AND pxcor <= w1 AND occupied = 0]
        setxy [pxcor] of random-patch [pycor] of random-patch
        set shape "circle"
        set size 1
        set species (meta-sp + 1)
        set meta-sp meta-sp + 1
        set color species
        ask patch-here [set occupied 1]
      ]
    ]
  ]
end 

to species-generator-4
  set k2 1
  while [k2 <= initial-local-richness] [
    set k2 k2 + 1
    set i2 max-pxcor + 1
    set local-s local-s + 1
    repeat Ni [
      let random-patch one-of patches with [pycor <= max-pycor AND pycor >= w1 + 20 AND pxcor >= 0 AND pxcor <= w2 AND occupied = 0]
      create-trees 1 [
        set i2 i2 - 1
        set shape "circle"
        set size 1
        set species local-s
        setxy [pxcor] of random-patch [pycor] of random-patch
        set color local-s
        ask patch-here [set occupied 1]
        ]
      ]
    ]
end 

to go2
  test-capacity
  death-rates
  birth-rates
  immigration
  set JL1 count turtles-on patches with [pycor <= max-pycor AND pycor >= w1 + 20 AND pxcor >= 0 AND pxcor <= w2]
  set hist-frq-local sort-by > map count table:values table:group-agents turtles with [pycor > w1 + 20] [ species ]
  set rel-hist-frq-local map [ i -> i / JL1 ] hist-frq-local
  set local-richness-counts map count table:values table:group-agents turtles with [pycor >= w1 + 20] [species ]
  set local-richness length local-richness-counts
  update-plots
  tick
end 

to immigration
  let random-number3 random-float 1
  if (immigration-rate > random-number3) [
      replace-previous-immigrant
      move-immigrant
      immigration-through-channel
    ask one-of meta-trees [
      hatch 1
      let random-patch one-of patches with [pycor <= max-pycor AND pycor >= w1 + 20 AND pxcor >= 0 AND pxcor <= w2 AND occupied = 0]
      setxy [pxcor] of random-patch [pycor] of random-patch
      ask patch-here [set occupied 1]
    ]
    set immigrant-trees immigrant-trees + 1
  ]
end 

to birth-rates
 let random-number1 random-float 1
    if (b > random-number1) [
      set count-new-trees count-new-trees + 1
    ask one-of turtles with [ycor >= w1 + 20] [
        hatch 1
        let random-patch one-of patches with [pycor <= max-pycor AND pycor >= w1 + 20 AND pxcor >= 0 AND pxcor <= w2 AND occupied = 0]
        setxy [pxcor] of random-patch [pycor] of random-patch
        ask patch-here [set occupied 1]
        ]
      ]
end 

to death-rates
 let random-number2 random-float 1
  if (d > random-number2) [
    ask one-of turtles with [ycor >= w1 + 20] [
      set di-locx xcor
      set di-locy ycor
      die]
    set count-dead-trees count-dead-trees + 1
  ]
end 

to create-channel
  ask patches [
    if (pxcor > w2 / 2 AND pxcor < ((w2 / 2) + 2) AND pycor > w1 AND pycor < w1 + 20) [
      set pcolor gray
    ]
  ]
end 

to immigration-through-channel
  create-circles 1 [
    set color ticks
    set heading 0
    set size 1
    setxy ((w2 + 2) / 2) (w1 + 1)
   ]
end 

to move-immigrant
  ask circles [ fd 4]
end 

to replace-previous-immigrant
  ask circles with [ycor > (w1 + 13) ] [die]
end 

to update-plot2
set-current-plot "Species Abundance Distribution Local Community"
set n 1
while [n <= meta-sp] [
create-temporary-plot-pen (word n)
set-current-plot-pen (word n)
set-plot-pen-color 5 * n + 4
plotxy ticks count trees with [ycor >= w1 + 20 AND species = n]
set n n + 1
plot-pen-down
]
end 

to test-capacity
  if (count turtles with [ycor >= w1 + 20] > K - 5) [
    ask one-of turtles with [ycor >= w1 + 20] [die]
    ]
  ask patches [
    if (count turtles-here > 0) [
      set occupied 1
    ]
    if (count turtles-here = 0) [
      set occupied 0
    ]
  ]
end 

; Copyright 2023e Ruwan Punchi-Manage.
; See Info tab for full copyright and license.

There is only one version of this model, created almost 2 years ago by Ruwan Punchi-Manage.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.