Newer
Older
# exp <- array(rnorm(1000), dim = c(dat = 1, lat = 3, lon = 5, member = 10, year = 50))
# obs <- array(rnorm(1000), dim = c(dat = 1, lat = 3, lon = 5, year = 50))
# bias <- Bias(exp = exp, obs = obs, time_dim = 'year', memb_dim = 'member', na.rm = FALSE, ncores = 1)
Bias <- function(exp, obs, time_dim = 'sdate', memb_dim = NULL, na.rm = FALSE, ncores = NULL) {
## Checks
## Ensemble mean
if (!is.null(memb_dim)) {
exp <- MeanDims(exp, memb_dim, na.rm = na.rm)
}
## Mean bias
bias <- multiApply::Apply(data = list(exp, obs),
target_dims = time_dim,
fun = .Bias,
ncores = ncores)$output1
## Return the mean bias
bias <- MeanDims(bias, time_dim, na.rm = na.rm)
return(bias)
}
.Bias <- function(exp, obs) {
bias <- exp - obs
return(bias)
}