#' Generate observations from true OM
#'
#' @param om operating model list from fillTrueOM
#' @param controlObs control object for creating observed values
#' @export
genObs <- function(om, controlObs){
# apply multinomial to true catch at age using ESSCAA
if (length(controlObs$ESSCAA) == 1){
ess <- rep(controlObs$ESSCAA, om$nYear)
} else if(length(controlObs$ESSCAA == om$nYear)){
ess <- controlObs$ESSCAA
} else {
return("Error: ESSCAA must have length = 1 or nYear")
}
om$CAAObs <- om$CAA
for (iyear in 1:om$nYear){
om$CAAObs[iyear, ] <- addMultinomialError(om$CAA[iyear, ], ess[iyear])
}
# apply lognormal distribution to generate observed catch in total weight
sigma <- sqrt(log(1 + controlObs$CtotCV ^ 2))
om$CtotObs <- addLognormalError(om$Ctot, sigma)
return(om)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.