knitr::opts_chunk$set( collapse = TRUE, require(fortedata), require(ggplot2), require(viridis), require(magrittr), require(dplyr) )
In each of FoRTE's 32 subplots there are 4 littertraps located at nested sampling points 1, 3, 5, and 7 (see fd_forte_sampling
). Leaves and fine woody debris are collected from these traps during the late fall (~November). Samples are taken back to Virginia Commonwealth University in Richmond, VA where they are air dried, sorted, and weighed, with a subset scanned for leaf area.
no_of_records.df <- fd_observations() no_of_records <- subset(no_of_records.df, table == 'fd_litter') ggplot2::ggplot(no_of_records, ggplot2::aes(x = as.factor(month), y = as.integer(year), fill= no_of_obs)) + ggplot2::geom_tile(ggplot2::aes(fill = no_of_obs), color = "black") + ggplot2::geom_text(ggplot2::aes(label = no_of_obs), color = "white") + ggplot2::coord_equal()+ ggplot2::scale_fill_gradient(low = "#450d54", high = "#450d54", na.value = 'white')+ ggplot2::scale_y_reverse()+ ggplot2::theme_minimal()+ ggplot2::theme(legend.position = "none")+ ggplot2::ylab("Year")+ ggplot2::xlab("Month")+ ggplot2::ggtitle(paste("Figure 1: No. litter obs. by species as of:", Sys.Date()))+ ggplot2::facet_grid(table ~ ., space = "free")+ ggplot2::theme(strip.text.y = ggplot2::element_text(size = 9), strip.background = ggplot2::element_rect( color="black", fill="white", size= 0.5, linetype="solid"))
The fd_litter()
script within fortedata
currently includes the following functions:
fd_litter()
returns a single dataset of litter mass collected via litter traps (four in each subplot, at nested sampling points 1, 3, 5, 7). The data include the tare + oven-dried mass of leaves as well as the tare weight (the empty bag), by species, by subplot (Table S7). The data also include the litter fraction--either leaf
; fwd
, the collection of fine woody debris (e.g. sticks, branches), and misc
, fragments of leaves too small to identify to the species levels as well as other missed organic fragments in the basket. Litter mass can be calculated by subtracting the tare weight from the mass + tare. There are a total of 340 observations included in the package from 2018 with 2019 data expected by winter 2020 and 2020 data expected early 2021.x <- fd_litter() # bring in metadata via the plot_metadata() function df <- fortedata::fd_plot_metadata() # now we convert the tibble to a data frame df <- data.frame(df) # First we want to concatenate our replicate, plot and subplot data to make a subplot_id column df$subplot_id <- paste(df$replicate, 0, df$plot, df$subplot, sep = "") df$subplot_id <- as.factor(df$subplot_id) # Now that we have our data in the form for this analysis, let's filter our metadata to the subplot level. df %>% dplyr::select(subplot_id, disturbance_severity, treatment) %>% dplyr::distinct() %>% data.frame() -> dis.meta.data # this filters the metadata down to the subplot_id level dis.meta.data <- dis.meta.data[c(1:32), ] # Then we merge with the metadata from above x <- merge(x, dis.meta.data) # we want to calculate the leaf mass by subtracting the tare weight `bagtare_g` from `bagmass_g` x$leafmass_g <- x$bagmass_g - x$bagtare_g # For this analysis we want to code both disturbance severity and treatment as factors x$disturbance_severity <- as.factor(x$disturbance_severity) x$treatment <- as.factor(x$treatment) # forte color palette forte_pal <- forte_colors() # first let's make some new, more informative labels for our facets facet.labs <- c("B" = "Bottom-Up", "T" = "Top-Down") ggplot2::ggplot(x, aes(y = leafmass_g, x = disturbance_severity, fill = disturbance_severity))+ geom_boxplot(color = "black")+ geom_jitter(position = position_jitter(0.2), shape = 21, alpha = 0.3)+ xlab("Disturbance Severity")+ ylab("Litter Mass [g]")+ theme_minimal()+ scale_color_manual(values = forte_pal, guide = FALSE)+ scale_fill_manual(values = forte_pal, name = "Disturbance Severity", labels = c("0%", "45%", "65%", "85%"))+ theme(legend.position = "bottom")+ ggplot2::ggtitle(paste("Figure 2: Litter Mass"))+ facet_grid(. ~ treatment, labeller = labeller(treatment = facet.labs))
Leaf Area Index can be calculated from fd_litter()
via the calc_lai()
function. This function uses site-specific SLA (specific leaf area) data (Gough et al. 2007; 2013) to estimate leaf area index.
# import lai values at the plot scale x <- calc_lai() # bring in metadata via the plot_metadata() function df <- fortedata::fd_plot_metadata() # now we convert the tibble to a data frame df <- data.frame(df) # First we want to concatenate our replicate, plot and subplot data to make a subplot_id column df$subplot_id <- paste(df$replicate, 0, df$plot, df$subplot, sep = "") df$subplot_id <- as.factor(df$subplot_id) # Now that we have our data in the form for this analysis, let's filter our metadata to the subplot level. df %>% select(subplot_id, disturbance_severity, treatment) %>% distinct() %>% data.frame() -> dis.meta.data # this filters the metadata down to the subplot_id level dis.meta.data <- dis.meta.data[c(1:32), ] # Then we merge with the metadata from above x <- merge(x, dis.meta.data) # For this analysis we want to code both disturbance severity and treatment as factors x$disturbance_severity <- as.factor(x$disturbance_severity) x$treatment <- as.factor(x$treatment) # forte color palette forte_pal <- forte_colors() # first let's make some new, more informative labels for our facets facet.labs <- c("B" = "Bottom-Up", "T" = "Top-Down") ggplot2::ggplot(x, aes(y = lai, x = disturbance_severity, fill = disturbance_severity))+ geom_boxplot(color = "black")+ geom_jitter(position = position_jitter(0.2), shape = 21, alpha = 0.3)+ xlab("Disturbance Severity")+ ylab("LAI")+ theme_minimal()+ scale_color_manual(values = forte_pal, guide = FALSE)+ scale_fill_manual(values = forte_pal, name = "Disturbance Severity", labels = c("0%", "45%", "65%", "85%"))+ theme(legend.position = "bottom")+ ggplot2::ggtitle(paste("Figure 3: Leaf Area Index (LAI) From Litter Trap Data"))+ facet_grid(. ~ treatment, labeller = labeller(treatment = facet.labs))
Gough, C. M., Vogel, C. S., Kazanski, C., Nagel, L., Flower, C. E., & Curtis, P. S. (2007). Coarse woody debris and the carbon balance of a north temperate forest. Forest Ecology and Management, 244(1-3), 60-67.
Gough, C. M., Hardiman, B. S., Nave, L. E., Bohrer, G., Maurer, K. D., Vogel, C. S., ... & Curtis, P. S. (2013). Sustained carbon uptake and storage following moderate disturbance in a Great Lakes forest. Ecological Applications, 23(5), 1202-1215.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.