Data and code from: Extreme heat drives opposing patterns of size-dependent survival across microhabitats
Data files
Sep 21, 2026 version files 85.30 MB
-
ctmaxdist_june25_dhsummary.csv
29.08 KB
-
ctmaxdist_june26_dhsummary.csv
34.93 KB
-
ctmaxdist_june27_dhsummary.csv
38.76 KB
-
ctmaxdist_june28_dhsummary.csv
39.12 KB
-
dryad_fulloutput.zip
10.30 MB
-
FHL_weather_station_2025update.csv
74.17 MB
-
heatbuget_functions.R
3.89 KB
-
heatmap_df_ctmaxdist_tide_height_full_output.csv
34.24 KB
-
HighMussel.csv
8.54 KB
-
LowMussel.csv
10.83 KB
-
MidMussel.csv
8.33 KB
-
new_june25_lookup.csv
35.24 KB
-
new_june26_lookup.csv
35.19 KB
-
new_june27_lookup.csv
33.21 KB
-
new_june28_lookup.csv
34.67 KB
-
README.md
12.07 KB
-
RoboMussel.csv
430.14 KB
-
run_transfer_simulations.R
9.87 KB
-
summarize_model_outputs.R
9.93 KB
-
unsteady_June25.csv
3.60 KB
-
unsteady_June26.csv
10.08 KB
-
unsteady_June27.csv
10.10 KB
-
unsteady_June28.csv
3.54 KB
Abstract
Increasingly frequent and severe heatwaves threaten the persistence of species on earth. Survival under extreme heat is often attributed to organismal traits, such as body size, yet realized heat exposure also depends on microhabitat. We show that an historic heatwave – which killed over a billion coastal organisms – drove size-dependent survival in an intertidal mussel population, favoring opposite extremes of the size distribution. The direction of size-dependent survival shifted across metre-scale habitat, with small mussels favored on the high shore but large mussels favored on the low shore. Dynamic heat flux simulations revealed that body size and microhabitat interact to determine available cooling behaviors, driving the direction of size-dependent survival. On the high shore, greater desiccation risk limited evaporative cooling, advantaging small individuals that cool rapidly via convection (wind-cooling). On the low shore, lower desiccation risk enabled prolonged evaporative cooling, advantaging large-bodied individuals with greater water stores. Climate impact projections focusing primarily on species’ traits may systematically miss predictable, generalizable trait–microhabitat interactions that drive demographic filtering under extreme heat.
Dataset DOI: 10.5061/dryad.1zcrjdg6j
Description of the data and file structure
This dataset contains code and data files that should allow replication of the workflow to conduct heat budget simulations to explain natural selection on body size on mussels following the 2021 Pacific Northwest Heat Dome. Field data were collected at Cattle Point, San Juan Island, Washington, USA.
Files and variables
File: run_transfer_simulations.R
Description: An R script to run mussel heat budget simulatoins
File: heatbuget_functions.R
Description: An R script to define functions needed to run mussel heat budget simulations
File: summarize_model_outputs.R
Description: An R script to convert to summarize simulation model outputs
File: unsteady_June25.csv
Description: Input weather and size data for running heat budget simulation. Weather data encompasses the mussels' low tide aerial exposure on 25 June, 2021. Empty cells are meant to be infilled by model runs.
Variables
- doy: Julian date
- Time_PST: Time in PST, 24 hour HMS format (e.g. 101500 = 10:15:00 PST)
- air_temp: Air temperature in degrees Celsius
- RH: Relative humidity in %
- rad_energy: Solar radiation in W/m2
- rain: Rainfall in cm
- wind_speed: Wind speed in m/s
- wind_direction: Wind direction in degrees (i.e. 0-360)
- wind_chill: Wind chill in dgrees Celsius
- hour: Hour of day (0-24)
- ground_temp: Ground temperature in degrees Celsius
- prop_diffuse_solar: Proportion of solar radiation that is diffuse
- downscaled_wind: Downscaled windspeed in m/s
- solar_zenith_angle: Solar zenith angle in radians
- cloud: % cloud cover
- group: Aggregated versus solo mussels
- evap: Boolean for whether mussel is evaporatively cooling or not, filled in by user preference when model runs
- length: Shell length in m
- height: Shell height in m
- exposure_time: Cumulative time aerially exposed to heat wave conditions in seconds
- size_category: Categorical "large" or "small", not necessary unless categories imposed
- remaining_water: Remaining water in % of initial water
- body_temp: Estimated body temperature in Celsius
- safety_margin: Distance between body temperature and Tcrit in Celsius
File: unsteady_June26.csv
Description: Input weather and size data for running heat budget simulation. Weather data encompasses the mussels' low tide aerial exposure on 26 June, 2021. Empty cells are meant to be infilled by model runs.
Variables
See unsteady_June25.csv
File: unsteady_June28.csv
Description: Input weather and size data for running heat budget simulation. Weather data encompasses the mussels' low tide aerial exposure on 28 June, 2021. Empty cells are meant to be infilled by model runs.
Variables
See unsteady_June25.csv
File: unsteady_June27.csv
Description: Input weather and size data for running heat budget simulation. Weather data encompasses the mussels' low tide aerial exposure on 27 June, 2021. Empty cells are meant to be infilled by model runs.
Variables
See unsteady_June25.csv
File: new_june25_lookup.csv
Description: Lookup index used to convert model outputs with exposure time to tidal elevation for 25 June, 2021 (generated using verified NOAA tide data).
Variables
- doy: Julian date (day of year)
- date: Calendar date (M/DD/YYYY)
- tidal_height: Tidal height (n m above Mean Lower Low Water
- length: Shell length in mm (dummy variable to convert model outputs efficiently)
- mins_exposure: Exposure time in minutes to map to tidal height
- which.row: Index row mapping exposure time to tidal height
- body_temp: Predicted body temperature in Celsius (dummy variable to convert model outputs efficiently)
- degree_hours: Degree hours (Celsius x hours) above Tcrit (dummy variable to convert model outputs efficiently)
File: new_june26_lookup.csv
Description: Lookup index used to convert model outputs with exposure time to tidal elevation for 26 June, 2021 (generated using verified NOAA tide data).
Variables
see new_june25_lookup.csv
File: new_june27_lookup.csv
Description: Lookup index used to convert model outputs with exposure time to tidal elevation for 27 June, 2021 (generated using verified NOAA tide data).
Variables
see new_june25_lookup.csv
File: new_june28_lookup.csv
Description: Lookup index used to convert model outputs with exposure time to tidal elevation for 28 June, 2021 (generated using verified NOAA tide data).
Variables
see new_june25_lookup.csv
File: FHL_weather_station_2025update.csv
Description: Data collected by the University of Washington Friday Harbor Laboratories weather station from 2006 through the end of 2024. Empty cells represent non-available data points due to instrument failure.
Variables
- Platform_ID:
- Lat: Latitude of weather station in decimal degrees
- Lon: Longitude of weather station in decimal degrees
- Year: Year
- ISO_DateTime_PST: Datetime in PST
- Date_PST: Date in PST
- Time_PST: Time in PST
- Air_Temp: Air temperature in degrees Celsius
- RH: Relative humidity in %
- Rad_PAR: Photosynthetically active radiation in W/m2
- Rad_Energy: Solar radiation in W/m2
- Rad_tot: Total radiation in W/m2
- Rain: Rainfall in cm
- Wind_speed: Windspeed in m/s
- Wind_direction: Cardinal wind direction
- Wind_Chill: Wind chill in degrees Celsius
File: RoboMussel.csv
Description: Temperature readouts from biomimetic robomussel sensors
Variables
- Datetime (UTC): Datetime in UTC
- Datetime (Local PST): Datetime in PST
- High East: Temperature in degrees Celsius for the eastern high zone robomussel
- High West: Temperature in degrees Celsius for the western high zone robomussel
- Mid East: Temperature in degrees Celsius for the eastern mid zone robomussel
- Mid West: Temperature in degrees Celsius for the western mid zone robomussel
- Low East: Temperature in degrees Celsius for the eastern low zone robomussel
- Low West: Temperature in degrees Celsius for the western low zone robomussel
File: HighMussel.csv
Description: Mortality data following the PNWHD in the high intertidal zone
Variables
- Zone: Intertidal zone (high, mid, low)
- Shell Length: Shell length in mm
- Status: Alive or dead
File: LowMussel.csv
Description: Mortality data following the PNWHD in the low intertidal zone
Variables
- Zone: Intertidal zone (high, mid, low)
- Shell Length: Shell length in mm
- Status: Alive or dead
File: MidMussel.csv
Description: Mortality data following the PNWHD in the mid intertidal zone
Variables
- Zone: Intertidal zone (high, mid, low)
- Shell Length: Shell length in mm
- Status: Alive or dead
File: ctmaxdist_june25_dhsummary.csv
Description: Model outputs of degree hours accumulated for the low tide exposure on 25 June 2021.
Variables
- doy: Julian date
- exposure: Aerial exposure time in seconds
- length: Shell length in m
- dh_mean: Mean degree hours accumulated (averaged across distribution of Tcrit) in degrees Celsius x hour
- dh_sd: Standard deviation of degree hours accumulated
- dh_sem: Standard error of the mean degree hours accumulated
- dh_q25: 25th percentile of degree hours accumulated
- dh_q75: 75th percentile of degree hours accumulated
File: ctmaxdist_june26_dhsummary.csv
Description: Model outputs of degree hours accumulated for the low tide exposure on 26 June 2021.
Variables
- see ctmaxdist_june25_dhsummary.csv
File: ctmaxdist_june27_dhsummary.csv
Description: Model outputs of degree hours accumulated for the low tide exposure on 27 June 2021.
Variables
- see ctmaxdist_june25_dhsummary.csv
File: ctmaxdist_june28_dhsummary.csv
Description: Model outputs of degree hours accumulated for the low tide exposure on 28 June 2021.
Variables
- see ctmaxdist_june25_dhsummary.csv
File: dryad_fulloutput.zip
Description: Full output of mussel heat budget simulations for each low tide exposure of the PNWHD
Variables
- doy: Julian date
- Time_PST: Time in PST
- air_temp: Air temperature in degrees Celsius
- RH: Relative humidity in %
- rad_energy: Solar radiation in W/m2
- rain: Rainfall in cm
- wind_speed: Wind speed in m/s
- wind_direction: Wind direction in degrees (i.e. 0-360)
- wind_chill: Wind chill in degrees Celsius
- hour: Hour of day (0-24)
- ground_temp: Ground temperature in degrees Celsius
- prop_diffuse_solar: Proportion of solar radiation that is diffuse
- downscaled_wind: Downscaled wind speed in m/s
- solar_zenith_angle: Solar zenith angle in radians
- cloud: Cloud cover in %
- group: "Aggregated" for bed mussels or "Solitary" for solo mussels
- evap: Boolean for whether mussel has enough water to evaporatively cool or not
- height: Mussel height in m
- exposure_time: Aerial exposure duration in seconds
- remaining_water: Water remaining in mussels' tissues in kg
- body_temp: Predicted body temperature in degrees Kelvin
- length: Shell length in m
- percent_water_lost: Water evaporated from tissues in %
- tissue_mass: Mass of mussel tissue in kg
- delta_Tb: Change in body temperature from last timestep (in degrees K)
- body_temp_C: Predicted body temperature in Celsius
- degree excess: Amount by which body temperature exceeds Tcrit in degrees Celsius
- degree_hours_step: Marginal accumulated degree hours per timestep in degrees Celsius x hour
- cumulative_degree_hours: Degree ours accumulated by the mussel to that timestep in degrees Celsius x hour
- threshold: Simulated Tcrit in degrees Celsius
File: heatmap_df_ctmaxdist_tide_height_full_output.csv
Description: Plotting-friendly summary of mussel heat budget simulation output over the duration of the PNWHD
Variables
- length: Shell length in m
- tidal_height: Tidal elevation in m above Mean Lower Low Water
- degree_hours: Mean degree hours accumulated during the PNWHD in degrees Celsius x hours (averaged across all Tcrit for each shell length x tidal elevation combination)
- dh_sem: Standard error of mean degree hours accumulated during the PNWHD
Code/software
Relationship between data files and scripts
Data scripts are listed in roughly the order necessary for the analysis to be replicated from starting with a template data file containing weather conditions and mussel sizes through generating heat budget simulation model outputs and summarizing outputs. We describe which files are used as input for each script, as well as the expected output.
- R script to define functions for heat budget simulations: "heatbudget_functions.R"
- R script run heat budget simulations: "run_transfer_simulations.R"
- Files used: "unsteady_June25.csv", "unsteady_June26.csv" etc. through June 28
- Files output: "dryad_fulloutput.zip" , "ctmaxdist_june25_dhsummary.csv", ctmaxdist_june26_dhsummary.csv" etc. through June 28
- R script to convert exposure times to tidal elevations and summarize model outputs
- Files used: "new_june25_lookup.csv", "new_june28_lookup.csv", etc. through June 28. "ctmaxdist_june25_dhsummary.csv", "ctmaxdist_june26_dhsummary.csv" etc. through June 28.
- Files output: "heatmap_df_ctmaxdist_tide_height_full_output.csv"
- Summary stats of mechanistic model output: "ToptShift_MechanisticModel_OutputSummary.csv" follow R script to shift TPCs in order to generate these outputs.
Access information
Other publicly accessible locations of the data:
- Code and minimal data needed to reproduce mussel heat budget simulations for "Constraints on behavioral thermoregulation shaped disruptive selection on body size following a record heatwave" available at https://github.com/jlitle/PNWHD-heatbudget-simulations
