#!/usr/bin/env Rscript ### MERGE paracou DATA rm(list = ls()) source("R/format.data/format.fun.R") dir.create("output/formatted/Paracou", recursive=TRUE,showWarnings=FALSE) library(reshape,quietly=TRUE) ############################ read individuals tree data data.paracou <- read.table("data/raw/Paracou/20130717_paracou_1984_2012.csv", header=TRUE,stringsAsFactors=FALSE,sep = ";", na.strings = "NULL") #barplot(apply(!is.na(data.paracou[,paste("circ_",1984:2012,sep="")]),MARGIN=2,FUN=sum),las=3) # select good columns data.paracou <- data.paracou[,c("foret","parcelle","carre","arbre","vernaculaire","idtaxon", "x","y","circ_2001","code_2001","circ_2005","code_2005", "circ_2009","code_2009","campagne_mort","type_mort")] colnames(data.paracou) <- c("forest","cluster","plot","tree","vernacular","taxonid","x","y", "circum2001","code2001","circum2005","code2005","circum2009", "code2009","yeardied","typedeath") ### change numeric separator numeric.col.name <- c("x","y","circum2001","code2001","circum2005","code2005","circum2009","code2009") for(k in numeric.col.name){ data.paracou[,k] <- gsub(",",".",data.paracou[,k]); data.paracou[,k] <- as.numeric(data.paracou[,k]) } ## Replace all , in decimals with . data.paracou$tree.id <- apply(data.paracou[,c("cluster","plot","tree")],1,paste,collapse="_"); data.paracou$sp <- paste("sp",data.paracou[["taxonid"]],sep=".") data.paracou <- data.paracou[,c(ncol(data.paracou),1:(ncol(data.paracou)-1))] ## plot each plot ## pdf("output/figs/plots.paracou.pdf") ## lapply(unique(data.paracou[["cluster"]]),FUN=fun.circles.plot,data.paracou[['x']],data.paracou[['y']],data.paracou[["cluster"]],data.paracou[["circum2009"]],inches=0.2,fg.l=data.paracou$subplot) ## dev.off() ## # ############################ SELECT OBSERVATION WITHOUT PROBLEMS ## REMOVE ALL TREES WITH X OR Y >250 m data.paracou <- subset(data.paracou,subset=(!is.na(data.paracou[["x"]])) & data.paracou[["x"]]<251 & data.paracou[["y"]]<251) #### REMOVE PLOTs 16 17 18 ACCORDING TO GHSILAIN data.paracou <- subset(data.paracou,subset=! data.paracou[["cluster"]] %in% 16:18) ## keep only tree alive in 2001 data.paracou <- subset(data.paracou,subset=!(as.numeric(data.paracou[["yeardied"]])<=2001 & !is.na(data.paracou[["yeardied"]]))) ######################################## MASSAGE TRAIT DATA ### read species names species.clean <- read.csv("data/raw/Paracou/20130717_paracou_taxonomie.csv",stringsAsFactors=FALSE, header = T, sep = ";") species.clean$sp <- species.clean[["idTaxon"]] species.clean$Latin_name <- paste(species.clean[["Genre"]],species.clean[["Espece"]],sep=" ") ## keep only one row pers idTaxon species.clean <- subset(species.clean,subset=!duplicated(species.clean[["sp"]]),select=c("sp","Latin_name","Genre","Espece","Famille","idCIRAD")) ## select only species present in data base species.clean <- subset(species.clean,subset=species.clean[["sp"]] %in% data.paracou[["sp"]]) ## percentage of species with no taxonomic identification length(grep("Indet",species.clean[["Latin_name"]]))/nrow(species.clean) ## 25% agree with Bruno ? ############################################ FORMAT INDIVIDUAL TREE DATA data.paracou2 <- data.paracou[rep(1:nrow(data.paracou),each=2),c(1:10,(ncol(data.paracou)-2):ncol(data.paracou))] rownames(data.paracou2) <- 1:nrow(data.paracou2); data.paracou2 <- as.data.frame(data.paracou2) data.paracou2$yr1 <- rep(c(2001,2001+4),nrow(data.paracou)); data.paracou2$yr2 <- rep(c(2005,2005+4),nrow(data.paracou)) data.paracou2$year <- rep(c(4,4),nrow(data.paracou)) data.paracou2$dbh1 <- c(rbind(data.paracou$circum2001/pi,data.paracou$circum2005/pi)) data.paracou2$dbh2 <- c(rbind(data.paracou$circum2005/pi,data.paracou$circum2009/pi)) data.paracou2$code1 <- c(as.numeric(rbind(data.paracou$code2001,data.paracou$code2005))) data.paracou2$code2 <- c(as.numeric(rbind(data.paracou$code2005,data.paracou$code2009))) data.paracou2$dead <- rep(0,nrow(data.paracou)*2) data.paracou2$dead[c(as.numeric(data.paracou[["yeardied"]]) %in% 2002:2005 & (!is.na(data.paracou[["yeardied"]])), as.numeric(data.paracou[["yeardied"]]) %in% 2006:2009 & (!is.na(data.paracou[["yeardied"]])))] <- 1 ## remove tree dead at first census for both date (census 2001-2005 2005-2009) data.paracou <- subset(data.paracou2,subset=!(data.paracou2[['yr1']] ==2005 & (as.numeric(data.paracou[["yeardied"]]) %in% 2002:2005 & (!is.na(data.paracou[["yeardied"]]))))) ## change unit and names of variables to be the same in all data for the tree data.paracou$G <- 10*(data.paracou$dbh2-data.paracou$dbh1)/data.paracou$year ## diameter growth in mm per year data.paracou$G[data.paracou$code1>0] <- NA ## indivs with code indicating problem in dbh measurment at dbh1 data.paracou$G[data.paracou$code2>0] <- NA ## indivs with code indicating problem in dbh measurment at dbh2 data.paracou$census <- data.paracou$yr1 data.paracou$D <- data.paracou[["dbh1"]]; data.paracou$D[data.paracou$D == 0] <- NA ;## diameter in cm data.paracou$cluster <- paste("p",data.paracou$cluster,sep=".")#apply(data.paracou[,c("forest","cluster","plot")],1,paste,collapse=".") ## plot code data.paracou$htot <- rep(NA,length(data.paracou[["G"]])) ## height of tree in m data.paracou$obs.id <- 1:nrow(data.paracou) data.paracou$plot <- paste(data.paracou$cluster,data.paracou$plot) ### delete recruit in 2001 or 2005 for first census data.paracou <- subset(data.paracou,subset=!is.na(data.paracou$D)) ## minimum circumfer 30 delete all tree with a dbh <30/pi, data.paracou <- subset(data.paracou,subset= data.paracou[["D"]]>(30/pi)) ## add latin name data.paracou <- merge(data.paracou,subset(species.clean,select=c("sp","Latin_name")),by="sp") data.paracou$sp.name <- data.paracou$Latin_name ################################################## VARIABLES SELECTION FOR THE ANALYSIS #vec.abio.var.names <- c("MAT","MAP") ## MISSING NEED OTHER BASED ON TOPOGRAPHY ASK BRUNO ###################### PLOT SELECTION FOR THE ANALYSIS vec.basic.var <- c("obs.id","tree.id", "sp", "sp.name","cluster", "plot", "D", "G", "dead", "year", "htot", "x", "y", "census") data.tree <- subset(data.paracou, select = c(vec.basic.var)) data.tree[["Lon"]] <- -52.900002 data.tree[["Lat"]] <- 5.38 data.tree[["ecocode"]] <- "tropical" ## select tree above 10 cm and last census only data.tree <- subset(data.tree,subset=data.tree$D>10 & !is.na(data.tree$D)) ## data.tree <- subset(data.tree,subset=data.tree$census==2005) write.csv(data.tree,file="output/formatted/Paracou/tree.csv",row.names = FALSE)