Hawaiian fish on seamounts

No preview image

1 collaborator

Paul_hart_july_2020 Paul Hart (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 232 times • Downloaded 16 times • Run 0 times
Download the 'Hawaiian fish on seamounts' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


Overview, Design concept and Details (ODD) for seamount connectivity model – October 2016

Overview

  1. Purpose.

The purpose is to examine the degree of connectivity between fish populations on seamounts set in the deep ocean. The connectivity determines the likelihood of individual seamounts developing endemic (unique) species.

  1. Entities, state variables and scales.

The model includes:

Environment – The environment is the upper layers of the open ocean. This area includes a number of seamounts with peaks below the surface varying in depth with the maximum being 100m. There is a unidirectional current flowing through the area at a given speed and the surface water has a given temperature.

Turtles/Fish - The model includes members of one species of reef dwelling fish. The fish produces eggs and larvae which drift in the current. In future developments the model will have several species of fish with differing life histories.

Scale – The ‘world’ is the top 100 m of a 400 nautical mile (nm) square section of open ocean. This is divided up into patches 1 by 1 nm. The time step (tick) is one day.

  1. Process overview and scheduling

For the model there are the following entities with the actions they can execute.

Fish/turtles - Adult fish produce eggs and the day of spawning is temperature sensitive. There are eggs that drift in the plankton for a fixed number of days. Fish larvae which also drift in the plankton. The eggs and larvae are subject to a mortality rate from predation and other causes. At the right time, larvae start to move deeper in the water layer. This means that they either land on a seamount or time runs out and they die.

Patches/seamounts - Each patch has either a section of seamount in it or not. The patch has a current speed and direction flowing through it. Each patch has a water temperature. Ultimately the model could include eddies forming in the lee of seamounts.

Design concepts

Basic principles. The model is based on the idea of a meta-population. This is a population which is divided up into groups of individuals that are connected by migrants who move from one group to another (Hanski, 2010). A meta-population only remains a meta-population if these corridors of migration are kept open. The model is designed to explore how far seamounts have to be from each other before the structure of the meta-population is broken down and the smaller groups become isolated. When that happens, speciation can occur in the isolated group.

The model is designed to test an idea proposed by Hart and Pearson (2011) which argued that seamounts with peaks near the surface could be regarded in the same light as oceanic islands where speciation leading to endemism is common. The difference between seamounts and islands is that many of the species on seamounts have planktonic larvae which can be carried far and wide by currents. On islands, most organisms are fully terrestrial and it is much harder for them to move from one island to another although this varies with the life styles of the species and the degree of separation of the islands (Gillespie and Baldwin, 2010). The model will be a start in trying to understand how connected fish populations on seamounts are as a function of distance and depth.

Emergence. The model produces rates of successful migration across open water from one seamount to another. It also provides information on how far apart seamounts need to be in relation to aspects of the planktonic phase of a fish’s life history, for population isolation to occur. It is possible to change the life history pattern, for example, choosing for how long the fish remains in the egg stage and how long larvae are in the plankton before settlement. The model makes it possible to explore how these rates influence connectivity between seamounts.

Adaptation. What adaptive behaviours do agents have? In this preliminary realisation of the model there is no adaptation. In later developments genetic algorithms will be employed to improve the life time reproductive output (fitness) of the spawner. The GA will change features such as the time spent in the different developmental stages.

How are the behaviours modelled? Spawning time is a linear function of temperature. Where possible these functions are based on published empirical relations for a species of fish that is commonly found on tropical seamounts.

Objectives. What measure of future success of the agents is incorporated in the decision process? For an adult fish, the number of larvae that find suitable settlement sites will determine its reproductive success. In the first instance the model will only have one spawning adult but future developments could have a number of adults, each with slight variations in spawning behaviour. In addition different species with different life histories could be incorporated to simulate more realistically the competitive environment within which fish live.

Learning. Agents will not change their adaptive traits as a result of learning.

Prediction. Adults make an implicit prediction that the eggs they produce will find somewhere suitable to settle. Similarly, larvae at the right time for settlement, make an implicit prediction that there will be a seamount on which to settle. Both these predictions are probabilistic in that neither outcome is guaranteed.

Sensing. As the larvae start to move to deeper layers they sense the presence of a seamount surface when they are a given distance from it. This process just happens through the program comparing larval depth with depth of the seamount in the present patch. The sensing system is not modelled.

Interaction. In the first phase of the model there will be no interactions. Subsequently when there is more than one species of fish, they can be competition for settling space and for spawning areas.

Stochasticity. The current direction has a mean and variance from which a random direction is generated. This simulates the way an ocean current meanders. Mortality from predation is stochastic. Later developments will introduce more stochastic elements, for example for the time at which a fish spawns.

Collectives. There are no collectives.

Observation. The basic output is the number larvae that find a suitable settlement site. This is plotted for each year on a graph. In addition the total number of larvae that settle over the 15 year life time is output to a monitor. Another important output will be the distance between the seamount where spawning occurs and the furthest seamount on which the larvae successfully settle. This last has not been implemented in the present model. The model runs over a 15 year period which simulates the life span of the fish.

Details

  1. Initialisation

On setup the world is populated by a random distribution of seamounts each with a variable minimum depth. As the model only simulates the top 100m of the ocean all seamounts will have a maximum peak depth at 100m. Each patch will have a depth assigned to it; those without seamounts will have a depth of 100m those with will have a depth that varies across the seamount.

  1. Input data

The sea temperature is input on a slider but remains constant for a run. Sliders also set current speed and direction.

  1. Submodels

Submodels deal with spawning, the egg phase, the larval phase and the period during which larvae are looking to settle. Spawning is a simple production of new individuals. The egg phase deals with larval drift, which is in a given direction and at a given speed. The larval submodel also deals with and drift.

  1. References

Gillespie, R. G. and Baldwin, B. G. (2010) Island biogeography of remote archipelagoes. In Losos, J. B. and Ricklefs, R. E. (eds) The theory of island biogeography revisited. Princeton University Press. Pp358-387.

Hanski, I. (2010) The theories of island biogeography and meta-population dynamics. In Losos, J. B. and Ricklefs, R. E. (eds) The theory of island biogeography revisited. Princeton University Press. Pp186-213.

Hart, P. J. B. and Pearson, E. (2011). An application of the theory of island biogeography to fish speciation on seamounts. Marine Ecology Progress Series, 430: 281 – 288.

Comments and Questions

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

Click to Run Model

globals [  year days mortality larval-recruits flow-direction distance-travelled  sum-settled-larvae1 sum-settled-larvae2 sum-settled-larvae3 sum-settled-larvae4 sum-settled-larvae5
  sum-settled-larvae6 sum-settled-larvae7 sum-settled-larvae8 sum-settled-larvae9  Time-for-reproduction metamorphosed-larvae
  lifetime-fitness  difference  open-ocean-depth finish   ]
patches-own [ sea-temperature   seamount-depth seamount-number1 seamount-number2 seamount-number3 seamount-number4 seamount-number5 seamount-number6
  seamount-number7 seamount-number8 seamount-number9  seamount-number ]
breed [ eggs egg ]
breed [ larvae larva ]
breed [ settlers settler ]
breed [ adult-fish adult-fishes ]
eggs-own [   ]
larvae-own [  ]
settlers-own [ settler-depth ]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to setup
  ca
  setup-output-file
  create-ocean ;; sets the background colour to the ocean and gives each patch a depth and sets seamount to 0
  create-seamounts ;; reads from a file the locations of nine seamounts and atols from the NW sector of the Hawaiian seamount chain.
  locate-spawner   ;; locate a single spawner on a seamount chosen as the origin - coloured yellow on the display.
  set year year + 1
  set lifetime-fitness 0 ;; life-time fitness is the number of offspring that find a seamount on which to settle over the fish's lifetime before time runs out
  reset-ticks
end 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to go
 if ticks = 366 [ set year year + 1 ]
 if ticks = 366 [ reset-ticks ]
 if ticks = 0 [ set sum-settled-larvae1 0  set sum-settled-larvae2 0  set sum-settled-larvae3 0  set sum-settled-larvae4 0  set sum-settled-larvae5 0
    set sum-settled-larvae6 0  set sum-settled-larvae7 0  set sum-settled-larvae8 0  set sum-settled-larvae9 0 ]
 if ticks = 0 [ set metamorphosed-larvae 0 ]
 if ticks = 0 [ set larval-recruits 0 ]
 if year > 15 [ stop ]
set-current
reproduce
egg-drift
larval-drift
larval-settlement
if ticks = finish [ life-time-fitness ]
tick
end 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to setup-output-file

  if (file-exists? "New_recruits.csv") ;; this routine sets up the file to receive the output.
  [
    carefully
    [ file-delete "New_recruits.csv" ]
    [ print error-message ]
  ]

  file-open "New_recruits.csv"
  file-type "Year,"
  file-type "Current direction,"
  file-type "Number of eggs,"
  file-type "Time as an egg,"
  file-type "Time as a larva,"
  file-type "Larval search time,"
  file-type "Source seamount,"
  file-type "Seamount 1,"
  file-type "Seamount 2,"
  file-type "Seamount 3,"
  file-type "Seamount 4,"
  file-type "Seamount 5,"
  file-type "Seamount 6,"
  file-type "Seamount 7,"
  file-type "Seamount 8,"
  file-type "Seamount 9,"
  file-print "Life-time fitness"
  file-close
end 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to create-ocean ;; sets up the background ocean.
  ask patches  [ set pcolor 106 set open-ocean-depth 1000 set seamount-number 0 ]
end 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to create-seamounts  ;; this routine sets up seamount from a section of the Emperor-Hawaiian chain.
 ask patches [

  file-open "Seamount_peaks_E-H_chain NR.txt"
  while [not file-at-end?]
  [

    let next-X ( file-read )
    let next-Y ( - file-read )
    let seamount file-read
    ask patch ( next-X ) ( next-Y ) [ set seamount-number seamount ]
    let depth file-read
    ask patch ( next-X ) ( next-Y ) [set seamount-depth depth ]
    ask patch ( next-X ) ( next-Y ) [ ifelse seamount-depth <= viable-depth
    [

    ask patch next-X next-Y [set pcolor green] ]
     [ ask patch next-X next-Y [set pcolor red ] ]
    ]

     ask patch ( next-X ) ( next-Y ) [ if seamount-number = Source-seamount  [ set pcolor yellow ] ]
     ]
  ]


  file-close
end 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to locate-spawner  ;; this routine sets one adult fish onto a seamount chosen as the source point.
  ask one-of patches with [ pcolor = yellow  ]
  [ sprout-adult-fish 1 [ set shape "fish"
    set size 12 set color red  ]]
end 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to set-current ; a routine that sets the current speed and direction for each day.
  set flow-direction ( random-normal current-direction 50 ) ;;The current direction has a random component to simulate the eddy-like flow of an ocean current.
 set distance-travelled ( current-speed  * 24 ) ;; Current speed set on the slider has units of nautical miles per hour so distance covered in one tick (24h) is calculated.
end 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to reproduce ;; a routine to get the adult fish to spawn at a given temperature dependent time.
 set Time-for-reproduction ( 140 - 2 * temperature ) ;; the day on which spawning occurs is determined by temperature with spawning time being negatively related to temperature.
if ticks = Time-for-reproduction [ask adult-fish [ hatch-eggs number-eggs
[ set shape "circle" set size 5 set color white ]
]
]
end 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to egg-drift ;; routine to carry the eggs along in the direction of the current flow. They are assumed not to disperse beyond the 1km2 patch size within their time as eggs.
  if ticks < Time-for-reproduction + Time-as-egg
  [
 ask eggs [

   let destination patch-at-heading-and-distance flow-direction distance-travelled ;; these two lines deal with eggs that reach the boundary of the world.
 ifelse destination = nobody                                                                ;; The eggs die once they leave the world and this would happen too in the sea
                                                                                            ;; as seamounts tend to occur in limited areas.
 [
   die
 ]
 [
    move-to destination
    set mortality random-float 0.05
 if mortality < egg-mortality [ die ];; eggs are eaten by planktonic predators and die of disease.

 ]
 ] ]
    if ticks = Time-for-reproduction + Time-as-egg [ ;; at the end of the eggs phase those surviving hatch into larval fish.
       ask eggs
       [ set larval-recruits count eggs
     hatch-larvae larval-recruits [
   set shape "fish" set size 5 set color 18  ]
      ask eggs [ die ] ]
     ]
end 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to larval-drift            ;; routine to carry the larvae along with the direction and speed of the current

if ticks < Time-for-reproduction + Time-as-egg + Time-as-larva
[
ask larvae
[   set flow-direction ( random-normal current-direction 20 )
    let destination patch-at-heading-and-distance flow-direction distance-travelled
 ifelse destination = nobody [ die ]
[
        move-to destination ]
    set mortality random-float 0.05
 if mortality < larval-mortality [ die ]
 ;; as with eggs, larvae are predated upon by other planktonic organisms.

] ]


if ticks = Time-for-reproduction + Time-as-egg + Time-as-larva [  ;; after a set time the larvae begin to metamorphose into the adult form and begin to seek somewhere to settle.
       ask larvae
       [ set metamorphosed-larvae count larvae
     hatch-settlers metamorphosed-larvae [
   set shape "fish" set size 7 set color 16 ]
    ask larvae [ die ] ]
       ]
end 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to larval-settlement  ;; routine that allows the matamorphosing larvae to descend to deeper water to find a place to settle.
set finish ( Time-for-reproduction + Time-as-egg + Time-as-larva + larval-search-time )
ask settlers [
   ifelse pcolor = green [  ;; check to see if the fish is over a seamount
              set settler-depth random-normal 100 20 ;; the settle descends to a depth of 50m ± 20m
              set difference abs ( seamount-depth - settler-depth ) ;; determins how close to the seamount surface the settler is.

               if difference < 10

                   [ if seamount-number = 1 [ set sum-settled-larvae1 sum-settled-larvae1 + 1 ] ;; adds up the number of settlers separately for each seamount.
                     if seamount-number = 2 [ set sum-settled-larvae2 sum-settled-larvae2 + 1 ]
                     if seamount-number = 3 [ set sum-settled-larvae3 sum-settled-larvae3 + 1 ]
                     if seamount-number = 4 [ set sum-settled-larvae4 sum-settled-larvae4 + 1 ]
                     if seamount-number = 5 [ set sum-settled-larvae5 sum-settled-larvae5 + 1 ]
                     if seamount-number = 6 [ set sum-settled-larvae6 sum-settled-larvae6 + 1 ]
                     if seamount-number = 7 [ set sum-settled-larvae7 sum-settled-larvae7 + 1 ]
                     if seamount-number = 8 [ set sum-settled-larvae8 sum-settled-larvae8 + 1 ]
                     if seamount-number = 9 [ set sum-settled-larvae9 sum-settled-larvae9 + 1 ]




                   if difference < 10

                 [ die ];; if the settler is within 10 m of the surface then it settles and it is removed from the population of settlers.
                     ]
  ]
                     [
                        set flow-direction ( random-normal current-direction 20 )
                        let destination patch-at-heading-and-distance flow-direction distance-travelled

                            ifelse destination = nobody

                              [ die ]

                              [
                                move-to patch-at-heading-and-distance flow-direction distance-travelled
                                set mortality random-float 0.05
                                if mortality < settler-mortality [ die ]
                              ]
                     ]
                     if finish = ticks [ die ]


]
end 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to life-time-fitness ;; calculates the lifetiem fitness and outputs to a file the settlers landing on each seamount.



set lifetime-fitness lifetime-fitness + sum-settled-larvae1 + sum-settled-larvae2 + sum-settled-larvae3 + sum-settled-larvae4 + sum-settled-larvae5 + sum-settled-larvae6
                                     + sum-settled-larvae7 + sum-settled-larvae8 + sum-settled-larvae9




  file-open "New_recruits.csv"

  file-type (word year ",")
  file-type (word current-direction ",")
  file-type (word number-eggs ",")
  file-type (word time-as-egg ",")
  file-type (word time-as-larva ",")
  file-type (word larval-search-time ",")
  file-type (word source-seamount ",")
  file-type (word sum-settled-larvae1 ",")
  file-type (word sum-settled-larvae2 ",")
  file-type (word sum-settled-larvae3 ",")
  file-type (word sum-settled-larvae4 ",")
  file-type (word sum-settled-larvae5 ",")
  file-type (word sum-settled-larvae6 ",")
  file-type (word sum-settled-larvae7 ",")
  file-type (word sum-settled-larvae8 ",")
  file-type (word sum-settled-larvae9 ",")
  file-print (word lifetime-fitness)

  file-close
end 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

There is only one version of this model, created almost 3 years ago by Paul Hart.

Attached files

File Type Description Last updated
New_recruits.csv data File that receives output from the seamount model almost 3 years ago, by Paul Hart Download
Seamount_peaks_E-H_chain NR.txt data Seamount_peaks_E-H_chain NR.txt almost 3 years ago, by Paul Hart Download

This model does not have any ancestors.

This model does not have any descendants.