R/process_obsRich.R

Defines functions process_obsRich

Documented in process_obsRich

#' Process Observed Data for Richness
#' 
#' Used observations, as opposed to model output, to summarize elements related to regional richness
#' 
#' @param X a data.table containing data for a region. Should \code{\link{data_all}} (1 year of which used as input to \code{\link{run_msom}})
#' @param msom_yrs Optional vector of integers indicating calendar years analyzed by the msom, and that will be used to subset \code{X}
#' 
#' @details 
#' The analysis performed by this function was previously contained in process_msomStatic.
#' 
#' @export
process_obsRich <- function(X, msom_yrs){
	requireNamespace("rbLib", quietly=TRUE)
	
	# rd
	if(missing(msom_yrs)){
		rd <- X
	}else{
		rd <- X[year%in%msom_yrs]
	}
	
	# rd_yr
	rd_yr <- rd[,sort(una(year))]
	
	# naive_rich
	naive_rich <- rd[,list(naive_rich=trawlData::lu(spp)), keyby=c("year")]
	
	# local naive rich
	local_rich_obs <- rd[,list(local_rich_obs=length(unique(spp))), keyby=c("year","stratum")][,list(local_rich_obs=mean(local_rich_obs)),keyby=c("year")]
	local_rich_samp <- rd[,list(local_rich_samp=local_rich_sample(.SD)),by=c('year')]
	# plot(local_rich_obs[,local_rich_obs], local_rich_samp[,local_rich_samp]); abline(a=0, b=1)
	
	# beta diversity
	bd_methods <- c("hellinger","jaccard", "sorensen", "ochiai")[2]
	qbd <- function(m, t_mat){beta_div_quick(t_mat, method=m)}
	bd_wide <- rd[,j={
		Y_tbl <- as.matrix(table(stratum, spp))
		Y <- matrix(pmin(1, Y_tbl), ncol=ncol(Y_tbl))
		l_out <- lapply(bd_methods, qbd, t_mat=Y)
		names(l_out) <- bd_methods
		l_out
	},by="year"]
	beta_div_obs <- data.table:::melt.data.table(bd_wide, id.vars=c("year"), variable.name="method", value.name="beta_div_obs")
	
	# colonization
	colonization <- get_colonizers(d=rd)
	
	# bt
	vars <- c("lon","lat","btemp","depth")
	funs <- list(mean,mean)
	bys <- list(c("haulid","stratum","year"),c("stratum","year"))
	bt_depth <- seqAgg(rd, val=vars, FUN=funs, by=bys, na.rm=TRUE)
	setnames(bt_depth, c("btemp"), c("bt"))
	bt_depth[,c("bt_col","depth_col"):=list(rbLib::zCol(256, bt), rbLib::zCol(256, depth))]
	bt <- bt_depth
	
	
	output <- list(rd_yr=rd_yr, rd=rd, naive_rich=naive_rich, local_rich_obs=local_rich_obs, local_rich_samp=local_rich_samp, colonization=colonization, bt=bt, beta_div_obs=beta_div_obs)
	
	return(output)
	
}
rBatt/trawlDiversity documentation built on Aug. 14, 2021, 1:01 p.m.