Commit d2ff437f authored by Daniel Falster's avatar Daniel Falster
Browse files

quiet library loading, optional output dir for ecorgeion

No related merge requests found
Showing with 22 additions and 25 deletions
+22 -25
############################################ FUNCTION TO EXTRACT DECTED OUTLIER AND FORMAT TRY DATA Georges Kunstler
############################################ 14/06/2013
library(MASS)
library(doParallel)
library(mvoutlier)
library(MASS, quietly=TRUE)
library(doParallel, quietly=TRUE)
library(mvoutlier, quietly=TRUE)
######################################################## Build a function that extract the variables
......@@ -133,7 +133,7 @@ f.quantile <- function(x, ind, probs) {
}
f.quantile.boot2 <- function(x, R, probs = 0.99) {
require(boot)
require(boot, quietly=TRUE)
if (length(na.exclude(x)) > 0) {
quant.boot <- boot(x, f.quantile, R = R, probs = probs)
return(c(mean = mean(quant.boot$t), sd = sd(quant.boot$t), nobs = length(na.exclude(x))))
......
......@@ -56,7 +56,7 @@ BA.fun <- function(diam, weights) {
##' @return data frame with tree.id and one column per species with basal area of the species (without the target tree)
##' @author Kunstler
BA.SP.FUN <- function(obs.id, diam, sp, id.plot, weights, weight.full.plot) {
require(data.table)
require(data.table, quietly=TRUE)
id.plot <- as.character(id.plot)
obs.id <- as.character(obs.id)
......@@ -133,7 +133,7 @@ BA.SP.FUN <- function(obs.id, diam, sp, id.plot, weights, weight.full.plot) {
BA.SP.FUN.XY <- function(obs.id, xy.table, diam, sp, Rlim, parallel = FALSE, rpuDist = FALSE) {
rownames(xy.table) <- obs.id
if (rpuDist) {
require(rpud)
require(rpud, quietly=TRUE)
dist.mat <- rpuDist(xy.table, upper = TRUE, diag = TRUE)
} else {
dist.mat <- as.matrix(dist(xy.table, upper = TRUE, diag = TRUE))
......@@ -149,7 +149,7 @@ BA.SP.FUN.XY <- function(obs.id, xy.table, diam, sp, Rlim, parallel = FALSE, rpu
fun.sum.sp <- function(x, sp) tapply(x, INDEX = sp, FUN = sum, na.rm = TRUE)
if (parallel) {
## parallel version
require(doParallel)
require(doParallel, quietly=TRUE)
registerDoParallel(cores = 4)
mat <- dist.mat * BA.mat
res.temp <- foreach(i = 1:nrow(mat), .combine = rbind) %dopar% {
......@@ -185,14 +185,14 @@ fun.clean.species.tab <- function(species.tab) {
### compute quantile 99% and sd with a bootstrap
library(boot)
library(boot, quietly=TRUE)
f.quantile <- function(x, ind, probs) {
quantile(x[ind], probs = probs, na.rm = TRUE)
}
f.quantile.boot <- function(i, x, fac, R, probs = 0.99) {
require(boot)
require(boot, quietly=TRUE)
if (length(na.exclude(x[fac == i])) > 0) {
quant.boot <- boot(x[fac == i], f.quantile, R = R, probs = probs)
return(as.matrix(c(mean = mean(quant.boot$t), sd = sd(quant.boot$t), nobs = length(na.exclude(x[fac ==
......@@ -231,11 +231,11 @@ function.replace.NA.negative <- function(data.BA.SP) {
############################################################## function to generate data in good format per ecoregion
fun.data.per.ecoregion <- function(ecoregion, data.tot, plot.name, weight.full.plot,
name.country, data.TRY = NA, species.lookup = NA) {
require(data.table)
data.tot <- data.table(data.tot)
data <- data.tot[ecocode == ecoregion, ]
rm(data.tot)
name.country, data.TRY = NA, species.lookup = NA, output.dir = "./data/process") {
require(data.table, quietly=TRUE)
print(paste("Working on Ecoregion %s", ecoregion))
data <- data.table(data.tot)[ecocode == ecoregion, ]
data.BA.SP <- BA.SP.FUN(obs.id = as.vector(data[["obs.id"]]), diam = as.vector(data[["D"]]),
sp = as.vector(data[["sp"]]), id.plot = as.vector(data[[plot.name]]), weights = data[["weights"]],
weight.full.plot = weight.full.plot)
......@@ -264,20 +264,17 @@ fun.data.per.ecoregion <- function(ecoregion, data.tot, plot.name, weight.full.p
if (sum(!data.BA.sp[["obs.id"]] == data[["obs.id"]]) > 0)
stop("competition index not in the same order than data")
##### ADD TRY DATA OR TRAITS IF NEEDED
data.traits = NA
if (!is.na(data.TRY)) {
sp.extract <- species.lookup[species.lookup[["sp"]] %in% unique(data[["sp"]]),
]
sp.extract <- species.lookup[species.lookup[["sp"]] %in% unique(data[["sp"]]), ]
data.traits <- fun.extract.format.sp.traits.TRY(sp = sp.extract[["sp"]],
sp.syno.table = sp.extract, data.TRY)
## save everything as a list
list.temp <- list(data.tree = data, data.BA.SP = data.BA.sp, data.traits = data.traits)
save(list.temp, file = paste("./data/process/list", name.country, ecoregion,
"Rdata", sep = "."))
} else {
list.temp <- list(data.tree = data, data.BA.SP = data.BA.sp, data.traits = NA)
save(list.temp, file = paste("./data/process/list", name.country, ecoregion,
"Rdata", sep = "."))
}
}
## save everything as a list
list.temp <- list(data.tree = data, data.BA.SP = data.BA.sp, data.traits = data.traits)
save(list.temp, file = file.path(output.dir,paste("list", name.country, ecoregion,
"Rdata", sep = ".")))
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment