pacman::p_load(dplyr, readxl, tidyr, raster, vegan, tigris, sf, sp, plotly, ggrepel, kableExtra)

# Tree PCQ Data
tree_data <- read_excel("C:/Users/alanivory34428/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Field_Data_FL_AL_MS.xlsx",
                        sheet = "Tree_PCQ")

# Soil Data
fuel_data <- read_excel("C:/Users/alanivory34428/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Field_Data_FL_AL_MS.xlsx",
                        sheet = "Fuel_Sampling")

Seasonal_Fuel_Sampling <- read_excel("C:/Users/alanivory34428/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/01_FuelDynamics/02_Data/02_Fuel_Data/Seasonal_Fuel_Sampling.xlsx",
                                     sheet = "Fuel_Data")

# Seasonal Sampling Locations
Seasonal_Sampling_Locations <- read_excel("C:/Users/alanivory34428/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/01_FuelDynamics/02_Data/02_Fuel_Data/Seasonal_Fuel_Sampling.xlsx",
                                          sheet = "Sites")

# Bag Weights
bag_weights <- read_excel("C:/Users/alanivory34428/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`
# Veg Data
Veg_Cover <- read_excel("C:/Users/alanivory34428/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Field_Data_FL_AL_MS.xlsx",
                        sheet = "Veg_Cover")

# Shrub Cover Data
shrub_data <- read_excel("C:/Users/alanivory34428/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/Field_Data_FL_AL_MS.xlsx",
                         sheet = "Shrub_Cover")

# Site Data
CogonSites <- read_excel("C:/Users/alanivory34428/OneDrive - University of Florida/Desktop/School/PHD/01_Projects/05_SharedData/CogonSites_FL_AL_MS.xlsx")

# Only include Florida/Alabama Sites
CogonSites <- CogonSites[CogonSites$Authority != "CNF" & CogonSites$Authority != "DSNF", ]

Filter All data to only include specified species (Per PLANTS database)

Filter all data to only include species found at 3% of all sites

Tree quantiles

Shrub Cover Conversion

Herbacous Cover Conversion

Merging Herb cover with Shrub

This species matrix includes herbaceous and shrub species

#Summarize Cogongrass Cover

Merge Cogongrass Cover with Cogon Site Data

#Fuel Dynamics ## Combine seasonal fuel data

Net Weight Method

Live

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, Season, 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")

Dead

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, Season, 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")

Litter

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, Season, 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")

Average Bag Weight Method

Live

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, Season, 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")

Dead

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, Season, 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")

Litter

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, Season, 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")

Fill in gaps within Net method with Avg method.

# 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),
    Season = coalesce(Season_Net, Season_Avg),
    Status = coalesce(Status_Net, Status_Avg)
  ) %>%
  select(Plot, Season, 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),
    Season = coalesce(Season_Net, Season_Avg),
    Status = coalesce(Status_Net, Status_Avg)
  ) %>%
  select(Plot, Season, 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),
    Season = coalesce(Season_Net, Season_Avg),
    Status = coalesce(Status_Net, Status_Avg)
  ) %>%
  select(Plot, Season, Status, avg_litter_biomass, avg_litter_moisture_content, avg_soil_moisture)

Combine summer sampling (CogonSites) locations with winter sampling locations

Merge avg_live_values, avg_dead_values, and avg_litter_values

Average Fuel Values by Invasion Status and Season

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_values <- avg_fuel_values %>%
  group_by(Status, Season) %>%
  summarize(avg_live_biomass = mean(avg_live_biomass, na.rm = TRUE) * 0.16,
            avg_dead_biomass = mean(avg_dead_biomass, na.rm = TRUE) * 0.16,
            avg_litter_biomass = mean(avg_litter_biomass, na.rm = TRUE) * 0.16,
            avg_live_moisture_content = mean(avg_live_moisture_content, na.rm = TRUE),
            avg_dead_moisture_content = mean(avg_dead_moisture_content, na.rm = TRUE),
            avg_litter_moisture_content = mean(avg_litter_moisture_content, na.rm = TRUE),
            avg_soil_moisture = mean(avg_soil_moisture, na.rm = TRUE),
            avg_height = mean(avg_height, na.rm = TRUE),
            .groups = "drop")

Fuel_model_values
## # A tibble: 6 × 10
##   Status      Season   avg_live_biomass avg_dead_biomass avg_litter_biomass
##   <chr>       <chr>               <dbl>            <dbl>              <dbl>
## 1 Invaded     Green_Up            2.31             2.91                6.48
## 2 Invaded     Summer              2.98             2.95                5.15
## 3 Invaded     Winter              1.74             4.44                6.05
## 4 Non_Invaded Green_Up            0.685            1.13                7.29
## 5 Non_Invaded Summer              0.745            0.597               5.94
## 6 Non_Invaded Winter              0.484            1.38                6.90
## # ℹ 5 more variables: avg_live_moisture_content <dbl>,
## #   avg_dead_moisture_content <dbl>, avg_litter_moisture_content <dbl>,
## #   avg_soil_moisture <dbl>, avg_height <dbl>
kable(Fuel_model_values)
Status Season avg_live_biomass avg_dead_biomass avg_litter_biomass avg_live_moisture_content avg_dead_moisture_content avg_litter_moisture_content avg_soil_moisture avg_height
Invaded Green_Up 2.3124825 2.9124571 6.483302 100.4510 13.79576 12.97215 6.617460 0.7676190
Invaded Summer 2.9807190 2.9508017 5.150015 151.4404 23.72638 28.40688 10.227848 0.8572616
Invaded Winter 1.7428174 4.4411333 6.053600 122.8786 29.78985 40.40572 13.658333 0.8368116
Non_Invaded Green_Up 0.6850032 1.1300063 7.290438 105.0924 14.80502 12.95389 6.136508 0.3406349
Non_Invaded Summer 0.7451523 0.5974198 5.940153 145.1575 20.34470 25.25510 7.483537 0.2696502
Non_Invaded Winter 0.4841623 1.3757222 6.896544 105.2473 35.23478 43.74353 11.298611 0.2688406

25th, 50th and 75 quantiles of fuel values

Fuel_model_quantiles <- avg_fuel_values %>%
  group_by(Status, Season) %>%
  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 Season 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 Green_Up 1.1562667 2.161600 3.4720000 1.8922667 2.4192000 3.1082667 3.486400 4.974400 9.215467 54.66557 117.06158 133.0470 9.195465 10.39843 16.57708 9.487179 11.44906 14.92138 4.833333 5.766667 7.100000 0.5600000 0.7533333 0.9500000
Invaded Summer 1.9560000 2.609067 3.7072000 1.3474667 2.4234667 4.0458667 2.652533 4.274133 6.774667 133.52828 148.91918 167.7775 13.037626 17.99824 27.12177 12.411588 19.05224 32.37791 5.833333 10.366667 13.016667 0.6850000 0.8400000 1.0300000
Invaded Winter 0.9458667 1.497600 2.4898667 1.9476000 3.4101333 6.1982667 3.023867 5.620267 7.916800 95.76815 119.49396 151.1411 13.788625 19.72430 36.73561 15.979345 27.86209 47.96388 5.933333 10.916667 13.891667 0.7116667 0.8500000 0.9733333
Non_Invaded Green_Up 0.3685333 0.508800 0.7546667 0.3370667 0.7482667 1.3616000 3.924267 6.187200 8.342933 51.67528 80.33146 146.1973 9.750584 15.46700 17.59368 7.290356 12.30107 17.27920 3.066667 4.033333 9.300000 0.2333333 0.3333333 0.4366667
Non_Invaded Summer 0.3402667 0.636800 1.0261333 0.2090667 0.4392000 0.8254667 3.882600 6.036267 7.348533 104.15527 140.30346 176.0684 7.881773 16.09442 24.74012 10.345724 17.65342 30.36058 3.991667 6.333333 9.108333 0.1533333 0.2366667 0.3366667
Non_Invaded Winter 0.2112000 0.272800 0.5125333 0.3168000 0.7242667 1.8066667 4.612133 6.603733 9.257733 30.64949 85.18529 184.4349 11.679660 16.25337 49.32975 15.910721 42.65335 56.80946 6.233333 9.566667 12.375000 0.1116667 0.2366667 0.3583333

Summary statistics of fuel values by season and fuel type (mean and SE)

Fuel_model_means <- avg_fuel_values %>%
  group_by(Season, Status) %>%
  summarize(
    mean_live_biomass = mean(avg_live_biomass * 0.16, na.rm = TRUE),
    se_live_biomass = sd(avg_live_biomass * 0.16, na.rm = TRUE) / sqrt(sum(!is.na(avg_live_biomass))),
    
    mean_dead_biomass = mean(avg_dead_biomass * 0.16, na.rm = TRUE),
    se_dead_biomass = sd(avg_dead_biomass * 0.16, na.rm = TRUE) / sqrt(sum(!is.na(avg_dead_biomass))),
    
    mean_litter_biomass = mean(avg_litter_biomass * 0.16, na.rm = TRUE),
    se_litter_biomass = sd(avg_litter_biomass * 0.16, na.rm = TRUE) / sqrt(sum(!is.na(avg_litter_biomass))),
    
    mean_live_moisture = mean(avg_live_moisture_content, na.rm = TRUE),
    se_live_moisture = sd(avg_live_moisture_content, na.rm = TRUE) / sqrt(sum(!is.na(avg_live_moisture_content))),
    
    mean_dead_moisture = mean(avg_dead_moisture_content, na.rm = TRUE),
    se_dead_moisture = sd(avg_dead_moisture_content, na.rm = TRUE) / sqrt(sum(!is.na(avg_dead_moisture_content))),
    
    mean_litter_moisture = mean(avg_litter_moisture_content, na.rm = TRUE),
    se_litter_moisture = sd(avg_litter_moisture_content, na.rm = TRUE) / sqrt(sum(!is.na(avg_litter_moisture_content))),
    
    .groups = "drop"
  )

# Display in a kable table
kable(Fuel_model_means)
Season Status mean_live_biomass se_live_biomass mean_dead_biomass se_dead_biomass mean_litter_biomass se_litter_biomass mean_live_moisture se_live_moisture mean_dead_moisture se_dead_moisture mean_litter_moisture se_litter_moisture
Green_Up Invaded 2.3124825 0.3517363 2.9124571 0.4475738 6.483302 0.9265862 100.4510 10.320975 13.79576 1.586765 12.97215 1.479776
Green_Up Non_Invaded 0.6850032 0.1313605 1.1300063 0.2848109 7.290438 1.0891618 105.0924 23.082865 14.80502 1.746026 12.95389 1.727758
Summer Invaded 2.9807190 0.1720883 2.9508017 0.2451984 5.150015 0.3859746 151.4404 3.121855 23.72638 2.582500 28.40688 2.946816
Summer Non_Invaded 0.7451523 0.0600392 0.5974198 0.0676550 5.940153 0.3165720 145.1575 7.851655 20.34470 3.492849 25.25510 2.492416
Winter Invaded 1.7428174 0.2376417 4.4411333 0.6450260 6.053600 0.7982883 122.8786 10.287898 29.78985 4.777131 40.40572 7.043990
Winter Non_Invaded 0.4841623 0.0948255 1.3757222 0.3233364 6.896544 0.6680547 105.2473 35.049744 35.23478 9.740564 43.74353 6.637136

Authority/ Season Fuel Grouping

# Join Authority info into avg_fuel_values using merged_sites
avg_fuel_values <- avg_fuel_values %>%
  left_join(merged_sites %>% select(Plot, Authority), by = "Plot")

## Limit included Authorities to WSF, BCNWR, and Jay
avg_fuel_values <- avg_fuel_values %>%
  filter(Authority %in% c("WSF", "BCNWR", "Jay"))

Fuel_model_quantiles <- avg_fuel_values %>%
  group_by(Status, Season, Authority) %>%
  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(Fuel_model_quantiles)
Status Season Authority 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 Green_Up Jay 0.6501333 0.8229333 1.3648000 2.0757333 2.2330667 2.3221333 8.898133 11.343467 12.225067 48.91230 99.81592 147.2470 8.965548 13.15133 14.63821 7.257746 13.82589 14.47516 4.833333 5.533333 5.766667 0.5133333 0.5400000 0.5533333
Invaded Green_Up WSF 2.1700000 2.8021333 3.7316000 1.6244000 3.2938667 4.1924000 2.544533 4.494400 8.770533 115.48878 127.96643 134.1173 10.143128 15.18726 21.07649 11.693896 14.13321 19.84493 3.716667 5.866667 8.000000 0.8966667 0.9533333 1.0075000
Invaded Summer BCNWR 2.2928000 2.6112000 3.5613333 2.2278667 2.5856000 3.3176000 2.939200 4.560800 5.829600 124.88201 150.68603 155.9803 16.526722 21.19631 31.31935 14.851499 17.40024 21.37483 9.425000 12.133333 15.950000 0.7075000 0.8366667 0.9591667
Invaded Summer Jay 1.4024000 2.0778667 2.5557333 1.3885333 2.1373333 2.8680667 3.213200 5.290400 6.662200 134.98735 152.05245 180.4044 15.882278 18.63651 27.12177 12.653322 21.36175 34.04749 9.991667 11.416667 12.975000 0.6300000 0.7150000 0.8091667
Invaded Summer WSF 2.2320000 3.0906667 4.3061333 2.0952000 4.3029333 6.4848000 2.156800 3.228267 8.358400 128.31559 139.81814 160.6238 7.017115 15.29927 19.91720 6.818544 16.49354 32.65476 2.266667 5.166667 12.500000 0.8100000 0.9433333 1.0300000
Invaded Winter Jay 0.4152000 0.6282667 1.3842667 2.4860000 5.3805333 8.2733333 4.861067 7.533867 8.101067 104.26003 122.59266 139.2627 13.546890 25.47941 36.73561 26.963906 28.75557 34.81777 10.400000 12.750000 15.183333 0.6366667 0.6933333 0.8016667
Invaded Winter WSF 1.4976000 2.4528000 2.9674667 1.2464000 4.5269333 5.9984000 3.105067 5.272533 6.480000 76.53177 116.79568 147.9002 14.523860 23.08161 49.71313 13.437933 18.69010 57.54190 3.500000 6.166667 11.000000 0.8500000 0.9333333 1.0566667
Non_Invaded Green_Up Jay 0.4330667 0.7029333 0.9269333 0.4730667 1.3616000 1.4208000 7.514667 7.722133 12.513600 46.80387 53.18221 121.8970 14.183561 16.96538 19.18748 3.984839 17.27920 18.34091 4.566667 12.100000 14.500000 0.2800000 0.3500000 0.3800000
Non_Invaded Green_Up WSF 0.2461333 0.4634667 0.7173333 0.1685333 0.6178667 1.9002667 2.537067 5.141333 8.560933 80.33146 111.76471 178.3178 12.884978 15.81039 16.79261 12.496842 13.40984 21.47287 3.066667 3.583333 6.541667 0.2258333 0.3316667 0.4466667
Non_Invaded Summer BCNWR 0.7610667 0.9928000 1.1841333 0.5150667 0.6960000 0.8938667 3.684533 6.465867 7.610267 81.40065 101.07464 124.6043 12.356979 16.35686 19.00990 14.016309 17.90944 20.82878 6.266667 6.800000 8.183333 0.1925000 0.3000000 0.3808333
Non_Invaded Summer Jay 0.3898667 0.5568000 0.8997333 0.1936000 0.3290667 0.5092000 4.286667 7.035733 7.270400 124.91000 145.69841 169.7640 15.008337 22.84473 29.56521 10.459233 25.90467 41.94239 4.858333 9.050000 12.595833 0.1566667 0.2133333 0.3233333
Non_Invaded Summer WSF 0.1765333 0.4080000 0.8608000 0.0621333 0.2549333 0.9941333 4.268533 6.035200 7.835467 139.80952 166.38736 196.9048 6.441751 11.61039 23.73844 7.915593 13.90976 31.22375 2.433333 3.733333 5.083333 0.1800000 0.2466667 0.3383333
Non_Invaded Winter Jay 0.1500000 0.2218667 0.2446000 0.3136000 0.3541333 1.5200000 5.508267 6.700267 9.480800 199.83098 199.83098 199.8310 15.881540 28.06942 42.46625 22.012001 42.14637 47.47021 10.933333 12.133333 13.000000 0.0700000 0.1050000 0.1350000
Non_Invaded Winter WSF 0.2272000 0.4496000 1.0314667 0.4741333 0.9034667 1.9034667 4.305600 5.164267 7.777067 30.15808 32.12374 138.2468 11.290522 15.58828 52.94137 11.770516 32.11633 56.60572 3.333333 6.533333 8.933333 0.2366667 0.2800000 0.4100000