Forest Dynamic Model - Hubbell (1980)
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
Thia is a model forest whose species follow the spacing rules of the Janzen-Connell hypothesis descibed by Hubbell (1980).
HOW IT WORKS
Suppose that the forest is saturated with trees, each of which controls a unit of canopy space and resists invasion of its space until its death (Hubbell, 1980). Therefore each tree is surrounded by 8 trees. Suppose the forest be saturated when it has K trees, no matter the identity of the species. Now suppose that the forest is disturbed, a tree dies randomly (e.g., wind-throws, etc.) The expected losses suffered by a tree species are proportional to its current abundance. Next let the vacant site is aqccuired by a new adult tree. Choose the species to replace each vacancy from the subset of species which have no adults within the critical minimum distance of the replacement site (Hubbell, 1980). If two or more gaps are adjacent, fill them with different species. Let the probability that the ith species will contribute the next replacement individual be given by the ith species' relative abundance in this subset of species. Repeat this process until each vacancy in the canopy is filled, so that the forest is returned to saturation. Finally, repeat this "birth-death" process over and over again (Hubbell, 1980).
HOW TO USE IT
Sliders
JL: Decides the local community size (K). To change the JL use the slider W2. JL = (W2 + 1)2
theta2: It is used to decide the initial species richness of the local community. Change the slider and press the setup button to see the richness of the local community. Richness is appeared in the monitor.
spacing-distance : It is the circular distance from the replacement site where no conspecific adult is allowed to present. That is if a vacant site is to be replaced from an adult tree his conspecific neighbor should at least away from the spacing-distance. Therefore, it is the critical minimum distance of two conspecific neighbors when community at an equilibrium.
Monitors
Three monitors show initial species richness, species richness at time t, and number of extinct species.
THINGS TO NOTICE
Species number is labelled next to the tree turtle.
THINGS TO TRY
Start with some large values of theta (e.g. 8) to increase the initial species richness. Set the spacing-distance is equal to one. see how species richness decreases with time.
Next for the same initial species richness increase the spacing-distance and see how the species richness decreases with time.
EXTENDING THE MODEL
NETLOGO 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. (1980). Seed Predation and the Coexistence of Tree Species in Tropical Forests. Oikos, 35(2), 214.
CREDITS AND REFERENCES
- Punchi-Manage, R. (2023p). NetLogo Hubbell's (1980) Janzen-Connell Model. http://netlogo/models/Hubbell-1980-Janzen-Connell-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 [x-cor1 y-cor1 richness1 count-neighbors splist splist2 random-sp sp-id 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] breed [spec a-spec] turtles-own [species] meta-trees-own [meta-species n-speciation-no] trees-own [species h] spec-own [species] 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 label species set sp sp + 1 set color 5 * species + 2 ] [ set species [species] of one-of other trees set sp sp set label species set color 5 * species + 2 ] ] ] ] set local-richness sp set richness1 local-richness end to go2 count-down intraspecific-competition ;halt-process set hist-frq-local sort-by > map count table:values table:group-agents turtles [ species ] set rel-hist-frq-local map [ i -> i / JL ] hist-frq-local set richness1 length remove-duplicates [species] of turtles set extinct-species local-richness - richness1 ;update-plot2 ;plot-genetic-tree-Local-Community update-plots tick end to count-down set time time + 1 end to intraspecific-competition set random-sp one-of trees ask random-sp [ set x-cor xcor set y-cor ycor set sp-id species set splist remove-duplicates [species] of trees in-radius spacing-distance if (length splist < richness1)[ ask one-of trees with [member? species splist = false] [ hatch 1 setxy x-cor y-cor ] die ] ] end to halt-process ask turtles [ set splist2 remove-duplicates [species] of trees in-radius 1 if (member? species splist2 = false) [stop] ] 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 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.