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
% Some elements for the reply to the referees of Nature.
% Georges Kunstler
# Referee 1
## Competitive effect is not important for population level competitive outcomes
>***The authors state in the introduction that the existing gap in the
>literature is the translation between species traits and the
>competitive outcomes between species. I could not agree more. But not
>all the metrics tested in this study are drivers of competitive
>outcomes. In most models of competition, competitive outcomes between
>a pair of species will be determined by maximal growth, and tolerance
>of competition, so I am fine with these metrics. I am also fine with
>the authors analysis of competitive effect, but they should
>acknowledge that in nearly all models of competition, competitive
>effect (separated from competitive tolerance) almost never determines
>competitive dominance (i.e. if one species casts deep shade, this does
>not favor that species in competition unless individuals of its
>species can tolerate the shade it casts- that is why tolerance is the
>key trait).***
The core of our analysis is to predict how competition reduces individual tree basal area growth. Our results have implication for population growth and coexistence, but basal area growth is only a part of the population processes. So our results cannot provides definitive answers at the population level. We need to clarify in the main text this distinction between individual basal area growth and population growth level. I propose to have a section at the end of the main text on the population level consequences of our results. In this section we could discuss the point about competitive effect raised by the referee.
Competitive effect is clearly important for the basal area growth. Its
role on population dynamics may be less important, at least in
relatively simple population models but it is unclear whether this
hold true for more complex models. For instance, this is true for the
classical $R^*$, as $R^*$ (which determines the winner) do not vary with
consumption rate. Goldberg 1996 also states the same idea
for a Mac Arthur consumer-resource model[^Goldberg]. An approach based on the invasion criteria for coexistence would
indicate that the competitive effect of the invader is not important
for his success but the one of the resident maybe. For instance,
Tilman (1990 in Grace book) shows that for alternative more complex R*
models, the parameters related to effect on resource influences the
$R^*$. For size-structured model, the $Z^*$ paper (Adams et al. 2007)
based on the PPA model, provides some information. The response to
light in term of growth and survival are crucial for the competition
outcomes ($Z^*$), but tree height allometry is also important, then
light transmission, and crown radius can also have an influences (all
these last parameters influence competition effect on light).
In this last section on population level consequences, I propose thus to discuss the role of competitive effect along these lines (but short). Then we can have a detail reply for the referee along the ideas presented above showing that there is a tendency for no strong importance of competitive effect, but this may depend of the model. If you have more ideas on this points let me know.
[^Goldberg]: "Consistent with this argument, using Mac- Arthur's
(1972) consumer-resource equations, J. H. Vandermeer & D. E. Goldberg
(unpublished results) show that ability of individuals to deplete
resources is irrelevant to the equilibrium outcome of competition for
a single resource and only ability to tolerate low levels of the
resource determines the outcome."
## Need to estimate stabilising niche differences
>***My much bigger concern is with the authors' test of limiting similarity. I think asking whether the trait difference causes the interspecific interaction coefficient to decline is really only part of the problem. The reason we expect limiting similarity in communities is because trait differences translate into the niche differences that stabilize the interaction between competitors. And while the interaction coefficients tested in this study are certainly part of the niche difference, what determines the outcome of competition is the strength of the interspecific interactions relative to the intraspecific interactions, not the interspecific interaction alone.***
This comment as the previous one is focusing on the population level consequence of our results as it focus on coexistence.
The stabilising niche differences as defined by Chesson (and used in Kraft et al. 2014 and Godoy and Levine 2014) can only be evaluated at the population level, so our individual basal area growth will only provides part of the answer. The stabilising niche differences is defined as $\rho = \sqrt{\frac{\alpha_{ij}\alpha_{ji}}{\alpha_{jj} \alpha_{ii}}}$ in Chesson (2012) as the ratio of competition intra- vs inter-specific ($\frac{\alpha_{ij}}{\alpha_{jj}}$) determines the coexistence.
This is related to the classical stabilising vs equalising processes of Chesson. He shows that for a pair of species, the criteria for both of them having positive fitness when rare invader can be related to two key quantities: the stabilising niche overlap (stabilising process: $\rho = \sqrt{\frac{\alpha_{ij}\alpha_{ji}}{\alpha_{jj} \alpha_{ii}}}$) and the fitness differences ($\kappa_i / \kappa_j$ :equalising process in Chesson). The pdf show how this is computed within in Lotka-Volterra model, to see how this connects with our analysis.
As acknowledge by the referee computing that is impossible for our model as it is not a population growth rate model but just an individual tree basal area growth model. So it is not possible to compute the fitness of a rare invader. We can try to apply the same approach instead of computing $\rho$ as the ratio of population level inter intra alpha compute $\rho$ as the ratio of inter intra alpha based on basal area growth (alpha estimated as the basal area growth reduction in intra or inter).
The question is how to estimate these inter intra alpha.
1) The first solution is to predicted the inter intra alpha based on the traits model we used to predict alpha in our analysis. The attached pdf show that this results to $\rho = e^{-\alpha_s \vert t_i - t_j \vert}$.
2) The second solution is to have the same approach but using the
alternative model proposed by the referee 3 where $\alpha_0$ is
divided in $\alpha_{0 intra}$ and $\alpha_{0 inter}$. The attached pdf
show that this results in $\rho = e^{-(\alpha_{0,inter} -
\alpha_{0,intra} + \alpha_s \vert t_j - t_i \vert)}$. This alternative
model show that the stabilising niche process are in fact not related
to the three traits analysed.
3) Then this sentence of the referee *“if so, only analyse the sample pairs with the best fit parameters”* make me wander if he is not asking to estimate all the $\alpha_{ij}$ separately and then compute $\rho$ for each pairs and model $\rho$ as a function of traits as in Kraft et al (2014) (not Kraft et al. is based on an experiment on annual plant fully replicated per pair of species). This would be almost impossible as the number of co-occurrence between pairs of species can be very low particularly in species rich forest. I have tried at the start of the project to handle that with random effect in $\alpha$ in HB but never get the model to work well. It is not totally clear for me if the results can be very different with this approach. In addition the originality of our approach is to be able to directly relate alpha to traits.
So I propose to add the derivation of $\rho$ based on the approach 1
and 2 above and a figure of this prediction in Suppl Mat. Then in the
main text in the section on population level consequences discuss the
fact that intra/inter and alpha_s show that there is evidence of lower
inter than intra-specific competition for basal area growth, but that this is largely
disconnected from traits. The impact at the population level is more complex In the reply to the referee explain why estimating the $\alpha_{ij}$ separately is not possible and that our approach is a good solution for that.
## Fitness inequality
> ***Is there a way to show the net effect of trait differences on competitive outcomes? One can certainly do this with a defined model of competition (which I do not expect the authors to have), but it would be nice for the reader to have a sense that though the trait difference per se leads to lower interaction coefficients, the species with the optimal trait value for tolerating competition will still win, or something like that. Otherwise, statements suggesting that the limiting similarity effect is weak are harder to back up.***
The new analysis proposed by the referee 3 with different $\alpha_0$
for intra inter clearly show that the effect of trait similarity is
weak. Estimating the fitness inequality effect on the population
growth rate is not possible as discuss above for niche stabilising process.
I have try to come up with a solution by comparing the growth of species I in a stand of
species J to growth of species J in a stand of species J. This would
be based on the idea that ranking of their growth will influence their
competitive success. The attached pdf show a derivation showing how
this ratio can be decomposed in a function of $\rho$ and basal area
and quantity related to growth differences (in function the basal
area). The issue is that this growth ratio changes with the the amount of
basal area of competitor considered. So I'm not planning to include
that in the MS.
## Hmax
> ***In Fig. 2, taller plants do not seem to have greater competitive effects than shorter plants. Given the general sense in the literature that light competition is important in forests worldwide, I would spend some time explaining this. Similarly, what could explain limiting similarity based on maximum height (light competition does not lend itself to niche differentiation)?***
I propose to add some lines on that in the main text. In an analysis on short-term effect of competition on tree growth with a competition index that is already accounting for tree size this is not surprising that there is few effect of Hmax. However in a size-structured population model this maximum height would have a strong effect, on the population competitive interaction, see the Z* from the PPA.
For the limiting similarity effect of Hmax this is less clear. The
fact that the limiting similarity effect shrink when $\alpha_0$ is
divided in intra inter support the idea that this effect is not
directly related to the trait similarity but to its correlation to
intra inter and that processes such as species specific pathogen and
herbivore may be the key.
# Referee 2
# HB vs ML
>***My main comment relates to the modelling approach taken. The authors use linear mixed models to fit the parameter. It seems that a hierarchical Bayes approach could be more suitable here, as followed by Lasky et al. (2014) who addressed similar questions, but focused on tree mortality rather than growth. Can the authors provide justification for the approach used?***
In my view, the main arguments for using HB is when it is impossible
to do that in ML (for instance because we need to use non linear
form, complex error distribution, ...), or it is much more easy to
get confidence interval (the estimate of the confidence interval may
vary between ML and HB as there is no normal assumption in
HB). Estimating the same model in maximum likelihood (ML) or
hierarchical Bayesian (HB) with vague prior should give
(asymptotically) exactly the same results (uniformative normal prior
with normal error distribution are conjugate and gives normal
posterior). In our case I did try to fit the model in HB (jags or
stan) but never get a good convergence with the full data. With a
subsample of data ML and HB estimation result in almost identical
results (see figure below), but I’m reluctant to add that in Suppl Mat.
![Comparison of jags vs lmer estimates of the parameters for the simple global model.](../../figs/lmer_vs_jags.pdf)