An error occurred while loading the file. Please try again.
-
Georges Kunstler authored894c022c
### MERGE Fushan DATA
rm(list = ls())
source("./R/format.function.R")
library(reshape)
######################### READ DATA read individuals tree data
load("./data/raw/DataFushan/fushan.rdata")
data.fushan <- data.frame(fushan)
rm(fushan)
### read species names
species.clean <- read.csv("./data/raw/DataFushan/Splist_Fushan_En.csv", stringsAsFactors = FALSE)
###################################### MASSAGE TRAIT DATA Obtain maximum height per species from data.trait no sd
###################################### available as we have only one observation for species
data.trait <- read.table("./data/raw/DataFushan/fs_trait_Kunstler.txt", header = T,
sep = "\t")
colnames(data.trait) <- c("sp", "sla", "wd", "seedmassmg", "meanN", "maxheightm")
data.trait <- merge(data.trait, data.frame(sp = species.clean$sp, Latin = apply(species.clean[,c("genus","epithet")],1,paste,collapse="_"),
stringsAsFactors = F), by = "sp")
data.trait$Leaf.N.mean <- data.trait$meanN*10; data.trait$meanN <- NULL; ## conversion from percentage to mg/g
data.trait$Leaf.N.sd <- NA
data.trait$Seed.mass.mean <- data.trait$seedmassmg; data.trait$seedmassmg <- NULL
data.trait$Seed.mass.sd <- NA
data.trait$SLA.mean <- data.trait$sla/10; data.trait$sla <- NULL
data.trait$SLA.sd <- NA
data.trait$Wood.density.mean <- data.trait$wd; data.trait$wd <- NULL
data.trait$Wood.density.sd <- NA
data.trait$Max.height.mean <- log10(data.trait$maxheightm); data.trait$maxheightm <- NULL
data.trait$Max.height.sd <- NA
data.max.height <- data.frame(sp = data.trait$sp, Max.height = log10(data.trait$maxheightm))
data.fushan <- merge(data.fushan, data.max.height, by = "sp")
########################################## FORMAT INDIVIDUAL TREE DATA
data.fushan$year <- data.fushan$Interval ## number of year between measurement - MISSING - FIVE YEARS
data.fushan$G <- 10*(data.fushan$dbh2 - data.fushan$dbh1)/data.fushan$Interval ## diameter growth in mm per year
data.fushan$D <- data.fushan[["dbh1"]] ## diameter in cm
data.fushan$dead <- as.numeric(data.fushan$status2 == "dead") ## dummy variable for dead tree 0 alive 1 dead
data.fushan$plot <- rep(NA,nrow(data.fushan)) ## plot code - MISSING - ONE BIG PLOT
data.fushan$htot <- rep(NA,nrow(data.fushan)) ## height of tree in m - MISSING
data.fushan$tree.id <- data.fushan$tag ## tree unique id - use tag here as it is unique for each row
data.fushan$sp.name <- rep(NA,nrow(data.fushan))
v <- species.clean$sp
for (i in 1:length(unique(data.fushan$sp))) {
sel.spp <- which(data.fushan$sp == unique(data.fushan$sp)[i])
data.fushan$sp.name[sel.spp] <- paste(species.clean$family[sel.spp], species.clean$genus[sel.spp],
species.clean$epithet[sel.spp], sep = "_")
}
data.fushan$weights <- 1/(pi*(0.5*data.fushan$D/100)^2)
data.fushan$obs.id <- data.fushan$tag
########################################## CHANGE COORDINATE SYSTEM DON'T KNOW!
###################### 1 ECOREGION ONLY?
###################### PERCENT DEAD CANNOT DO THIS WITHOUT A PLOTID compute numer of dead per plot to
###################### remove plot with disturbance
perc.dead <- tapply(data.fushan[["dead"]], INDEX = data.fushan[["plot"]], FUN = function.perc.dead2)
data.fushan <- merge(data.fushan, data.frame(plot = names(perc.dead), perc.dead = perc.dead),
by = "plot", sort = FALSE)
########################################################### PLOT SELECTION FOR THE ANALYSIS Remove data with dead == 1
table(data.fushan$dead)
data.fushan <- data.fushan[data.fushan$dead == 0, ]
vec.abio.var.names <- c("MAT", "MAP")
vec.basic.var <- c("tree.id", "sp", "sp.name", "plot", "D", "G", "dead", "year",
"htot", "gx", "gy", "perc.dead")
data.tree <- subset(data.fushan, select = c(vec.basic.var, vec.abio.var.names))
7172737475767778798081828384858687888990919293949596979899
############################################## COMPUTE MATRIX OF COMPETITION INDEX WITH SUM OF BA PER SPECIES IN EACH PLOT in
############################################## m^2/ha without the target species CANNOT DO WITHOUT A PLOT ID
data.BA.SP <- BA.SP.FUN(id.tree = as.vector(data.fushan[["tree.id"]]), diam = as.vector(data.fushan[["D"]]),
sp = as.vector(data.fushan[["sp"]]), id.plot = as.vector(data.fushan[["plot"]]),
weights = data.fushan$weights, weight.full.plot = NA)
## change NA and <0 data for 0
data.BA.SP[is.na(data.BA.SP)] <- 0
data.BA.SP[, -1][data.BA.SP[, -1] < 0] <- 0
### CHECK IF sp and sp name for column are the same
if (sum(!(names(data.BA.SP)[-1] %in% unique(data.fushan[["sp"]]))) > 0) stop("competition index sp name not the same as in data.tree")
#### compute BA tot for all competitors
BATOT.COMPET <- apply(data.BA.SP[, -1], 1, sum, na.rm = TRUE)
data.BA.SP$BATOT.COMPET <- BATOT.COMPET
rm(BATOT.COMPET)
### create data frame
names(data.BA.SP) <- c("tree.id", names(data.BA.SP)[-1])
data.BA.sp <- merge(data.frame(tree.id = data.fushan[["tree.id"]], ecocode = data.fushan[["ecocode"]]),
data.BA.SP, by = "tree.id", sort = FALSE)
## test
if (sum(!data.BA.sp[["tree.id"]] == data.tree[["tree.id"]]) > 0) stop("competition index not in the same order than data.tree")
## save everything as a list
list.canada <- list(data.tree = data.tree, data.BA.SP = data.BA.sp, data.traits = data.traits)
save(list.spain, file = "./data/process/list.canada.Rdata")