Forest Dynamic Model - Hubbell (1979)
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
"The model is essentially a dynamic version of MacArthur's "broken stick" hypothesis, and is based on a nonequilibrium interpretation of community organization. Suppose that forests are saturated with trees, each of which individually controls a unit of canopy space in the forest and resists invasion by other trees until it is damaged or killed. Let the forest be saturated when it has K individual trees, regardless of species. Now suppose that the forest is disturbed by a wind storm landslide, or the like, and some trees are killed. Let D trees be killed, and assume that this mortality is randomly distributed across species, with the expectation that the losses of each species are strictly proportional to its current relative abundance. Next let D new trees grow up, exactly replacing the D "vacancies" in the canopy created by the disturbance, so that the community is restored to its predisturbance saturation until the next disturbance comes along. Let the expected proportion of the replacement trees contributed by each species be given by the proportional abundance of the species in the community after the disturbance. Finally, repeat this cycle of disturbance and resaturation over and over again. In the absence of immigration of new species into the community, or of the recolonization of species formerly present but lost through local extinction, this simple stochastic model leads in the long run to complete dominance by one species. in the short run, however, the model leads to lognormal relative abundance patterns, and to geometric patterns in the intermediate run. The magnitude of the disturbance mortality, D, relative to community size, K, controls the rate at which the species diversity is reduced by local extinction: the larger D is relative to K, the shorter the time until extinction of any given species, and the faster the relative abundance patterns assume an approximately geometric distribution. (Hubbell, 1979)"
HOW IT WORKS
(what rules the agents use to create the overall behavior of the model)
HOW TO USE IT
(how to use the model, including a description of each of the items in the Interface tab)
THINGS TO NOTICE
(suggested things for the user to notice while running the model)
THINGS TO TRY
(suggested things for the user to try to do (move sliders, switches, etc.) with the model)
EXTENDING THE MODEL
(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.)
NETLOGO FEATURES
(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)
RELATED MODELS
Hubbell, S. P. (1979). Tree Dispersion, Abundance, and Diversity in a Tropical Dry Forest: That tropical trees are clumped, not spaced, alters conceptions of the organization and dynamics. Science, 203(4387), 1299–1309.
Hubbell, S. P. (1997). A unified theory of biogeography and relative species abundance and its application to tropical rain forests and coral reefs. Coral Reefs 16:S9–S21.
Hubbell, S. P. (2001). The Unified Neutral Theory of Biodiversity and Biogeography. Princeton, NJ: Princeton University Press.
CREDITS AND REFERENCES
- Punchi-Manage, R. (2023k). NetLogo Hubbell's (1979) Neutral Model. http://netlogo/models/Hubbell-1979-Neutral-Model.
Please cite the NetLogo software as:
- Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
Comments and Questions
extensions [table csv] globals [index meta-sp meta-time meta-a0 meta-j2 meta-a meta-set2 extinct-species number-of-meta-trees a initial-meta-richness random-number2 number time num j x-cor y-cor N richness a0 n-speciation local-set local-di-set local-off-set set-species-who-di set-species-who-off sp hist-frq rel-hist-frq s local-set0 remove-set richness-counts species-who-di di-locx di-locy species-who-off set1-species-who-off meta-set effective-meta-cmmunity-size number-of-local-trees item-x meta-set-new meta-sp-count sp-count j1 i1 k1 j2 i2 k2 meta-richness-counts meta-richness local-richness-counts local-richness hist-frq-meta rel-hist-frq-meta hist-frq-local rel-hist-frq-local] breed [meta-trees meta-tree] breed [trees tree] meta-trees-own [meta-species n-speciation-no] trees-own [species h] circles-own [] breed [circles a-circle] patches-own[elevation] ;extensions [ r ] to setup2 clear-all set a JL set sp 0 set JL (w2 + 1) * (w2 + 1) resize-world 0 w2 0 w2 species-gen2 set extinct-species 0 set hist-frq-local sort-by > map count table:values table:group-agents trees [ species ] set rel-hist-frq-local map [ i -> i / JL ] hist-frq-local reset-ticks end to species-gen2 set k2 -1 while [k2 < w2 ] [ set k2 k2 + 1 set i2 -1 while [i2 < w2] [ set i2 i2 + 1 create-trees 1 [ set h s + 1 setxy k2 i2 set shape "circle" set size 1 set num random-float 1 set j2 j2 + 1 if-else (num < (theta2 / (theta2 + j2 - 1 ))) [ set species (sp + 1) set sp sp + 1 set color 5 * species + 2 ] [ set species [species] of one-of other trees set sp sp set color 5 * species + 2 ] ] ] ] set local-richness sp end to go2 count-down forest-die-regenerate3 set hist-frq-local sort-by > map count table:values table:group-agents trees [ species ] set rel-hist-frq-local map [ i -> i / JL ] hist-frq-local update-plot2 plot-genetic-tree-Local-Community update-plots tick end to count-down set time time + 1 end to forest-die-regenerate3 set N count trees count-down set remove-set [] set local-richness-counts map count table:values table:group-agents trees [ species ] set local-richness length local-richness-counts repeat D [ask one-of trees [ set species species let species0 species set number-of-local-trees count trees with [species = species0] if (number-of-local-trees = 1) [ set extinct-species extinct-species + 1 ] set di-locx xcor set di-locy ycor die ] let random-number3 random-float 1 if-else (immigration-rate < random-number3) [ ; let random-patch one-of patches with [turtles-here = false] ask one-of trees [ hatch 1 set h a setxy di-locx di-locy ;[pxcor] of random-patch [pycor] of random-patch ] ] [ create-trees 1 [ set sp sp + 1 set species sp set h a set shape "circle" set size 1 let random-patch one-of patches with [turtles-here = false] setxy di-locx di-locy ;[pxcor] of random-patch [pycor] of random-patch ] ] ] end to update-plot2 set-current-plot "Species Abundance Distribution Local Community" set n 1 while [n <= 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 [species = n] set n n + 1 plot-pen-down ] end to plot-genetic-tree-Local-Community set sp-count 0 set-current-plot "Generic-Tree Local Community" while [sp-count <= sp] [ create-temporary-plot-pen (word sp-count) set-current-plot-pen (word sp-count) set-plot-pen-color 5 * sp-count + 4 let N-sp count (trees with [species = sp-count]) if (N-sp > 0) [ plotxy ticks sp-count plot-pen-down ] set sp-count sp-count + 1 ] end ; Copyright 2023 Ruwan Punchi-Manage. ; See Info tab for full copyright and license.
There are 2 versions of this model.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.