Climate-driven Bark Beetle Outbreaks

Climate-driven Bark Beetle Outbreaks preview image

1 collaborator

Screen_shot_2018-02-02_at_12.53.50_pm lin xiang (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 6.2.2 • Viewed 82 times • Downloaded 3 times • Run 0 times
Download the 'Climate-driven Bark Beetle Outbreaks' 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 simulates climate-driven bark beetle outbreaks. Compared to the basic "Bark Beetle Epidemic" model, which presents students with the impact of temperature and droughts on bark beetle outbreaks, this model separates the effects of rising temperatures on beetle reproduction and survival. This model also allows students to explore the impacts of sanitation cutting, salvage cutting, and thinning on beetle outbreak.

HOW IT WORKS

Agents:

There are two types of agents: beetles and host trees.

Model Rules:

  1. The model has 289 patches (light brown squares). Each patch may grow one pine tree.

  2. Bark beetles follow pheromone to find their host tree. They always first infest the tree with the strongest pheromone (i.e., max pheromone) and are not fully occupied (i.e., attack < 50).

  3. If no pheromone is sensed, bark beetles attack a mature tree (i.e., with a size no smaller than 1.75) nearby and release pheromones to attract other dispersing beetles.

  4. Once infesting a tree, each bark beetle produces 2 offspring beetles and counts as 2 attacks on the tree. When the average temperature rises in summer, some beetles may produce another 2 offspring beetles.

  5. Beetles may live two hypothetical years and die after reproduction. Each year, 49% of the beetles die during winter. When the average temperature rises in winter, fewer beetles die.

  6. Trees become reddish after receiving 35 attacks and die after getting 50 attacks. Droughts will lower the tree defense threshold from 50 to 45, 40, or 35.

  7. Every empty patch grows a new pine tree at a chance of 5% each year.

HOW TO USE IT

  1. Use the slider Starting-number-of-beetles to set up the starting beetle population. Click Start/Reset to confirm the settings.

  2. Put a number in years to define when the model ends.

  3. Click Run/Pause to run or pause the model. Good for gaining an overview and a long-term result.

  4. Click Run a year to run the model for a hypothetical year. Good for systematically collecting data.

  5. Use sliders to define the temperature increases and the severity of droughts.

  6. Use switch * Cut-down-trees? * to choose whether and how to cut down trees to mitigate the outbreak.

  7. Use the slider Thinning to set up how many percent of mature trees to be cut down for thinning the forest. These trees include the infected and the uninfested.

THINGS TO NOTICE & TRY

  • Can you identify an outbreak in the model? How?

  • How many outbreaks may occur over 150 years when there are no droughts and no increases in temperatures?

  • How many outbreaks may occur over 150 years when there are droughts and increases in temperatures?

  • How do droughts and/or rising temperatures affect the number of dead trees?

  • How does cutting down infested trees affect the outbreak occurrences and tree loss?

  • How does thinning forests affect the outbreak occurrences?

CREDITS AND REFERENCES

Dr. Lin Xiang created this module at the University of Kentucky in 2022. If you mention this model in a publication, we ask that you include the citations below.

Xiang, L. (2022). Climate-driven Bark Beetle Outbreaks. Department of STEM Education, University of Kentucky, Lexington, KY.

CC BY-NC-SA 4.0

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/4.0/.

Comments and Questions

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

Click to Run Model

breed [trees tree]
breed [beetles beetle]

beetles-own [age]
trees-own [attack pheromone]
globals [dead-trees forest-lost total-dead-trees max-dead-trees max-b-population b-population cut-down-trees]

to setup
  clear-all
  setup-beetles
  setup-trees
  setup-patches

  reset-ticks
end 

to setup-trees
  ask patches
  [if not any? trees-here
    [if random 100 < 80
      [sprout-trees 1
      [set color 54
       set size 1.5 + random-float 1
       set shape "pine"
       set attack 0
       set pheromone 0]
  ]]]
end 

to setup-beetles
  create-beetles Starting-number-of-beetles
  [set color 0
    set size 0.5
    set shape "bark-beetle"
    set age 0
    setxy random-xcor random-ycor
  ]
end 

to setup-patches
  ask patches [set pcolor 37 + random-float 1]
end 

to go

  if ticks >= years [stop]
  ;if not any? beetles [stop]

  move-infest
  attacking
  beetle-mortality
  beetle-flight
  tree-sapling
  tree-grow
  count-dead-trees
  clean-pheromone
  thinning-trees
  forest-management
  tick
end 

to forest-management
  (ifelse
     Cut-down-trees? = "never"
      []

     Cut-down-trees? = "when they are lightly infested"
      [ask trees with [attack > 5]
        [ask beetles-here [die]
         set cut-down-trees cut-down-trees + 1
         die]]

     Cut-down-trees? = "only when they are heavily infested"
      [ask trees with [attack > 35 - (drought-severity * 5)]
        [ask beetles-here [die]
         set cut-down-trees cut-down-trees + 1
         die]]
    )
end 

to thinning-trees
 ask trees with [size >= 1.75]
        [if random 100 < Thinning [set cut-down-trees cut-down-trees + 1 die]]
end 

to clean-pheromone
  ask trees [set pheromone 0]
end 

to  beetle-flight  ;mature beetle flight for new trees
 ask beetles
   [right random 360 forward 1 + random-float 2]
end 

to count-dead-trees

  set total-dead-trees dead-trees
  if total-dead-trees > max-dead-trees
    [set max-dead-trees total-dead-trees]
  set dead-trees 0

  set b-population count beetles
  if b-population > max-b-population
  [set max-b-population b-population]
end 

to tree-sapling
 ask patches
  [if not any? trees-here
    [if random 100 < 5
      [sprout-trees 1
      [set color 54
       set size 1
       set shape "pine"
       set attack 0
       set pheromone 0]]]]
end 

to tree-grow
 ask trees
  [if size <= 2.5
    [set size size + 0.05]]
end 

to beetle-mortality
  ask beetles
  [ if age >= 2 [die]
    if random 100 < 49 - avg-winter-temperature-increase * 2 [die]
  ]
end 

to attacking
  ask trees
  [(ifelse
    attack > 35  - (drought-severity * 5) and attack < 50  - (drought-severity * 5)
      [set color 26]
    attack >= 50  - (drought-severity * 5)
      [set dead-trees dead-trees + 1 set forest-lost forest-lost + 1 die ])]
end 

to move-infest
   ask beetles
  [ifelse any? trees with [pheromone > 0 and attack < 50 - (drought-severity * 5)] in-radius 5           ;if there are trees with pheromone and not fully-occupied in a radius of 5
    [let candidate-trees trees with [pheromone > 0 and attack < 50  - (drought-severity * 5)] in-radius 5      ;if so, let these trees to be the candidate trees
      let my-tree one-of candidate-trees with-max [pheromone]                   ; let one of candidate trees with the max pheromone be my tree
       move-to my-tree                                                          ;infest the tree and reproduce and die
       hatch 2 [set age 0]
        ask my-tree [set attack attack + 2 set pheromone pheromone + 1]

        if random 100 < avg-summer-temperature-increase * 4                     ;effect of rising temperature
           [hatch 2 [set age 0]
            ask my-tree [set attack attack + 2 set pheromone pheromone + 1]]
       die]

    [ifelse any? trees with [size >= 1.75 and pheromone <= 0 ] in-radius 2            ;otherwise, if there are mature non-infested trees in a radius of 2
      [let candidate-trees trees with [size >= 1.75 and pheromone <= 0 ] in-radius 2  ; if so, let these trees to be the candidate trees
       let my-tree one-of candidate-trees                                             ; let one of candidate trees be my tree
        move-to my-tree                                                               ;infest the tree and reproduce and die
        hatch 2 [set age 0]
        ask my-tree [set attack attack + 2 set pheromone pheromone + 1]

        if random 100 < avg-summer-temperature-increase * 4                     ;effect of rising temperature
           [hatch 2 [set age 0]
            ask my-tree [set attack attack + 2 set pheromone pheromone + 1]]
        die]

      [right random 360 forward 1 + random-float 2 set age age + 1]                         ;otherwise, randomly move and increase age
    ]]
end 

There are 4 versions of this model.

Uploaded by When Description Download
lin xiang 3 months ago add thinning Download this version
lin xiang 6 months ago Fix info typos Download this version
lin xiang 6 months ago Fix info typos Download this version
lin xiang 6 months ago Initial upload Download this version

Attached files

File Type Description Last updated
Climate-driven Bark Beetle Outbreaks.png preview Preview for 'Climate-driven Bark Beetle Outbreaks' 6 months ago, by lin xiang Download

This model does not have any ancestors.

This model does not have any descendants.