bees_pollination_simulation

bees_pollination_simulation preview image

This model is seeking new collaborators — would you please help?

1 collaborator

Romeo_lorena_001 Lorena ROMEO (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.4.0 • Viewed 19 times • Downloaded 3 times • Run 0 times
Download the 'bees_pollination_simulation' 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 one season of the pollination process of apple trees by bees. It explores how many bees are needed to effectively fertilize apple trees so that apples can grow.

For a single apple tree, having 5-10 active bees visiting throughout the day can usually suffice. However, in an orchard, one hive per acre is the general guideline for effective pollination.

Factors Influencing Pollination Weather: Cold, rainy, or windy weather can reduce bee activity. Competing Flowers: Other blooming flowers nearby might distract bees from the apple flowers.

Factors Influencing Pollination: Weather: Cold, rainy, or windy weather can reduce bee activity. Competing Flowers: Other blooming flowers nearby might distract bees from the apple flowers. In this model we study honeybees that are the most common pollinators, but not to be forget are bumblebees and solitary bees that are also very effective.

TRENDS

The randomized positions of trees and flowers and pesticides can give very different results launching the simulation several times with the same settings. However the general trends are that fewer bees with less trees tends to have more difficult to survive. Grass flowers distracts the bees from tree pollination so the time to pollinate will be longer the more grass flowers we add. Add trees will make the colony grow exponentially. Add pesticides, specially when more than 5, can give very drastic results.

HOW IT WORKS

The model uses agents (bees, trees, flowers, hives, and weather) to simulate the pollination process. Bees move around the environment, visiting flowers and trees. When a bee visits a flower, it increases the flower's visit count and the flower becomes blue. When a bee visits a tree, it increases the tree's visited flower count. Trees change color to yellow when all their flowers have been visited, indicating full pollination. The generation of new bees depends on the tree pollination. New bees span every time that a tree is fully pollinated, simulating the food resourcing of the bees. The new bees are generated with a red head in order to differenciate them from the original bees. The model also simulates the effects of pesticides of 3 levels of toxicity on bees, which can reduce their lifespan and affect their behavior. The weather also has an impact on the behavior of the bees. When it's sunny no effects on bees, when it's cloudy they are slower with less pollination, and when it's stormy they do not move with no pollination.

HOW TO USE IT

Setup: Click the setup button to initialize the model. This creates bees, trees, flowers, and a hive. Go: Click the go button to start the simulation. Bees will begin moving, visiting flowers, and pollinating trees. Sliders: Adjust the number of bees (num-bees), trees (num-trees), flowers (num-flowers), pesticides (num-pesticides) and pesticides toxicity (toxicity-level) using the sliders. Click setup after using the sliders. The model will update accordingly. Weather: The weather changes every 100 ticks, affecting bee movement.

THINGS TO NOTICE

Observe how bees interact with flowers and trees, thanks also to the monitors on total bees, visited flowers of trees, weather and visited flowers plot. Notice the change in tree color when all flowers on a tree have been visited. Watch how the weather affects bee movement and activity. Pay attention to the impact of pesticides on bee lifespan and behavior.

THINGS TO TRY

Increase or decrease the number of bees and observe the effect on pollination efficiency. Adjust the number of trees and flowers to see how it impacts the pollination process. Introduce pesticides and observe their impact on bee behavior and lifespan. Experiment with different pesticides toxicity levels to see how they affect bee activity.

EXTENDING THE MODEL

Introduce night and day patterns. Add more detailed behaviors for bees, such as returning to the hive after a certain number of visits or during the night. Implement different types of flowers with varying attractiveness to bees. Introduce more complex weather patterns, such as temperature and seasonality, and their effects on bee activity. Add more detailed pesticide effects, such as less toxic during the night while bees are in the hive. Add predators or parasites agents that can impact bees activity such as Varroa destructor. Add new hives once a colony is complete and need to split. Add various stages of pollination in a tree to monitor the ongoing pollination status.

NETLOGO FEATURES

The model uses breeds to define different types of agents (bees, trees, flowers, hives, and weather displays). The ask command is used extensively to control agent behavior. The model uses patch colors to represent different pesticide levels. The hatch command is used to generate new bees. The stormy turtle has bee created from scratch since it was not available in the library. Some colors have been customised using custom rgb color model.

RELATED MODELS

This model has bee created from scratch based on my research on bees pollination.

CREDITS AND REFERENCES

This model was created to explore the pollination process of apple trees by bees. For more information on bee pollination and its importance, refer to resources on agricultural science and entomology.

https://bees.techno-science.ca/english/bees/pollination/default.php https://en.wikipedia.org/wiki/Pollination https://plantura.garden/uk/insects/bees/bee-pollination https://en.wikipedia.org/wiki/Listofcropplantspollinatedbybees https://www.farmers.gov/blog/value-birds-and-bees https://wonderopolis.org/wonder/how-many-flowers-can-a-bee-pollinate https://www.orkin.com/pests/stinging-pests/bees/honey-bees/honey-bee-colony https://en.wikipedia.org/wiki/Varroa_destructor

Comments and Questions

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

Click to Run Model

breed [bees bee]
breed [trees tree]
breed [flowers flower]
breed [hives hive]
breed [weather-displays weather-display]


bees-own [visited-flowers pesticide-timer toxicity life-timer]
flowers-own[visit-count]
trees-own [flower-count visited-flowers bees-generated]
hives-own [weather]

to setup
  clear-all
  create-agents
  setup-hive
  ask patches [
    set pcolor rgb 34 139 34
  ]
  ;; Add random toxic patches if pesticides are present
  if num-pesticides > 0 [
    add-random-toxic-patches num-pesticides
  ]
  assign-weather-shape
  create-weather-display
  reset-ticks
end 

to go
  assign-weather-shape
  let max-ticks 5000 ;; lenght of 1 pollination season
  ;; Reset pesticide effects if no pesticides are present
  if num-pesticides = 0 [
    ask bees [
      set pesticide-timer 0
      set toxicity "none"
    ]
  ]

  ;; Stop the simulation if all tree flowers are visited or max ticks reached (end of season)
  if all-tree-flowers-visited? or ticks >= max-ticks [
    stop
  ]

  ;; Bees perform their actions
  ask bees [
    move
    visit-flowers
    pollinate-trees
    check-pesticide
    age
  ]

  ;; Trees check if they are fully visited
  ask trees [
    check-if-fully-visited
  ]

  ;; Change weather every 100 ticks
  ask hives [
    if ticks mod 100 = 0 [
      set weather one-of ["sunny" "cloudy" "stormy"]
      ]
  ]
  tick
end 

to create-agents
  ;; Create bees with initial properties
  create-bees num-bees
  [
    set shape "bee"
    set size 0.5
    set color yellow
    setxy random-xcor random-ycor
    set visited-flowers []  ;; Start with an empty list of visited flowers
    set pesticide-timer 0
    set toxicity "none"
    set life-timer 1000 + random 1000
  ]

  ;; Create trees with initial properties
  create-trees num-trees [
    set shape "tree"
    set color green
    set size 3
    setxy random-xcor random-ycor
    set flower-count 10 + random 10
    set visited-flowers 0
    set bees-generated false
  ]

  ;; Create flowers with initial properties
  create-flowers num-flowers [
    set shape "flower"
    set color red
    set size 0.7
    set visit-count 0
    setxy random-xcor random-ycor
  ]
end 

to setup-hive
  ;; Create a hive with initial properties
  create-hives 1 [
    set shape "hex"
    set size 2.5
    set color rgb 255 223 0
    setxy max-pxcor - 1 min-pycor + 1
    set label "Hive"
    set label-color white
    set weather "sunny"
  ]
end 

to generate-bees [num]
  ask hives [
    ;; Generate new bees with specific properties
    hatch-bees 5 [
      set shape "bee"
      set size 0.5
      set color red
      setxy xcor ycor
      set visited-flowers []  ;; Start with an empty list of visited flowers
      set pesticide-timer 0
      set toxicity "none"
      set life-timer 1000 + random 1000
      set label ""
    ]
  ]
end 

to move
  let selected-hive one-of hives
  let current-weather [weather] of selected-hive

  ;; Bees move differently based on weather and pesticides
  if current-weather = "sunny" [
    if pesticide-timer > 0 [
      right random 360
      if toxicity = "low" [ fd 0.7 + random-float 0.2 ] ;; low speed reduction
      if toxicity = "medium" [ fd 0.5 + random-float 0.2 ] ;; medium speed reduction
      if toxicity = "high" [ fd 0.2 + random-float 0.1 ] ;; high speed reduction
    ]
    if pesticide-timer = 0 [
      right random 360
      forward 0.8 + random-float 0.4
    ]
  ]

  if current-weather = "cloudy" [
    if pesticide-timer > 0 [
      right random 360
      if toxicity = "low" [ fd 0.7 + random-float 0.2 ] ;; low speed reduction
      if toxicity = "medium" [ fd 0.5 + random-float 0.2 ] ;; medium speed reduction
      if toxicity = "high" [ fd 0.2 + random-float 0.1 ] ;; high speed reduction
    ]
    if pesticide-timer = 0 [
      right random 360
      forward 0.6 + random-float 0.3
    ]
  ]

  if current-weather = "stormy" [
    forward 0 ;; Stop moving during the storm
  ]
end 

;; Bees visit and interact with nearby flowers

to visit-flowers
  let nearby-flower one-of flowers in-radius 1
  if nearby-flower != nobody [
    ask nearby-flower [
      set visit-count visit-count + 1
      if visit-count >= 5 [
        set color blue  ;; Change flower color when fully visited
      ]
    ]
  ]
end 

;; Bees pollinate trees if they are on the same patch

to pollinate-trees
  if pesticide-timer > 0 [
    if toxicity = "low" [ if random-float 1 < 0.8 [stop] ;;80% chance to pollinate, 20% chance to stop
  ]
    if toxicity = "medium" [ if random-float 1 < 0.5 [stop] ;;50% chance to pollinate, 50% chance to stop
  ]
    if toxicity = "high" [ if random-float 1 < 0.2 [stop] ;;20% chance to pollinate, 80% chance to stop
  ]
  ]

  if pesticide-timer = 0 [
  let tree-here one-of trees-here
  if tree-here != nobody [
    ask tree-here [
      if visited-flowers < flower-count [
        set visited-flowers visited-flowers + 1
      ]
    ]
  ]
 ]
end 

to check-if-fully-visited
  ;; Change tree color if all flowers have been visited
  if visited-flowers >= flower-count and not bees-generated [
    set color yellow  ;; Change color to indicate full pollination
    set bees-generated true  ;; Mark that bees have been generated
    ask hives [
      generate-bees 1  ;; Command to generate bees when the tree is fully visited
    ]
  ]
end 

to-report all-tree-flowers-visited?
  report sum [visited-flowers] of trees >= sum [flower-count] of trees
end 

;; Add random patches of pesticides of different toxicity level using the slider

to add-random-toxic-patches [pesticides]
  repeat pesticides [
    let random-patch one-of patches with [pcolor = rgb 34 139 34]
    ask random-patch [
      if toxicity-level = 1 [ set pcolor pink ]
      if toxicity-level = 2 [ set pcolor orange ]
      if toxicity-level = 3 [ set pcolor red ]
    ]
  ]
end 

to check-pesticide
  if num-pesticides = 0 [
    set pesticide-timer 0
    set toxicity "none"
    stop
  ]
  if pcolor = pink [
    set pesticide-timer 2000 ;; Set pesticide timer for low toxicity
    set toxicity "low"
  ]
  if pcolor = orange [
    set pesticide-timer 2000 ;; Set pesticide timer for medium toxicity
    set toxicity "medium"
  ]
  if pcolor = red [
    set pesticide-timer 2000 ;; Set pesticide timer for high toxicity
    set toxicity "high"
  ]
end 

to age
  if pesticide-timer > 0 [
    set pesticide-timer pesticide-timer - 1
    ;; Gradually penalize life-timer based on toxicity level
    if toxicity = "low" [
      set life-timer max (list 0 (life-timer - 0.1))
    ]
    if toxicity = "medium" [
      set life-timer max (list 0 (life-timer - 0.3))
    ]
    if toxicity = "high" [
      set life-timer max (list 0 (life-timer - 0.5))
    ]
  ]

  ;; Regular aging
  set life-timer life-timer - 0.87
  if life-timer <= 0 [
    die
  ]
end 

to create-weather-display
  create-weather-displays 1 [
    set shape "sun"  ;; Initial shape, will change based on weather
    set size 3
    set color rgb 255 165 0
    setxy (max-pxcor - 2) (max-pycor - 2)
  ]
end 

to assign-weather-shape
  let selected-hive one-of hives
  let current-weather [weather] of selected-hive

 ;; Update the shape of the weather display
 ask weather-displays [
    if current-weather = "sunny" [
      set shape "sun"
      set color rgb 255 165 0
      setxy (max-pxcor - 2) (max-pycor - 2)
    ]
    if current-weather = "cloudy" [
      set shape "cloud"
      set color grey
      setxy (max-pxcor - 2) (max-pycor - 2)
    ]
    if current-weather = "stormy" [
      set shape "storm"
      set color grey
      ;;set size 6
      setxy (max-pxcor - 2) (max-pycor - 2)
    ]
  ]
end 

There is only one version of this model, created 2 days ago by Lorena ROMEO.

Attached files

File Type Description Last updated
bees_pollination_simulation.png preview Preview for 'bees_pollination_simulation' 2 days ago, by Lorena ROMEO Download

This model does not have any ancestors.

This model does not have any descendants.