A practical guide to ecological modelling – Chapter 1

## =============================================================================
## R-Code to make figure 1.7 from the book:
## K. Soetaert  and  P.M.J. Herman, 2009.  
## A practical guide to ecological modelling - 
## using R as a simulation platform. Springer, 372 pp. 
## http://www.springer.com/life+sciences/ecology/book/978-1-4020-8623-6 .
## implemented by Karline Soetaert
## =============================================================================

require(diagram)
par (mar = c(0, 0, 0, 0))
openplotmat()

# position of boxes
elpos <- coordinates (c(1, 1, 1, 1, 1, 1, 1, 1), mx = -0.1)

# segmented arrows
segmentarrow(elpos[7,], elpos[2,], arr.pos = 0.15, dd = 0.3, arr.side = 3)
segmentarrow(elpos[7,], elpos[3,], arr.pos = 0.15, dd = 0.3, arr.side = 3)
segmentarrow(elpos[7,], elpos[4,], arr.pos = 0.15, dd = 0.3, arr.side = 3)

pin   <- par ("pin")         # size of plotting region, inches
xx  <- 0.2
yy  <- xx*pin[1]/pin[2]*0.15  # used to make circles round

sx    <- rep(xx,8)
sx[7] <- 0.05

sy    <- rep(yy,8)
sy[6] <-yy*1.5
sy[7] <- sx[7]*pin[1]/pin[2]

for (i in 1:7) 
  straightarrow (from = elpos[i,], to = elpos[i+1,], lwd = 2, arr.pos = 0.5)

lab <- c("Problem", "Conceptual model", "Mathematical model", "Parameterisation",
         "Mathematical solution", "", "OK?", "Prediction, Analysis")

for (i in c(1:6,8)) 
  textround(elpos[i,], sx[i], sy[i], lab = lab[i])

textround(elpos[6,], xx, yy*2, 
  lab = c("Calibration,sensitivity", "Verification,validation"))

textdiamond(elpos[7,], sx[7], sy[7], lab = lab[7])

textplain(c(0.7, elpos[2,2]), yy*2, lab=c("main components", "relationships"),
  font = 3, adj = c(0, 0.5))
textplain(c(0.7, elpos[3,2]), yy  , lab = "general theory",
  font = 3, adj = c(0, 0.5))
textplain(c(0.7, elpos[4,2]), yy*2, lab = c("literature", "measurements"),
  font = 3, adj = c(0,0.5))
textplain(c(0.7, elpos[6,2]), yy*2, lab = c("field data", "lab measurements"),
  font = 3, adj = c(0,0.5))

Go back