# Boundaries and shapes (GeoJSON)
counties <- read_sf("https://bcdanl.github.io/data/wildfire_us_counties_2020.geojson")
states <- read_sf("https://bcdanl.github.io/data/wildfire_us_states_2020.geojson")
provinces <- read_sf("https://bcdanl.github.io/data/wildfire_canada_provinces_2021.geojson")
plumes <- read_sf("https://bcdanl.github.io/data/wildfire_hms_smoke_2023_06.geojson")
nbac <- read_sf("https://bcdanl.github.io/data/wildfire_nbac_burned_area_2023.geojson")
# Data tables (CSV)
smoke_day <- read_csv(
"https://bcdanl.github.io/data/wildfire_smoke_county_day_2023_06.csv",
col_types = cols(GEOID = col_character())
)
smoke_month <- read_csv(
"https://bcdanl.github.io/data/wildfire_smoke_county_month_2006_2025.csv",
col_types = cols(GEOID = col_character())
)
ember <- read_csv(
"https://bcdanl.github.io/data/wildfire_ember_county_day_2023_06.csv",
col_types = cols(GEOID = col_character())
)
aqs <- read_csv(
"https://bcdanl.github.io/data/wildfire_aqs_pm25_2023_06.csv",
col_types = cols(GEOID = col_character(), site_id = col_character())
)
fires <- read_csv(
"https://bcdanl.github.io/data/wildfire_firms_canada_2023.csv",
col_types = cols(acq_time = col_character())
)📌 Main takeaways
sfkeeps geometry in one column, sodplyrverbs and joins just work.- Draw in a projection with
coord_sf();st_transform()changes the data, and layers must share a CRS before a join. - A choropleth’s message depends on keys, rates, bins, and missing values.
- Layer points, plumes, and polygons, then ask whether a map is the best chart.
If you could add one more layer to the June 7 map to show who breathed the smoke, what would it be, and how could it still mislead?








































