JOTR 2025 Fire Summary Statistics

Author

Fire Analysis Team

Published

December 4, 2025

Overview

This document provides summary statistics combining the vegetation burned analysis from both the Eureka Fire and Black Rock Fire (January 2025) in Joshua Tree National Park.

Code
# Load vegetation burned summaries
eureka_veg <- read_csv(file.path("fires/eureka/outputs/veg_burned_summary.csv"), 
                        show_col_types = FALSE) |>
  mutate(fire = "Eureka")

black_rock_veg <- read_csv(file.path("fires/black_rock/outputs/veg_burned_summary.csv"),
                            show_col_types = FALSE) |>
  mutate(fire = "Black Rock")

Total Area Burned

Code
# Extract totals
eureka_total <- eureka_veg |> filter(MapUnit_Name == "Total Burned Area") |> pull(veg_ha)
black_rock_total <- black_rock_veg |> filter(MapUnit_Name == "Total Burned Area") |> pull(veg_ha)
combined_total <- eureka_total + black_rock_total

tibble(
  Fire = c("Eureka", "Black Rock", "**Combined Total**"),
  Hectares_Burned = c(eureka_total, black_rock_total, combined_total),
  Acres_Burned = c(eureka_total, black_rock_total, combined_total) * 2.471,
  Percent_of_Total = c(eureka_total/combined_total * 100, 
                        black_rock_total/combined_total * 100, 
                        100)
) |>
  kable(digits = 1, format.args = list(big.mark = ","), 
        col.names = c("Fire", "Hectares Burned", "Acres Burned", "Percent of Total")) |>
  kable_styling(bootstrap_options = c("striped", "hover"))
Fire Hectares Burned Acres Burned Percent of Total
Eureka 87.2 215.4 73.1
Black Rock 32.1 79.2 26.9
**Combined Total** 119.2 294.6 100.0

Vegetation Types Burned

Combined Vegetation Summary

Code
# Combine vegetation data (excluding totals)
combined_veg <- bind_rows(eureka_veg, black_rock_veg) |>
  filter(MapUnit_Name != "Total Burned Area") |>
  group_by(MapUnit_Name) |>
  summarise(
    total_ha = sum(veg_ha),
    fires_affected = paste(unique(fire), collapse = ", "),
    .groups = "drop"
  ) |>
  arrange(desc(total_ha)) |>
  mutate(
    pct_combined = total_ha / combined_total * 100,
    cumulative_pct = cumsum(pct_combined)
  )

combined_veg |>
  select(
    Vegetation_Type = MapUnit_Name,
    Total_Ha = total_ha,
    Pct_of_Combined = pct_combined,
    Fires_Affected = fires_affected
  ) |>
  kable(digits = 2, col.names = c("Vegetation Type", "Total Ha", "% of Combined", "Fires Affected")) |>
  kable_styling(bootstrap_options = c("striped", "hover")) |>
  scroll_box(height = "400px")
Vegetation Type Total Ha % of Combined Fires Affected
Singleleaf Pinyon / Muller Oak Woodland Association 51.72 43.38 Eureka, Black Rock
Joshua Tree - California Juniper / Nevada Ephedra Woodland Association 28.57 23.96 Eureka, Black Rock
California Juniper / Blackbush Woodland Association 17.02 14.27 Eureka, Black Rock
Muller Oak - California Buckwheat - Narrowleaf Goldenbush Shrubland Association 9.57 8.03 Eureka
California Juniper / Muller Oak - Blackbush Woodland Association 5.18 4.34 Black Rock
Red Brome - Mediterranean Grass Semi-Natural Herbaceous Stands 3.10 2.60 Eureka
Mojave Yucca - Blackbush Shrubland Association 1.34 1.13 Eureka
Catclaw Acacia - Desert Almond Shrubland Association 1.20 1.00 Black Rock
Joshua Tree / Blackbush Woodland Association 0.82 0.69 Eureka, Black Rock
Catclaw Acacia - (Sweetbush - Desert Lavender) Shrubland Association 0.72 0.60 Black Rock

Side-by-Side Comparison

Code
# Create comparison table
all_veg_types <- union(
  eureka_veg$MapUnit_Name,
  black_rock_veg$MapUnit_Name
) |> setdiff("Total Burned Area")

comparison <- tibble(MapUnit_Name = all_veg_types) |>
  left_join(
    eureka_veg |> select(MapUnit_Name, eureka_ha = veg_ha, eureka_pct = pct_of_total),
    by = "MapUnit_Name"
  ) |>
  left_join(
    black_rock_veg |> select(MapUnit_Name, black_rock_ha = veg_ha, black_rock_pct = pct_of_total),
    by = "MapUnit_Name"
  ) |>
  replace_na(list(eureka_ha = 0, eureka_pct = 0, black_rock_ha = 0, black_rock_pct = 0)) |>
  mutate(total_ha = eureka_ha + black_rock_ha) |>
  arrange(desc(total_ha))

comparison |>
  select(
    Vegetation_Type = MapUnit_Name,
    Eureka_ha = eureka_ha,
    Eureka_pct = eureka_pct,
    Black_Rock_ha = black_rock_ha,
    Black_Rock_pct = black_rock_pct,
    Combined_ha = total_ha
  ) |>
  kable(digits = 2, col.names = c("Vegetation Type", "Eureka (ha)", "Eureka (%)", 
                                   "Black Rock (ha)", "Black Rock (%)", "Combined (ha)")) |>
  kable_styling(bootstrap_options = c("striped", "hover")) |>
  scroll_box(height = "400px")
Vegetation Type Eureka (ha) Eureka (%) Black Rock (ha) Black Rock (%) Combined (ha)
Singleleaf Pinyon / Muller Oak Woodland Association 48.45 55.59 3.27 10.20 51.72
Joshua Tree - California Juniper / Nevada Ephedra Woodland Association 19.31 22.16 9.25 28.86 28.57
California Juniper / Blackbush Woodland Association 5.12 5.87 11.90 37.11 17.02
Muller Oak - California Buckwheat - Narrowleaf Goldenbush Shrubland Association 9.57 10.98 0.00 0.00 9.57
California Juniper / Muller Oak - Blackbush Woodland Association 0.00 0.00 5.18 16.14 5.18
Red Brome - Mediterranean Grass Semi-Natural Herbaceous Stands 3.10 3.55 0.00 0.00 3.10
Mojave Yucca - Blackbush Shrubland Association 1.34 1.54 0.00 0.00 1.34
Catclaw Acacia - Desert Almond Shrubland Association 0.00 0.00 1.20 3.73 1.20
Joshua Tree / Blackbush Woodland Association 0.27 0.31 0.55 1.71 0.82
Catclaw Acacia - (Sweetbush - Desert Lavender) Shrubland Association 0.00 0.00 0.72 2.25 0.72

Visualizations

Area Burned by Fire

Code
combined_veg |>
  ggplot(aes(x = reorder(MapUnit_Name, total_ha), y = total_ha, fill = fires_affected)) +
  geom_col() +
  coord_flip() +
  scale_fill_manual(values = c("Eureka" = "#E69F00", "Black Rock" = "#56B4E9", 
                                "Eureka, Black Rock" = "#009E73", "Black Rock, Eureka" = "#009E73")) +
  labs(
    title = "Total Hectares Burned by Vegetation Type",
    subtitle = "Combined Eureka and Black Rock Fires",
    x = NULL,
    y = "Hectares",
    fill = "Fire(s)"
  ) +
  theme_minimal() +
  theme(legend.position = "bottom")

Fire Comparison

Code
bind_rows(eureka_veg, black_rock_veg) |>
  filter(MapUnit_Name != "Total Burned Area") |>
  ggplot(aes(x = reorder(MapUnit_Name, veg_ha), y = veg_ha, fill = fire)) +
  geom_col(position = "dodge") +
  coord_flip() +
  scale_fill_manual(values = c("Eureka" = "#E69F00", "Black Rock" = "#56B4E9")) +
  labs(
    title = "Vegetation Burned: Eureka vs Black Rock Fire",
    x = NULL,
    y = "Hectares",
    fill = "Fire"
  ) +
  theme_minimal() +
  theme(legend.position = "bottom")

Key Statistics

Code
# Top vegetation types
top_eureka <- eureka_veg |> 
  filter(MapUnit_Name != "Total Burned Area") |> 
  slice_max(veg_ha, n = 1)

top_black_rock <- black_rock_veg |> 
  filter(MapUnit_Name != "Total Burned Area") |> 
  slice_max(veg_ha, n = 1)

top_combined <- combined_veg |> slice_max(total_ha, n = 1)

# Count unique veg types
n_eureka_types <- eureka_veg |> filter(MapUnit_Name != "Total Burned Area") |> nrow()
n_black_rock_types <- black_rock_veg |> filter(MapUnit_Name != "Total Burned Area") |> nrow()
n_combined_types <- nrow(combined_veg)

Summary

  • Total Combined Area Burned: 119.2 hectares (294.6 acres)
  • Eureka Fire: 87.2 ha (73.1% of total)
  • Black Rock Fire: 32.1 ha (26.9% of total)

Vegetation Types

  • Total Vegetation Types Affected: 10
    • Eureka Fire: 7 types
    • Black Rock Fire: 7 types

Top Vegetation Types by Fire

Fire Top Vegetation Type Hectares % of Fire
Eureka Singleleaf Pinyon / Muller Oak Woodland Association 48.4 55.6%
Black Rock California Juniper / Blackbush Woodland Association 11.9 37.1%
Combined Singleleaf Pinyon / Muller Oak Woodland Association 51.7 43.4%

Report generated on 2025-12-04