Ecological Archives E094-168-A1

Chantal M. Huijbers, Ivan Nagelkerken, Adolphe O. Debrot, Eelke Jongejans. 2013. Geographic coupling of juvenile and adult habitat shapes spatial population dynamics of a coral reef fish. Ecology 94:1859–1870. http://dx.doi.org/10.1890/11-1759.1

Appendix A. Description of the spatial simulation model.

The lines of R code in this appendix represent the essential parts of our model of the dynamics of the number of fishes on the reef along the coast of Curaçao. The model divides the reef into sections corresponding to 100 meter coastline. The entire coastline is 140 km long.

bins <- seq(from=.100,to=140.100,by=.1)

The number of modeled fishes in each age-class in each bin of the reef is recorded in a matrix:

number.fishes <- matrix(0,ncol=length(bins),nrow=number.ageclasses)

For each annual time step, the model starts with the number of recruits entering the reef from the adjacent bays:

number.fishes [1,430]<-400   #PB

number.fishes [1,600]<-12541 #SW

number.fishes [1,620]<-600   #FB

number.fishes [1,680]<-532   #AB

number.fishes [1,730]<-391   #AO

number.fishes [1,850]<-2120  #SJ

number.fishes [1,1220]<-434  #PG

Then the number of fishes of the next age classes along the reef is calculated:

for (a in 2:number.ageclasses) {

  for (x in 1:ncol(bins)) {

    number.fishes[a,x] <-

sum(number .fishes[(a-1),]*survival.rate*prob.disp3[(2102-

  x+1):(2102-x+1401)])  }}

where the annual survival rate equaled 0.6905, and prob.disp3 gives the probability density function of dispersal distances. For this dispersal kernel we assume a Weibull distribution with shape parameter k=1 and scale parameter λ.

prob.dispersal<-numeric(1401)

for (i in 702:length(prob.dispersal)) {

  x<-(i*100)-70050

  prob.dispersal[i]

     <-(1-exp(-(x/lambda)^k))-(1-exp(-((x-100)/lambda)^k))}

prob.dispersal[1:700]<-rev(prob.dispersal[702:1401])

prob.dispersal[701]<-(1-exp(-(50/lambda)^k))*2

prob.dispersal<-prob.dispersal/sum(prob.dispersal)

prob.disp3<-rep(prob.dispersal,3)

For a given λ value this model thus calculates the total population size and age structure at each locality. These output parameters can then be correlated to the observed population sizes. The R command optim was used to find the λ value that resulted in the strongest correlation between model output and observations.


[Back to E094-168]