diff --git a/R/find.trait/Canada.R b/R/find.trait/Canada.R new file mode 100644 index 0000000000000000000000000000000000000000..be82c9effd52c98edc2509d30bec661c0e8d190c --- /dev/null +++ b/R/find.trait/Canada.R @@ -0,0 +1,25 @@ +##### FORMAT TRAIT FOR Canada +source("trait.fun.R") + +### read species names +data.tree <- read.csv("../../output/formatted/Canada/tree.csv", stringsAsFactors = FALSE) +species.clean <- data.frame(sp=data.tree[!duplicated(data.tree[["sp"]]),"sp"], + Latin_name=data.tree[!duplicated(data.tree[["sp"]]),"sp.name"], + Latin_name_syn=data.tree[!duplicated(data.tree[["sp"]]),"sp.name"], + stringsAsFactors =FALSE) + +## delete the sp code with no species +species.clean <- subset(species.clean,subset=!is.na(species.clean$Latin_name)) + +## read in data +data.TRY.std <- readRDS("../../output/formatted/TRY/data.TRY.std.rds") +## read us max height +max.height <- read.csv(file="../../output/formatted/US/max.height.csv", stringsAsFactors = FALSE) +max.height$sp <- paste("sp",max.height$sp,sep=".") + +data.traits <- fun.extract.format.sp.traits.TRY(sp=species.clean[["sp"]],sp.syno.table=species.clean,data=data.TRY.std) + +data.traits <- merge(data.traits,subset(max.height,select=c("sp","Max.height.mean","Max.height.sd")),by="sp",all.x=TRUE,all.y=FALSE) +### TODO ADD GENUS MEAN FOR HEIGHT IF SPECIES IS MISSING +write.csv(data.traits,file="../../output/formatted/Canada/traits.csv") + diff --git a/R/find.trait/NVS.R b/R/find.trait/NVS.R new file mode 100644 index 0000000000000000000000000000000000000000..8f6ad2169ee039d1bb5b90ca254e89b768de96f9 --- /dev/null +++ b/R/find.trait/NVS.R @@ -0,0 +1,22 @@ +##### FORMAT TRAIT FOR NVS +source("trait.fun.R") + +### read species names +data.tree <- read.csv("../../output/formatted/NVS/tree.csv", stringsAsFactors = FALSE) +species.clean <- data.frame(sp=data.tree[!duplicated(data.tree[["sp"]]),"sp"], + Latin_name=data.tree[!duplicated(data.tree[["sp"]]),"sp.name"], + Latin_name_syn=data.tree[!duplicated(data.tree[["sp"]]),"sp.name"], + stringsAsFactors =FALSE) + +## delete the sp code with no species +species.clean <- subset(species.clean,subset=!is.na(species.clean$Latin_name)) + +## read in data +data.TRAITS.std <- read.csv("../../output/formatted/NVS/trait.csv", stringsAsFactors = FALSE) +## read us max height +data.traits <- fun.extract.format.sp.traits.NOT.TRY(sp=species.clean$sp, Latin_name=species.clean$Latin_name, data=data.TRAITS.std,name.match.traits="Latin_name") + +data.traits <- merge(data.traits,subset(max.height,select=c("sp","Max.height.mean","Max.height.sd")),by="sp",all.x=TRUE,all.y=FALSE) +### TODO ADD GENUS MEAN FOR HEIGHT IF SPECIES IS MISSING +write.csv(data.traits,file="../../output/formatted/Canada/traits.csv") + diff --git a/R/find.trait/Sweden.R b/R/find.trait/Sweden.R new file mode 100644 index 0000000000000000000000000000000000000000..7343aa1c956823b0905f2af9b3e1a75e014c2125 --- /dev/null +++ b/R/find.trait/Sweden.R @@ -0,0 +1,34 @@ +##### FORMAT TRAIT FOR Sweden +source("trait.fun.R") + +### read species names +data.tree <- read.csv("../../output/formatted/Sweden/tree.csv", stringsAsFactors = FALSE) +species.clean <- data.frame(sp=data.tree[!duplicated(data.tree[["sp"]]),"sp"], + Latin_name=data.tree[!duplicated(data.tree[["sp"]]),"sp.name"], + Latin_name_syn=data.tree[!duplicated(data.tree[["sp"]]),"sp.name"], + stringsAsFactors =FALSE) +## delete the sp code with no species +species.clean <- subset(species.clean,subset=!is.na(species.clean$Latin_name)) + +## select column to keep + +## read in data +data.TRY.std <- readRDS("../../output/formatted/TRY/data.TRY.std.rds") +## read France max height +max.height <- read.csv(file="../../output/formatted/France/max.height.csv", stringsAsFactors = FALSE) +## load latin name France +data.tree <- read.csv("../../output/formatted/France/tree.csv", stringsAsFactors = FALSE) +species.clean2 <- data.frame(sp=data.tree[!duplicated(data.tree[["sp"]]),"sp"], + Latin_name=data.tree[!duplicated(data.tree[["sp"]]),"sp.name"], + Latin_name_syn=data.tree[!duplicated(data.tree[["sp"]]),"sp.name"], + stringsAsFactors =FALSE) +## delete the sp code with no species +species.clean2 <- subset(species.clean2,subset=!is.na(species.clean2$Latin_name)) +max.height <- merge(max.height,species.clean2,by="sp") ## add latin name +## extract traits and height +data.traits <- fun.extract.format.sp.traits.TRY(sp=species.clean[["sp"]],sp.syno.table=species.clean,data=data.TRY.std) +data.traits <- merge(data.traits,subset(max.height,select=c("Latin_name","Max.height.mean","Max.height.sd")),by="Latin_name",all.x=TRUE,all.y=FALSE) + +### TODO ADD GENUS MEAN FOR HEIGHT IF SPECIES IS MISSING +write.csv(data.traits,file="../../output/formatted/Sweden/traits.csv") + diff --git a/R/find.trait/Swiss.R b/R/find.trait/Swiss.R new file mode 100644 index 0000000000000000000000000000000000000000..907b0007002659f9cbdcbeb5240f69afde2432bc --- /dev/null +++ b/R/find.trait/Swiss.R @@ -0,0 +1,24 @@ +##### FORMAT TRAIT FOR Swiss +source("trait.fun.R") + +### read species names +data.tree <- read.csv("../../output/formatted/Swiss/tree.csv", stringsAsFactors = FALSE) +species.clean <- data.frame(sp=data.tree[!duplicated(data.tree[["sp"]]),"sp"], + Latin_name=data.tree[!duplicated(data.tree[["sp"]]),"sp.name"], + Latin_name_syn=data.tree[!duplicated(data.tree[["sp"]]),"sp.name"], + stringsAsFactors =FALSE) + +## select column to keep + +## read in data +data.TRY.std <- readRDS("../../output/formatted/TRY/data.TRY.std.rds") +max.height <- read.csv(file="../../output/formatted/Swiss/max.height.csv", stringsAsFactors = FALSE) +max.height$sp <- paste("sp",max.height$code,sep=".") + +## extract traits and height +data.traits <- fun.extract.format.sp.traits.TRY(sp=species.clean[["sp"]],sp.syno.table=species.clean,data=data.TRY.std) +data.traits <- merge(data.traits,subset(max.height,select=c("sp","Max.height.mean","Max.height.sd")),by="sp",all.x=TRUE,all.y=FALSE) + +### TODO ADD GENUS MEAN FOR HEIGHT IF SPECIES IS MISSING +write.csv(data.traits,file="../../output/formatted/Swiss/traits.csv") + diff --git a/R/find.trait/US.R b/R/find.trait/US.R index 3e530198079a70fe0bf2677e7dcd2ca2bfcfc1a2..cd5cd140c2d47e199b20632bdb5e99024b89239a 100644 --- a/R/find.trait/US.R +++ b/R/find.trait/US.R @@ -2,16 +2,12 @@ source("trait.fun.R") ### read species names -species.clean <- read.csv("../../data/raw/US/REF_SPECIES.CSV", stringsAsFactors = FALSE) -## select column to keep -species.clean <- subset(species.clean, select = c("SPCD", "GENUS", "SPECIES", "VARIETY", - "SUBSPECIES", "SPECIES_SYMBOL")) -species.clean$Latin_name <- paste(species.clean[["GENUS"]], species.clean[["SPECIES"]], - sep = " ") -species.clean$Latin_name_syn <- paste(species.clean[["GENUS"]], species.clean[["SPECIES"]], - sep = " ") -names(species.clean)[1] <- "sp" -species.clean[["sp"]] <- paste("sp", species.clean[["sp"]], sep = ".") +data.tree <- read.csv("../../output/formatted/US/tree.csv", stringsAsFactors = FALSE) +species.clean <- data.frame(sp=data.tree[!duplicated(data.tree[["sp"]]),"sp"], + Latin_name=data.tree[!duplicated(data.tree[["sp"]]),"sp.name"], + Latin_name_syn=data.tree[!duplicated(data.tree[["sp"]]),"sp.name"], + stringsAsFactors =FALSE) + ## read in data data.TRY.std <- readRDS("../../output/formatted/TRY/data.TRY.std.rds") diff --git a/R/find.trait/trait.fun.R b/R/find.trait/trait.fun.R index 56fe73e021a24f1f6d96f2b1feb12bf276bdd6e1..24a5000c891168ec38d492c4d826093f3b04352b 100644 --- a/R/find.trait/trait.fun.R +++ b/R/find.trait/trait.fun.R @@ -2,7 +2,7 @@ ############################################ 14/06/2013 ### install all unstallled packages -list.of.packages <- c("MASS", "doParallel","mvoutlier") +list.of.packages <- c("MASS", "doParallel","mvoutlier","plyr") new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])] if(length(new.packages)) install.packages(new.packages) @@ -164,6 +164,8 @@ fun.extract.format.sp.traits.TRY <- function(sp, sp.syno.table, data) { if (sum((sp.syno.table[["Latin_name_syn"]] %in% data[["Latin_name"]])) == 0) stop("not a single similar species name in sp and TRY") + sp <- as.character(sp) + sp.syno.table$sp <- as.character(sp.syno.table$sp) ## traits to extract traits <- c("Leaf.N", "Seed.mass", "SLA", "Wood.density") # lapply to extract @@ -235,7 +237,7 @@ return(extract.species.traits) ### FUNCTION TO EXTRACT ALL SPECIES fun.extract.format.sp.traits.NOT.TRY <- function(sp, Latin_name, data,name.match.traits="Latin_name") { - +require(plyr) ### test data sp and sp.syno.table match if (sum((Latin_name %in% data[[name.match.traits]])) == 0) @@ -255,22 +257,8 @@ if (SD.TF) traits.sd <- paste(traits,"sd",sep=".") ## extract data extract.species.traits <- rbind.fill(lapply(Latin_name,FUN=fun.spe.traits.notry ,data,traits.mean,traits.sd,name.match.traits,SD.TF)) - ############### add mean sd of species or genus if we want to use that - sd.vec.sp <- readRDS(file = "./data/process/sd.vec.sp.rds") - sd.vec.genus <- readRDS(file = "./data/process/sd.vec.genus.rds") - - ### add columns - extract.species.traits.2 <- data.frame(extract.species.traits, - extract.species.traits[,traits.sd], stringsAsFactors =FALSE) - - ## update value - traits.sd.1 <- paste(traits.sd, 1, sep = ".") - for (i in 1:length(traits.sd.1)) { - extract.species.traits.2[[traits.sd.1[i]]][!extract.species.traits.2[[traits.genus[i]]]] <- sd.vec.sp[i] - extract.species.traits.2[[traits.sd.1[i]]][extract.species.traits.2[[traits.genus[i]]]] <- sd.vec.genus[i] - } - data.frame.TRAITS <- data.frame(sp = sp, Latin_name , - extract.species.traits.2, stringsAsFactors =FALSE) + data.frame.TRAITS <- data.frame(sp = sp, Latin_name=Latin_name , + extract.species.traits, stringsAsFactors =FALSE) if (sum(!data.frame.TRAITS[["sp"]] == sp) > 0) stop("Wrong order of species code") return(data.frame.TRAITS) diff --git a/R/format.data/Canada.R b/R/format.data/Canada.R index 9d9d858797814572f37e8bfa77abcc7244dff8d2..211e7a08a57615e4ed2007a951503c7ca10cc202 100644 --- a/R/format.data/Canada.R +++ b/R/format.data/Canada.R @@ -13,11 +13,15 @@ data.canada$sp = data.canada$species_FIACode data.canada$species_FIACode <- NULL ### read species names and merge with data.canada species.clean <- read.csv("../../data/raw/Canada/FIA_REF_SPECIES.csv", stringsAsFactors = FALSE) -data.canada <- merge(data.canada, data.frame(sp = species.clean$SPCD, species.clean[,2:3], stringsAsFactors = F), by = "sp", all.x = T) -data.canada$sp.name <- data.canada$COMMON_NAME; data.canada$COMMON_NAME <- NULL -###################################### MASSAGE TRAIT DATA HEIGHT DATA FOR TREE MISSING BRING US DATA FOR HEIGHT OVER -###################################### WHEN WE ANALYZE THAT DATASET LATER ON -########################################## FORMAT INDIVIDUAL TREE DATA +species.clean$Latin_name <- paste(species.clean$GENUS,species.clean$SPECIES, sep=" ") +species.clean$Latin_name_syn<- paste(species.clean$GENUS,species.clean$SPECIES, sep=" ") +data.canada <- merge(data.canada, data.frame(sp = species.clean$SPCD, Latin_name=species.clean[,"Latin_name"], stringsAsFactors = F), by = "sp", all.x = T) +data.canada$sp.name <- data.canada$Latin_name; data.canada$Latin_name<- NULL + +data.canada$sp <- paste("sp",data.canada$sp,sep=".") +######### MASSAGE TRAIT DATA HEIGHT DATA FOR TREE MISSING BRING US DATA FOR HEIGHT OVER +######### WHEN WE ANALYZE THAT DATASET LATER ON +######### FORMAT INDIVIDUAL TREE DATA data.canada$FinalDBH[data.canada$FinalDBH < 0] <- NA data.canada$G <- 10 * (data.canada$FinalDBH - data.canada$InitDBH)/data.canada$Interval ## diameter growth in mm per year data.canada$G[which(data.canada$InitDBH == 0 | data.canada$FinalDBH == -999)] <- NA @@ -26,12 +30,15 @@ data.canada$D <- data.canada[["InitDBH"]] data.canada$D[data.canada$D == 0] <- NA ## diameter in cm data.canada$dead <- as.numeric(is.na(data.canada$FinalDBH)) ## dummy variable for dead tree 0 alive 1 dead data.canada$htot <- rep(NA, nrow(data.canada)) ## height of tree in m -data.canada$plot <- data.canada$PlotID_InitYear; data.canada$PlotID_InitYear <- NULL ## plot id +data.canada$plot <- data.canada$PlotID_InitYear ## plot id +data.canada$plot[!is.na(data.canada$SUBPLOT_ID)] <- paste(data.canada$plot[!is.na(data.canada$SUBPLOT_ID)], + data.canada$SUBPLOT_ID[!is.na(data.canada$SUBPLOT_ID)],sep=".") ## when subplot include it +data.canada$cluster <-rep(NA,nrow(data.canada)) ## cluster code +data.canada$cluster[!is.na(data.canada$SUBPLOT_ID)] <- data.canada$PlotID_InitYear[!is.na(data.canada$SUBPLOT_ID)]## when subplot use plot as cluster data.canada$tree.id <- data.canada[["PlotTree_ID"]]; data.canada[["PlotTree_ID"]] <- NULL ## tree unique id data.canada$census <- rep(1,nrow(data.canada)) data.canada$obs.id <- data.canada$tree.id data.canada$weights <- 1/(data.canada$SubPlotSize*10000) ### there is some strange small value in SubPlotSize 20 m^2 even for large tree NEED TO ASK Hongcheng ## REPLY BETTER TO DElETE THIS PLOTS HE DON T KNOW WHY SO SMALLL -data.canada$cluster <- as.character(data.canada[["plot"]]) ## cluster code ###################### ECOREGION merge to have no ecoregion with low number of observation greco <- read.csv(file = "../../data/raw/Canada/EcoregionCodes.csv", header = T, sep = "\t") @@ -63,7 +70,7 @@ data.canada <- merge(data.canada, data.frame(plot = names(perc.dead), perc.dead by = "plot", sort = FALSE) ####################################### PLOT SELECTION FOR THE ANALYSIS Remove data with dead == 1 table(data.canada$dead) -data.canada <- data.canada[data.canada$dead == 0,] +## data.canada <- data.canada[data.canada$dead == 0,] vec.abio.var.names <- c("MAT", "MAP") vec.basic.var <- c("obs.id","tree.id", "sp", "sp.name","cluster","plot", "ecocode", "D", "G", "dead", "year", "htot", "Lon", "Lat", "perc.dead","weights","census") diff --git a/R/format.data/Swiss.R b/R/format.data/Swiss.R index 26e8e9986420c7bc84cef40971e8e20d1451091a..5216b43963eea91e7c1a06549fefbb10ecd05afd 100644 --- a/R/format.data/Swiss.R +++ b/R/format.data/Swiss.R @@ -54,9 +54,10 @@ rm(data.sp, data.sp2) ################# MASSAGE TRAIT DATA Compute maximum height per species plus sd from observed ################# height to add variables to the traits data base Because we have two heights, ################# then take the max of the two heights and then bootstrap -res.quant.boot <- suppressWarnings(t(sapply(levels(factor(data.swiss[["sp"]])), FUN = f.quantile.boot, - R = 1000, x = log10(apply(data.swiss[, c("ht1", "ht2")], 1, max, na.rm = T)), - fac = factor(data.swiss[["spcode"]])))) +data.swiss2 <- subset(data.swiss,subset=apply(is.na(data.swiss[, c("ht1", "ht2")]), 1, sum)<2) +res.quant.boot <- (t(sapply(levels(factor(data.swiss2[["sp"]])), FUN = f.quantile.boot, + R = 1000, x = log10(apply(data.swiss2[, c("ht1", "ht2")], 1, max, na.rm = T)), + fac = factor(data.swiss2[["sp"]])))) ## create data base data.max.height <- data.frame(code = rownames(res.quant.boot), Max.height.mean = res.quant.boot[, 1], Max.height.sd = res.quant.boot[, 2], Max.height.nobs = res.quant.boot[, 3], stringsAsFactors =FALSE) diff --git a/R/format.data/US.R b/R/format.data/US.R index d1700026f53c6adab5e057e18443d14cf92191ae..57976018436f4ef836deb6685795a95bc07a7b28 100644 --- a/R/format.data/US.R +++ b/R/format.data/US.R @@ -45,7 +45,7 @@ data.us$plot <- paste(as.character(data.us[["PlotID"]]), as.character(data.us[[" data.us$htot <- rep(NA, length(data.us[["Species"]])) ## height of tree in m - MISSING data.us$tree.id <- as.character(data.us$TreeID) data.us$obs.id <- 1:nrow(data.us) ## tree unique id -data.us$sp.name <- species.clean[match(data.us$sp,species.clean$sp),"Latin_name"] ## TODO CHANGE THAT TO GET THE SPECIES LATIN NAME species.clean[match(data.us$sp,res.mat[["obs.id"]]),"Latin_name"]) +data.us$sp.name <- species.clean[match(data.us$sp,species.clean$sp),"Latin_name"] ## GET THE SPECIES LATIN NAME species.clean[match(data.us$sp,res.mat[["obs.id"]]),"Latin_name"]) ## census is missing use as only one census and check with mark data.us$census <- rep(1,nrow(data.us)) ### add plot weights for computation of competition index (in 1/m^2) diff --git a/docs/analysis.plan/analysis.md b/docs/analysis.plan/analysis.md index 5ab422960b3a746de2dd94b0d918db3d32448d21..63199d1d35468e82c5be2244d18cd6e9b629794d 100644 --- a/docs/analysis.plan/analysis.md +++ b/docs/analysis.plan/analysis.md @@ -5,6 +5,12 @@ # Workshop at Macquarie University 16-20 September 2013 +<!-- 3/9/2013 Discussion with Marie Uriarte. Paper in review in PNAS testing a method for incorporating trait data into demographic models which includes differences in average rates, niche differences and competitive hierarchies. Comment of Maria that my paper in Ecol Let mainly focus on average rate. Need to check in Chesson how average rate is linked to the competitive hierarchy. --> + +<!-- Need to propose assumption of how process are changing across ecoregion or abiotic gradient. Not a single hypothesis as it is now. She found that depending on traits some time it was competitive hierarchy and some time limiting similarity. --> + +<!-- Also need to keep in mind that traits represents the history of the species as well presents process see Sedio et Nature communication 2013. BUT I DON T THINK THIS IS SO DETERMINANT IN TERM OF HOW TRAITS CONNECT WITH PRESENT DAY COMPETITION. THIS MAINLY RELEVANT FOR THE ACTUAL COMPOSITION. --> + # Introduction @@ -14,12 +20,12 @@ It is widely assumed that ecologically similar species compete more intensely fo The idea that species with more similar traits compete more intensely with one another underlies numerous ecological analyses (e.g. Kraft et al. 2008; Cornwell & Ackerly 2009). However this assumption has rarely been tested against field or experimental outcomes. This is surprising because it is well known that competitive interactions among vascular plants are more complex. For instance, the ranking of competitive ability for a common limiting resource is also an important driver of competitive interaction, e.g. via competition for light. If ranking processes are dominant, competitive outcomes should be more closely related to the hierarchy (or the hierarchical distance) of relevant functional traits (Mayfield & Levine 2010; Kunstler et al. 2012) than trait dissimilarity. -We recently analysed competitive interactions at local scale between individual trees (using growth analysis with local competition index) to test these two contrasting assumptions in mountain forests in the French Alps (Kunstler et al. 2012). This analysis showed that competitive interactions at local scale were not driven by trait similarity, as commonly assumed, but rather by hierarchical measures. This support the idea that there are limited resource partitioning at the local scale between tree species (Sears & Chesson 2007). The lack of evidence of resource partitioning promoting traits diversity at local scale doesn't means that stabilizing frequency dependence is absent at all scale (there is other stabilizing process that operate at other scale). +We recently analysed competitive interactions at local scale between individual trees (using growth analysis with local competition index) to test these two contrasting assumptions in mountain forests in the French Alps (Kunstler et al. 2012). This analysis showed that competitive interactions at local scale were not driven by trait similarity, as commonly assumed, but rather by hierarchical measures. This support the idea that there are limited resource partitioning at the local scale between tree species (Sears & Chesson 2007). [The lack of evidence of resource partitioning promoting traits diversity at local scale doesn't means that stabilizing frequency dependence is absent at all scale (there is other stabilizing process that operate at other scale)]. ## Objective Given the importance in the ecological literature of the idea that trait similarity drives competitive interaction, we would like to extend our recent analysis to other forest ecosystems around the world. There are several datasets from national forest inventories or from long term permanent plots that report individual tree growth that can be combined with data about species functional traits sourced locally or from global databases (e.g. TRY). Accordingly, we are organising a working group to test several hypothesis of how traits influence the outcome of competition in multiple sites around the world. Invitees to the working group are proprietors or curators of key datasets. -## Overview of the analysis +## Overview of the analysis {#overview} Initially, we will apply the framework of Kunstler et al. (2012). A competition index is calculated that measures the reduction in growth of a target tree by other trees in their local neighbourhood. Within this competition index we will first compare two alternative models linking traits to competitive outcomes: (@) The competitive effect of species $b$ on species $a$ is a function of the absolute distance of their traits ($|t{_b} - t{_a}|$) as classically proposed; @@ -28,44 +34,47 @@ Initially, we will apply the framework of Kunstler et al. (2012). A competition The question is which of these assumptions provides a better prediction, and which traits contribute strongly. -Our main aim is for the meeting is to actually carry out the proposed analysis and rough out a first-draft paper. A second step that I hope to start during or before the workshop is to include in the analysis additional test of stabilizing frequency dependence that operate at larger spatial scale (see section Test of stabilizing frequency dependence processes at non local scale). In addition we would be happy for other analyses and questions to also be considered, following group discussion. +Our main aim is for the meeting is to actually carry out the proposed analysis and rough out a first-draft paper. A second step that I hope to start during or before the workshop is to include in the analysis additional test of stabilizing frequency dependence that operate at larger spatial scale (see section Test of stabilizing frequency dependence processes at non local scale) [Section Additional analysis](#add.analysis). In addition we would be happy for other analyses and questions to also be considered, following group discussion. ## Output The proposed analysis will give rise to a strong collaborative paper assessing, across a range of vegetation types, whether competitive interactions are better predicted from trait absolute distance, as is widely assumed, or from hierarchical relations, or other more complex models. Our aim is to run the analysis and draft a first version of the paper during the workshop or soon after. ----- -## ADDITIONAL ANALYSIS: Test of stabilizing frequency dependence processes at non local scale +# Analysis +Diameter growth of individual $i$ of species $a$ in plot $p$ will be analysed as a function of the effect of the size (diameter $D$), local abiotic variables ($A_1$, $A_2$) and a competition index based on the local basal area with distinct competitive effect for each competitive species $b$ ($\lambda_{a,b}$) using this general function: -Showing that competition in late successional stage is driven by hierarchical traits distance and not traits absolute distance is an important results because it shows that the classical assumption that trait differences reflect local resource partitioning is not supported by field data for forest ecosystems. However this leaves open the question of what process is promoting the diversity of traits observed in most forest communities (or why the community is not composed only of competitive species). Any trait is probably related to both competitive exclusion at local scale but also stabilizing effect at larger scale to explain the diversity of traits observed (Adler et al. 2013). One of the most classical coexistence mechanism in forest community is successionnal niche segregation. In that case, trait value that results in a high competitive ability in late successional stage results in poor competitive ability in early successional stage and thus successional dynamics may promotes species coexistence. -<!-- In the framework of Alder et al. 2013, however the successional process related to species shade-tolerance is presented within the spatial heterogeneity effect that promotes coexistence (spatial heterogeneity). According to this paper the key test would show that *"the covariance between the Environmental effect E and the competition effect C increase with increasing traits difference between the focal species and the rest of the community"*. This however unclear for me. Indeed as explained by Gravel et al. 2010, the spatial storage effect can not directly be related to the mosaic of gap in a forest because the variable light availability is in fact related to competition. In Chesson theory the spatial variability has to be related to environmental variable different than competition (see Gravel et al. 2010 Oikos). --> Gravel et al. propose that the shade tolerance (low light survival $vs.$ high light growth can promotes species coexistence through three different mechanisms: 'relative non linearity' (relative non linearity in the response of the species to light results in one species dominating in constant environment and an other in a variable environment through the Jensen' inequality), the 'successional niche' (disturbance may promotes an inferior competitors at late successional stage because of its advantage in early successional stage) and the 'storage effect' (in this case either through spatial variability in disturbance intensity or frequency or spatial variability of soil fertility). Gravel et al. 2010 shows that the low-light survival $vs.$ high light growth can support a relatively limited number of coexisting species (2 and sometime 3 - more than 3 have not been explored). This agree roughly with the number of SLA type supported in Daniel Falster model. Explanation for a higher diversity probably require additional mechanisms, for instance the spatial storage effect. +\begin{equation} \label{eq:G1} +G_{i,a,p} = \alpha_{a,p} f_1(D) f_2(A_1) f_3(A_2) g(\sum_{b=1}^{K} \lambda_{a,b} \times B_b) +\end{equation} -***The key question here is should we try to add an additional analysis to test what is promoting the diversity of traits despite the fact that late successional competitive ability is monotonically related to species trait (hierarchical trait distance).*** +* With $f_1$, $f_2$, $f_3$ and $g$ functions that represent the effect of respectively $D$ $A_1$ and $A_2$ and competition on growth. -Potential analysis to add: +* Where $B_b=\sum_{n=1}^{N_{i,b}} {D_n^2 \pi /4}$ is the sum of the basal area of tree from species $b$ in the neighbourhood of the individual $i$. The neighbourhood will be either the whole plot for small forest inventory plot, or a radius (for instance 15m but we need to discuss that) in large tropical plot with X Y coordinates of all individuals. $\lambda_{a,b}$ is the parameter describing the competitive effect and will be modelled in function of trait. -* **Successional niche**: Low competition (i.e. high light) growth rate of small tree is inversely related to traits that promote competitive ability in late successional stage. Under this analysis high light growth rate determine the competitive ability in early successionnal stage. However this assumption lack formal theoretical model showing what range of traits diversity may be promoted by this process (expect Daniel Falster model). <!-- We know that temporal variability of light/competition created by disturbance can only promotes the coexistence of two extremes type of species in a single isolated patch (Chesson 1994 and Gravel et al. 2010 this may promote only the two extremes strategies). In meta-community of patches connected by dispersal with disturbance this can promotes 3 species according to Gravel et al. 2010 (but in the special case of perfectly asynchronous disturbances), but we don't know if this can promotes a large traits diversity. Daniel Falster model predict the coexistence of up to 4 SLA type via this process (but more likely 3). --> ANALYSIS: Does trait related to competitive ability in high competition is inversely related to juvenile growth in low competition? +* The observation error will be assumed to follow a log-normal distribution ($\sigma_o$). $\alpha_{a,p}$ is a parameter describing growth of species $a$ with a plot effect $p$ (and individual effect $i$ if multiple measurements) to account to repeated observation on the same plot (or quadrat in large plot). -* **Spatial storage effect**: *2 points to test.* 1. the covariance between Competition $C$ and the environment effect $E$ is higher for species with trait value linked with a high competitive ability that for species with trait value linked to a low competitive ability (the environment effect can be estimated by the random plot effect or by the abiotic variables or both) (see Sears & Chesson 2007 Ecology for a test with annual plant). 2. species with low competitive ability traits have a different response to the environment (E) than species with high competitive ability traits. Analysis: from estimated growth model compute $cov(E,C)$ (for each plot E= random plot effect + abiotic effect) (C average competition experienced by the species on the plot) and test how this is related to the trait linked to competitive ability. Then test if the dissimilarity in environmental response between species increase with traits distance between species (cov($E_1$,$E_2$) ~ abs($E_1$,$E_2$)). +## Trait and $\lambda_{a,b}$ ----- +Then as explained in the [section Overview](#overview) we will test different assumption about how the parameter $\lambda_{a,b}$ relate to the traits $t$, testing several alternative traits. First we will test the assumption that competitive effect of species $b$ on species $a$ is a function of the absolute distance of their traits with +\begin{equation} +\lambda_{a,b} = f(a + b \times |t_{b} - t_{a}|) +\end{equation} -# Analysis -Diameter growth of individual $i$ of species $a$ in plot $p$ will be analysed as a function of the effect of the size (diameter $D$), local abiotic variables ($A_1$, $A_2$) and a competition index based on the local basal area with distinct competitive effect for each competitive species $b$ ($\lambda_{a,b}$) using this general function: +with $f$ a function from $R$ to $R^{+}$ for competition model as in Caspersen et al. 2011 or Kunstler et al. 2012 or identity if loglinear model. -\begin{equation} \label{eq:G1} -G_{i,a,p} = \alpha_{a,p} f_1(D) f_2(A_1) f_3(A_2) g(\sum_{b=1}^{K} \lambda_{a,b} \times B_b) -\end{equation} -* With $f_1$, $f_2$, $f_3$ and $g$ function that represent the effcet of respectively $D$ $A_1$ and $A_2$ and competition on growth. +The species trait $t_a$ (log scale) will be assumed to be taken in a normal distribution with either the mean of the species observations and of $\sigma$ the mean $\sigma$ within tree species reported for all species in TRY by Kattge et al. (2011) or the mean genus observation (if no species data are available) with $\sigma$ the mean $\sigma$ within all genus in TRY. We will also test model without trait uncertainty as this speed up model estimation trendmounsly. + +Then we will test the assumption that the competitive effect of species $b$ on species $a$ is a function of a hierarchical distance +\begin{equation} +\lambda_{a,b} = f(a +b \times (t_{b} - t_{a})) +\end{equation} -* Where $B_b=\sum_{n=1}^{N_{i,b}} {D_n^2 \pi /4}$ is the sum of the basal area of tree from species $b$ in the neighbourhood of the individual $i$. The neighbourhood will be either the whole plot for small forest inventory plot, or a radius (for instance 15m but we need to discuss that) in large tropical plot with X Y coordinates of all individuals. -* The observation error will be assumed to follow a log-normal distribution ($\sigma_o$). $\alpha_{a,p}$ is a parameter describing growth of species $a$ with a plot effect $p$ (and individual effect $i$ if multiple measurements) to account to repeated observation on the same plot (or quadrat in large plot). -## We can use several potential form for the functions $f$ and $g$ +## Potential form for the functions $f_{1 2 3}$ and $g$ * The most simple model is a log-linear model @@ -92,40 +101,42 @@ e^{-\frac{1}{2}(\frac{ln(D/\delta)}{\sigma})^2} In all case the species specific parameters ($\alpha_{a,p}$, $\beta_{1,a}$, $\beta_{2,a}$, $\beta_{3,a}$ in loglinear model for instance) will be constrained by a normal hyper-distribution. We will use the same $\sigma_i$ and $\sigma_p$ over all species [but se Ghislain comment on potential problem related to that]. -Then as explained in the [section Overview](#overview) we will test different assumption about how the parameter $\lambda_{a,b}$ relate to the traits $t$, testing several alternative traits. First we will test the assumption that competitive effect of species $b$ on species $a$ is a function of the absolute distance of their traits with -\begin{equation} -\lambda_{a,b} = f(a + b \times |t_{b} - t_{a}|) -\end{equation} -with $f$ a function from $R$ to $R^{+}$ for competition model as in Caspersen et al. 2011 or Kunstler et al. 2012 or identity if loglinear model. +<!-- ## Issue with species missing traits observation --> -The species trait $t_a$ (log scale) will be assumed to be taken in a normal distribution with either the mean of the species observations and of $\sigma$ the mean $\sigma$ within tree species reported for all species in TRY by Kattge et al. (2011) or the mean genus observation (if no species data are available) with $\sigma$ the mean $\sigma$ within all genus in TRY. +<!-- In the computation of the competition index traits observations need to cover all species found in the neighbourhood. Rare species, particularly in tropical forest are likely to represent an issue. One solution would be as done in Aubry-Kientz et al. (2013) to assume that because of phylogenetic conservatism species with unknown trait value can be affected trait with a normal distribution of mean, the mean of the genus and $\sigma$, the $\sigma$ of the genus observation (or the mean genus $\sigma$ reported by Kattge et al. (2011) if to few observations in the genus). I'm reluctant to use family level. --> -Then we will test the assumption that the competitive effect of species $b$ on species $a$ is a function of a hierarchical distance -\begin{equation} -\lambda_{a,b} = f(a +b \times (t_{b} - t_{a})) -\end{equation} +---- -* For the function $f$ from $R$ to $R^{+}$ we can use different alternative. - + use exponential transformation of lambda this assume an expo shape of $\lambda$ in function of traits distance $exp( a +b \times (t_{b} - t_{a}))$. - + Or use a logistic function multiplied by a constant giving the average competitive ability (so $\lambda$ will vary between 0 and 1) such as -\begin{equation} -\lambda_{a,b} = \frac{C}{1+ \exp(b \times (t_{b} - t_{a}))} -\end{equation} - with $C$ a positive parameter representing the average competition and $b$ is a parameter to be estimated. +## ADDITIONAL ANALYSIS: Test of stabilizing frequency dependence processes at non local scale {#add.analysis} + +Showing that competition at local scal is driven by hierarchical traits distance and not traits absolute distance is an important results because it shows that the classical assumption that trait differences reflect local resource partitioning and thus promotes lower comptition is not supported by field data for forest ecosystems. However this leaves open the question of what process is promoting the diversity of traits observed. Any trait is probably related to both competitive exclusion at local scale but also stabilizing effect at larger scale (see Adler et al. 2013[^Adler]). One of the most classical coexistence mechanism in forest community is successionnal niche segregation. +<!-- In the framework of Alder et al. 2013, however the successional process related to species shade-tolerance is presented within the spatial heterogeneity effect that promotes coexistence (spatial heterogeneity). According to this paper the key test would show that *"the covariance between the Environmental effect E and the competition effect C increase with increasing traits difference between the focal species and the rest of the community"*. This however unclear for me. Indeed as explained by Gravel et al. 2010, the spatial storage effect can not directly be related to the mosaic of gap in a forest because the variable light availability is in fact related to competition. In Chesson theory the spatial variability has to be related to environmental variable different than competition (see Gravel et al. 2010 Oikos). --> <!-- Gravel et al. propose that the shade tolerance (low light survival $vs.$ high light growth can promotes species coexistence through three different mechanisms: 'relative non linearity' (relative non linearity in the response of the species to light results in one species dominating in constant environment and an other in a variable environment through the Jensen' inequality), the 'successional niche' (disturbance may promotes an inferior competitors at late successional stage because of its advantage in early successional stage) and the 'storage effect' (in this case either through spatial variability in disturbance intensity or frequency or spatial variability of soil fertility). --> Gravel et al. 2010[^Gravel] provides an interessting theorethical framework to understand how this process can promotes coexistence of species with a trade off between shade tolerance and high light growth. In addition, Daniel Faltser evolutionnary model provides complementary results in a model in which species strategies is directly related to trait value trough physiological processes. Both model show that this successional niche can promotes coexistence, but for a relatively limited numner of species/strategies (2 to 4). <!-- shows that the low-light survival $vs.$ high light growth can support a relatively limited number of coexisting species (2 and sometime 3 - more than 3 have not been explored). This agree roughly with the number of SLA type supported in Daniel Falster model. --> An other stabilzing process is the spatial storage effect, in which the spatial heterogeinity of environmetal conditions (E for instance either soil, climate or disturbance regime) interact with competition to promotes coexistence. + +[^Adler]:In the framework of Alder et al. 2013, however the successional process related to species shade-tolerance is presented within the spatial storage effect. In my view, the spatial storage effect can not directly be related to the mosaic of gap in a forest because the variable light availability is in fact related to competition. In Chesson theory the spatial variability has to be related to environmental variable different than competition (see Gravel et al. 2010 Oikos) +[^Gravel]:Gravel et al. propose that low light survival $vs.$ high light growth trade off can promotes species coexistence through three different mechanisms: 'relative non linearity' (relative non linearity in the response of the species to light results in one species dominating in constant environment and an other in a variable environment through the Jensen' inequality), the 'successional niche' (disturbance may promotes an inferior competitors at late successional stage because of its advantage in early successional stage) and the 'storage effect' (in this case either through spatial variability in disturbance intensity or frequency or spatial variability of soil fertility) + +***I planning to add additional analysis to test what is promoting the diversity of traits even if competitive ability is related to species trait hierarchy (hierarchical trait distance) at local scale.*** -## Issue with species missing traits observation +Rough description of analysis to add: -In the computation of the competition index traits observations need to cover all species found in the neighbourhood. Rare species, particularly in tropical forest are likely to represent an issue. One solution would be as done in Aubry-Kientz et al. (2013) to assume that because of phylogenetic conservatism species with unknown trait value can be affected trait with a normal distribution of mean, the mean of the genus and $\sigma$, the $\sigma$ of the genus observation (or the mean genus $\sigma$ reported by Kattge et al. (2011) if to few observations in the genus). I'm reluctant to use family level. +* **Successional niche**: Low competition (i.e. high light) growth rate of small tree is inversely related to traits that promote competitive ability in late successional stage. Under this analysis high light growth rate determine the competitive ability in early successionnal stage. <!-- We know that temporal variability of light/competition created by disturbance can only promotes the coexistence of two extremes type of species in a single isolated patch (Chesson 1994 and Gravel et al. 2010 this may promote only the two extremes strategies). In meta-community of patches connected by dispersal with disturbance this can promotes 3 species according to Gravel et al. 2010 (but in the special case of perfectly asynchronous disturbances), but we don't know if this can promotes a large traits diversity. Daniel Falster model predict the coexistence of up to 4 SLA type via this process (but more likely 3). --> ANALYSIS: Does trait related to competitive ability in high competition is inversely related to juvenile growth in low competition? + +* **Spatial storage effect** (see Sears & Chesson 2007 Ecology for a test with annual plant): *2 points to test.* + 1. the covariance between competition $C$ and the environment effect $E$ is higher for species with trait value related to a high competitive ability than for opposed trait value (the environment effect can be estimated by the random plot effect or by the abiotic variables or both). *Analysis*: from estimated growth model compute $cov(E,C)$ (for each plot $E$= random plot effect + abiotic effect; and $C$ average competition experienced by the species on the plot) and test how this is related to the trait linked to competitive ability. + 2. species with low competitive ability traits have a different response to the environment (E) than species with high competitive ability traits. *Analysis*: Does dissimilarity in environmental response between species increase with traits distance between species (cov($E_1$,$E_2$) ~ abs($E_1$,$E_2$)). + +---- -## Issue with Eco-region -For large NFI data we will run the analysis separately per ecoregion. If some ecoregion have too few observation will merge them with the most similar other ecoregion. +## Ecoregion for NFI data +For the NFI data we will divide the data set by regions with similar ecological conditions. This will allow to estimate the link between competitive interactions and traits within regions of similar conditions and see how the results vary (for instance in the US there is a large variability between the north and the south). This will allow to make comparison with large tropical plot more easy. Then this will help to have smaller data set to speed up the estimation. Please could you either provides a source of ecoregion with a GIS layer that we can use or better directly includes this variable in the data (at the plot level). Similarly in term of climatic variables I was planning to use the best variables available for each data rather than a global data base of lower quality. Could you either give the link of such a data set or better directly do get the variables for each plot. If some ecoregion have too few observation I will merge them with the most similar other ecoregion. +\pagebreak # Table of data for the analysis and indication on the progress in formatting @@ -164,7 +175,7 @@ Autralia NSW Kooyman plots Medium size plots Available but no LMA CSIRO plots Medium size plots NO LEAF TRAITS OK climate ------------------------------------------------------------------------------------------------------------------------------- - +: Data description <!-- I have the data for Spain, US, France, New Zealand (old data from David), NSW. --> # Indication on data formatting @@ -177,6 +188,8 @@ Table with for each individual tree - species - diameter at census 1 - growth between census or diameter at census 2 +- dead or alive at census 2 +- name or year of the census 1 - plot identifier - [For large plots] quadrat identifier within the plot or X Y coordinates (to compute local competition index) - plot or quadrat size @@ -199,12 +212,12 @@ In addition, if there is some tree height measurements it would be nice to keep If possible keep multiple observations per species if available to compute the $\sigma_t$. -## Ecoregion for NFI data -For the NFI data we will divide the data set by regions with similar ecological conditions. This will allow to estimate the link between competitive interactions and traits within regions of similar conditions and see how the results vary (for instance in the US there is a large variability between the north and the south). This will allow to make comparison with large tropical plot more easy. Then this will help to have smaller data set to speed up the estimation. Please could you either provides a source of ecoregion with a GIS layer that we can use or better directly includes this variable in the data (at the plot level). Similarly in term of climatic variables I was planning to use the best variables available for each data rather than a global data base of lower quality. Could you either give the link of such a data set or better directly do get the variables for each plot. <!-- FOR THE US : There are at least a couple different delineations of ecoregions for Canada and the US. Here are a couple possibilities: http://www.epa.gov/wed/pages/ecoregions/na_eco.htm or --> <!-- http://www.fs.fed.us/rm/ecoregions/products/map-ecoregions-north-america/ --> +\pagebreak + # References Adler, P.B., Fajardo, A., Kleinhesselink, A.R., and Kraft, N.J.B. 2013. Trait-based tests of coexistence mechanisms. Ecology Letters early view. @@ -247,3 +260,4 @@ Uriarte, M., Swenson, N.G., Chazdon, R.L., Comita, L.S., John Kress, W., Erickso Westoby, M., Falster, D.S., Moles, A.T., Vesk, P. a., Wright, I.J., 2002. PLANT ECOLOGICAL STRATEGIES: Some Leading Dimensions of Variation Between Species. Annual Review of Ecology, Evolution, and Systematics 33, 125–159. Wright, S.J., Kitajima, K., Kraft, N.J.B., Reich, P.B., Wright, I.J., Bunker, D.E., Condit, R., Dalling, J.W., Davies, S.J., DÃaz, S., others, 2010. Functional traits and the growth-mortality trade-off in tropical trees. Ecology 91, 3664–3674. +