rm(list = ls())
pacman::p_load(dplyr, knitr, readxl, tidyr, raster, vegan, tidyverse, gt,
tigris, sf, sp, plotly, ggrepel, rstanarm, mgcv,
brms, lme4, caret, MuMIn, VSURF, loo, xgboost, reshape2, blockCV, vip, SHAPforxgboost)
EnvironmentalOutputs <- read_excel("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/03_Biodiversity/06_Processing/Environmental_Outputs.xlsx")
EnvironmentalOutputs <- EnvironmentalOutputs %>%
filter(Site %in% c("Howell"))
# Tree PCQ Data
tree_data <- read_excel("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Field_Data_FL_AL_MS.xlsx",
sheet = "Tree_PCQ")
tree_data <- tree_data %>%
filter(Site %in% c("Howell"))
# Veg Data
Veg_Cover <- read_excel("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Field_Data_FL_AL_MS.xlsx",
sheet = "Veg_Cover")
Veg_Cover <- Veg_Cover %>%
filter(Site %in% c("Howell"))
# Shrub Cover Data
shrub_data <- read_excel("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Field_Data_FL_AL_MS.xlsx",
sheet = "Shrub_Cover")
shrub_data <- shrub_data %>%
filter(Site %in% c("Howell"))
# Site Data
CogonSites <- read_excel("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/CogonSites_FL_AL_MS.xlsx")
CogonSites <- CogonSites %>%
filter(Site %in% c("Howell"))
# Soil Data
fuel_data <- read_excel("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Field_Data_FL_AL_MS.xlsx",
sheet = "Fuel_Sampling")
fuel_data <- fuel_data %>%
filter(Site %in% c("Howell"))
# Bag Weights
bag_weights <- read_excel("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/01_FuelDynamics/02_Data/02_Fuel_Data/Seasonal_Fuel_Sampling.xlsx",
sheet = "Bag_Avg")
## New names:
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`
## • `` -> `...9`
## • `` -> `...10`
## • `` -> `...11`
#Fuel Dynamics ## Combine seasonal fuel data
Comb_Live_Data_Net <- Combined_Data_Net %>%
mutate(
Live_Bag = as.numeric(Live_Bag),
Live_Weight_Post = as.numeric(Live_Weight_Post),
Live_Weight_Initial = as.numeric(Live_Weight_Initial),
Live_Height = as.numeric(Height),
Net_Live = as.numeric(Net_Live),
Status = as.character(Status) # Status as a character
)
Comb_Live_Data_Net <- Comb_Live_Data_Net %>%
mutate(biomass = Net_Live)
Comb_Live_Data_Net <- Comb_Live_Data_Net %>%
filter(biomass >= 0)
Comb_Live_Data_Net <- Comb_Live_Data_Net %>%
mutate(relative_moisture_content = ifelse(biomass > bioT, ((Live_Weight_Initial - Live_Bag) - Net_Live) / Net_Live * 100, NA))
avg_live_values_Net <- Comb_Live_Data_Net %>%
group_by(Plot, Status) %>%
summarize(avg_live_biomass = mean(biomass, na.rm = TRUE),
avg_live_moisture_content = mean(relative_moisture_content, na.rm = TRUE),
avg_soil_moisture = mean(Soil_Moisture, na.rm = TRUE),
avg_height = mean(Live_Height, na.rm = TRUE) / 100,
.groups = "drop")
Comb_Dead_Data_Net <- Combined_Data_Net %>%
mutate(
Dead_Bag = as.numeric(Dead_Bag),
Dead_Weight_Post = as.numeric(Dead_Weight_Post),
Dead_Weight_Initial = as.numeric(Dead_Weight_Initial),
Net_Dead = as.numeric(Net_Dead),
Status = as.character(Status) # Status as a character
)
Comb_Dead_Data_Net <- Comb_Dead_Data_Net %>%
mutate(biomass = Net_Dead)
Comb_Dead_Data_Net <- Comb_Dead_Data_Net %>%
filter(biomass >= 0)
Comb_Dead_Data_Net <- Comb_Dead_Data_Net %>%
mutate(relative_moisture_content = ifelse(biomass > bioT, ((Dead_Weight_Initial - Dead_Bag) - Net_Dead) / Net_Dead * 100, NA))
avg_dead_values_Net <- Comb_Dead_Data_Net %>%
group_by(Plot, Status) %>%
summarize(avg_dead_biomass = mean(biomass, na.rm = TRUE),
avg_dead_moisture_content = mean(relative_moisture_content, na.rm = TRUE),
avg_soil_moisture = mean(Soil_Moisture, na.rm = TRUE),
.groups = "drop")
Comb_Litter_Data_Net <- Combined_Data_Net %>%
mutate(
Litter_Bag = as.numeric(Litter_Bag),
Litter_Weight_Post = as.numeric(Litter_Weight_Post),
Litter_Weight_Initial = as.numeric(Litter_Weight_Initial),
Net_Litter = as.numeric(Net_Litter),
Status = as.character(Status) # Status as a character
)
Comb_Litter_Data_Net <- Comb_Litter_Data_Net %>%
mutate(biomass = Net_Litter)
Comb_Litter_Data_Net <- Comb_Litter_Data_Net %>%
filter(biomass >= 0)
Comb_Litter_Data_Net <- Comb_Litter_Data_Net %>%
mutate(relative_moisture_content = ifelse(biomass > bioT, ((Litter_Weight_Initial - Litter_Bag) - Net_Litter) / Net_Litter * 100, NA))
avg_litter_values_Net <- Comb_Litter_Data_Net %>%
group_by(Plot, Status) %>%
summarize(avg_litter_biomass = mean(biomass, na.rm = TRUE),
avg_litter_moisture_content = mean(relative_moisture_content, na.rm = TRUE),
avg_soil_moisture = mean(Soil_Moisture, na.rm = TRUE),
.groups = "drop")
Comb_Live_Data_Avg <- Combined_Data_Avg %>%
mutate(
Live_Bag = as.numeric(Live_Bag),
Live_Weight_Post = as.numeric(Live_Weight_Post),
Live_Weight_Initial = as.numeric(Live_Weight_Initial),
Live_Height = as.numeric(Height),
Dry_LiveBag = as.numeric(Dry_LiveBag),
Status = as.character(Status) # Status as a character
)
Comb_Live_Data_Avg <- Comb_Live_Data_Avg %>%
mutate(biomass = Live_Weight_Post - Dry_LiveBag)
Comb_Live_Data_Avg <- Comb_Live_Data_Avg %>%
filter(biomass >= 0)
Comb_Live_Data_Avg <- Comb_Live_Data_Avg %>%
mutate(relative_moisture_content = ifelse(biomass > bioT, (Live_Weight_Initial - Live_Weight_Post) / biomass * 100, NA))
avg_live_values_Avg <- Comb_Live_Data_Avg %>%
group_by(Plot, Status) %>%
summarize(avg_live_biomass = mean(biomass, na.rm = TRUE),
avg_live_moisture_content = mean(relative_moisture_content, na.rm = TRUE),
avg_soil_moisture = mean(Soil_Moisture, na.rm = TRUE),
avg_height = mean(Live_Height, na.rm = TRUE) / 100,
.groups = "drop")
Comb_Dead_Data_Avg <- Combined_Data_Avg %>%
mutate(
Dead_Bag = as.numeric(Dead_Bag),
Dead_Weight_Post = as.numeric(Dead_Weight_Post),
Dead_Weight_Initial = as.numeric(Dead_Weight_Initial),
Dry_DeadBag = as.numeric(Dry_DeadBag),
Status = as.character(Status) # Status as a character
)
## Warning: There was 1 warning in `mutate()`.
## ℹ In argument: `Dry_DeadBag = as.numeric(Dry_DeadBag)`.
## Caused by warning:
## ! NAs introduced by coercion
Comb_Dead_Data_Avg <- Comb_Dead_Data_Avg %>%
mutate(biomass = Dead_Weight_Post - Dry_DeadBag)
Comb_Dead_Data_Avg <- Comb_Dead_Data_Avg %>%
filter(biomass >= 0)
Comb_Dead_Data_Avg <- Comb_Dead_Data_Avg %>%
mutate(relative_moisture_content = ifelse(biomass > bioT, (Dead_Weight_Initial - Dead_Weight_Post) / biomass * 100, NA))
avg_dead_values_Avg <- Comb_Dead_Data_Avg %>%
group_by(Plot, Status) %>%
summarize(avg_dead_biomass = mean(biomass, na.rm = TRUE),
avg_dead_moisture_content = mean(relative_moisture_content, na.rm = TRUE),
avg_soil_moisture = mean(Soil_Moisture, na.rm = TRUE),
.groups = "drop")
Comb_Litter_Data_Avg <- Combined_Data_Avg %>%
mutate(
Litter_Bag = as.numeric(Litter_Bag),
Litter_Weight_Post = as.numeric(Litter_Weight_Post),
Litter_Weight_Initial = as.numeric(Litter_Weight_Initial),
Dry_LitterBag = as.numeric(Dry_LitterBag),
Status = as.character(Status) # Status as a character
)
Comb_Litter_Data_Avg <- Comb_Litter_Data_Avg %>%
mutate(biomass = Litter_Weight_Post - Dry_LitterBag)
Comb_Litter_Data_Avg <- Comb_Litter_Data_Avg %>%
filter(biomass >= 0)
Comb_Litter_Data_Avg <- Comb_Litter_Data_Avg %>%
mutate(relative_moisture_content = ifelse(biomass > bioT, (Litter_Weight_Initial - Litter_Weight_Post) / biomass * 100, NA))
avg_litter_values_Avg <- Comb_Litter_Data_Avg %>%
group_by(Plot, Status) %>%
summarize(avg_litter_biomass = mean(biomass, na.rm = TRUE),
avg_litter_moisture_content = mean(relative_moisture_content, na.rm = TRUE),
avg_soil_moisture = mean(Soil_Moisture, na.rm = TRUE),
.groups = "drop")
# Live
avg_live_values_Combined <- avg_live_values_Net %>%
full_join(avg_live_values_Avg, by = "Plot", suffix = c("_Net", "_Avg")) %>%
mutate(
avg_live_biomass = coalesce(avg_live_biomass_Net, avg_live_biomass_Avg),
avg_live_moisture_content = coalesce(avg_live_moisture_content_Net, avg_live_moisture_content_Avg),
avg_soil_moisture = coalesce(avg_soil_moisture_Net, avg_soil_moisture_Avg),
avg_height = coalesce(avg_height_Net, avg_height_Avg),
Status = coalesce(Status_Net, Status_Avg)
) %>%
select(Plot, Status, avg_live_biomass, avg_live_moisture_content, avg_soil_moisture, avg_height)
# Dead
avg_dead_values_Combined <- avg_dead_values_Net %>%
full_join(avg_dead_values_Avg, by = "Plot", suffix = c("_Net", "_Avg")) %>%
mutate(
avg_dead_biomass = coalesce(avg_dead_biomass_Net, avg_dead_biomass_Avg),
avg_dead_moisture_content = coalesce(avg_dead_moisture_content_Net, avg_dead_moisture_content_Avg),
avg_soil_moisture = coalesce(avg_soil_moisture_Net, avg_soil_moisture_Avg),
Status = coalesce(Status_Net, Status_Avg)
) %>%
select(Plot, Status, avg_dead_biomass, avg_dead_moisture_content, avg_soil_moisture)
# Litter
avg_litter_values_Combined <- avg_litter_values_Net %>%
full_join(avg_litter_values_Avg, by = "Plot", suffix = c("_Net", "_Avg")) %>%
mutate(
avg_litter_biomass = coalesce(avg_litter_biomass_Net, avg_litter_biomass_Avg),
avg_litter_moisture_content = coalesce(avg_litter_moisture_content_Net, avg_litter_moisture_content_Avg),
avg_soil_moisture = coalesce(avg_soil_moisture_Net, avg_soil_moisture_Avg),
Status = coalesce(Status_Net, Status_Avg)
) %>%
select(Plot, Status, avg_litter_biomass, avg_litter_moisture_content, avg_soil_moisture)
There are 10,000 square meters in a hectare. Biomass is from 25 cm by 25 cm quadrats, so we have 0.0625 square meters. Therefore, 10,000/0.0625 = 160,000. So biomass gets multiplied by 160,000 and divided by 1,000,000 to convert from grams to tonnes.
Fuel_model_quantiles <- avg_fuel_values %>%
group_by(Status) %>%
summarize(avg_live_biomass_25 = quantile(avg_live_biomass, 0.25, na.rm = TRUE) * 0.16,
avg_live_biomass_50 = quantile(avg_live_biomass, 0.50, na.rm = TRUE) * 0.16,
avg_live_biomass_75 = quantile(avg_live_biomass, 0.75, na.rm = TRUE) * 0.16,
avg_dead_biomass_25 = quantile(avg_dead_biomass, 0.25, na.rm = TRUE) * 0.16,
avg_dead_biomass_50 = quantile(avg_dead_biomass, 0.50, na.rm = TRUE) * 0.16,
avg_dead_biomass_75 = quantile(avg_dead_biomass, 0.75, na.rm = TRUE) * 0.16,
avg_litter_biomass_25 = quantile(avg_litter_biomass, 0.25, na.rm = TRUE) * 0.16,
avg_litter_biomass_50 = quantile(avg_litter_biomass, 0.50, na.rm = TRUE) * 0.16,
avg_litter_biomass_75 = quantile(avg_litter_biomass, 0.75, na.rm = TRUE) * 0.16,
avg_live_moisture_content_25 = quantile(avg_live_moisture_content, 0.25, na.rm = TRUE),
avg_live_moisture_content_50 = quantile(avg_live_moisture_content, 0.50, na.rm = TRUE),
avg_live_moisture_content_75 = quantile(avg_live_moisture_content, 0.75, na.rm = TRUE),
avg_dead_moisture_content_25 = quantile(avg_dead_moisture_content, 0.25, na.rm = TRUE),
avg_dead_moisture_content_50 = quantile(avg_dead_moisture_content, 0.50, na.rm = TRUE),
avg_dead_moisture_content_75 = quantile(avg_dead_moisture_content, 0.75, na.rm = TRUE),
avg_litter_moisture_content_25 = quantile(avg_litter_moisture_content, 0.25, na.rm = TRUE),
avg_litter_moisture_content_50 = quantile(avg_litter_moisture_content, 0.50, na.rm = TRUE),
avg_litter_moisture_content_75 = quantile(avg_litter_moisture_content, 0.75, na.rm = TRUE),
avg_soil_moisture_25 = quantile(avg_soil_moisture, 0.25, na.rm = TRUE),
avg_soil_moisture_50 = quantile(avg_soil_moisture, 0.50, na.rm = TRUE),
avg_soil_moisture_75 = quantile(avg_soil_moisture, 0.75, na.rm = TRUE),
avg_height_25 = quantile(avg_height, 0.25, na.rm = TRUE),
avg_height_50 = quantile(avg_height, 0.50, na.rm = TRUE),
avg_height_75 = quantile(avg_height, 0.75, na.rm = TRUE),
.groups = "drop")
# Kable table of quantiles
kable(Fuel_model_quantiles)
| Status | avg_live_biomass_25 | avg_live_biomass_50 | avg_live_biomass_75 | avg_dead_biomass_25 | avg_dead_biomass_50 | avg_dead_biomass_75 | avg_litter_biomass_25 | avg_litter_biomass_50 | avg_litter_biomass_75 | avg_live_moisture_content_25 | avg_live_moisture_content_50 | avg_live_moisture_content_75 | avg_dead_moisture_content_25 | avg_dead_moisture_content_50 | avg_dead_moisture_content_75 | avg_litter_moisture_content_25 | avg_litter_moisture_content_50 | avg_litter_moisture_content_75 | avg_soil_moisture_25 | avg_soil_moisture_50 | avg_soil_moisture_75 | avg_height_25 | avg_height_50 | avg_height_75 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Invaded | 2.0622667 | 2.3080 | 2.720133 | 1.3673333 | 1.797333 | 2.5020 | 4.545867 | 5.2776 | 6.306800 | 157.4090 | 167.2626 | 175.9272 | 9.396373 | 11.50750 | 15.88132 | 10.722305 | 15.11110 | 19.37964 | 5.458333 | 7.183333 | 8.608333 | 1.055833 | 1.1266667 | 1.163333 |
| Non_Invaded | 0.2226667 | 0.6936 | 1.159067 | 0.2366667 | 0.301600 | 0.4424 | 2.958667 | 3.4280 | 3.987867 | 120.3673 | 136.5793 | 152.7913 | 19.269521 | 19.26952 | 19.26952 | 9.713272 | 12.72063 | 14.82586 | 4.666667 | 6.383333 | 9.191667 | 0.100000 | 0.1416667 | 0.210000 |
| Fuel and Moisture Quantiles by Invasion Status | ||
| Variable | Invaded | Non Invaded |
|---|---|---|
| Live Biomass (25%) | 2.06 | 0.22 |
| Live Biomass (50%) | 2.31 | 0.69 |
| Live Biomass (75%) | 2.72 | 1.16 |
| Dead Biomass (25%) | 1.37 | 0.24 |
| Dead Biomass (50%) | 1.80 | 0.30 |
| Dead Biomass (75%) | 2.50 | 0.44 |
| Litter Biomass (25%) | 4.55 | 2.96 |
| Litter Biomass (50%) | 5.28 | 3.43 |
| Litter Biomass (75%) | 6.31 | 3.99 |
| Live Moisture Content (25%) | 157.41 | 120.37 |
| Live Moisture Content (50%) | 167.26 | 136.58 |
| Live Moisture Content (75%) | 175.93 | 152.79 |
| Dead Moisture Content (25%) | 9.40 | 19.27 |
| Dead Moisture Content (50%) | 11.51 | 19.27 |
| Dead Moisture Content (75%) | 15.88 | 19.27 |
| Litter Moisture Content (25%) | 10.72 | 9.71 |
| Litter Moisture Content (50%) | 15.11 | 12.72 |
| Litter Moisture Content (75%) | 19.38 | 14.83 |
| Soil Moisture (25%) | 5.46 | 4.67 |
| Soil Moisture (50%) | 7.18 | 6.38 |
| Soil Moisture (75%) | 8.61 | 9.19 |
| Height (25%) | 1.06 | 0.10 |
| Height (50%) | 1.13 | 0.14 |
| Height (75%) | 1.16 | 0.21 |
## <div id="ppcxptiosu" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
## <style>#ppcxptiosu table {
## font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
## -webkit-font-smoothing: antialiased;
## -moz-osx-font-smoothing: grayscale;
## }
##
## #ppcxptiosu thead, #ppcxptiosu tbody, #ppcxptiosu tfoot, #ppcxptiosu tr, #ppcxptiosu td, #ppcxptiosu th {
## border-style: none;
## }
##
## #ppcxptiosu p {
## margin: 0;
## padding: 0;
## }
##
## #ppcxptiosu .gt_table {
## display: table;
## border-collapse: collapse;
## line-height: normal;
## margin-left: auto;
## margin-right: auto;
## color: #333333;
## font-size: 16px;
## font-weight: normal;
## font-style: normal;
## background-color: #FFFFFF;
## width: 100%;
## border-top-style: solid;
## border-top-width: 2px;
## border-top-color: #A8A8A8;
## border-right-style: none;
## border-right-width: 2px;
## border-right-color: #D3D3D3;
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #A8A8A8;
## border-left-style: none;
## border-left-width: 2px;
## border-left-color: #D3D3D3;
## }
##
## #ppcxptiosu .gt_caption {
## padding-top: 4px;
## padding-bottom: 4px;
## }
##
## #ppcxptiosu .gt_title {
## color: #333333;
## font-size: 125%;
## font-weight: initial;
## padding-top: 4px;
## padding-bottom: 4px;
## padding-left: 5px;
## padding-right: 5px;
## border-bottom-color: #FFFFFF;
## border-bottom-width: 0;
## }
##
## #ppcxptiosu .gt_subtitle {
## color: #333333;
## font-size: 85%;
## font-weight: initial;
## padding-top: 3px;
## padding-bottom: 5px;
## padding-left: 5px;
## padding-right: 5px;
## border-top-color: #FFFFFF;
## border-top-width: 0;
## }
##
## #ppcxptiosu .gt_heading {
## background-color: #FFFFFF;
## text-align: center;
## border-bottom-color: #FFFFFF;
## border-left-style: none;
## border-left-width: 1px;
## border-left-color: #D3D3D3;
## border-right-style: none;
## border-right-width: 1px;
## border-right-color: #D3D3D3;
## }
##
## #ppcxptiosu .gt_bottom_border {
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## }
##
## #ppcxptiosu .gt_col_headings {
## border-top-style: solid;
## border-top-width: 2px;
## border-top-color: #D3D3D3;
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## border-left-style: none;
## border-left-width: 1px;
## border-left-color: #D3D3D3;
## border-right-style: none;
## border-right-width: 1px;
## border-right-color: #D3D3D3;
## }
##
## #ppcxptiosu .gt_col_heading {
## color: #333333;
## background-color: #FFFFFF;
## font-size: 100%;
## font-weight: normal;
## text-transform: inherit;
## border-left-style: none;
## border-left-width: 1px;
## border-left-color: #D3D3D3;
## border-right-style: none;
## border-right-width: 1px;
## border-right-color: #D3D3D3;
## vertical-align: bottom;
## padding-top: 5px;
## padding-bottom: 6px;
## padding-left: 5px;
## padding-right: 5px;
## overflow-x: hidden;
## }
##
## #ppcxptiosu .gt_column_spanner_outer {
## color: #333333;
## background-color: #FFFFFF;
## font-size: 100%;
## font-weight: normal;
## text-transform: inherit;
## padding-top: 0;
## padding-bottom: 0;
## padding-left: 4px;
## padding-right: 4px;
## }
##
## #ppcxptiosu .gt_column_spanner_outer:first-child {
## padding-left: 0;
## }
##
## #ppcxptiosu .gt_column_spanner_outer:last-child {
## padding-right: 0;
## }
##
## #ppcxptiosu .gt_column_spanner {
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## vertical-align: bottom;
## padding-top: 5px;
## padding-bottom: 5px;
## overflow-x: hidden;
## display: inline-block;
## width: 100%;
## }
##
## #ppcxptiosu .gt_spanner_row {
## border-bottom-style: hidden;
## }
##
## #ppcxptiosu .gt_group_heading {
## padding-top: 8px;
## padding-bottom: 8px;
## padding-left: 5px;
## padding-right: 5px;
## color: #333333;
## background-color: #FFFFFF;
## font-size: 100%;
## font-weight: initial;
## text-transform: inherit;
## border-top-style: solid;
## border-top-width: 2px;
## border-top-color: #D3D3D3;
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## border-left-style: none;
## border-left-width: 1px;
## border-left-color: #D3D3D3;
## border-right-style: none;
## border-right-width: 1px;
## border-right-color: #D3D3D3;
## vertical-align: middle;
## text-align: left;
## }
##
## #ppcxptiosu .gt_empty_group_heading {
## padding: 0.5px;
## color: #333333;
## background-color: #FFFFFF;
## font-size: 100%;
## font-weight: initial;
## border-top-style: solid;
## border-top-width: 2px;
## border-top-color: #D3D3D3;
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## vertical-align: middle;
## }
##
## #ppcxptiosu .gt_from_md > :first-child {
## margin-top: 0;
## }
##
## #ppcxptiosu .gt_from_md > :last-child {
## margin-bottom: 0;
## }
##
## #ppcxptiosu .gt_row {
## padding-top: 4px;
## padding-bottom: 4px;
## padding-left: 5px;
## padding-right: 5px;
## margin: 10px;
## border-top-style: solid;
## border-top-width: 1px;
## border-top-color: #D3D3D3;
## border-left-style: none;
## border-left-width: 1px;
## border-left-color: #D3D3D3;
## border-right-style: none;
## border-right-width: 1px;
## border-right-color: #D3D3D3;
## vertical-align: middle;
## overflow-x: hidden;
## }
##
## #ppcxptiosu .gt_stub {
## color: #333333;
## background-color: #FFFFFF;
## font-size: 100%;
## font-weight: initial;
## text-transform: inherit;
## border-right-style: solid;
## border-right-width: 2px;
## border-right-color: #D3D3D3;
## padding-left: 5px;
## padding-right: 5px;
## }
##
## #ppcxptiosu .gt_stub_row_group {
## color: #333333;
## background-color: #FFFFFF;
## font-size: 100%;
## font-weight: initial;
## text-transform: inherit;
## border-right-style: solid;
## border-right-width: 2px;
## border-right-color: #D3D3D3;
## padding-left: 5px;
## padding-right: 5px;
## vertical-align: top;
## }
##
## #ppcxptiosu .gt_row_group_first td {
## border-top-width: 2px;
## }
##
## #ppcxptiosu .gt_row_group_first th {
## border-top-width: 2px;
## }
##
## #ppcxptiosu .gt_summary_row {
## color: #333333;
## background-color: #FFFFFF;
## text-transform: inherit;
## padding-top: 8px;
## padding-bottom: 8px;
## padding-left: 5px;
## padding-right: 5px;
## }
##
## #ppcxptiosu .gt_first_summary_row {
## border-top-style: solid;
## border-top-color: #D3D3D3;
## }
##
## #ppcxptiosu .gt_first_summary_row.thick {
## border-top-width: 2px;
## }
##
## #ppcxptiosu .gt_last_summary_row {
## padding-top: 8px;
## padding-bottom: 8px;
## padding-left: 5px;
## padding-right: 5px;
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## }
##
## #ppcxptiosu .gt_grand_summary_row {
## color: #333333;
## background-color: #FFFFFF;
## text-transform: inherit;
## padding-top: 8px;
## padding-bottom: 8px;
## padding-left: 5px;
## padding-right: 5px;
## }
##
## #ppcxptiosu .gt_first_grand_summary_row {
## padding-top: 8px;
## padding-bottom: 8px;
## padding-left: 5px;
## padding-right: 5px;
## border-top-style: double;
## border-top-width: 6px;
## border-top-color: #D3D3D3;
## }
##
## #ppcxptiosu .gt_last_grand_summary_row_top {
## padding-top: 8px;
## padding-bottom: 8px;
## padding-left: 5px;
## padding-right: 5px;
## border-bottom-style: double;
## border-bottom-width: 6px;
## border-bottom-color: #D3D3D3;
## }
##
## #ppcxptiosu .gt_striped {
## background-color: rgba(128, 128, 128, 0.05);
## }
##
## #ppcxptiosu .gt_table_body {
## border-top-style: solid;
## border-top-width: 2px;
## border-top-color: #D3D3D3;
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## }
##
## #ppcxptiosu .gt_footnotes {
## color: #333333;
## background-color: #FFFFFF;
## border-bottom-style: none;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## border-left-style: none;
## border-left-width: 2px;
## border-left-color: #D3D3D3;
## border-right-style: none;
## border-right-width: 2px;
## border-right-color: #D3D3D3;
## }
##
## #ppcxptiosu .gt_footnote {
## margin: 0px;
## font-size: 90%;
## padding-top: 4px;
## padding-bottom: 4px;
## padding-left: 5px;
## padding-right: 5px;
## }
##
## #ppcxptiosu .gt_sourcenotes {
## color: #333333;
## background-color: #FFFFFF;
## border-bottom-style: none;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## border-left-style: none;
## border-left-width: 2px;
## border-left-color: #D3D3D3;
## border-right-style: none;
## border-right-width: 2px;
## border-right-color: #D3D3D3;
## }
##
## #ppcxptiosu .gt_sourcenote {
## font-size: 90%;
## padding-top: 4px;
## padding-bottom: 4px;
## padding-left: 5px;
## padding-right: 5px;
## }
##
## #ppcxptiosu .gt_left {
## text-align: left;
## }
##
## #ppcxptiosu .gt_center {
## text-align: center;
## }
##
## #ppcxptiosu .gt_right {
## text-align: right;
## font-variant-numeric: tabular-nums;
## }
##
## #ppcxptiosu .gt_font_normal {
## font-weight: normal;
## }
##
## #ppcxptiosu .gt_font_bold {
## font-weight: bold;
## }
##
## #ppcxptiosu .gt_font_italic {
## font-style: italic;
## }
##
## #ppcxptiosu .gt_super {
## font-size: 65%;
## }
##
## #ppcxptiosu .gt_footnote_marks {
## font-size: 75%;
## vertical-align: 0.4em;
## position: initial;
## }
##
## #ppcxptiosu .gt_asterisk {
## font-size: 100%;
## vertical-align: 0;
## }
##
## #ppcxptiosu .gt_indent_1 {
## text-indent: 5px;
## }
##
## #ppcxptiosu .gt_indent_2 {
## text-indent: 10px;
## }
##
## #ppcxptiosu .gt_indent_3 {
## text-indent: 15px;
## }
##
## #ppcxptiosu .gt_indent_4 {
## text-indent: 20px;
## }
##
## #ppcxptiosu .gt_indent_5 {
## text-indent: 25px;
## }
##
## #ppcxptiosu .katex-display {
## display: inline-flex !important;
## margin-bottom: 0.75em !important;
## }
##
## #ppcxptiosu div.Reactable > div.rt-table > div.rt-thead > div.rt-tr.rt-tr-group-header > div.rt-th-group:after {
## height: 0px !important;
## }
## </style>
## <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
## <thead>
## <tr class="gt_heading">
## <td colspan="3" class="gt_heading gt_title gt_font_normal gt_bottom_border" style>Fuel and Moisture Quantiles by Invasion Status</td>
## </tr>
##
## <tr class="gt_col_headings">
## <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Variable">Variable</th>
## <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Invaded">Invaded</th>
## <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Non_Invaded">Non Invaded</th>
## </tr>
## </thead>
## <tbody class="gt_table_body">
## <tr><td headers="Variable" class="gt_row gt_left">Live Biomass (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">2.06</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.22</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Live Biomass (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">2.31</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.69</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Live Biomass (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">2.72</td>
## <td headers="Non_Invaded" class="gt_row gt_right">1.16</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Dead Biomass (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">1.37</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.24</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Dead Biomass (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">1.80</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.30</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Dead Biomass (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">2.50</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.44</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Litter Biomass (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">4.55</td>
## <td headers="Non_Invaded" class="gt_row gt_right">2.96</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Litter Biomass (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">5.28</td>
## <td headers="Non_Invaded" class="gt_row gt_right">3.43</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Litter Biomass (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">6.31</td>
## <td headers="Non_Invaded" class="gt_row gt_right">3.99</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Live Moisture Content (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">157.41</td>
## <td headers="Non_Invaded" class="gt_row gt_right">120.37</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Live Moisture Content (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">167.26</td>
## <td headers="Non_Invaded" class="gt_row gt_right">136.58</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Live Moisture Content (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">175.93</td>
## <td headers="Non_Invaded" class="gt_row gt_right">152.79</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Dead Moisture Content (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">9.40</td>
## <td headers="Non_Invaded" class="gt_row gt_right">19.27</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Dead Moisture Content (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">11.51</td>
## <td headers="Non_Invaded" class="gt_row gt_right">19.27</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Dead Moisture Content (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">15.88</td>
## <td headers="Non_Invaded" class="gt_row gt_right">19.27</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Litter Moisture Content (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">10.72</td>
## <td headers="Non_Invaded" class="gt_row gt_right">9.71</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Litter Moisture Content (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">15.11</td>
## <td headers="Non_Invaded" class="gt_row gt_right">12.72</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Litter Moisture Content (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">19.38</td>
## <td headers="Non_Invaded" class="gt_row gt_right">14.83</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Soil Moisture (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">5.46</td>
## <td headers="Non_Invaded" class="gt_row gt_right">4.67</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Soil Moisture (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">7.18</td>
## <td headers="Non_Invaded" class="gt_row gt_right">6.38</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Soil Moisture (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">8.61</td>
## <td headers="Non_Invaded" class="gt_row gt_right">9.19</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Height (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">1.06</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.10</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Height (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">1.13</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.14</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Height (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">1.16</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.21</td></tr>
## </tbody>
##
##
## </table>
## </div>
biomass_plot <- merged_sites %>%
pivot_longer(
cols = c(avg_live_biomass, avg_dead_biomass, avg_litter_biomass),
names_to = "Fuel_Type",
values_to = "Biomass"
) %>%
# Rename invasion categories
mutate(
Status = recode(
Status,
"Invaded" = "Invaded",
"Non_Invaded" = "Non-Invaded"
),
# Rename and order fuel types
Fuel_Type = factor(
Fuel_Type,
levels = c(
"avg_live_biomass",
"avg_dead_biomass",
"avg_litter_biomass"
),
labels = c(
"Live Fuel Load",
"Dead Fuel Load",
"Litter Fuel Load"
)
)
) %>%
ggplot(aes(x = Status, y = Biomass, fill = Status)) +
geom_boxplot() +
facet_wrap(~ Fuel_Type, scales = "free_y") +
labs(
title = "Fuel Load by Cogongrass Invasion Status",
x = "Invasion Status",
y = "Fuel Load (tonnes/ha)"
) +
# University of Alabama colors
scale_fill_manual(values = c(
"Invaded" = "#9E1B32", # Alabama crimson
"Non-Invaded" = "#D3D3D3" # light gray
)) +
theme_minimal() +
theme(
legend.position = "none"
)
print(biomass_plot)
# Save
ggsave("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Hooper_Fuel_Load_by_Invasion_Status.png", plot = biomass_plot, width = 10, height = 6, dpi = 300)
moisture_plot <- merged_sites %>%
pivot_longer(
cols = c(avg_live_moisture_content, avg_dead_moisture_content, avg_litter_moisture_content),
names_to = "Fuel_Type",
values_to = "Moisture_Content"
) %>%
# Rename invasion categories
mutate(
Status = recode(
Status,
"Invaded" = "Invaded",
"Non_Invaded" = "Non-Invaded"
),
# Rename and order fuel types
Fuel_Type = factor(
Fuel_Type,
levels = c(
"avg_live_moisture_content",
"avg_dead_moisture_content",
"avg_litter_moisture_content"
),
labels = c(
"Live Fuel Moisture Content",
"Dead Fuel Moisture Content",
"Litter Fuel Moisture Content"
)
)
) %>%
ggplot(aes(x = Status, y = Moisture_Content, fill = Status)) +
geom_boxplot() +
facet_wrap(~ Fuel_Type, scales = "free_y") +
labs(
title = "Fuel Moisture Content by Cogongrass Invasion Status",
x = "Invasion Status",
y = "Fuel Moisture Content (%)"
) +
# University of Alabama colors
scale_fill_manual(values = c(
"Invaded" = "#9E1B32", # Alabama crimson
"Non-Invaded" = "#D3D3D3" # light gray
)) +
theme_minimal() +
theme(
legend.position = "none"
)
print(moisture_plot)
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
# Save
ggsave("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Hooper_Fuel_Moisture_by_Invasion_Status.png", plot = moisture_plot, width = 10, height = 6, dpi = 300)
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
rm(list = ls())
pacman::p_load(dplyr, knitr, readxl, tidyr, raster, vegan, tidyverse,
tigris, sf, sp, plotly, ggrepel, rstanarm, mgcv,
brms, lme4, caret, MuMIn, VSURF, loo, xgboost, reshape2, blockCV, vip, SHAPforxgboost)
EnvironmentalOutputs <- read_excel("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/03_Biodiversity/06_Processing/Environmental_Outputs.xlsx")
EnvironmentalOutputs <- EnvironmentalOutputs %>%
filter(Site %in% c("Hooper"))
# Tree PCQ Data
tree_data <- read_excel("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Field_Data_FL_AL_MS.xlsx",
sheet = "Tree_PCQ")
tree_data <- tree_data %>%
filter(Site %in% c("Hooper"))
# Veg Data
Veg_Cover <- read_excel("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Field_Data_FL_AL_MS.xlsx",
sheet = "Veg_Cover")
Veg_Cover <- Veg_Cover %>%
filter(Site %in% c("Hooper"))
# Shrub Cover Data
shrub_data <- read_excel("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Field_Data_FL_AL_MS.xlsx",
sheet = "Shrub_Cover")
shrub_data <- shrub_data %>%
filter(Site %in% c("Hooper"))
# Site Data
CogonSites <- read_excel("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/CogonSites_FL_AL_MS.xlsx")
CogonSites <- CogonSites %>%
filter(Site %in% c("Hooper"))
# Soil Data
fuel_data <- read_excel("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Field_Data_FL_AL_MS.xlsx",
sheet = "Fuel_Sampling")
fuel_data <- fuel_data %>%
filter(Site %in% c("Hooper"))
# Bag Weights
bag_weights <- read_excel("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/01_FuelDynamics/02_Data/02_Fuel_Data/Seasonal_Fuel_Sampling.xlsx",
sheet = "Bag_Avg")
## New names:
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`
## • `` -> `...9`
## • `` -> `...10`
## • `` -> `...11`
#Fuel Dynamics ## Combine seasonal fuel data
Comb_Live_Data_Net <- Combined_Data_Net %>%
mutate(
Live_Bag = as.numeric(Live_Bag),
Live_Weight_Post = as.numeric(Live_Weight_Post),
Live_Weight_Initial = as.numeric(Live_Weight_Initial),
Live_Height = as.numeric(Height),
Net_Live = as.numeric(Net_Live),
Status = as.character(Status) # Status as a character
)
## Warning: There was 1 warning in `mutate()`.
## ℹ In argument: `Live_Height = as.numeric(Height)`.
## Caused by warning:
## ! NAs introduced by coercion
Comb_Live_Data_Net <- Comb_Live_Data_Net %>%
mutate(biomass = Net_Live)
Comb_Live_Data_Net <- Comb_Live_Data_Net %>%
filter(biomass >= 0)
Comb_Live_Data_Net <- Comb_Live_Data_Net %>%
mutate(relative_moisture_content = ifelse(biomass > bioT, ((Live_Weight_Initial - Live_Bag) - Net_Live) / Net_Live * 100, NA))
avg_live_values_Net <- Comb_Live_Data_Net %>%
group_by(Plot, Status) %>%
summarize(avg_live_biomass = mean(biomass, na.rm = TRUE),
avg_live_moisture_content = mean(relative_moisture_content, na.rm = TRUE),
avg_soil_moisture = mean(Soil_Moisture, na.rm = TRUE),
avg_height = mean(Live_Height, na.rm = TRUE) / 100,
.groups = "drop")
Comb_Dead_Data_Net <- Combined_Data_Net %>%
mutate(
Dead_Bag = as.numeric(Dead_Bag),
Dead_Weight_Post = as.numeric(Dead_Weight_Post),
Dead_Weight_Initial = as.numeric(Dead_Weight_Initial),
Net_Dead = as.numeric(Net_Dead),
Status = as.character(Status) # Status as a character
)
Comb_Dead_Data_Net <- Comb_Dead_Data_Net %>%
mutate(biomass = Net_Dead)
Comb_Dead_Data_Net <- Comb_Dead_Data_Net %>%
filter(biomass >= 0)
Comb_Dead_Data_Net <- Comb_Dead_Data_Net %>%
mutate(relative_moisture_content = ifelse(biomass > bioT, ((Dead_Weight_Initial - Dead_Bag) - Net_Dead) / Net_Dead * 100, NA))
avg_dead_values_Net <- Comb_Dead_Data_Net %>%
group_by(Plot, Status) %>%
summarize(avg_dead_biomass = mean(biomass, na.rm = TRUE),
avg_dead_moisture_content = mean(relative_moisture_content, na.rm = TRUE),
avg_soil_moisture = mean(Soil_Moisture, na.rm = TRUE),
.groups = "drop")
Comb_Litter_Data_Net <- Combined_Data_Net %>%
mutate(
Litter_Bag = as.numeric(Litter_Bag),
Litter_Weight_Post = as.numeric(Litter_Weight_Post),
Litter_Weight_Initial = as.numeric(Litter_Weight_Initial),
Net_Litter = as.numeric(Net_Litter),
Status = as.character(Status) # Status as a character
)
Comb_Litter_Data_Net <- Comb_Litter_Data_Net %>%
mutate(biomass = Net_Litter)
Comb_Litter_Data_Net <- Comb_Litter_Data_Net %>%
filter(biomass >= 0)
Comb_Litter_Data_Net <- Comb_Litter_Data_Net %>%
mutate(relative_moisture_content = ifelse(biomass > bioT, ((Litter_Weight_Initial - Litter_Bag) - Net_Litter) / Net_Litter * 100, NA))
avg_litter_values_Net <- Comb_Litter_Data_Net %>%
group_by(Plot, Status) %>%
summarize(avg_litter_biomass = mean(biomass, na.rm = TRUE),
avg_litter_moisture_content = mean(relative_moisture_content, na.rm = TRUE),
avg_soil_moisture = mean(Soil_Moisture, na.rm = TRUE),
.groups = "drop")
Comb_Live_Data_Avg <- Combined_Data_Avg %>%
mutate(
Live_Bag = as.numeric(Live_Bag),
Live_Weight_Post = as.numeric(Live_Weight_Post),
Live_Weight_Initial = as.numeric(Live_Weight_Initial),
Live_Height = as.numeric(Height),
Dry_LiveBag = as.numeric(Dry_LiveBag),
Status = as.character(Status) # Status as a character
)
## Warning: There were 2 warnings in `mutate()`.
## The first warning was:
## ℹ In argument: `Live_Height = as.numeric(Height)`.
## Caused by warning:
## ! NAs introduced by coercion
## ℹ Run `dplyr::last_dplyr_warnings()` to see the 1 remaining warning.
Comb_Live_Data_Avg <- Comb_Live_Data_Avg %>%
mutate(biomass = Live_Weight_Post - Dry_LiveBag)
Comb_Live_Data_Avg <- Comb_Live_Data_Avg %>%
filter(biomass >= 0)
Comb_Live_Data_Avg <- Comb_Live_Data_Avg %>%
mutate(relative_moisture_content = ifelse(biomass > bioT, (Live_Weight_Initial - Live_Weight_Post) / biomass * 100, NA))
avg_live_values_Avg <- Comb_Live_Data_Avg %>%
group_by(Plot, Status) %>%
summarize(avg_live_biomass = mean(biomass, na.rm = TRUE),
avg_live_moisture_content = mean(relative_moisture_content, na.rm = TRUE),
avg_soil_moisture = mean(Soil_Moisture, na.rm = TRUE),
avg_height = mean(Live_Height, na.rm = TRUE) / 100,
.groups = "drop")
Comb_Dead_Data_Avg <- Combined_Data_Avg %>%
mutate(
Dead_Bag = as.numeric(Dead_Bag),
Dead_Weight_Post = as.numeric(Dead_Weight_Post),
Dead_Weight_Initial = as.numeric(Dead_Weight_Initial),
Dry_DeadBag = as.numeric(Dry_DeadBag),
Status = as.character(Status) # Status as a character
)
## Warning: There was 1 warning in `mutate()`.
## ℹ In argument: `Dry_DeadBag = as.numeric(Dry_DeadBag)`.
## Caused by warning:
## ! NAs introduced by coercion
Comb_Dead_Data_Avg <- Comb_Dead_Data_Avg %>%
mutate(biomass = Dead_Weight_Post - Dry_DeadBag)
Comb_Dead_Data_Avg <- Comb_Dead_Data_Avg %>%
filter(biomass >= 0)
Comb_Dead_Data_Avg <- Comb_Dead_Data_Avg %>%
mutate(relative_moisture_content = ifelse(biomass > bioT, (Dead_Weight_Initial - Dead_Weight_Post) / biomass * 100, NA))
avg_dead_values_Avg <- Comb_Dead_Data_Avg %>%
group_by(Plot, Status) %>%
summarize(avg_dead_biomass = mean(biomass, na.rm = TRUE),
avg_dead_moisture_content = mean(relative_moisture_content, na.rm = TRUE),
avg_soil_moisture = mean(Soil_Moisture, na.rm = TRUE),
.groups = "drop")
Comb_Litter_Data_Avg <- Combined_Data_Avg %>%
mutate(
Litter_Bag = as.numeric(Litter_Bag),
Litter_Weight_Post = as.numeric(Litter_Weight_Post),
Litter_Weight_Initial = as.numeric(Litter_Weight_Initial),
Dry_LitterBag = as.numeric(Dry_LitterBag),
Status = as.character(Status) # Status as a character
)
## Warning: There was 1 warning in `mutate()`.
## ℹ In argument: `Dry_LitterBag = as.numeric(Dry_LitterBag)`.
## Caused by warning:
## ! NAs introduced by coercion
Comb_Litter_Data_Avg <- Comb_Litter_Data_Avg %>%
mutate(biomass = Litter_Weight_Post - Dry_LitterBag)
Comb_Litter_Data_Avg <- Comb_Litter_Data_Avg %>%
filter(biomass >= 0)
Comb_Litter_Data_Avg <- Comb_Litter_Data_Avg %>%
mutate(relative_moisture_content = ifelse(biomass > bioT, (Litter_Weight_Initial - Litter_Weight_Post) / biomass * 100, NA))
avg_litter_values_Avg <- Comb_Litter_Data_Avg %>%
group_by(Plot, Status) %>%
summarize(avg_litter_biomass = mean(biomass, na.rm = TRUE),
avg_litter_moisture_content = mean(relative_moisture_content, na.rm = TRUE),
avg_soil_moisture = mean(Soil_Moisture, na.rm = TRUE),
.groups = "drop")
# Live
avg_live_values_Combined <- avg_live_values_Net %>%
full_join(avg_live_values_Avg, by = "Plot", suffix = c("_Net", "_Avg")) %>%
mutate(
avg_live_biomass = coalesce(avg_live_biomass_Net, avg_live_biomass_Avg),
avg_live_moisture_content = coalesce(avg_live_moisture_content_Net, avg_live_moisture_content_Avg),
avg_soil_moisture = coalesce(avg_soil_moisture_Net, avg_soil_moisture_Avg),
avg_height = coalesce(avg_height_Net, avg_height_Avg),
Status = coalesce(Status_Net, Status_Avg)
) %>%
select(Plot, Status, avg_live_biomass, avg_live_moisture_content, avg_soil_moisture, avg_height)
# Dead
avg_dead_values_Combined <- avg_dead_values_Net %>%
full_join(avg_dead_values_Avg, by = "Plot", suffix = c("_Net", "_Avg")) %>%
mutate(
avg_dead_biomass = coalesce(avg_dead_biomass_Net, avg_dead_biomass_Avg),
avg_dead_moisture_content = coalesce(avg_dead_moisture_content_Net, avg_dead_moisture_content_Avg),
avg_soil_moisture = coalesce(avg_soil_moisture_Net, avg_soil_moisture_Avg),
Status = coalesce(Status_Net, Status_Avg)
) %>%
select(Plot, Status, avg_dead_biomass, avg_dead_moisture_content, avg_soil_moisture)
# Litter
avg_litter_values_Combined <- avg_litter_values_Net %>%
full_join(avg_litter_values_Avg, by = "Plot", suffix = c("_Net", "_Avg")) %>%
mutate(
avg_litter_biomass = coalesce(avg_litter_biomass_Net, avg_litter_biomass_Avg),
avg_litter_moisture_content = coalesce(avg_litter_moisture_content_Net, avg_litter_moisture_content_Avg),
avg_soil_moisture = coalesce(avg_soil_moisture_Net, avg_soil_moisture_Avg),
Status = coalesce(Status_Net, Status_Avg)
) %>%
select(Plot, Status, avg_litter_biomass, avg_litter_moisture_content, avg_soil_moisture)
There are 10,000 square meters in a hectare. Biomass is from 25 cm by 25 cm quadrats, so we have 0.0625 square meters. Therefore, 10,000/0.0625 = 160,000. So biomass gets multiplied by 160,000 and divided by 1,000,000 to convert from grams to tonnes.
Fuel_model_quantiles <- avg_fuel_values %>%
group_by(Status) %>%
summarize(avg_live_biomass_25 = quantile(avg_live_biomass, 0.25, na.rm = TRUE) * 0.16,
avg_live_biomass_50 = quantile(avg_live_biomass, 0.50, na.rm = TRUE) * 0.16,
avg_live_biomass_75 = quantile(avg_live_biomass, 0.75, na.rm = TRUE) * 0.16,
avg_dead_biomass_25 = quantile(avg_dead_biomass, 0.25, na.rm = TRUE) * 0.16,
avg_dead_biomass_50 = quantile(avg_dead_biomass, 0.50, na.rm = TRUE) * 0.16,
avg_dead_biomass_75 = quantile(avg_dead_biomass, 0.75, na.rm = TRUE) * 0.16,
avg_litter_biomass_25 = quantile(avg_litter_biomass, 0.25, na.rm = TRUE) * 0.16,
avg_litter_biomass_50 = quantile(avg_litter_biomass, 0.50, na.rm = TRUE) * 0.16,
avg_litter_biomass_75 = quantile(avg_litter_biomass, 0.75, na.rm = TRUE) * 0.16,
avg_live_moisture_content_25 = quantile(avg_live_moisture_content, 0.25, na.rm = TRUE),
avg_live_moisture_content_50 = quantile(avg_live_moisture_content, 0.50, na.rm = TRUE),
avg_live_moisture_content_75 = quantile(avg_live_moisture_content, 0.75, na.rm = TRUE),
avg_dead_moisture_content_25 = quantile(avg_dead_moisture_content, 0.25, na.rm = TRUE),
avg_dead_moisture_content_50 = quantile(avg_dead_moisture_content, 0.50, na.rm = TRUE),
avg_dead_moisture_content_75 = quantile(avg_dead_moisture_content, 0.75, na.rm = TRUE),
avg_litter_moisture_content_25 = quantile(avg_litter_moisture_content, 0.25, na.rm = TRUE),
avg_litter_moisture_content_50 = quantile(avg_litter_moisture_content, 0.50, na.rm = TRUE),
avg_litter_moisture_content_75 = quantile(avg_litter_moisture_content, 0.75, na.rm = TRUE),
avg_soil_moisture_25 = quantile(avg_soil_moisture, 0.25, na.rm = TRUE),
avg_soil_moisture_50 = quantile(avg_soil_moisture, 0.50, na.rm = TRUE),
avg_soil_moisture_75 = quantile(avg_soil_moisture, 0.75, na.rm = TRUE),
avg_height_25 = quantile(avg_height, 0.25, na.rm = TRUE),
avg_height_50 = quantile(avg_height, 0.50, na.rm = TRUE),
avg_height_75 = quantile(avg_height, 0.75, na.rm = TRUE),
.groups = "drop")
# Kable table of quantiles
kable(Fuel_model_quantiles)
| Status | avg_live_biomass_25 | avg_live_biomass_50 | avg_live_biomass_75 | avg_dead_biomass_25 | avg_dead_biomass_50 | avg_dead_biomass_75 | avg_litter_biomass_25 | avg_litter_biomass_50 | avg_litter_biomass_75 | avg_live_moisture_content_25 | avg_live_moisture_content_50 | avg_live_moisture_content_75 | avg_dead_moisture_content_25 | avg_dead_moisture_content_50 | avg_dead_moisture_content_75 | avg_litter_moisture_content_25 | avg_litter_moisture_content_50 | avg_litter_moisture_content_75 | avg_soil_moisture_25 | avg_soil_moisture_50 | avg_soil_moisture_75 | avg_height_25 | avg_height_50 | avg_height_75 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Invaded | 2.7484000 | 3.068 | 3.3876000 | 0.8612 | 0.8696 | 0.878 | 8.1588 | 9.455733 | 10.75267 | 160.8407 | 167.1745 | 173.5082 | 19.60009 | 22.77418 | 25.94827 | 45.55366 | 46.77059 | 47.98751 | 6.183333 | 6.966667 | 7.750 | 1.0150000 | 1.0400000 | 1.0650000 |
| Non_Invaded | 0.2494667 | 0.372 | 0.4945333 | 0.5680 | 0.5680 | 0.568 | 9.2184 | 10.087467 | 10.95653 | 115.0972 | 115.0972 | 115.0972 | NA | NA | NA | 32.79959 | 52.71153 | 72.62347 | 6.141667 | 6.383333 | 6.625 | 0.2166667 | 0.2366667 | 0.2566667 |
| Fuel and Moisture Quantiles by Invasion Status | ||
| Variable | Invaded | Non Invaded |
|---|---|---|
| Live Biomass (25%) | 2.75 | 0.25 |
| Live Biomass (50%) | 3.07 | 0.37 |
| Live Biomass (75%) | 3.39 | 0.49 |
| Dead Biomass (25%) | 0.86 | 0.57 |
| Dead Biomass (50%) | 0.87 | 0.57 |
| Dead Biomass (75%) | 0.88 | 0.57 |
| Litter Biomass (25%) | 8.16 | 9.22 |
| Litter Biomass (50%) | 9.46 | 10.09 |
| Litter Biomass (75%) | 10.75 | 10.96 |
| Live Moisture Content (25%) | 160.84 | 115.10 |
| Live Moisture Content (50%) | 167.17 | 115.10 |
| Live Moisture Content (75%) | 173.51 | 115.10 |
| Dead Moisture Content (25%) | 19.60 | NA |
| Dead Moisture Content (50%) | 22.77 | NA |
| Dead Moisture Content (75%) | 25.95 | NA |
| Litter Moisture Content (25%) | 45.55 | 32.80 |
| Litter Moisture Content (50%) | 46.77 | 52.71 |
| Litter Moisture Content (75%) | 47.99 | 72.62 |
| Soil Moisture (25%) | 6.18 | 6.14 |
| Soil Moisture (50%) | 6.97 | 6.38 |
| Soil Moisture (75%) | 7.75 | 6.62 |
| Height (25%) | 1.01 | 0.22 |
| Height (50%) | 1.04 | 0.24 |
| Height (75%) | 1.07 | 0.26 |
## <div id="kobidzgdjw" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
## <style>#kobidzgdjw table {
## font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
## -webkit-font-smoothing: antialiased;
## -moz-osx-font-smoothing: grayscale;
## }
##
## #kobidzgdjw thead, #kobidzgdjw tbody, #kobidzgdjw tfoot, #kobidzgdjw tr, #kobidzgdjw td, #kobidzgdjw th {
## border-style: none;
## }
##
## #kobidzgdjw p {
## margin: 0;
## padding: 0;
## }
##
## #kobidzgdjw .gt_table {
## display: table;
## border-collapse: collapse;
## line-height: normal;
## margin-left: auto;
## margin-right: auto;
## color: #333333;
## font-size: 16px;
## font-weight: normal;
## font-style: normal;
## background-color: #FFFFFF;
## width: 100%;
## border-top-style: solid;
## border-top-width: 2px;
## border-top-color: #A8A8A8;
## border-right-style: none;
## border-right-width: 2px;
## border-right-color: #D3D3D3;
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #A8A8A8;
## border-left-style: none;
## border-left-width: 2px;
## border-left-color: #D3D3D3;
## }
##
## #kobidzgdjw .gt_caption {
## padding-top: 4px;
## padding-bottom: 4px;
## }
##
## #kobidzgdjw .gt_title {
## color: #333333;
## font-size: 125%;
## font-weight: initial;
## padding-top: 4px;
## padding-bottom: 4px;
## padding-left: 5px;
## padding-right: 5px;
## border-bottom-color: #FFFFFF;
## border-bottom-width: 0;
## }
##
## #kobidzgdjw .gt_subtitle {
## color: #333333;
## font-size: 85%;
## font-weight: initial;
## padding-top: 3px;
## padding-bottom: 5px;
## padding-left: 5px;
## padding-right: 5px;
## border-top-color: #FFFFFF;
## border-top-width: 0;
## }
##
## #kobidzgdjw .gt_heading {
## background-color: #FFFFFF;
## text-align: center;
## border-bottom-color: #FFFFFF;
## border-left-style: none;
## border-left-width: 1px;
## border-left-color: #D3D3D3;
## border-right-style: none;
## border-right-width: 1px;
## border-right-color: #D3D3D3;
## }
##
## #kobidzgdjw .gt_bottom_border {
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## }
##
## #kobidzgdjw .gt_col_headings {
## border-top-style: solid;
## border-top-width: 2px;
## border-top-color: #D3D3D3;
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## border-left-style: none;
## border-left-width: 1px;
## border-left-color: #D3D3D3;
## border-right-style: none;
## border-right-width: 1px;
## border-right-color: #D3D3D3;
## }
##
## #kobidzgdjw .gt_col_heading {
## color: #333333;
## background-color: #FFFFFF;
## font-size: 100%;
## font-weight: normal;
## text-transform: inherit;
## border-left-style: none;
## border-left-width: 1px;
## border-left-color: #D3D3D3;
## border-right-style: none;
## border-right-width: 1px;
## border-right-color: #D3D3D3;
## vertical-align: bottom;
## padding-top: 5px;
## padding-bottom: 6px;
## padding-left: 5px;
## padding-right: 5px;
## overflow-x: hidden;
## }
##
## #kobidzgdjw .gt_column_spanner_outer {
## color: #333333;
## background-color: #FFFFFF;
## font-size: 100%;
## font-weight: normal;
## text-transform: inherit;
## padding-top: 0;
## padding-bottom: 0;
## padding-left: 4px;
## padding-right: 4px;
## }
##
## #kobidzgdjw .gt_column_spanner_outer:first-child {
## padding-left: 0;
## }
##
## #kobidzgdjw .gt_column_spanner_outer:last-child {
## padding-right: 0;
## }
##
## #kobidzgdjw .gt_column_spanner {
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## vertical-align: bottom;
## padding-top: 5px;
## padding-bottom: 5px;
## overflow-x: hidden;
## display: inline-block;
## width: 100%;
## }
##
## #kobidzgdjw .gt_spanner_row {
## border-bottom-style: hidden;
## }
##
## #kobidzgdjw .gt_group_heading {
## padding-top: 8px;
## padding-bottom: 8px;
## padding-left: 5px;
## padding-right: 5px;
## color: #333333;
## background-color: #FFFFFF;
## font-size: 100%;
## font-weight: initial;
## text-transform: inherit;
## border-top-style: solid;
## border-top-width: 2px;
## border-top-color: #D3D3D3;
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## border-left-style: none;
## border-left-width: 1px;
## border-left-color: #D3D3D3;
## border-right-style: none;
## border-right-width: 1px;
## border-right-color: #D3D3D3;
## vertical-align: middle;
## text-align: left;
## }
##
## #kobidzgdjw .gt_empty_group_heading {
## padding: 0.5px;
## color: #333333;
## background-color: #FFFFFF;
## font-size: 100%;
## font-weight: initial;
## border-top-style: solid;
## border-top-width: 2px;
## border-top-color: #D3D3D3;
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## vertical-align: middle;
## }
##
## #kobidzgdjw .gt_from_md > :first-child {
## margin-top: 0;
## }
##
## #kobidzgdjw .gt_from_md > :last-child {
## margin-bottom: 0;
## }
##
## #kobidzgdjw .gt_row {
## padding-top: 4px;
## padding-bottom: 4px;
## padding-left: 5px;
## padding-right: 5px;
## margin: 10px;
## border-top-style: solid;
## border-top-width: 1px;
## border-top-color: #D3D3D3;
## border-left-style: none;
## border-left-width: 1px;
## border-left-color: #D3D3D3;
## border-right-style: none;
## border-right-width: 1px;
## border-right-color: #D3D3D3;
## vertical-align: middle;
## overflow-x: hidden;
## }
##
## #kobidzgdjw .gt_stub {
## color: #333333;
## background-color: #FFFFFF;
## font-size: 100%;
## font-weight: initial;
## text-transform: inherit;
## border-right-style: solid;
## border-right-width: 2px;
## border-right-color: #D3D3D3;
## padding-left: 5px;
## padding-right: 5px;
## }
##
## #kobidzgdjw .gt_stub_row_group {
## color: #333333;
## background-color: #FFFFFF;
## font-size: 100%;
## font-weight: initial;
## text-transform: inherit;
## border-right-style: solid;
## border-right-width: 2px;
## border-right-color: #D3D3D3;
## padding-left: 5px;
## padding-right: 5px;
## vertical-align: top;
## }
##
## #kobidzgdjw .gt_row_group_first td {
## border-top-width: 2px;
## }
##
## #kobidzgdjw .gt_row_group_first th {
## border-top-width: 2px;
## }
##
## #kobidzgdjw .gt_summary_row {
## color: #333333;
## background-color: #FFFFFF;
## text-transform: inherit;
## padding-top: 8px;
## padding-bottom: 8px;
## padding-left: 5px;
## padding-right: 5px;
## }
##
## #kobidzgdjw .gt_first_summary_row {
## border-top-style: solid;
## border-top-color: #D3D3D3;
## }
##
## #kobidzgdjw .gt_first_summary_row.thick {
## border-top-width: 2px;
## }
##
## #kobidzgdjw .gt_last_summary_row {
## padding-top: 8px;
## padding-bottom: 8px;
## padding-left: 5px;
## padding-right: 5px;
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## }
##
## #kobidzgdjw .gt_grand_summary_row {
## color: #333333;
## background-color: #FFFFFF;
## text-transform: inherit;
## padding-top: 8px;
## padding-bottom: 8px;
## padding-left: 5px;
## padding-right: 5px;
## }
##
## #kobidzgdjw .gt_first_grand_summary_row {
## padding-top: 8px;
## padding-bottom: 8px;
## padding-left: 5px;
## padding-right: 5px;
## border-top-style: double;
## border-top-width: 6px;
## border-top-color: #D3D3D3;
## }
##
## #kobidzgdjw .gt_last_grand_summary_row_top {
## padding-top: 8px;
## padding-bottom: 8px;
## padding-left: 5px;
## padding-right: 5px;
## border-bottom-style: double;
## border-bottom-width: 6px;
## border-bottom-color: #D3D3D3;
## }
##
## #kobidzgdjw .gt_striped {
## background-color: rgba(128, 128, 128, 0.05);
## }
##
## #kobidzgdjw .gt_table_body {
## border-top-style: solid;
## border-top-width: 2px;
## border-top-color: #D3D3D3;
## border-bottom-style: solid;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## }
##
## #kobidzgdjw .gt_footnotes {
## color: #333333;
## background-color: #FFFFFF;
## border-bottom-style: none;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## border-left-style: none;
## border-left-width: 2px;
## border-left-color: #D3D3D3;
## border-right-style: none;
## border-right-width: 2px;
## border-right-color: #D3D3D3;
## }
##
## #kobidzgdjw .gt_footnote {
## margin: 0px;
## font-size: 90%;
## padding-top: 4px;
## padding-bottom: 4px;
## padding-left: 5px;
## padding-right: 5px;
## }
##
## #kobidzgdjw .gt_sourcenotes {
## color: #333333;
## background-color: #FFFFFF;
## border-bottom-style: none;
## border-bottom-width: 2px;
## border-bottom-color: #D3D3D3;
## border-left-style: none;
## border-left-width: 2px;
## border-left-color: #D3D3D3;
## border-right-style: none;
## border-right-width: 2px;
## border-right-color: #D3D3D3;
## }
##
## #kobidzgdjw .gt_sourcenote {
## font-size: 90%;
## padding-top: 4px;
## padding-bottom: 4px;
## padding-left: 5px;
## padding-right: 5px;
## }
##
## #kobidzgdjw .gt_left {
## text-align: left;
## }
##
## #kobidzgdjw .gt_center {
## text-align: center;
## }
##
## #kobidzgdjw .gt_right {
## text-align: right;
## font-variant-numeric: tabular-nums;
## }
##
## #kobidzgdjw .gt_font_normal {
## font-weight: normal;
## }
##
## #kobidzgdjw .gt_font_bold {
## font-weight: bold;
## }
##
## #kobidzgdjw .gt_font_italic {
## font-style: italic;
## }
##
## #kobidzgdjw .gt_super {
## font-size: 65%;
## }
##
## #kobidzgdjw .gt_footnote_marks {
## font-size: 75%;
## vertical-align: 0.4em;
## position: initial;
## }
##
## #kobidzgdjw .gt_asterisk {
## font-size: 100%;
## vertical-align: 0;
## }
##
## #kobidzgdjw .gt_indent_1 {
## text-indent: 5px;
## }
##
## #kobidzgdjw .gt_indent_2 {
## text-indent: 10px;
## }
##
## #kobidzgdjw .gt_indent_3 {
## text-indent: 15px;
## }
##
## #kobidzgdjw .gt_indent_4 {
## text-indent: 20px;
## }
##
## #kobidzgdjw .gt_indent_5 {
## text-indent: 25px;
## }
##
## #kobidzgdjw .katex-display {
## display: inline-flex !important;
## margin-bottom: 0.75em !important;
## }
##
## #kobidzgdjw div.Reactable > div.rt-table > div.rt-thead > div.rt-tr.rt-tr-group-header > div.rt-th-group:after {
## height: 0px !important;
## }
## </style>
## <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
## <thead>
## <tr class="gt_heading">
## <td colspan="3" class="gt_heading gt_title gt_font_normal gt_bottom_border" style>Fuel and Moisture Quantiles by Invasion Status</td>
## </tr>
##
## <tr class="gt_col_headings">
## <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Variable">Variable</th>
## <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Invaded">Invaded</th>
## <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Non_Invaded">Non Invaded</th>
## </tr>
## </thead>
## <tbody class="gt_table_body">
## <tr><td headers="Variable" class="gt_row gt_left">Live Biomass (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">2.75</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.25</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Live Biomass (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">3.07</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.37</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Live Biomass (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">3.39</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.49</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Dead Biomass (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">0.86</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.57</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Dead Biomass (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">0.87</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.57</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Dead Biomass (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">0.88</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.57</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Litter Biomass (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">8.16</td>
## <td headers="Non_Invaded" class="gt_row gt_right">9.22</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Litter Biomass (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">9.46</td>
## <td headers="Non_Invaded" class="gt_row gt_right">10.09</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Litter Biomass (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">10.75</td>
## <td headers="Non_Invaded" class="gt_row gt_right">10.96</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Live Moisture Content (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">160.84</td>
## <td headers="Non_Invaded" class="gt_row gt_right">115.10</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Live Moisture Content (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">167.17</td>
## <td headers="Non_Invaded" class="gt_row gt_right">115.10</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Live Moisture Content (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">173.51</td>
## <td headers="Non_Invaded" class="gt_row gt_right">115.10</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Dead Moisture Content (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">19.60</td>
## <td headers="Non_Invaded" class="gt_row gt_right">NA</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Dead Moisture Content (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">22.77</td>
## <td headers="Non_Invaded" class="gt_row gt_right">NA</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Dead Moisture Content (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">25.95</td>
## <td headers="Non_Invaded" class="gt_row gt_right">NA</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Litter Moisture Content (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">45.55</td>
## <td headers="Non_Invaded" class="gt_row gt_right">32.80</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Litter Moisture Content (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">46.77</td>
## <td headers="Non_Invaded" class="gt_row gt_right">52.71</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Litter Moisture Content (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">47.99</td>
## <td headers="Non_Invaded" class="gt_row gt_right">72.62</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Soil Moisture (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">6.18</td>
## <td headers="Non_Invaded" class="gt_row gt_right">6.14</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Soil Moisture (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">6.97</td>
## <td headers="Non_Invaded" class="gt_row gt_right">6.38</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Soil Moisture (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">7.75</td>
## <td headers="Non_Invaded" class="gt_row gt_right">6.62</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Height (25%)</td>
## <td headers="Invaded" class="gt_row gt_right">1.01</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.22</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Height (50%)</td>
## <td headers="Invaded" class="gt_row gt_right">1.04</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.24</td></tr>
## <tr><td headers="Variable" class="gt_row gt_left">Height (75%)</td>
## <td headers="Invaded" class="gt_row gt_right">1.07</td>
## <td headers="Non_Invaded" class="gt_row gt_right">0.26</td></tr>
## </tbody>
##
##
## </table>
## </div>
biomass_plot <- merged_sites %>%
pivot_longer(
cols = c(avg_live_biomass, avg_dead_biomass, avg_litter_biomass),
names_to = "Fuel_Type",
values_to = "Biomass"
) %>%
# Rename invasion categories
mutate(
Status = recode(
Status,
"Invaded" = "Invaded",
"Non_Invaded" = "Non-Invaded"
),
# Rename and order fuel types
Fuel_Type = factor(
Fuel_Type,
levels = c(
"avg_live_biomass",
"avg_dead_biomass",
"avg_litter_biomass"
),
labels = c(
"Live Fuel Load",
"Dead Fuel Load",
"Litter Fuel Load"
)
)
) %>%
ggplot(aes(x = Status, y = Biomass, fill = Status)) +
geom_boxplot() +
facet_wrap(~ Fuel_Type, scales = "free_y") +
labs(
title = "Fuel Load by Cogongrass Invasion Status",
x = "Invasion Status",
y = "Fuel Load (tonnes/ha)"
) +
# University of Alabama colors
scale_fill_manual(values = c(
"Invaded" = "#E87722",
"Non-Invaded" = "#0C2340"
)) +
theme_minimal() +
theme(
legend.position = "none"
)
print(biomass_plot)
moisture_plot <- merged_sites %>%
pivot_longer(
# FIX OCCURS HERE: Matches the columns regardless of whether they have an .x or not
cols = c(contains("avg_live_moisture_content"),
contains("avg_dead_moisture_content"),
contains("avg_litter_moisture_content")),
names_to = "Fuel_Type",
values_to = "Moisture_Content"
) %>%
# Rename invasion categories
mutate(
Status = recode(
Status,
"Invaded" = "Invaded",
"Non_Invaded" = "Non-Invaded"
),
# Rename and order fuel types dynamically
Fuel_Type = factor(
Fuel_Type,
# FIX OCCURS HERE TOO: Match whatever naming convention R used mid-pivot
levels = unique(Fuel_Type),
labels = c(
"Live Fuel Moisture Content",
"Dead Fuel Moisture Content",
"Litter Fuel Moisture Content"
)
)
) %>%
ggplot(aes(x = Status, y = Moisture_Content, fill = Status)) +
geom_boxplot() +
facet_wrap(~ Fuel_Type, scales = "free_y") +
labs(
title = "Fuel Moisture Content by Cogongrass Invasion Status",
x = "Invasion Status",
y = "Fuel Moisture Content (%)"
) +
# Auburn University colors (Orange and Navy)
scale_fill_manual(values = c(
"Invaded" = "#E87722",
"Non-Invaded" = "#0C2340"
)) +
theme_minimal() +
theme(
legend.position = "none"
)
# Display the plot
moisture_plot
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
# Save
ggsave("C:/Users/DrewIvory/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Hooper_Fuel_Moisture_by_Invasion_Status.png", plot = moisture_plot, width = 10, height = 6, dpi = 300)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).