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

# 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")

# 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")

Seasonal_Fuel_Sampling <- 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 = "Fuel_Data")

# Seasonal Sampling Locations
Seasonal_Sampling_Locations <- 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 = "Sites")

# 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`
# 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")

# 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")

# Site Data
CogonSites <- read_excel("C:/Users/DrewIvory/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

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.99             2.99                5.27
## 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.683            0.570               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.9927111 2.9925037 5.268986 153.2355 23.59798 30.91334 9.757672 0.8610635
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.6833641 0.5695724 5.935867 159.2312 22.93934 26.95630 7.465909 0.2604872
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.1616000 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.8281333 2.6090667 3.7072000 1.1582667 2.3248000 4.1821333 2.652533 4.274133 6.908533 134.21460 148.22515 169.7768 11.796183 16.95230 24.29539 11.461619 20.08565 37.21042 4.000000 9.866667 12.500000 0.6800000 0.8533333 1.0316667
Invaded Winter 0.9458667 1.4976000 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.5088000 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.2538667 0.5589333 1.0144000 0.1840000 0.3442667 0.6352667 3.882600 6.017333 7.348400 121.64076 162.55358 186.2774 6.772142 13.95802 29.64863 9.698856 16.49039 37.45831 3.383333 5.666667 9.891667 0.1533333 0.2250000 0.3266667
Non_Invaded Winter 0.2112000 0.2728000 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.9927111 0.2060268 2.9925037 0.3017310 5.268986 0.4530606 153.2355 3.407950 23.59798 3.217104 30.91334 3.628753
Summer Non_Invaded 0.6833641 0.0704620 0.5695724 0.0841108 5.935867 0.3607011 159.2312 9.399586 22.93934 5.209189 26.95630 3.046985
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

Chapter 1

Fuel Dynamics Alterations Resulting from Plant Invasion ## Objective 1 Determine the influence of seasonal growth stage and cover on fuel characteristics

Plotting linear regressions