Commit 9e81c634 authored by fhui28's avatar fhui28
Browse files

minor changes to NSW and Swiss in accordance with milestones

No related merge requests found
Showing with 26 additions and 29 deletions
+26 -29
......@@ -52,24 +52,24 @@ data.traits <- read.csv("./data/raw/DataNSW/NSW_traits.csv", header = TRUE, stri
########################################## FORMAT INDIVIDUAL TREE DATA Each tree has at most 3 observations (from prelim
########################################## checks of the data)
data.nsw$treeid <- apply(data.nsw[, 1:2], 1, paste, collapse = ".")
data.nsw$treeid <- apply(data.nsw[, 1:2], 1, paste, collapse = "_")
data.nsw2 <- data.frame(data.nsw[1, ], year1 = NA, year2 = NA, dbh1 = NA, dbh2 = NA)
for (k in 1:length(unique(data.nsw$treeid))) {
sub.datansw <- as.data.frame(data.nsw[which(data.nsw$treeid == unique(data.nsw$treeid)[k]),
])
if (nrow(sub.datansw) == 1) {
data.nsw2 <- rbind(data.nsw2, data.frame(sub.datansw, year1 = sub.datansw$Date.of.measure[1],
year2 = NA, dbh1 = sub.datansw$Dbh[1], dbh2 = NA))
year2 = NA, dbh1 = sub.datansw$Dbh[1], dbh2 = NA, stringsAsFactors = F))
}
if (nrow(sub.datansw) == 2) {
data.nsw2 <- rbind(data.nsw2, data.frame(sub.datansw[1, ], year1 = sub.datansw$Date.of.measure[1],
year2 = sub.datansw$Date.of.measure[2], dbh1 = sub.datansw$Dbh[1], dbh2 = sub.datansw$Dbh[2]))
year2 = sub.datansw$Date.of.measure[2], dbh1 = sub.datansw$Dbh[1], dbh2 = sub.datansw$Dbh[2], stringsAsFactors = F))
}
if (nrow(sub.datansw) == 3) {
data.nsw2 <- rbind(data.nsw2, data.frame(sub.datansw[1, ], year1 = sub.datansw$Date.of.measure[1],
year2 = sub.datansw$Date.of.measure[2], dbh1 = sub.datansw$Dbh[1], dbh2 = sub.datansw$Dbh[2]))
year2 = sub.datansw$Date.of.measure[2], dbh1 = sub.datansw$Dbh[1], dbh2 = sub.datansw$Dbh[2], stringsAsFactors = F))
data.nsw2 <- rbind(data.nsw2, data.frame(sub.datansw[1, ], year1 = sub.datansw$Date.of.measure[2],
year2 = sub.datansw$Date.of.measure[3], dbh1 = sub.datansw$Dbh[2], dbh2 = sub.datansw$Dbh[3]))
year2 = sub.datansw$Date.of.measure[3], dbh1 = sub.datansw$Dbh[2], dbh2 = sub.datansw$Dbh[3], stringsAsFactors = F))
}
}
data.nsw2 <- data.nsw2[-1, ]
......@@ -80,13 +80,11 @@ for (k in 9:12) data.nsw[, k] <- as.numeric(data.nsw[, k])
## change unit and names of variables to be the same in all data for the tree
data.nsw$year <- (data.nsw$year2 - data.nsw$year1) ## number of year between measurements
data.nsw$G <- 10 * (data.nsw$dbh2 - data.nsw$dbh1)/(data.nsw$year) ## diameter growth in mm per year
## THERE ARE SOME ROWS WITH STRONG NEGATIVE GROWTH THAT YOU MIGHT WANT TO REMOVE
head(data.nsw[order(data.nsw$G), ])
data.nsw$D <- data.nsw[["dbh1"]]
## diameter in cm
#head(data.nsw[order(data.nsw$G), ])
data.nsw$D <- data.nsw[["dbh1"]] ## diameter in cm
data.nsw$dead <- rep(NA, nrow(data.nsw)) ## dummy variable for dead tree 0 alive 1 dead - MISSING
data.nsw$sp <- as.character(data.nsw[["species"]]) ## species code - use the spp name as code
data.nsw$sp <- as.numeric(factor(data.nsw[["species"]])) ## species code - use the spp name as code
data.nsw$sp.name <- data.nsw[["species"]]; data.nsw$species <- NULL
data.nsw$plot <- as.character(data.nsw[["Plot"]]) ## plot code
data.nsw$htot <- rep(NA, nrow(data.nsw)) ## height of tree in m - MISSING
### add plot weights for computation of competition index (in 1/m^2) - from the
......@@ -103,11 +101,14 @@ data.nsw$weights[grep("BR", data.nsw$Plot)] <- 1/(60.4 * 60.4)
data.nsw$weights[grep("END", data.nsw$Plot)] <- 1/(40 * 50)
data.nsw$weights[grep("TND", data.nsw$Plot)] <- 1/(40 * 50)
data.nsw$obs.id <- 1:nrow(data.nsw)
data.nsw$obs.id <- 1:nrow(data.nsw) ## Should change this when census variable is created
###################### ECOREGION nsw has only 1 eco-region
###################### PERCENT DEAD NO DATA ON MORTALITY
perc.dead <- tapply(data.nsw[["dead"]], INDEX = data.nsw[["plot"]], FUN = function.perc.dead2)
data.nsw <- merge(data.nsw, data.frame(plot = names(perc.dead), perc.dead = perc.dead),
by = "plot", sort = FALSE)
########################################### VARIABLES SELECTION FOR THE ANALYSIS
vec.abio.var.names <- c("MAT", "MAP") ## MISSING
......
### MERGE Swiss DATA Edited by FH
### MERGE Swiss DATA
rm(list = ls())
source("./R/format.function.R")
source("./R/FUN.TRY.R")
......@@ -46,14 +46,12 @@ data.swiss$Lat <- coordinates(data.sp2)[, "y"]
## points(data.swiss$x,data.swiss$y)
## rm(data.sp, data.sp2)
## Do not need to read in spp list as it is already available in data.swiss
###################################### 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 <- t(sapply(levels(factor(data.swiss[["spcode"]])), FUN = f.quantile.boot,
res.quant.boot <- 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"]])))
......@@ -65,33 +63,32 @@ write.csv(data.max.height,file='./data/process/data.max.height.swiss.csv')
########################################## FORMAT INDIVIDUAL TREE DATA change unit and names of variables to be the same
########################################## in all data for the tree
data.swiss$G <- 10 * (data.swiss$dbh_diff)/data.swiss$year ## diameter growth in mm per year - SOME EXTREMELY NEGATIVE HERE!
data.swiss$G <- 10 * (data.swiss$dbh_diff)/data.swiss$year ## diameter growth in mm per year
data.swiss$D <- data.swiss[["dbh1"]]
data.swiss$D[data.swiss$D == 0] <- NA
## diameter in cm
data.swiss$dead <- rep(NA, length(data.swiss[["dbh1"]])) ## Mortality - MISSING
data.swiss$plot <- data.swiss$siteid ## plot code
data.swiss$D[data.swiss$D == 0] <- NA ## diameter in cm
data.swiss$dead <- rep(NA, nrow(data.swiss)) ## Mortality - MISSING
data.swiss$plot.id <- data.swiss$siteid; data.swiss$siteid <- NULL ## plot code
data.swiss$htot <- data.swiss$ht1 ## height of tree in m
data.swiss$census <- data.swiss$Inventid
data.swiss$obs.id <- as.character(1:nrow(data.swiss))
data.swiss$obs.id <- apply(data.swiss[,c("tree.id","Inventid")],1,paste,collapse="_")
data.swiss$weights <- data.swiss$repfactor1/10000
data.swiss$sp <- paste("sp.",data.swiss$sp,sep="")
###################### ECOREGION Ecoregion not available for swiss data
data.swiss$ecocode <- rep("A", nrow(data.swiss))
###################### PERCENT DEAD variable percent dead/cannot do with since dead variable is
###################### missing compute numer of dead per plot to remove plot with disturbance
perc.dead <- tapply(data.swiss[["dead"]], INDEX = data.swiss[["plot"]], FUN = function.perc.dead)
perc.dead <- tapply(data.swiss[["dead"]], INDEX = data.swiss[["plot"]], FUN = function.perc.dead2)
# ## VARIABLE TO SELECT PLOT WITH NOT BIG DISTURBANCE KEEP OTHER VARIABLES IF
# AVAILABLE (disturbance record)
data.swiss <- merge(data.swiss, data.frame(plot = names(perc.dead), perc.dead = perc.dead, stringsAsFactors =FALSE),
by = "plot", sort = FALSE)
########################################################### PLOT SELECTION FOR THE ANALYSIS Remove data with dead == 1
## Nothing to remove
########################################################### PLOT SELECTION FOR THE ANALYSIS
data.climate <- read.dbf(file = "./data/raw/DataSwiss/LFI14_climate.dbf")
data.climate <- data.climate[, c(1, 7, 15:19)]
data.climate$MAP <- apply(data.climate[, 4:7], 1, sum)
data.climate <- data.climate[, c("CLNR","swb_100","tave_68","prec_122","prec_35","prec_68","prec_911")]
data.climate$MAP <- apply(data.climate[, c("prec_122","prec_35","prec_68","prec_911")], 1, sum)
data.swiss <- merge(data.swiss, data.frame(siteid = data.climate$CLNR, swb = data.climate$swb_100,
MAT = data.climate$tave_68, MAP = data.climate$MAP, stringsAsFactors =FALSE), sort = F, all.x = T)
......@@ -100,7 +97,6 @@ rm(data.climate)
##############################################
##############################################
#################### GENERATE ONE OBJECT PER ECOREGION
# vector of ecoregion name
ecoregion.unique <- unique(data.swiss[["ecocode"]])
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment