Tabonuco Yagrumo Hybrid
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This is a model of a simple ecosystem of two species of trees that compete for space in a forest canopy. Tabonuco Yagrumo Hybrid is different from Tabonuco Yagrumo in that the competition for space is explicitly modeled using turtles and patches, as opposed to being modeled as a relationship between stocks in the System Dynamics Modeler. It is intended to be a simple example of how the two approaches can be combined into a hybrid model, and its behavior is similar to the non-hybrid version.
HOW IT WORKS
The TABONUCO and YAGRUMO stocks represent the population of the two tree species. The rate at which the stocks of both trees grow or die is represented by the TABONUCO-GROWS and YAGRUMO-GROWS flows. These values come from the agent-based part of the model, where the trees compete for open pace in the forest. The forest is modeled using turtles and patches. Each tree is a turtle and lives on a patch. It can only grow into an open patch immediately next to it. If more trees grow, there are fewer gaps in the forest. If trees die then there are more gaps.
Tabonuco trees grow slower than yagrumo trees, these rates are represented by the TABONUCO-GROWTH-RATE and YAGRUMO-GROWTH-RATE variables. In each tick of the model, the two tree species attempt to grow into the available spaces. However, tabonuco trees outlive yagrumo trees. This relationship is represented by the TABONUCO-OUTGROWS-YAGRUMO flow from the YAGRUMO stock to the TABONUCO stock. To represent this in the agent-based portion of the model, yagrumo trees are turned into tabonuco trees in the forest.
The YAGRUMO-DIES and TABONUCO-DIES flows are connected to the DISTURBANCE variable. This variable represents the destruction of trees by hurricanes. The HURRICANE-STRENGTH and HURRICANE-FREQUENCY variables determine the timing and amount of disturbance, which can be controlled by sliders.
The model also tracks the amount of carbon and nitrogen produced by the trees. The trees produce resources via photosynthesis. The rest of the living things in the forest use these resources. The CARBON and NITROGEN variables calculate how much of those chemicals are produced by the trees.
HOW TO USE IT
Press the SETUP button to initialize the model.
To run the model continuously, press GO.
To run the model for one time step, press STEP.
Alternatively, you can run only 250 steps by pressing the SETUP REPEAT 250 [ GO ] button.
Adjust the USER-HURRICANE-FREQUENCY slider to determine how many time units occur between hurricanes.
Adjust the USER-HURRICANE-STRENGTH slider to determine how many trees are destroyed by the hurricanes
THINGS TO NOTICE
Hurricanes play an important role in the ecosystem. The relative amount of each tree is highly sensitive to both the rate and strength of hurricanes. Both species co-exist only within a certain range of hurricane frequency and strength.
The results of the model is different from Tabonuco Yagrumo in several ways. First, the curves are not smooth, because they are not generated only by a function, but have have random events generating the results. Second, the modeling of Tabonuco outgrowing Yagrumo in this model causes the Yagrumo to grow less, because the available spaces for it to grow into are reduced.
THINGS TO TRY
Change the USER-HURRICANE-FREQUENCY slider, observe what happens to the YAGRUMO population, and the productivity. Do the same with USER-HURRICANE-STRENGTH.
Use the BehaviorSpace Tool to sweep the parameter space for the USER-HURRICANE-FREQUENCY and USER-HURRICANE-STRENGTH.
Use the GLOBALS monitor to observe the value of stocks, constants, model time, and model dt.
EXTENDING THE MODEL
Experiment with trying different rules for competition for space.
Vary the strength of the hurricanes, randomly, across an interval.
NETLOGO FEATURES
This model provides a simple example of combining agent-based and system dynamics modeling.
RELATED MODELS
Tabonuco Yagrumo
CREDITS AND REFERENCES
The following model is based on the work of The Learning Partnership in the Journey to El Yunque project (PI's include Steven McGee, Jess Zimmerman, and Steven Croft). To view the original materials or to learn more about that project, visit http://elyunque.net/journey.html.
HOW TO CITE
If you mention this model in a publication, we ask that you include these citations for the model itself and for the NetLogo software:
- Wilensky, U. (2006). NetLogo Tabonuco Yagrumo Hybrid model. http://ccl.northwestern.edu/netlogo/models/TabonucoYagrumoHybrid. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
- Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
COPYRIGHT AND LICENSE
Copyright 2006 Uri Wilensky.
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.
Comments and Questions
;; To see the rest of this model, look in the System Dynamics Modeler ;; window. (If the window isn't showing, you can open it from the ;; Tools menu.) globals [ previous-carbon tabonuco-growth yagrumo-growth tabonuco-death yagrumo-death converted-to-tabonuco ] breed [ tabonucos tabonuco ] breed [ yagrumos yagrumo ] to setup ca set-default-shape yagrumos "plant" set-default-shape tabonucos "tree" set previous-carbon 0 system-dynamics-setup ;; defined by System Dynamics Modeler agent-setup do-plot end to go agent-go system-dynamics-go ;; defined by System Dynamics Modeler do-plot set previous-carbon carbon end ;; Agent-Based rule setup for model. to agent-setup ask n-of tabonuco-stock patches [ sprout-tabonucos 1 [ set color sky ] ] ask n-of yagrumo-stock patches with [ not any? turtles-here ] [ sprout-yagrumos 1 [ set color pink ] ] end ;; Agent-Based rules for the model ;; These are only run oncce per cycle of the model, and the order is important ;; Tabonuco trees get first shot at open patches. to agent-go set yagrumo-growth agent-yagrumo-growth yagrumo-stock set tabonuco-growth agent-tabonuco-growth tabonuco-stock set tabonuco-death agent-tabonuco-death disturbance set yagrumo-death agent-yagrumo-death disturbance set converted-to-tabonuco agent-tabonuco-conversion tabonuco-outgrowth-rate end to-report empty-patches report patches with [ not any? turtles-here ] end ;; Rules governing the conversion of yagrumo trees to tabonuco trees ;; Only yagrumo trees next to an existing tabonuco tree can be converted ;; and only tabonuco-outgrowth-rate are converted. to-report agent-tabonuco-conversion [ rate ] let total-converted 0 let convertables yagrumos with [ any? neighbors with [ any? tabonucos-here ] ] ask n-of (count convertables * rate) convertables [ set total-converted total-converted + 1 set breed tabonucos set color sky ] report total-converted end ;; Rules governing the growth of Tabonuco trees ;; only trees with an empty patch next to them get a chance to reproduce ;; and only tabonuco-growth-rate of those trees can reproduce to-report agent-tabonuco-growth [ current ] let total-grown 0 let growable tabonucos with [ not all? neighbors [ any? turtles-here ] ] ask n-of ( count growable * tabonuco-growth-rate ) growable [ let seedpatch one-of neighbors with [ not any? turtles-here ] if ( seedpatch != nobody ) [ ask seedpatch [ sprout-tabonucos 1 [ set color sky ] set total-grown total-grown + 1 ] ] ] report total-grown end ;; Rules governing the growth of Yagrumo trees ;; only trees with an empty patch next to them get a chance to reproduce ;; and only tabonuco-growth-rate of those trees can reproduce to-report agent-yagrumo-growth [ current ] let total-grown 0 let growable yagrumos with [ not all? neighbors [ any? turtles-here ] ] ask n-of ( count growable * yagrumo-growth-rate ) growable [ let seedpatch one-of neighbors with [ not any? turtles-here ] if ( seedpatch != nobody ) [ ask seedpatch [ sprout-yagrumos 1 [ set color pink ] set total-grown total-grown + 1 ] ] ] report total-grown end ;; Rules governing destruction of Tabonuco trees to-report agent-tabonuco-death [ dist ] let total-dead 0 ask n-of min (list (count tabonucos) ( tabonuco-stock * dist ) ) tabonucos [ set total-dead total-dead + 1 die ] report total-dead end ;; Rules governing destruction of Yagrumo trees to-report agent-yagrumo-death [ dist ] let total-dead 0 ask n-of min (list (count yagrumos) ( yagrumo-stock * dist ) ) yagrumos [ set total-dead total-dead + 1 die ] report total-dead end to do-plot set-current-plot "output" set-current-plot-pen "carbon" plotxy ticks carbon set-current-plot-pen "nitrogen" plotxy ticks nitrogen set-current-plot "productivity" set-current-plot-pen "productivity" plotxy ticks productivity set-current-plot "trees" set-current-plot-pen "tabonuco" plotxy ticks amount-of-tabonuco set-current-plot-pen "yagrumo" plotxy ticks amount-of-yagrumo end to-report pulse [ volume initial interval ] set interval abs interval let our-x ticks - initial let peak volume / dt let slope peak / ( dt / 2 ) let offset abs our-x ;; if we have passed the initial pulse, then recalibrate ;; to the next pulse interval, if there IS an interval given if ( interval > 0 and our-x > ( dt / 2 ) ) [ set offset ( our-x mod interval ) if ( offset > dt / 2 ) [ set offset 0 + offset - interval ] ] ;; the down side of the pulse if ( offset >= 0 and offset <= dt / 2 ) [ report peak - ( slope * offset ) ] ;; the upside of the pulse if ( offset < 0 and offset >= ( 0 - ( dt / 2 ) ) ) [ report slope * min (list ( dt / 2 ) ( abs ( interval - offset ) ) ) ] report 0 end to test-pulse [ volume initial interval ] setup repeat 250 [ let y pulse volume initial interval output-print y set-current-plot "productivity" plotxy ticks y tick-advance dt ] end ; Copyright 2006 Uri Wilensky. ; See Info tab for full copyright and license.
There are 15 versions of this model.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Tabonuco Yagrumo Hybrid.png | preview | Preview for 'Tabonuco Yagrumo Hybrid' | over 11 years ago, by Uri Wilensky | Download |
This model does not have any ancestors.
This model does not have any descendants.