Introduction

The body temperatures organisms experience in their local environments can differ dramatically from air temperatures due to their habitat, which is often near the ground far below standard temperature estimates, and additionally environmental factors, chiefly heating from solar radiation. Here we use “biophysical” models which balance heat exchanges between the organism and its environment to predict body temperatures (also called operative temperatures). We apply the body temperature estimates to identify potential areas of thermal stress.
The app includes models for ectotherms including lizards, grasshoppers, salamanders, butterflies, snails, and mussels across the United States. You can map body temperatures for three time periods:
Recent nowcast: this option maps hourly data for the most recent data available, which is one to a few days before the current day.
Nearterm forecast: this option allows you to select a day and time period within the next week to map.
Future forecast: You can select hourly projections for future time periods including 2050, 2070, and 2090.
The biophysical models and environmental data are described in more detail below.
Environmental Data
Recent nowcast: This activity uses weather data to predict organismal body temperatures across the US. We use the
getGridMET
function from the climateR package to obtain gridded data of wind speed, daily maximum, and minimum temperatures from the most recent day available. The maximum and minimum temperatures are converted to hourly temperatures by
TrenchR::diurnal_temp_variation_sine
function and are used to calculate operative temperatures.
Nearterm forecast: For near term forecasts, we use the
CFSv2 forecasts from NOAA . The downloaded GRIB files are processed in R using the
raster::brick
function, and the appropriate layer is used for mapping. The chosen layer is cropped in the shape of the continental United States using a shapefile obtained from
Info GIS MAP.com . The data are automatically updated at 2 am (PDT) every day for an accurate forecast.
Future forecast: For the future weather data, we obtain monthly average surface air temperatures from the
CMIP5 multimodel ensemble . This gridded projection is based on the Community Climate System Model version 4 assuming representative concentration pathway (RCP) 2.6, 6.0, and 8.5, which correspond to "Optimistic", "Intermediate", and "Pessimistic" estimates respectively. These projections represent a greenhouse gas concentration trajectory, all of which could happen in the future. The projection pathways for each scenario are depicted in the graph on the right. RCP2.6 is a stringent mitigation pathway in which radiative forcing peaks at approximately 3 W/m
2 before 2100 and then declines. It is characterized by substantial net negative emissions by 2100. RCP6.0 is an intermediate stabilization pathway in which radiative forcing is stabilized at approximately 6.0 W/m
2 after 2100. RCP8.5 is not the most realistic projection and is often regarded as the worst-case climate change scenario. A nearly ice-free Arctic Ocean in September is likely for RCP8.5 before mid-century.

To map operative temperatures in 2050, 2070, and 2090, we calculate future air temperatures using some "anomaly". This anomaly is an offset value of how much warmer the air temperature is predicted to be in the future years compared to 2020. To accomplish this, we use the CMIP5 model to obtain gridded temperature data for 2020, 2050, 2070, and 2090. For example, the temperature difference between 2020 and 2050 is the anomaly for 2050, which is added to the temperature obtained through gridMET (see figure on the right). The reason why we don't just use the data given by the CMIP5 model (the top boxes in the figure) is that the temperatures are merely a prediction compared to the gridMET data, which are facts. We also can't directly compare gridMET data from 2020 (bottom left box) and CMIP5 data in 2050 (top right box) since one is air temperature while the other is surface temperature.
Other environmental data: Elevation data are obtained from the NOAA ETOPO1 Global Relief Model, grid-registered ETOPO1 Ice Surface. Zenith angle was calculated using
TrenchR::zenith_angle
function for each point on the map by the longitude, latitude and the day of the year. For any functions that require ground temperatures, they are assumed to be 5 °C warmer than the air temperatures. Surface albedo is set to be 0.25 for grass, 0.1 for dark soil and 0.75 for snow covered surface as listed in Campbell & Norman (1997). Hourly radiation is estimated as 900 W/m
2, 500 W/m
2, and 200 W/m
2 for a clear day, a partly sunny day, and a cloudy day respectively.
Biophysical models
We use different biophysical models for each animal, all of which are from the
TrenchR package.
Lizards: Lizard body temperatures are calculated based on the
Tb_lizard
function. Lizard solar absorptivity and thermal absoptivity are set to 0.9 and 0.965, respectively. View factors between the surface of the lizard and diffuse solar radiation, reflected solar radiation, atmospheric radiation and ground thermal radiation are all 0.5, assuming that the lizards are flat on the ground for simplification.
Grasshoppers: Grasshopper body temperatures are computed using the
Tb_grasshopper
function. The clearness index is approximated to 0.75 for a clear day, 0.5 for a partly sunny day and 0.25 for a cloudy day. We approximate that a quarter of a grasshopper's surface area is in contact with the ground at any given time.
Salamanders: The
Tb_salamander_humid
function is used for the calculations.
The internal skin resistance is set to 4 s/cm and boundary layer resistance to 1 s/cm.
A saturation vapor pressure of 2.5 kPa and an actual vapor pressure of 2.0 kPa are used for this model.
Butterflies: For butterflies, we use the
Tb_butterfly
function.
Surface temperatures in the shade are assumed to be 5 °C cooler than the air temperature. Diffuse solar radiation flux is assumed to be half of the direct solar radiation flux regardless of the weather.
Snails: Snails body temperatures are obtained from the
Tb_snail
function.
The fraction of the sky covered by the cloud is approximated to 0 on a clear day, 0.5 on a partly sunny day and 1 on a cloudy day. Snails water loss rate is ignored for this model. GridMET has no information on the wind sensor height, and therefore is set to 1 m above ground for this model.
Mussels:
Tb_mussel
function is used to calculate mussel body temperatures.
Diffuse fraction, which is the proportion of solar radiation that is diffuse, is defined as 0.1 on a clear day, 0.5 on a partly sunny day and 1 on a cloudy day. When gaping, we assume a constant mass loss rate of 5% of initial body mass per hour.