#' @title Immigration Function
#' @export
I_f <- function(Y = "Species occurrence matrix",
K = "Patch connectivity matrix",
m = "outside immigration"){
N <- nrow(Y)
R <- ncol(Y)
I <- (1-m) * (K %*% Y) / (K %*% matrix(1, nrow = N, ncol = R)) + m
return(I)
}
#' @title Patch Connectivity
#' @export
get_K <- function(XY, alpha){
N <- nrow(XY)
distMat <- as.matrix(dist(XY, method = "euclidean", upper = T, diag = T))
ConMat <- exp((-1/alpha)*distMat)
diag(ConMat) <- 0
return(ConMat)
}
#' @title Env Response - gaussian
#' @description The effect of the environment on the local performance and colonization
#' @export
#'
S_f_gaussian <- function(E, u_c, s_c) {
R <- ncol(u_c)
N <- nrow(E)
D <- ncol(E)
S <- matrix(1, nr = N, nc = R)
for(i in 1:D){
optima <- matrix(u_c[i,],nrow = N,ncol = R,byrow = TRUE)
breadth <- matrix(s_c[i,],nrow = N,ncol = R,byrow = TRUE)^2
S <- S*exp(-(E[,i]-optima)^2 / breadth)
}
return(S)
}
#' @title Env response quadratic
#' @description This function is used for a quadratic response to the environment
#' @export
S_f_quadratic <- function(E, u_c, s_c) {
R <- ncol(u_c)
N <- nrow(E)
D <- ncol(E)
S <- matrix(1, nr = N, nc = R)
for(i in 1:D){
optima <- matrix(u_c[i,],nrow = N,ncol = R,byrow = TRUE)
breadth <- matrix(s_c[i,],nrow = N,ncol = R,byrow = TRUE)
S <- S * ((-1 / (breadth/2)^2) * (E[,i] - optima)^2 + 1)
S <- ifelse(S < 0, 0 , S)
}
return(S)
}
#' @title Interactions
#' @description First get the sum of ecological interactions
#' @export
#'
sum_interactions <- function(A = "Species interactions matrix",
Y = "Species occurrence matrix"){
t(A %*% t(Y))
}
#' @title The effect of interactions on colonization
#' @export
C_f <- function(v = "Sum interactions",
d_c = "Sensitivity to interactions",
c_0 = "Colonization at zero interactions",
c_max = "Colonization at max interactions"){
c_max * (1 + ((1 / c_0) - 1) * exp(-v * d_c))^-1
# Is this the same as:
# c_max / (1 + ((1 / c_0) - 1) * exp(-v * d_c))
}
#' @title Effect of environment over extinction
#' @export
M_f <- function(E = "Environmental variables",
u_e = "extinction rate at optimum?",
s_e = "extinction rate at optimum?") {
R <- ncol(u_e)
N <- nrow(E)
D <- ncol(E)
M <- matrix(1, nrow = N, ncol = R)
for(i in 1:D){
optima <- matrix(u_e[i,],nrow = N,ncol = R,byrow = TRUE)
minima <- matrix(s_e[i,],nrow = N,ncol = R,byrow = TRUE)^2
M <- M*(1 - exp(-(E[,i] - optima)^2 / minima))
}
return(M)
}
#' @title Effect of species interactions on extinction
#' @export
E_f <- function(v = "Sum of interactions",
d_e = "Sensitivity to interactions",
e_0 = "Extinction at zero interactions",
e_min = "Extinction at max intreractions?") {
N <- nrow(v)
R <- ncol(v)
e_min_mat <- matrix(e_min, nrow = N, ncol = R, byrow=TRUE)
e_min_mat + (1 / (1-e_min_mat) + (1/(e_0-e_min_mat) - 1 / (1 - e_min_mat)) * exp(d_e * v))^-1
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.