Commit 68e16c81 authored by Kunstler Georges's avatar Kunstler Georges
Browse files

rerun with koppen all and progress on figures

parent 11679ab7
...@@ -247,7 +247,6 @@ seq.BATOT <- seq(from = 0, ...@@ -247,7 +247,6 @@ seq.BATOT <- seq(from = 0,
return(list(trait.quant, seq.BATOT)) return(list(trait.quant, seq.BATOT))
} }
#TODO UPDATE TO WORK WITH INTRA
fun.generate.pred.param.dat <- function(list.sd, Tf.low, Tf.high, seq.sumBn, fun.generate.pred.param.dat <- function(list.sd, Tf.low, Tf.high, seq.sumBn,
N.pred = 100, MAT.MAP.TF = FALSE, N.pred = 100, MAT.MAP.TF = FALSE,
intra.TF = FALSE){ intra.TF = FALSE){
...@@ -511,7 +510,7 @@ easyPredCI <- function(list.res, newdata, alpha=0.05) { ...@@ -511,7 +510,7 @@ easyPredCI <- function(list.res, newdata, alpha=0.05) {
## BOLKER FUNCTION FROM RPUB ## BOLKER FUNCTION FROM RPUB
easyPredCI.param <- function(list.res, type, newdata, alpha=0.05,alpha_0 = 'sumBn') { easyPredCI.param <- function(list.res, type, newdata, alpha=0.05,alpha_0 = 'sumBn') {
if (! type %in% c('maxG', 'alphar', 'alphae', 'alphal')) if (! type %in% c('maxG', 'alphar', 'alphae', 'alphal', 'alpha0'))
stop ('error in type') stop ('error in type')
beta <- list.res$lmer.summary$fixed.coeff.E beta <- list.res$lmer.summary$fixed.coeff.E
V <- list.res$vcov V <- list.res$vcov
...@@ -523,7 +522,8 @@ easyPredCI.param <- function(list.res, type, newdata, alpha=0.05,alpha_0 = 'sumB ...@@ -523,7 +522,8 @@ easyPredCI.param <- function(list.res, type, newdata, alpha=0.05,alpha_0 = 'sumB
maxG = c("(Intercept)", "Tf" ), maxG = c("(Intercept)", "Tf" ),
alphar = c(alpha_0, "sumTfBn"), alphar = c(alpha_0, "sumTfBn"),
alphae = c(alpha_0, "sumTnBn"), alphae = c(alpha_0, "sumTnBn"),
alphal = c(alpha_0, "sumTnTfBn.abs")) alphal = c(alpha_0, "sumTnTfBn.abs"),
alpha0 = alpha_0)
X[, !colnames(X) %in% sel.keep] <- 0 X[, !colnames(X) %in% sel.keep] <- 0
pred <- X %*% beta pred <- X %*% beta
pred.se <- sqrt(diag(X %*% V %*% t(X))) ## std errors of predictions pred.se <- sqrt(diag(X %*% V %*% t(X))) ## std errors of predictions
...@@ -539,6 +539,11 @@ easyPredCI.param <- function(list.res, type, newdata, alpha=0.05,alpha_0 = 'sumB ...@@ -539,6 +539,11 @@ easyPredCI.param <- function(list.res, type, newdata, alpha=0.05,alpha_0 = 'sumB
inter <- beta['(Intercept)'] inter <- beta['(Intercept)']
meanX <- X[1, '(Intercept)'] meanX <- X[1, '(Intercept)']
} }
if (type == 'alpha0'){
inter <- 0
meanX <- 0
}
cbind(newdata, cbind(newdata,
pred = pred - inter*meanX, pred = pred - inter*meanX,
lwr = pred-crit*pred.se - inter*meanX, lwr = pred-crit*pred.se - inter*meanX,
...@@ -632,7 +637,41 @@ pred.res.ae$pred <- -pred.res.ae$pred ...@@ -632,7 +637,41 @@ pred.res.ae$pred <- -pred.res.ae$pred
pred.res.ae$lwr <- -pred.res.ae$lwr pred.res.ae$lwr <- -pred.res.ae$lwr
pred.res.ae$upr <- -pred.res.ae$upr pred.res.ae$upr <- -pred.res.ae$upr
return(rbind(pred.res.max, pred.res.ar, pred.res.ae, pred.res.al)) if(!intra.TF){
pred.res.a0 <- easyPredCI.param(list.res, type = 'alpha0', new.data, alpha, alpha_0)
pred.res.a0$Tf <- seq(from = list.var[[1]][['ql.o']],
to = list.var[[1]][['qh.o']],
length.out = 100)
pred.res.a0$param.type <- 'alpha0'
pred.res.a0$pred <- -pred.res.a0$pred
pred.res.a0$lwr <- -pred.res.a0$lwr
pred.res.a0$upr <- -pred.res.a0$upr
return(rbind(pred.res.max, pred.res.ar, pred.res.ae, pred.res.al, pred.res.a0))
}
#TODO
if(intra.TF){
pred.res.a0.intra <- easyPredCI.param(list.res, type = 'alpha0', new.data, alpha, alpha_0 = 'sumBn.intra')
pred.res.a0.intra$Tf <- seq(from = list.var[[1]][['ql.o']],
to = list.var[[1]][['qh.o']],
length.out = 100)
pred.res.a0.intra$param.type <- 'alpha0.intra'
pred.res.a0.intra$pred <- -pred.res.a0.intra$pred
pred.res.a0.intra$lwr <- -pred.res.a0.intra$lwr
pred.res.a0.intra$upr <- -pred.res.a0.intra$upr
#
pred.res.a0.inter <- easyPredCI.param(list.res, type = 'alpha0', new.data, alpha, alpha_0 = 'sumBn.inter')
pred.res.a0.inter$Tf <- seq(from = list.var[[1]][['ql.o']],
to = list.var[[1]][['qh.o']],
length.out = 100)
pred.res.a0.inter$param.type <- 'alpha0.inter'
pred.res.a0.inter$pred <- -pred.res.a0.inter$pred
pred.res.a0.inter$lwr <- -pred.res.a0.inter$lwr
pred.res.a0.inter$upr <- -pred.res.a0.inter$upr
return(rbind(pred.res.max, pred.res.ar, pred.res.ae, pred.res.al, pred.res.a0.intra, pred.res.a0.inter))
}
} }
...@@ -807,7 +846,7 @@ return(dat.res) ...@@ -807,7 +846,7 @@ return(dat.res)
fun.pred.BA.l.and.h.all.traits.3params <- function(traits, model, dir.root, fun.pred.BA.l.and.h.all.traits.3params <- function(traits, model, dir.root,
list.res, N.pred = 100, list.res, N.pred = 100,
data.type, MAT.MAP.TF = FALSE, data.type, MAT.MAP.TF = FALSE,
alpha_0){ intra.TF = FALSE){
list.df <- vector('list') list.df <- vector('list')
for (i in traits){ for (i in traits){
list.temp <- list.res[[paste(data.type, "_", i , list.temp <- list.res[[paste(data.type, "_", i ,
...@@ -1408,6 +1447,44 @@ rm(out) ...@@ -1408,6 +1447,44 @@ rm(out)
gc() gc()
} }
fun.mai.plot.param <- function(t, p, first.p = 'alpha0', last.p = 'maxG'){
if(t == 'Wood density'){
if(p == first.p){
mai.v <- c(0.1, big.m,small.m,0.1)
}else{
if(p == last.p){
mai.v <- c(big.m, big.m,0.1,0.1)
}else{
mai.v <- c(0.1, big.m,0.1,0.1)
}
}
}
if(t == 'Specific leaf area'){
if(p == first.p){
mai.v <- c(0.1, small.m,small.m,0.1)
}else{
if(p == last.p){
mai.v <- c(big.m, small.m,0.1,0.1)
}else{
mai.v <- c(0.1, small.m,0.1,0.1)
}
}
}
if(t == 'Maximum height'){
if(p == first.p){
mai.v <- c(0.1, small.m,small.m,small.m)
}else{
if(p == last.p){
mai.v <- c(big.m, small.m,0.1,small.m)
}else{
mai.v <- c(0.1, small.m,0.1,small.m)
}
}
}
return(mai.v)
}
## param plot ## param plot
...@@ -1420,83 +1497,78 @@ fun.plot.all.param <- function(list.res, ...@@ -1420,83 +1497,78 @@ fun.plot.all.param <- function(list.res,
small.m = 0.2, small.m = 0.2,
col.vec = fun.col.param(), col.vec = fun.col.param(),
MAT.MAP.TF = FALSE, MAT.MAP.TF = FALSE,
alpha_0 = 'sumBn' intra.TF = FASLE
){ ){
# predict data # predict data
data.param <- fun.pred.BA.l.and.h.all.traits.3params( data.param <- fun.pred.BA.l.and.h.all.traits.3params(
traits = c('Wood.density', 'SLA', 'Max.height'),
model = model, model = model,
dir.root = dir.root, dir.root = dir.root,
list.res = list.res, list.res = list.res,
data.type = data.type, data.type = data.type,
MAT.MAP.TF = MAT.MAP.TF, MAT.MAP.TF = MAT.MAP.TF,
alpha_0 = alpha_0) intra.TF = intra.TF)
require(dplyr) require(dplyr)
# Layout # Layout
m <- matrix(c(1:12), 4, 3) m <- matrix(c(1:12), 5, 3)
wid <- c(big.m+0.1, small.m+0.1 , 2*small.m+0.1) + wid <- c(big.m+0.1, small.m+0.1 , 2*small.m+0.1) +
rep((6-big.m-3*small.m-0.3)/3, each= 3) rep((6-big.m-3*small.m-0.3)/3, each= 3)
hei <- c(small.m+0.1, 0.2, 0.2 , big.m) + hei <- c(small.m+0.1, 0.2, 0.2 , 0.2, big.m) +
rep((10-big.m-small.m- 0.5)/4, each= 4) rep((10-big.m-small.m- 0.5)/5, each= 5)
layout(m, heights=hei, widths= wid ) layout(m, heights=hei, widths= wid )
traits <- c('Wood.density', 'SLA', 'Max.height')
traits.exp <- c(expression(paste('Wood density (mg m', m^-3, ')')),
expression(paste('Specific leaf area (m', m^2, ' m', g^-1, ')')),
expression(paste('Maximum height (m)')))
names(traits.exp) <- traits
expr.p.vec <- c(expression(paste('Similarity ', alpha[l] %*% abs(t[f] - t[c]))), if(!intra.TF){
expr.p.vec <- c(expression(paste0('Trait indep ',alpha[0])),
expression(paste('Similarity ', alpha[l] %*% abs(t[f] - t[c]))),
expression(paste('Competitive effect ', alpha[e] %*% t[c])), expression(paste('Competitive effect ', alpha[e] %*% t[c])),
expression(paste('Tolerance of competition ', alpha[t] %*% t[f])), expression(paste('Tolerance of competition ', alpha[t] %*% t[f])),
expression(paste('Maximum growth ', m[1] %*% t[f]))) expression(paste('Maximum growth ', m[1] %*% t[f])))
names(expr.p.vec) <- c('alphal', 'alphae', 'alphar', 'maxG') names(expr.p.vec) <- c('alpha0', 'alphal', 'alphae', 'alphar', 'maxG')
names.param <- c("Tf","sumTnBn", names.param <- c("Tf","sumTnBn",
"sumTfBn", "sumTnTfBn.abs") "sumTfBn", "sumTnTfBn.abs", "sumBn")
names(names.param) <- c('maxG', 'alphae', 'alphar', 'alphal') names(names.param) <- c('maxG', 'alphae', 'alphar', 'alphal', 'alpha0')
first.p <- 'alpha0'
for (t in c('Wood density', 'Specific leaf area', 'Maximum height')){
for (p in c('alphal', 'alphae', 'alphar', 'maxG')){
df.t <- data.param[data.param$traits == t, ]
if(t == 'Wood density'){
if(p == 'alphal'){
par(mai=c(0.1, big.m,small.m,0.1))
}else{
if(p == 'maxG'){
par(mai=c(big.m, big.m,0.1,0.1))
}else{
par(mai=c(0.1, big.m,0.1,0.1))
}
}
} }
if(intra.TF){
if(t == 'Specific leaf area'){ expr.p.vec <- c(expression(paste0('inter ', alpha[,'0 intra/inter',])),
if(p == 'alphal'){ expression(paste0('inter ', alpha[,'0 intra/inter',])),
par(mai=c(0.1, small.m,small.m,0.1)) expression(paste('Similarity ', alpha[l] %*% abs(t[f] - t[c]))),
}else{ expression(paste('Competitive effect ', alpha[e] %*% t[c])),
if(p == 'maxG'){ expression(paste('Tolerance of competition ', alpha[t] %*% t[f])),
par(mai=c(big.m, small.m,0.1,0.1)) expression(paste('Maximum growth ', m[1] %*% t[f])))
}else{ names(expr.p.vec) <- c('alpha0.intra', 'alpha0.inter', 'alphal', 'alphae', 'alphar', 'maxG')
par(mai=c(0.1, small.m,0.1,0.1)) names.param <- c("Tf","sumTnBn",
} "sumTfBn", "sumTnTfBn.abs", "sumBn.inter", "sumBn.intra")
} names(names.param) <- c('maxG', 'alphae', 'alphar', 'alphal', 'alpha0.inter', 'alpha0.intra')
first.p <- 'alpha0.intra'
} }
if(t == 'Maximum height'){
if(p == 'alphal'){ for (t in c('Wood density', 'Specific leaf area', 'Maximum height')){
par(mai=c(0.1, small.m,small.m,small.m)) for (p in names(expr.p.vec)){
}else{ df.t <- data.param[data.param$traits == t, ]
if(p == 'maxG'){ par(mai = fun.mai.plot.param(t, p, first.p = first.p, last.p = 'maxG'))
par(mai=c(big.m, small.m,0.1,small.m))
}else{
par(mai=c(0.1, small.m,0.1,small.m))
}
}
}
if(t == 'Wood density'){ if(t == 'Wood density'){
if(p == 'maxG'){ if(p == 'maxG'){
fun.plot.param.tf(df = df.t, fun.plot.param.tf(df = df.t,
param.sel = p, param.sel = p,
xlab = expression(paste('Wood density (mg m', m^-3, ')')), xlab = traits.exp[t],
col.param = col.vec[names.param[p]], col.param = col.vec[names.param[p]],
expr.param = expr.p.vec[p], cex.lab = 1.1, cex.axis =0.85, cex = 1) expr.param = expr.p.vec[p], cex.lab = 1.1, cex.axis =0.85, cex = 1)
}else{
if(p == 'alpha0.inter'){
fun.plot.param.tf(df = df.t,
param.sel = p,
xaxt= 'n',xlab = NA,
col.param = col.vec[names.param[p]],
expr.param = NA, cex.lab = 1.1, cex.axis =0.85, cex = 1, add = TRUE, add.ylab.TF = FALSE)
}else{ }else{
fun.plot.param.tf(df = df.t, fun.plot.param.tf(df = df.t,
param.sel = p, param.sel = p,
...@@ -1504,42 +1576,35 @@ if(p == 'maxG'){ ...@@ -1504,42 +1576,35 @@ if(p == 'maxG'){
col.param = col.vec[names.param[p]], col.param = col.vec[names.param[p]],
expr.param = expr.p.vec[p], cex.lab = 1.1, cex.axis =0.85, cex = 1) expr.param = expr.p.vec[p], cex.lab = 1.1, cex.axis =0.85, cex = 1)
} }
} }
}
if(t == 'Specific leaf area'){ if(t %in% c('Specific leaf area', 'Maximum height')){
if(p == 'maxG'){ if(p == 'maxG'){
fun.plot.param.tf(df = df.t, fun.plot.param.tf(df = df.t,
param.sel = p, param.sel = p,
xlab = expression(paste('Specific leaf area (m', m^2, ' m', g^-1, ')')), xlab = traits.exp[t],
col.param = col.vec[names.param[p]], col.param = col.vec[names.param[p]],
expr.param = expr.p.vec[p], add.ylab.TF = FALSE, cex.lab = 1.1, cex.axis =0.85, cex = 1) expr.param = expr.p.vec[p], add.ylab.TF = FALSE, cex.lab = 1.1, cex.axis =0.85, cex = 1)
}else{ }else{
if(p == 'alpha0.inter'){
fun.plot.param.tf(df = df.t, fun.plot.param.tf(df = df.t,
param.sel = p, param.sel = p,
xaxt= 'n',xlab = NA, xaxt= 'n',xlab = NA,
col.param = col.vec[names.param[p]], col.param = col.vec[names.param[p]],
expr.param = expr.p.vec[p], add.ylab.TF = FALSE, cex.lab = 1.1, cex.axis =0.85, cex = 1) expr.param = expr.p.vec[p], add.ylab.TF = FALSE, cex.lab = 1.1, cex.axis =0.85,
} cex = 1, add =TRUE)
}
if(t == 'Maximum height'){
if(p == 'maxG'){
fun.plot.param.tf(df = df.t,
param.sel = p,
xlab = expression(paste('Maximum height (m)')),
col.param = col.vec[names.param[p]],
expr.param = expr.p.vec[p], add.ylab.TF = FALSE, cex.lab = 1.1, cex.axis =0.85, cex = 1)
}else{ }else{
fun.plot.param.tf(df = df.t, fun.plot.param.tf(df = df.t,
param.sel = p, param.sel = p,
xlab = NA, xaxt= 'n',xlab = NA,
xaxt= 'n',
col.param = col.vec[names.param[p]], col.param = col.vec[names.param[p]],
expr.param = expr.p.vec[p], add.ylab.TF = FALSE, cex.lab = 1.1, cex.axis =0.85, cex = 1) expr.param = expr.p.vec[p], add.ylab.TF = FALSE, cex.lab = 1.1, cex.axis =0.85, cex = 1)
} }
} }
}
} }
} }
} }
...@@ -1587,7 +1652,8 @@ fun.plot.wd.sl.param <- function(list.res, ...@@ -1587,7 +1652,8 @@ fun.plot.wd.sl.param <- function(list.res,
data.type = 'simple', data.type = 'simple',
big.m = 1.0, big.m = 1.0,
small.m = 0.42, small.m = 0.42,
MAT.MAP.TF = FALSE MAT.MAP.TF = FALSE,
intra.TF = FALSE
){ ){
...@@ -1598,7 +1664,8 @@ fun.plot.wd.sl.param <- function(list.res, ...@@ -1598,7 +1664,8 @@ fun.plot.wd.sl.param <- function(list.res,
dir.root = dir.root, dir.root = dir.root,
list.res = list.res, list.res = list.res,
data.type = data.type, data.type = data.type,
MAT.MAP.TF = MAT.MAP.TF) MAT.MAP.TF = MAT.MAP.TF,
intra.TF = intra.TF)
require(dplyr) require(dplyr)
# Layout # Layout
m <- matrix(c(1:4), 2, 2) m <- matrix(c(1:4), 2, 2)
......
Data set name,Country,Data type,Plot size,Diameter at breast height threshold,Number of plots,Traits,Source trait data,Evidences of disturbances and succession dynamics,References,Contact of person in charge of data formatting,Comments Panama,Panama,LPP,1 to 50 ha,1 cm,42,"Wood density, SLA, and Maximum height",local,"""Gap disturbances are common in the large 50ha BCI plot [see @Young-1991; @Hubbell-1999; @Lobo-2014]. Hubbell et al.[@Hubbell-1999] estimated that less than 30% of the plot experienced no disturbance over a 13-year period.""","3,4,25","Plot data: R. Condit (conditr@gmail.com), Traits data: J. Wright (wrightj@si.edu)",The data used include both the 50 ha plot of BCI and the network of 1 ha plots from Condit et al. (2013). The two first census of BCI plot were excluded. Japan,Japan,LPP,0.35 to 1.05 ha,2.39 cm,16,"Wood density, SLA, and Maximum height",local,"""The network of plot comprise 50% of old growth forest, 17% of old secondary forest and 33% of young secondary forest.""",5,"Plot data: M. I. Ishihara (moni1000f_networkcenter@fsc.hokudai.ac.jp), Traits data: Y Onoda (yusuke.onoda@gmail.com)", Luquillo,Puerto Rico,LPP,16 ha,1 cm,1,"Wood density, SLA, and Maximum height",local,"""The plot has been struck by hurricanes in 1989 and in 1998[@Uriarte-2009]. In addition, two-third of the plot is a secondary forest on land previously used for agriculture and logging[@Uriarte-2009].""","6, 23","Plot data: J. Thompson (jiom@ceh.ac.uk) and J. Zimmerman (esskz@ites.upr.edu), Traits data: N. Swenson (swensonn@msu.edu )", M'Baiki,Central African Republic,LPP,4 ha,10 cm,10,Wood density and SLA,local,"""The plot network was established with three levels of harvesting and one control [@Ouedraogo-2013].""","7,8",G. Vieilledent (ghislain.vieilledent@cirad.fr), Fushan,Taiwan,LPP,25 ha,1 cm,1,Wood density and SLA,local,"""Fushan experienced several Typhoon disturbances in 1994 with tree fall events, the main effect was trees defoliation[@Lin-2011].""",9,I-F. Sun (ifsun@mail.ndhu.edu.tw), Paracou,French Guiana,LPP,6.25 ha,10 cm,15,Wood density and SLA,local,"""The plot network was established with three levels of harvesting and one control (Herault et al. 2010).""","10,11,24","Plot data: B. Herault (bruno.herault@cirad.fr), Traits data: C. Baraloto (Chris.Baraloto@ecofog.gf)", France,France,NFI,0.017 to 0.07 ha,7.5 cm,41503,"Wood density, SLA, and Maximum height",TRY,"""French forests monitored by the French National Forest Inventory experience several types of natural disturbances (such as wind, forest fire, and bark beetles) and harvesting. The age structure reconstructed by Vilen et al.[@Vilen-2012] shows that young forests represents a significant percentage of the forested area (see age distribution below).""","12,13",G. Kunstler (georges.kunstler@gmail.com),"The French NFI is based on temporary plot, but 5 years tree radial growth is estimated with short core. All trees with dbh > 7.5 cm, > 22.5 cm and > 37.5 cm were measured within a radius of 6 m, 9 m and 15 m, respectively. Plots are distributed over forest ecosystems on a 1-km 2 cell grid" Spain,Spain,NFI,0.0078 to 0.19 ha,7.5 cm,49855,"Wood density, SLA, and Maximum height",TRY,"""Spanish forests monitored by the Spanish National Forest Inventory experience several types of natural disturbances (such as wind, forest fire, and bark beetles) and harvesting. No data are available on the age structure of the plots.""","14,15,16",M. Zavala (madezavala@gmail.com),"Each SFI plot included four concentric circular sub-plots of 5, 10, 15 and 25-m radius. In these sub-plots, adult trees were sampled when diameter at breast height (d.b.h.) was 7.5-12.4 cm, 12.5-22.4 cm, 22.5-42.5 cm and >= 42.5 cm, respectively." Swiss,Switzerland,NFI,0.02 to 0.05 ha,12 cm,2665,"Wood density, SLA, and Maximum height",TRY,"""Swiss forests monitored by the Swiss National Forest Inventory experience several types of natural disturbances (such as wind, forest fire, and bark beetles) and harvesting. The age structure reconstructed by Vilen et al.[@Vilen-2012] shows that young forests represents a significant percentage of the forested area (see age distribution below).""","17,26",M. Hanewinkel & N. E. Zimmermann (niklaus.zimmermann@wsl.ch),"All trees with dbh > 12 cm and > 36 cm were measured within a radius of 7.98 m and 12.62 m, respectively." Sweden,Sweden,NFI,0.0019 to 0.0314 ha,5 cm,22904,"Wood density, SLA, and Maximum height",TRY,"""Swedish forests monitored by the Swedish National Forest Inventory experience several types of natural disturbances (such as wind, forest fire, and bark beetles) and harvesting. The age structure reconstructed by Vilen et al.[@Vilen-2012] shows that young forests represents a significant percentage of the forested area (see age distribution below).""",18,G. Stahl (Goran.Stahl@slu.se),"All trees with dbh > 10 cm, were measured on circular plots of 10 m radius." US,USA,NFI,0.0014 to 0.017 ha,2.54 cm,97434,"Wood density, SLA, and Maximum height",TRY,"""US forests monitored by the FIA experience several types of natural disturbances (such as wind, forest fire, and bark beetles) and harvesting. The age structure reconstructed by Pan et al.[@Pan-2011] shows that young forests represents a significant percentage of the forested area (see age distribution below).""",19,M. Vanderwel (Mark.Vanderwel@uregina.ca),FIA data are made up of cluster of 4 subplots of size 0.017 ha for tree dbh > 1.72 cm and nested in each subplot sapling plots of 0.0014 ha for trees dbh > 2.54 cm. The data of the four subplot were lumped together. Canada,Canada,NFI,0.02 to 0.18 ha,2 cm,15019,"Wood density, SLA, and Maximum height",TRY,"""Canadian forests monitored by the regional forest monitoring programs experience several types of natural disturbances (such as wind, forest fire, and bark beetles) and harvesting. The age structure reconstructed by Pan et al.[@Pan-2011] shows that young forests represents a significant percentage of the forested area (see age distribution below).""",,J. Caspersen (john.caspersen@utoronto.ca),The protocol is variable between Provinces. A large proportion of data is from the Quebec province and the plot are 10 m in radius in this Province. NZ,New Zealand,NFI,0.04 ha,3 cm,1415,"Wood density, SLA, and Maximum height",local,"""New Zealand forests are experiencing disturbance by earthquake, landslide, storm and volcanic eruptions. According to Holdaway et al.[@Holdaway-2014] having been disturbed during their measurement interval.""","20,21",D. Laughlin (d.laughlin@waikato.ac.nz),Plots are 20 x 20 m. NSW,Australia,NFI,0.075 to 0.36 ha,10 cm,30,"Wood density, and Maximum height",local,The plot network was initially established in the 60s with different level of selection harvesting[@Kariuki-2006].,"1,2",R. M. Kooyman (robert@ecodingo.com.au),Permanents plots established by the NSW Department of State Forests or by RMK Data set name,Country,Data type,Plot size,Diameter at breast height threshold,Number of plots,Traits,Source trait data,Evidences of disturbances and succession dynamics,References,Contact of person in charge of data formatting,Comments
\ No newline at end of file Panama,Panama,LPP,1 to 50 ha,1 cm,42,"Wood density, SLA, and Maximum height",local,"""Gap disturbances are common in the large 50ha BCI plot [see @Young-1991; @Hubbell-1999; @Lobo-2014]. Hubbell et al.[@Hubbell-1999] estimated that less than 30% of the plot experienced no disturbance over a 13-year period.""","3,4,25","Plot data: R. Condit (conditr@gmail.com), Traits data: J. Wright (wrightj@si.edu)",The data used include both the 50 ha plot of BCI and the network of 1 ha plots from Condit et al. (2013). The two first census of BCI plot were excluded.
Japan,Japan,LPP,0.35 to 1.05 ha,2.39 cm,16,"Wood density, SLA, and Maximum height",local,"""The network of plot comprise 50% of old growth forest, 17% of old secondary forest and 33% of young secondary forest.""",5,"Plot data: M. I. Ishihara (moni1000f_networkcenter@fsc.hokudai.ac.jp), Traits data: Y Onoda (yusuke.onoda@gmail.com)",
Luquillo,Puerto Rico,LPP,16 ha,1 cm,1,"Wood density, SLA, and Maximum height",local,"""The plot has been struck by hurricanes in 1989 and in 1998[@Uriarte-2009]. In addition, two-third of the plot is a secondary forest on land previously used for agriculture and logging[@Uriarte-2009].""","6, 23","Plot data: J. Thompson (jiom@ceh.ac.uk) and J. Zimmerman (esskz@ites.upr.edu), Traits data: N. Swenson (swensonn@msu.edu )",
M'Baiki,Central African Republic,LPP,4 ha,10 cm,10,Wood density and SLA,local,"""The plot network was established with three levels of harvesting and unharvested control [@Gourlet-Fleury-2013].""","7,8",G. Vieilledent (ghislain.vieilledent@cirad.fr),
Fushan,Taiwan,LPP,25 ha,1 cm,1,Wood density and SLA,local,"""Fushan experienced several Typhoon disturbances in 1994 with tree fall events, the main effect was trees defoliation[@Lin-2011].""",9,I-F. Sun (ifsun@mail.ndhu.edu.tw),
Paracou,French Guiana,LPP,6.25 ha,10 cm,15,Wood density and SLA,local,"""The plot network was established with three levels of harvesting and unharvested control (Herault et al. 2010).""","10,11,24","Plot data: B. Herault (bruno.herault@cirad.fr), Traits data: C. Baraloto (Chris.Baraloto@ecofog.gf)",
France,France,NFI,0.017 to 0.07 ha,7.5 cm,41503,"Wood density, SLA, and Maximum height",TRY,"""French forests monitored by the French National Forest Inventory experience several types of natural disturbances (such as wind, forest fire, and bark beetles) and harvesting. The age structure reconstructed by Vilen et al.[@Vilen-2012] shows that young forests represents a significant percentage of the forested area (see age distribution below).""","12,13",G. Kunstler (georges.kunstler@gmail.com),"The French NFI is based on temporary plot, but 5 years tree radial growth is estimated with short core. All trees with dbh > 7.5 cm, > 22.5 cm and > 37.5 cm were measured within a radius of 6 m, 9 m and 15 m, respectively. Plots are distributed over forest ecosystems on a 1-km 2 cell grid"
Spain,Spain,NFI,0.0078 to 0.19 ha,7.5 cm,49855,"Wood density, SLA, and Maximum height",TRY,"""Spanish forests monitored by the Spanish National Forest Inventory experience several types of natural disturbances (such as wind, forest fire, and bark beetles) and harvesting. No data are available on the age structure of the plots.""","14,15,16",M. Zavala (madezavala@gmail.com),"Each SFI plot included four concentric circular sub-plots of 5, 10, 15 and 25-m radius. In these sub-plots, adult trees were sampled when diameter at breast height (d.b.h.) was 7.5-12.4 cm, 12.5-22.4 cm, 22.5-42.5 cm and >= 42.5 cm, respectively."
Swiss,Switzerland,NFI,0.02 to 0.05 ha,12 cm,2665,"Wood density, SLA, and Maximum height",TRY,"""Swiss forests monitored by the Swiss National Forest Inventory experience several types of natural disturbances (such as wind, forest fire, and bark beetles) and harvesting. The age structure reconstructed by Vilen et al.[@Vilen-2012] shows that young forests represents a significant percentage of the forested area (see age distribution below).""","17,26",M. Hanewinkel & N. E. Zimmermann (niklaus.zimmermann@wsl.ch),"All trees with dbh > 12 cm and > 36 cm were measured within a radius of 7.98 m and 12.62 m, respectively."
Sweden,Sweden,NFI,0.0019 to 0.0314 ha,5 cm,22904,"Wood density, SLA, and Maximum height",TRY,"""Swedish forests monitored by the Swedish National Forest Inventory experience several types of natural disturbances (such as wind, forest fire, and bark beetles) and harvesting. The age structure reconstructed by Vilen et al.[@Vilen-2012] shows that young forests represents a significant percentage of the forested area (see age distribution below).""",18,G. Stahl (Goran.Stahl@slu.se),"All trees with dbh > 10 cm, were measured on circular plots of 10 m radius."
US,USA,NFI,0.0014 to 0.017 ha,2.54 cm,97434,"Wood density, SLA, and Maximum height",TRY,"""US forests monitored by the FIA experience several types of natural disturbances (such as wind, forest fire, and bark beetles) and harvesting. The age structure reconstructed by Pan et al.[@Pan-2011] shows that young forests represents a significant percentage of the forested area (see age distribution below).""",19,M. Vanderwel (Mark.Vanderwel@uregina.ca),FIA data are made up of cluster of 4 subplots of size 0.017 ha for tree dbh > 1.72 cm and nested in each subplot sapling plots of 0.0014 ha for trees dbh > 2.54 cm. The data of the four subplot were lumped together.
Canada,Canada,NFI,0.02 to 0.18 ha,2 cm,15019,"Wood density, SLA, and Maximum height",TRY,"""Canadian forests monitored by the regional forest monitoring programs experience several types of natural disturbances (such as wind, forest fire, and bark beetles) and harvesting. The age structure reconstructed by Pan et al.[@Pan-2011] shows that young forests represents a significant percentage of the forested area (see age distribution below).""",,J. Caspersen (john.caspersen@utoronto.ca),The protocol is variable between Provinces. A large proportion of data is from the Quebec province and the plot are 10 m in radius in this Province.
NZ,New Zealand,NFI,0.04 ha,3 cm,1415,"Wood density, SLA, and Maximum height",local,"""New Zealand forests are experiencing disturbance by earthquake, landslide, storm and volcanic eruptions. According to Holdaway et al.[@Holdaway-2014] having been disturbed during their measurement interval.""","20,21",D. Laughlin (d.laughlin@waikato.ac.nz),Plots are 20 x 20 m.
NSW,Australia,NFI,0.075 to 0.36 ha,10 cm,30,"Wood density, and Maximum height",local,The plot network was initially established in the 60s with different level of selection harvesting[@Kariuki-2006].,"1,2",R. M. Kooyman (robert@ecodingo.com.au),Permanents plots established by the NSW Department of State Forests or by RMK
This diff is collapsed.
% Derivation of $\rho$.
<!-- % Georges Kunstler -->
# Appendix derivation of $\rho$
To start, I will describe briefly what was
the approach of Kraft et al. (2014) based on Chesson to see how our analysis can
fit with that.
### The stabilising niche similarity (and equalising) of Chesson 2012
The approach of Chesson (2000, 2012) and then Kraft et al. (2015) (and many
other, see Godoy and Levine 2014) to estimate the stabilising niche difference and average fitness
difference rely on estimating the **population** growth rate of a rare
invader (species $i$) in an equilibrium community of a resident
species (species $j$). To understand this approach the simplest
solution is to take the Lotka-Volterra equation (as presented in
Godoy and Levine 2014 Ecology):
\begin{equation}
\frac{dN_i}{dt} = N_i \times r_i \times (1 - \alpha_{ii} N_i -
\alpha_{ij} N_j)
\end{equation}
The criteria for invasion of species $i$ in resident community of species $j$ is (at equilibrium population of single resident $j$ is
$\overline{N_j} = \frac{1}{\alpha_{jj}}$):
\begin{equation}
(1 - \frac{\alpha_{ij}}{\alpha_{jj}})
\end{equation}
Thus if $\frac{\alpha_{ij}}{\alpha_{jj}} <1$ invasion $i$ in $j$ is possible (same approach for $j$ in $i$).
The stabilising niche process for species $i$ in regard to species $j$ is thus defined as
$\frac{\alpha_{ij}}{\alpha_{jj}}$. Then Chesson (2012) split the likelihood of coexistence in
two processes: stabilising processes and equalising processes. For that Chesson define the average
stabilising niche
overlap between species $i$ and $j$ (both way) as:
\begin{equation}
\rho = \sqrt{\frac{\alpha_{ij} \alpha_{ji}}{\alpha_{jj} \alpha_{ii}}}
\end{equation}
The average fitness difference measuring the equalising processes ($\frac{\kappa_j}{\kappa_i}$) is
then:
\begin{equation}
\frac{\alpha_{ij}}{\alpha_{jj}} = \frac{\kappa_j}{\kappa_i} \, \rho
\end{equation}
Thus $\frac{\kappa_j}{\kappa_i} = \sqrt{\frac{\alpha_{ij} \alpha_{ii}}{\alpha_{jj} \alpha_{ji}}}$
With this approach coexistence of $i$ and $j$ requires that :
\begin{equation}
\frac{\alpha_{ij}}{\alpha_{jj}} = \frac{\kappa_j}{\kappa_i} \, \rho <1
\end{equation}
and
\begin{equation}
\frac{\alpha_{ji}}{\alpha_{ii}} = \frac{\kappa_i}{\kappa_j} \, \rho <1
\end{equation}
thus:
\begin{equation}
\rho < \frac{\kappa_i}{\kappa_j} < \frac{1}{\rho}
\end{equation}
#### Derivation of $\rho$ for our basal area growth model
Our growth model is (see extended method for details):
\begin{equation}
G_{i,f,p,s,t} = G_{\textrm{max} \, f,p,s} \, D_{i,f,p,s,t}^{\gamma_f} \, e^{\left(\sum_{c=1}^{N_i} {-\alpha_{c,f} B_{i,c,p,s}}\right)}
\end{equation}
Clearly we can not use an approach based on the fitness of a rare
invader, as our model is not a population growth model. What we can do
is compare the basal area growth reduction by intra- vs inter-specific
competition[^note1].
The growth rate reduction via competition for a unit of competitor basal area[^scale] in our growth model can be defined by
\begin{equation}
e^{-\alpha_{c,f}}
\end{equation}
[^scale]: As we used scaled variable for the basal area of competitor this is not in $m^2/ha$ but this doesn't matter.
Following Chesson (2012) we can define $\rho$ as[^note1]:
\begin{equation}
\rho = \sqrt{\frac{e^{-\alpha_{ij}} e^{-\alpha_{ji}}}{e^{-\alpha_{jj}} e^{-\alpha_{ii}}}}
\end{equation}
[^note1]: But the meaning of this $\rho$ is not as clear because it is not based on the population growth of a rare invader.
If we develop our model of link between $\alpha$ and the traits within
the interspecific competition we get:
\begin{equation}
e^{\alpha_{i,j}} = e^{-(\alpha_{0,i} + \alpha_t t_i + \alpha_e t_j +
\alpha_s \vert t_i - t_j \vert)}
\end{equation}
For intra-specific competition we get:
\begin{equation}
e^{\alpha_{i,i}} = e^{-(\alpha_{0,i} + \alpha_t t_i + \alpha_e t_j)}
\end{equation}
Thus $\rho$ simplify to
\begin{equation}
\rho = \sqrt{\frac{e^{-\alpha_{ij}} e^{-\alpha_{ji}}}{e^{-\alpha_{jj}}
e^{-\alpha_{ii}}}} = e^{-\alpha_s \vert t_i - t_j \vert}
\end{equation}
So the stabilising niche similarity $\rho$ is directly related to $\alpha_s$. Whereas the referee 1 was not convince by that.
## Intra- *vs.* inter-specific competition
The referee 3 is asking to split the parameter $\alpha_0$ in two: 1)
one related to intra-specific competition $\alpha_{0,intra}$ and 2) one related to the inter-specific competition $\alpha_{0,inter}$. This point is raised because he is concern that a large proportion of the $\alpha_s$ parameter could be related only to the difference between intra- *vs* inter-specific competition rather than the traits similarity.
This approach will consider that intra-specific competition is:
\begin{equation}
\alpha_{f,f} = \alpha_{0,intra} + \alpha_t \, t_f + \alpha_e \, t_f
\end{equation}
And inter-specific competition is:
\begin{equation}
\alpha_{f,c} = \alpha_{0,inter} + \alpha_t \, t_f + \alpha_e \, t_c + \alpha_s \, \vert t_c - t_f \vert
\end{equation}
Thus this would require to have competition index splitting conspecific and heterospecific.
\begin{equation}
\sum_{c=1}^{N_i} (\alpha_{f,c} B_c) = \alpha_{0,intra} B_f + \alpha_{0,inter} \sum_{c \neq f} B_c + \alpha_t t_f \sum_{c=1}^{N_i}(B_c) + \alpha_e \sum_{c=1}^{N_i}(t_c B_c) + \alpha_s \sum_{c \neq f}(\vert t_c - t_f \v