Skip to content

integrated framework for heat stress assessment combining four complementary methodologies

License

Notifications You must be signed in to change notification settings

KoosdeBoer247/Hestia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image ⚠️ **WORK IN PROGRESS** - I am looking for feedback and cooperation ! [Issues](https://github.com/KoosdeBoer247/Hestia/issues)

Hestia

Integrated Heat Stress Assessment Framework: A Multi-Scale Approach to WBGT Prediction and Thermoregulatory Simulation

Version 1.0 | December 2025


Abstract

This whitepaper presents an integrated framework for heat stress assessment combining four complementary methodologies: HERA (latitude-based climate adaptation), HESTIA (Monte Carlo thermoregulatory simulation), PYROX (acclimatization-adjusted WBGT), and long-term climate projections. The framework addresses heat exposure assessment across temporal scales from hours (event forecasting) to decades (climate adaptation planning), and spatial scales from individual physiology to population-level risk. Built on validated thermoregulation models (JOS-3), standardized thermal indices (ISO 7243 WBGT), and physically-based environmental modeling (pvlib solar radiation), this framework provides a scientifically rigorous foundation for heat stress assessment in a warming climate.

Keywords: WBGT, heat stress, thermoregulation, climate adaptation, JOS-3, urban heat island, Monte Carlo simulation, acclimatization


1. Introduction

1.1 The Growing Heat Stress Challenge

Climate change is intensifying heat exposure globally, with profound implications for human health, labor productivity, and economic activity. The Intergovernmental Panel on Climate Change (IPCC) projects increases in both the frequency and intensity of extreme heat events, particularly in tropical and subtropical regions. Concurrently, urbanization concentrates vulnerable populations in areas subject to Urban Heat Island (UHI) effects, amplifying thermal stress beyond background climate trends.

Effective heat stress management requires assessment tools that:

  1. Integrate multiple environmental factors (temperature, humidity, radiation, wind)
  2. Account for human physiological responses (thermoregulation, sweating, cardiovascular strain)
  3. Consider adaptation mechanisms (acclimatization, behavioral responses, infrastructure)
  4. Span relevant temporal scales (hours to decades)
  5. Quantify uncertainty for decision-making under risk

1.2 Limitations of Current Approaches

Traditional heat stress assessment relies primarily on thermal indices (e.g., WBGT, UTCI, Heat Index) calculated from meteorological data. While valuable, these approaches have limitations:

  • Static thresholds ignore population-specific adaptation
  • Instantaneous values miss cumulative heat exposure effects
  • Generic population assumptions overlook vulnerable groups (children, elderly)
  • Limited prognostic capability for novel climate conditions
  • Uncertain applicability across geographic regions with different acclimatization levels

1.3 Framework Overview

This whitepaper presents an integrated framework comprising four complementary modules:

Module Temporal Scale Primary Function Key Innovation
PYROX 30-year climatology Acclimatization baseline Climate-adjusted WBGT thresholds
HERA 5-day forecast Event preparation Latitude-based adaptation adjustment
HESTIA Hour-by-hour Physiological simulation Monte Carlo population modeling
Projections 2050/2070 Long-term planning Statistical uncertainty quantification

The framework is designed for sequential or standalone use, depending on application requirements. For maximum accuracy, we recommend integrated deployment: PYROX establishes local acclimatization context, HERA provides adjusted forecasts, HESTIA simulates population-level physiological responses, and long-term projections inform infrastructure planning.


2. Theoretical Foundation

2.1 Wet Bulb Globe Temperature (WBGT)

WBGT is the internationally standardized metric for heat stress assessment (ISO 7243), combining effects of temperature, humidity, wind, and solar radiation.

Indoor/No Solar Load:

WBGT = 0.7 × T_wb + 0.3 × T_g

Outdoor/With Solar Load:

WBGT = 0.7 × T_wb + 0.2 × T_g + 0.1 × T_db

Where:

  • T_wb = Natural wet bulb temperature (°C)
  • T_g = Globe temperature (°C)
  • T_db = Dry bulb (air) temperature (°C)

Standardized Thresholds (ISO 7243):

  • <25°C: Low risk (general population)
  • 25-28°C: Moderate risk (caution for prolonged exposure)
  • 28-31°C: High risk (work/rest regimens required)
  • >31°C: Extreme risk (limited activity permissible)

2.2 Human Thermoregulation

The human body maintains core temperature (~37°C) through a balance of:

Heat Production:

  • Basal metabolism (~1.2 MET at rest)
  • Muscular work (up to 20+ MET during intense activity)
  • Thermogenesis

Heat Loss:

  • Evaporation (sweating, respiration) [~25-30% at rest, up to 80% during exercise]
  • Radiation [~40-50% at rest]
  • Convection [~15-20% at rest]
  • Conduction [~5% typically]

Acclimatization Adaptations (7-14 days full adaptation):

  • Earlier sweating onset (-0.5°C core temperature threshold)
  • Increased sweat rate (+50-100% maximum capacity)
  • Reduced sodium concentration in sweat
  • Increased plasma volume (+10-15%)
  • Lower resting core temperature (-0.2 to -0.3°C)
  • Improved cardiovascular stability

2.3 Climate Adaptation at Population Scale

Populations chronically exposed to heat develop multi-level adaptations:

Physiological (individual, short-term):

  • Heat acclimatization (reversible within weeks)
  • Fitness-related improvements in heat tolerance

Behavioral (individual, immediate):

  • Activity timing (avoiding peak heat)
  • Clothing adjustments
  • Hydration strategies
  • Shade-seeking

Cultural (societal, generational):

  • Architecture (passive cooling, ventilation)
  • Siesta traditions
  • Food/beverage customs
  • Work schedule norms

Infrastructural (societal, decades):

  • Urban planning (tree canopy, reflective surfaces)
  • Building standards (insulation, air conditioning)
  • Early warning systems
  • Public cooling centers

This framework addresses all levels through different modules.


3. Module 1: PYROX - Acclimatization-Adjusted WBGT

3.1 Conceptual Basis

PYROX operationalizes the concept that heat stress thresholds should reflect local climate conditions. A WBGT of 28°C represents different risk levels for:

  • Jakarta residents (tropical, year-round heat exposure)
  • Stockholm residents (temperate, seasonal heat exposure)

The framework quantifies this difference through an empirically-derived PYROX delta (Δ_PYROX).

3.2 Methodology

Step 1: Historical Climatology (30 years)

Calculate monthly mean WBGT for 1991-2020 using:

  • Historical weather data (Open-Meteo Archive API)
  • Hourly WBGT computation (full solar radiation modeling)
  • Optional UHI effect (population-dependent)

Step 2: Warm Season Identification

Identify the 3 consecutive months with highest mean WBGT:

WBGT_summer = mean(WBGT_month_i, WBGT_month_i+1, WBGT_month_i+2)

Rationale: 3-month window captures sustained heat exposure necessary for population-level acclimatization while avoiding single-month anomalies.

Step 3: Infrastructure Adjustment

Apply correction factor reflecting local adaptive capacity:

WBGT_experienced = WBGT_ref + (WBGT_summer - WBGT_ref) × CF

Where:

  • WBGT_ref = 18°C (temperate baseline)
  • CF = Correction Factor:
    • None (1.0): No infrastructure (rural, low-income)
    • Low (0.95): Basic infrastructure (fans, some AC)
    • Medium (0.85): Good infrastructure (widespread AC, building codes)
    • High (0.70): Excellent infrastructure (ubiquitous AC, passive cooling)

Step 4: PYROX Delta Calculation

Δ_PYROX = 0.10 × (WBGT_experienced - WBGT_ref)

The 0.10 coefficient implies a 10% adjustment for each degree above baseline experienced WBGT.

Step 5: Application to Forecasts

PYROX_forecast = WBGT_forecast - Δ_PYROX

Lower PYROX values indicate greater tolerance to forecasted WBGT.

3.3 Worked Example: Freetown, Sierra Leone

Historical Analysis (1980-2023):

  • Population: 1,200,000
  • UHI effect: +1.5°C average
  • Warm season: March-April-May
  • WBGT_summer = 28.5°C (with UHI)
  • Infrastructure: Low (CF = 0.95)

Calculation:

WBGT_experienced = 18 + (28.5 - 18) × 0.95 = 27.98°C
Δ_PYROX = 0.10 × (27.98 - 18) = 0.998°C ≈ 1.0°C

Interpretation: Freetown residents have developed sufficient acclimatization that a forecasted WBGT of 29°C represents similar risk to 28°C for a non-acclimatized population.

3.4 Risk Classification

PYROX Thresholds:

  • <27°C: LOW risk
  • 27-29°C: MODERATE risk
  • 29-32°C: HIGH risk
  • >32°C: EXTREME risk

3.5 Validation Requirements

Critical Need: The 0.10 adjustment coefficient and infrastructure correction factors require validation against:

  1. Heat illness incidence data (emergency department visits, hospitalizations)
  2. Labor productivity studies across climate zones
  3. Mortality data during heat waves in different regions

Proposed Validation Study:

  • Multi-city comparison (20+ cities across climate zones)
  • Correlation of PYROX-adjusted thresholds with actual heat illness rates
  • Retrospective analysis of historical heat events

4. Module 2: HERA - Latitude-Based Climate Adaptation

4.1 Scientific Rationale

Epidemiological studies (Gasparrini et al. 2015, Bobb et al. 2014) demonstrate that heat mortality thresholds vary systematically with latitude. Heat mortality increases significantly at:

  • ~35°C in Scandinavia (60°N)
  • ~40°C in Mediterranean regions (40°N)
  • ~43°C in tropical regions (15°N)

This 5-7°C gradient over 45° latitude suggests an adjustment of approximately 0.13-0.16°C per degree latitude.

4.2 HERA Adjustment Formula

Δ_latitude = 0.02 × (|baseline_lat| - |location_lat|)

Where:

  • baseline_lat = 40° (mid-latitude temperate reference)
  • location_lat = latitude of interest (use absolute value)

Adjustment is capped: -2.0°C ≤ Δ_latitude ≤ +2.0°C

Sign Convention:

  • Negative: More vulnerable (colder climate, less adapted)
  • Positive: More tolerant (warmer climate, better adapted)

4.3 Application to WBGT

WBGT_adjusted = WBGT_base - Δ_latitude

Interpretation: The adjusted WBGT represents the effective thermal stress accounting for chronic climate adaptation.

4.4 Examples

Location Latitude Δ_latitude Interpretation
Singapore 1°N +0.78°C Highly heat-adapted population
Miami 26°N +0.28°C Warm climate adaptation
Barcelona 41°N -0.02°C Near baseline (temperate)
Amsterdam 52°N -0.24°C Cold climate, more vulnerable
Stockholm 59°N -0.38°C High vulnerability to heat

4.5 Integration with UHI

HERA calculates both latitude adjustment and UHI effect:

WBGT_final = WBGT_base + UHI_effect - Δ_latitude

Example: Amsterdam Marathon (April)

  • WBGT_base = 18°C
  • UHI_effect = +1.5°C (population 800,000, moderate wind)
  • Δ_latitude = -0.24°C (52°N, more vulnerable)
WBGT_adjusted = 18 + 1.5 - (-0.24) = 19.74°C

4.6 Limitations and Uncertainties

Assumptions:

  1. Latitude is a proxy for chronic heat exposure (ignores altitude, coastal effects)
  2. Symmetric hemispheric response (untested in Southern Hemisphere)
  3. Linear relationship (may saturate at extremes)
  4. Population-average (does not capture individual variability)

Appropriate Use Cases:

  • Cross-regional event comparisons
  • Adjusting forecasts for traveling athletes/workers
  • First-order screening of geographic differences

Inappropriate Use Cases:

  • Precise individual risk assessment
  • Replacing local heat-health studies
  • Ignoring local infrastructure differences

5. Module 3: HESTIA - Physiological Monte Carlo Simulation

5.1 The JOS-3 Thermoregulation Model

HESTIA uses the Joint System 3 (JOS-3) multi-node thermoregulation model, which divides the human body into 17 segments:

Core Nodes:

  • Head, neck, chest, back, pelvis

Peripheral Nodes:

  • Upper arms, forearms, hands, thighs, legs, feet

Physiological Processes Modeled:

  1. Metabolic heat production (activity-dependent)
  2. Blood flow regulation (vasoconstriction/vasodilation)
  3. Sweating (eccrine sweat glands, evaporation efficiency)
  4. Respiration (latent and sensible heat loss)
  5. Tissue heat transfer (conduction between layers)

Validation: JOS-3 has been validated against:

  • Climate chamber experiments (controlled T/RH/wind)
  • Exercise physiology studies
  • Outdoor heat exposure data

5.2 Monte Carlo Framework

Purpose: Quantify population-level heat stress risk accounting for inter-individual variability.

Simulation Process:

  1. Generate Virtual Population (n = 1,000 - 5,000):

    • Anthropometry: Height ~ N(1.75, 0.08), Weight ~ N(70, 10)
    • Physiology: Sweat capacity ~ N(0.8, 0.15), Training status, Acclimatization
    • Psychology: Mental fatigue score ~ U(0, 1)
    • Demographics: Age (18-65), Gender (male/female)
  2. Simulate Each Individual:

    • Initialize JOS-3 with individual parameters
    • Step through hourly weather forecast (HERA-adjusted)
    • Calculate physiological responses:
      • Core temperature (T_rect)
      • Sweat rate and cumulative water loss
      • Rate of Perceived Exertion (RPE)
    • Apply behavioral responses:
      • Drinking when threshold dehydration reached
      • Stopping if RPE > 19.5 (Borg scale) or 9.5 (OMNI scale)
  3. Aggregate Results:

    • Mean trajectories (population average)
    • 5th and 95th percentiles (capturing variability)
    • Risk metrics:
      • % exceeding core temperature thresholds (38-41°C)
      • % stopping due to exhaustion
      • % requiring first aid (T_rect > 40.5°C or dehydration > 2%)

5.3 Advanced RPE Models

Adult Model (Borg 6-20 Scale):

Traditional approaches use simple linear mapping: RPE = 6 + constant × MET

HESTIA implements piecewise-linear functions reflecting non-linear effort perception:

if MET2.0:
    base_RPE = 6 + 2*(MET - 1)          # Light (6-8)
elif MET6.0:
    base_RPE = 8 + 1*(MET - 2)          # Moderate (8-12)
elif MET10.0:
    base_RPE = 12 + 0.75*(MET - 6)      # Hard (12-15)
elif MET14.0:
    base_RPE = 15 + 0.75*(MET - 10)     # Very hard (15-18)
else:
    base_RPE = 18 + min(0.4*(MET-14), 2) # Maximal (18-20)

Thermal Strain Adjustment:

if T_rect > 38.0:
    heat_penalty = (T_rect - 38.0) * 1.8 * (1 - 0.4*acclimatization)
    RPE = base_RPE + heat_penalty

Training Effect:

adjusted_RPE = RPE * (1 - 0.15*training_factor)

Motivational Modulation (±15%):

motivation_effect = (mf_score - 0.5) * 2 * (20 - RPE) * 0.15
RPE_total = RPE + motivation_effect

Pediatric Model (OMNI 0-10 Scale):

Children have:

  • Lower maximum MET capacity (10.5 for 0-10 years, 13.0 for 11-20 years)
  • Delayed thermal perception (38.2-38.3°C threshold vs. 38.0°C in adults)
  • Greater emotional influence (±25% vs. ±15% in adults)
relative_intensity = MET / max_capacity

if relative_intensity0.3:
    base_RPE = relative_intensity * 10       # Light (0-3)
elif relative_intensity0.6:
    base_RPE = 3 + (relative_intensity-0.3)*11  # Moderate (3-6.3)
elif relative_intensity0.85:
    base_RPE = 6.3 + (relative_intensity-0.6)*10.8  # Hard (6.3-9)
else:
    base_RPE = 9 + (relative_intensity-0.85)*6.7    # Maximal (9-10)

5.4 Water Balance Model

Sweat Rate Calculation (JOS-3 Output):

sweat_rate (ml/min) = weight_loss_by_evap_and_res (g/s) × 60

Individual Variability:

actual_sweat = base_sweat × sweat_factor

Where sweat_factor ~ N(0.8 + 0.3×acclimatization, 0.15)

Drinking Behavior (Ad Libitum for Adults):

  • Thirst threshold: 1.0 - 2.5% body weight loss
  • Drink volume: 120-180 ml when thirsty
  • Cooldown: Cannot drink again until no longer thirsty

Pediatric Differences:

  • Higher thirst threshold: 2.0 - 3.5% (blunted thirst response)
  • Smaller drink volume: 100-150 ml
  • "Voluntary dehydration": Children consistently underdrink

5.5 Output Metrics

Core Temperature Statistics:

  • Mean, 5th percentile, 95th percentile at each time point
  • % exceeding thresholds: 38.0, 38.5, 39.0, 39.5, 40.0, 40.5, 41.0°C
  • 95% confidence intervals for threshold exceedance

Perceived Exertion:

  • Mean RPE trajectory
  • % reaching exhaustion threshold (RPE > 17 adults, >8 children)
  • % stopping (RPE > 19.5 adults, >9.5 children)

Hydration Status:

  • Cumulative water loss (ml and % body weight)
  • % exceeding 2% dehydration (first aid criterion)

Integrated Risk:

  • % requiring medical attention (T_rect > 40.5°C OR dehydration > 2% OR RPE > 17)
  • % in "unliveable conditions" (MET > M_max per Vanos et al. 2023)

5.6 MET Threshold Analysis

Post-Simulation Question: "What is the maximum safe MET for different age/gender groups?"

Methodology:

  1. For each hour in the forecast
  2. For each age group (18-29, 30-39, 40-49, 50-59, 60-65)
  3. For each gender (male, female)
  4. For each core temperature threshold (39.0, 39.5, 40.0, 41.0°C)
  5. Binary search to find MET value resulting in T_rect = threshold

Output: Time-series plots showing permissible MET vs. hour of day, stratified by age/gender/threshold.

Application: Event organizers can determine safe activity intensity windows.


6. Module 4: Long-Term Climate Projections

6.1 Statistical Methodology

Objective: Project WBGT to 2050/2070 with quantified uncertainty.

Approach: Month-specific Ordinary Least Squares (OLS) regression.

For each month:

  1. Historical WBGT time series (1980-2023, n=44 years)

  2. Linear Regression:

    WBGT_year = β₀ + β₁ × year + ε
    

    Where ε ~ N(0, σ²)

  3. Trend Parameters:

    • Slope (β₁): °C per year
    • R²: Proportion of variance explained
    • σ: Residual standard deviation
  4. 2050 Prediction:

    WBGT_2050 = β₀ + β₁ × 2050
    
  5. 95% Prediction Interval:

    SE_pred = σ × sqrt(1 + 1/n + (2050 - mean_year)²/SS_xx)
    CI = WBGT_2050 ± t_(0.975, n-2) × SE_pred
    
  6. Exceedance Probabilities:

    For threshold T:

    P(WBGT_2050 > T) = 1 - Φ((T - WBGT_2050) / SE_pred)
    

    Where Φ is the standard normal CDF

6.2 Uncertainty Sources

Quantified:

  • Interannual variability: σ from historical data
  • Trend uncertainty: Standard error of slope
  • Prediction uncertainty: Distance from historical mean

Not Quantified (Limitations):

  • Climate model uncertainty: Linear extrapolation vs. actual physics
  • Emissions scenario uncertainty: RCP/SSP pathway dependence
  • Local feedback effects: Urbanization, land use change

Recommendation: For high-stakes decisions, use ensemble climate model projections (CMIP6) instead of statistical extrapolation.

6.3 Application: Freetown 2050

Historical Trends (1980-2023):

  • Average warming: +0.018°C/year (IPCC West Africa estimate)
  • April (hottest month): WBGT trend = +0.025°C/year

2050 Projection (April):

  • Mean: 29.8°C
  • 95% PI: [28.1, 31.5]°C
  • P(WBGT > 29°C) = 78%
  • P(WBGT > 32°C) = 12%
  • Risk category: HIGH

Annual Summary (2050):

  • 0 months LOW risk
  • 3 months MODERATE risk
  • 7 months HIGH risk
  • 2 months EXTREME risk

Infrastructure Implications: Even with full acclimatization, outdoor labor will require work/rest regimens in 9 months per year by 2050.


7. Environmental Modeling Components

7.1 Solar Radiation (pvlib)

All modules use pvlib for physically-based solar calculations:

Inputs:

  • Location (lat/lon)
  • Date/time (UTC, converted to local solar time)
  • Linke turbidity (air quality proxy: 2.5-6.0)
  • Cloud cover (0-100%)

Outputs:

  • GHI (Global Horizontal Irradiance, W/m²)
  • DNI (Direct Normal Irradiance, W/m²)
  • DHI (Diffuse Horizontal Irradiance, W/m²)
  • Solar elevation angle (degrees above horizon)
  • Solar azimuth (degrees from north)

Clear-Sky Model: Ineichen (1990s model, validated for tropical/temperate climates)

Cloud Correction:

cloud_factor = 1 - (cloud_cover / 100)
DNI_actual = DNI_clear × max(0.1, cloud_factor)
DHI_actual = DHI_clear × (1 + 0.5*(1 - cloud_factor))
GHI_actual = (DNI_actual / 4) + DHI_actual

Night Handling: GHI = 0 when solar_elevation ≤ 0°

7.2 Globe Temperature Calculation

Standard Black Globe (150mm diameter, ε=0.95):

Energy Balance Equation:

Solar_in + Radiation_in = Radiation_out + Convection_out

Mathematical Form:

α×GHI/4 + ε×σ×T_air⁴ = ε×σ×T_globe⁴ + h_c×(T_globe - T_air)

Where:

  • α = 0.95 (solar absorptivity)
  • ε = 0.95 (emissivity)
  • σ = 5.67×10⁻⁸ W/(m²·K⁴) (Stefan-Boltzmann constant)
  • h_c = 6.3 × (v^0.6) / (D^0.4) (convection coefficient, ISO 7726)
  • v = wind speed (m/s)
  • D = 0.15 m (globe diameter)

Iterative Solution (Newton-Raphson, 8-20 iterations):

  1. Initial guess: T_globe = T_air + ΔT_linear
  2. Calculate energy imbalance
  3. Update: T_globe -= imbalance / derivative
  4. Repeat until |imbalance| < 0.05 W/m²

Night Correction: When GHI = 0, account for radiative cooling to sky:

T_sky = T_air - (10 - 6×cloud_cover/100)°C

Physical Limits:

  • T_globe ≥ T_air (cannot be cooler with solar load)
  • T_globe ≤ T_air + 15-25°C (depending on wind)

7.3 Urban Heat Island (UHI) Effect

Oke's Formula (1973, validated in 100+ cities):

UHI_base = 2.0 × log₁₀(population) - 4.0

Modifiers:

wind_factor = max(0, 1 - 0.1 × wind_speed)
time_factor = 0.5 (day) / 1.0 (night)

UHI = UHI_base × wind_factor × time_factor

Physical Interpretation:

  • Population: Proxy for urban mass (heat capacity, anthropogenic emissions)
  • Wind: Reduces UHI by mixing/ventilation
  • Time: UHI strongest at night (stored heat release, less mixing)

Typical Values:

  • 100,000 population: 0-2°C
  • 500,000 population: 1-3°C
  • 1,000,000 population: 2-4°C
  • 5,000,000 population: 3-6°C

Capped: 0-8°C (or 0-5°C in PYROX Rev 08)

7.4 Wet Bulb Temperature

Pythermalcomfort Implementation (Stull 2011 formula):

from pythermalcomfort.utilities import wet_bulb_tmp

T_wb = wet_bulb_tmp(tdb=air_temp, rh=relative_humidity)

Physical Meaning: Temperature achievable by evaporative cooling at 100% humidity.

Critical for Heat Stress: Human sweating cannot cool below T_wb. When T_wb > 35°C, even fit individuals cannot maintain heat balance at rest.


8. Integrated Workflow

8.1 Recommended Sequential Use

Phase 1: Climate Baseline (PYROX)

Objective: Establish local acclimatization context
Timeline: Once per location (update every 5-10 years)
Output: PYROX delta (°C adjustment)

Phase 2: Event Forecast (HERA)

Objective: Adjust 5-7 day forecast for location
Timeline: Weekly for event planning
Output: Hourly WBGT (base, UHI-adjusted, latitude-adjusted)

Phase 3: Physiological Simulation (HESTIA)

Objective: Quantify population-level risk
Timeline: Once per event (48 hours before)
Output: Risk percentiles, core temp trajectories, safe MET limits

Phase 4: Infrastructure Planning (Projections)

Objective: Long-term adaptation strategies
Timeline: Every 5 years for policy updates
Output: 2050/2070 WBGT with uncertainty, investment priorities

8.2 Example Application: Marathon Event

Location: Singapore (1.35°N) Event: Marathon (42.2 km, ~3-4 hour duration) Date: March 15, 2025 Population: 5.7 million (major UHI effect)

Step 1: PYROX Baseline (Completed once)

  • Historical analysis: WBGT_summer = 30.2°C (March-April-May)
  • Infrastructure: High (CF = 0.70)
  • WBGT_experienced = 18 + (30.2-18)×0.70 = 26.5°C
  • Δ_PYROX = 0.10 × (26.5-18) = 0.85°C

Interpretation: Singaporeans tolerate WBGT ~0.85°C higher than non-acclimatized populations.

Step 2: HERA Forecast (7 days before)

  • Forecast WBGT (March 15, 7:00 AM): 26.8°C
  • UHI effect: +2.5°C (population 5.7M, early morning, light wind)
  • Latitude adjustment: +0.78°C (highly adapted at 1°N)
  • WBGT_adjusted = 26.8 + 2.5 - 0.78 = 28.52°C

Interpretation: Without adjustments, raw WBGT suggests "high risk" (28-31°C range). With full context:

  • PYROX delta (-0.85°C): Effective WBGT = 27.67°C → MODERATE risk
  • Latitude adjustment already applied in HERA
  • Conclusion: Event can proceed with standard precautions

Step 3: HESTIA Simulation (48 hours before)

Simulation Parameters:

  • Activity: Marathon (MET ≈ 11-13, decreasing with fatigue)
  • Participants: 5,000 virtual runners
  • Age distribution: Standard (mean 35, SD 10, range 18-65)
  • Training profile: "Advanced/Fully acclimatized" (appropriate for marathoners in tropical city)
  • Clothing: Minimal (shorts + singlet, clo = 0.1)
  • Duration: 7:00 AM - 11:00 AM (4 hours)

Results Summary:

Time Mean T_rect 95th %ile T_rect Mean RPE % Stopped % First Aid Risk Status
7:00 37.0°C 37.2°C 8.5 0% 0% LOW
8:00 37.8°C 38.5°C 12.3 0% 0% MODERATE
9:00 38.4°C 39.2°C 14.8 2% 5% HIGH
10:00 38.9°C 39.8°C 16.5 8% 15% HIGH
11:00 39.2°C 40.1°C 17.8 18% 28% EXTREME

Critical Findings:

  1. Core temperature: 95th percentile exceeds 40°C by finish (extreme risk for ~5% of participants)
  2. Perceived exertion: Mean RPE approaches exhaustion threshold (17) by hour 4
  3. Medical demand: ~28% may seek first aid (1,400 runners if 5,000 total)
  4. Vulnerable groups: Participants >50 years show 2.5x higher risk

MET Threshold Analysis:

  • Safe MET for 4 hours (to stay below 39.5°C for 95% of population):
    • Ages 18-29: MET ≤ 12.5 (moderate running pace okay)
    • Ages 30-39: MET ≤ 11.8 (marathon pace acceptable)
    • Ages 40-49: MET ≤ 10.5 (slower pace recommended)
    • Ages 50-59: MET ≤ 9.2 (jogging only)
    • Ages 60-65: MET ≤ 8.0 (brisk walking safer)

Step 4: Risk Communication & Mitigation

Pre-Event Actions:

  • ✅ Medical staff: 150 personnel (1 per 33 runners based on 28% first aid rate)
  • ✅ Hydration stations: Every 2 km (vs. standard 5 km)
  • ✅ Cooling stations: 5 locations with ice, shade, misting fans
  • ✅ Participant advisory: "High heat stress expected. Consider slower pace if >40 years old."

Real-Time Monitoring:

  • Weather updates every 30 minutes
  • If actual WBGT exceeds 30°C: Recommend slower pacing
  • If actual WBGT exceeds 32°C: Consider race curtailment for slower runners

Post-Event Analysis: Compare actual medical incidents with HESTIA predictions to validate model.


9. Limitations and Uncertainties

9.1 Framework-Wide Limitations

1. Validation Status:

  • ❌ No validation against actual heat illness data
  • ❌ No comparison with measured core temperatures during events
  • ❌ No retrospective analysis of historical heat stress incidents

Impact: Results should be treated as relative risk assessments, not absolute predictions.

Mitigation: Always use in conjunction with official meteorological warnings and public health guidelines.

2. Population Assumptions:

  • Models assume healthy adults without chronic conditions
  • Does not account for medications affecting thermoregulation (β-blockers, diuretics, antipsychotics)
  • Limited representation of extreme phenotypes (obesity, exceptional athletes)

Impact: Vulnerable individuals may experience heat stress at lower thresholds than predicted.

3. Behavioral Simplification:

  • Drinking behavior is rule-based (threshold-driven)
  • No modeling of clothing adjustments during activity
  • Limited representation of shade-seeking, pacing adjustments
  • No social influences (group dynamics, competitive pressure)

Impact: Real participants may deviate significantly from modeled behavior, either more or less conservative.

9.2 Module-Specific Limitations

PYROX

Unvalidated Parameters:

Δ_PYROX = 0.10 × (WBGT_experienced - WBGT_ref)  # 0.10 is ARBITRARY
  • The 0.10 coefficient lacks empirical justification
  • Infrastructure correction factors (0.70-1.0) are expert estimates, not data-driven
  • 3-month window definition is reasonable but not optimized

Geographic Limitations:

  • Designed for locations with clear seasonal patterns
  • May perform poorly in equatorial regions with year-round heat
  • Assumes stability of climate patterns (may fail in rapidly changing climates)

Recommendation: Validate against heat illness epidemiology in ≥10 cities across climate zones before operational use.

HERA

Latitude Adjustment Oversimplifications:

Δ_latitude = 0.02 × (|baseline_lat| - |location_lat|)  # Missing key factors

What's ignored:

  • Altitude: 40°N at sea level ≠ 40°N at 2000m elevation
  • Maritime vs. Continental: Coastal vs. inland at same latitude
  • Southern Hemisphere: Assumes perfect symmetry (not validated)
  • Microclimate effects: Urban density, vegetation, water bodies

Failure Modes:

  • High-altitude tropical cities (e.g., Quito, Ecuador at 2,850m): Would incorrectly receive "heat-adapted" adjustment despite cool climate
  • Continental interiors: May underestimate vulnerability compared to coastal regions

Fix Required:

# Proposed enhancement
Δ_latitude = 0.02 × (|baseline_lat| - |location_lat|)
Δ_altitude = -0.006 × (elevation_m / 1000)  # Cooling with altitude
Δ_total = Δ_latitude + Δ_altitude

Recommendation: Add elevation correction and validate in Southern Hemisphere before global application.

HESTIA

JOS-3 Model Limitations:

  1. Fixed body composition:

    • Assumes standard fat percentages (15% male, 25% female)
    • Reality: 10-40% range significantly affects heat storage and loss
    • No obesity modeling (increasingly critical in Western populations)
  2. Sweat capacity variation:

    • Model assumes sweat_factor ~ N(0.8, 0.15)
    • Reality: Genetic variation spans 0.5-2.5 L/hr (5x range!)
    • Ethnicity effects not captured (e.g., higher sweat rates in West African populations)
  3. Cardiovascular assumptions:

    • Assumes healthy cardiac function
    • Does not model reduced cardiac output with dehydration
    • No representation of cardiovascular diseases

Monte Carlo Limitations:

  • Assumes statistical independence of participants (ignores social clustering)
  • Convergence not formally tested (arbitrary n=1000-5000)
  • No sensitivity analysis to parameter distributions

Recommendation: Compare with alternative thermoregulation models (Fiala, Berkeley) to assess model uncertainty.

Long-Term Projections

Linear Trend Assumptions:

WBGT_2050 = β+ β₁ × 2050  # Assumes constant rate of change

Reality:

  • Climate change is accelerating (non-linear)
  • Tipping points possible (e.g., AMOC weakening)
  • Local feedbacks not captured (urbanization, deforestation)
  • Emissions scenario dependence ignored

Example of Failure: If emissions follow RCP8.5 (high) vs. RCP4.5 (moderate), 2050 temperatures could differ by 1-2°C regionally.

Recommendation: Use CMIP6 climate model ensembles for decisions with >10 year planning horizons.

9.3 Uncertainty Budget

Estimated Uncertainties (order of magnitude):

Source Typical Magnitude Assessment Method
Weather forecast error ±1-2°C (WBGT) Historical forecast verification
JOS-3 model error ±0.3-0.5°C (T_core) Literature validation studies
Population variability ±1.0°C (95% range) Monte Carlo simulation
PYROX adjustment ±0.3-0.5°C Expert judgment (UNVALIDATED)
Latitude adjustment ±0.2-0.4°C Epidemiological data scatter
Climate projection ±1-3°C (2050) CMIP6 model spread

Combined Uncertainty (root-sum-square):

σ_total ≈ √(1² + 0.4² + 1² + 0.4² + 0.3² + 2²) ≈ 2.4°C (WBGT at 2050)

Practical Implication: A projected WBGT of 29°C in 2050 has ~95% confidence interval of [24, 34]°C - a wide range spanning LOW to EXTREME risk categories.


10. Validation Framework

10.1 Required Validation Studies

Level 1: Retrospective Event Analysis (Feasible immediately)

Objective: Compare framework predictions with historical heat stress outcomes.

Methodology:

  1. Identify 20+ historical heat events (marathons, military exercises, occupational exposure) with documented outcomes
  2. Reconstruct meteorological conditions for each event
  3. Run HESTIA simulations with event-specific parameters
  4. Compare predicted vs. actual:
    • Medical incident rates
    • DNF (Did Not Finish) rates for races
    • Core temperature measurements (if available)

Success Criteria:

  • Predicted medical incident rate within ±50% of actual (e.g., if actual = 10%, predicted 5-15% acceptable)
  • Predicted vs. actual correlation r > 0.7
  • No systematic bias (over- or under-prediction)

Example Dataset:

  • 2007 Chicago Marathon (heat-related deaths)
  • 2021 Tokyo Olympics (adjusted schedules)
  • Military training heat casualties (U.S. Army data)

Level 2: Controlled Laboratory Validation (Requires partnership)

Objective: Validate JOS-3 predictions against measured physiological responses.

Methodology:

  1. Climate chamber experiments (n=30-50 subjects)
  2. Standardized protocol:
    • Temperature: 25-35°C (5°C increments)
    • Humidity: 40%, 60%, 80%
    • Activity: 3 MET levels (5, 10, 15 MET)
    • Duration: 2 hours
  3. Measurements:
    • Core temperature (ingestible pill every 1 min)
    • Skin temperature (4 sites)
    • Sweat rate (nude body weight)
    • Heart rate, RPE (every 15 min)
  4. Run HESTIA with subject-specific parameters
  5. Compare predicted vs. measured trajectories

Success Criteria:

  • T_core RMSE < 0.3°C
  • Sweat rate RMSE < 20%
  • RPE correlation r > 0.8

Level 3: Prospective Field Monitoring (Gold standard)

Objective: Real-world validation with wearable sensors.

Methodology:

  1. Deploy ingestible core temperature sensors (e.g., BodyCap e-Celsius)
  2. Monitor 50-100 participants during actual events
  3. Compare HESTIA predictions (made 48h prior) with measured outcomes
  4. Assess:
    • Individual-level prediction accuracy
    • Population-level risk distribution
    • Early warning effectiveness

Success Criteria:

  • 90% of participants within predicted 5th-95th percentile range
  • Detection of all participants requiring medical attention (sensitivity >95%)
  • Acceptable false positive rate (<20%)

10.2 Cross-Model Comparison

Benchmark Against Established Tools:

Tool Institution Validation Status Comparison Metric
WBGT Calculator NIOSH Validated (ISO 7243) Direct WBGT comparison
PHS Model ISO 7933 Validated Required sweat rate, rectal temp
UTCI ISB Commission Validated Thermal comfort classification
Heat Stress Advisor U.S. Army Field-validated Work/rest recommendations

Protocol:

  1. Select 100 diverse scenarios (temperature, humidity, activity, wind combinations)
  2. Calculate predictions from all models
  3. Compare:
    • Correlation between models
    • Divergence at extremes
    • Classification agreement (risk categories)

Expected Outcome: WBGT calculations should agree within ±0.5°C with NIOSH calculator (if not, investigate code errors).

10.3 Validation Metrics

For WBGT Predictions:

  • Bias: Mean(predicted - observed)
  • RMSE: √[Σ(predicted - observed)²/n]
  • Correlation: Pearson r between predicted and observed

For Risk Classification:

  • Sensitivity: P(predict high risk | actual incident)
  • Specificity: P(predict low risk | no incident)
  • PPV: P(actual incident | predict high risk)
  • NPV: P(no incident | predict low risk)

For Population-Level Predictions:

  • Calibration: Compare predicted 95th percentile with actual 95th percentile
  • Sharpness: Width of prediction intervals (narrower = better)
  • Coverage: % of observations within predicted intervals

11. Best Practices for Implementation

11.1 User Qualification Requirements

Minimum User Qualifications:

For HERA/PYROX (WBGT forecasting):

  • ✅ Undergraduate-level understanding of meteorology or environmental health
  • ✅ Familiarity with heat stress indices
  • ✅ Ability to interpret weather forecasts

For HESTIA (physiological simulation):

  • ✅ Graduate-level training in physiology, biometeorology, or occupational health
  • ✅ Understanding of thermoregulation principles
  • ✅ Statistical literacy (interpreting confidence intervals)
  • ✅ Familiarity with Monte Carlo methods

For Long-Term Projections:

  • ✅ Climate science background
  • ✅ Statistical modeling experience
  • ✅ Understanding of climate model limitations

11.2 Appropriate Use Cases

✅ APPROPRIATE USES:

  1. Event Planning (1-7 days ahead):

    • Determining safe start times
    • Estimating medical staff requirements
    • Planning hydration station placement
    • Communicating risk to participants
  2. Comparative Risk Assessment:

    • Comparing heat stress across locations
    • Evaluating different event dates
    • Assessing impact of timing changes
  3. Research and Education:

    • Teaching heat stress physiology
    • Exploring "what-if" scenarios
    • Hypothesis generation for field studies
  4. Policy Development:

    • Informing work/rest guidelines (with validation)
    • Climate adaptation planning (long-term projections)
    • Infrastructure investment decisions (uncertainty quantified)

❌ INAPPROPRIATE USES:

  1. Real-Time Emergency Response:

    • Use measured WBGT instead
    • Models cannot replace on-site monitoring
  2. Individual Medical Decisions:

    • Models predict population averages, not individuals
    • Cannot replace clinical judgment
  3. Legal/Regulatory Compliance (without validation):

    • Requires validated, certified tools
    • Liability concerns with unvalidated models
  4. Definitive Safety Thresholds:

    • Models provide relative risk, not absolute safety guarantees
    • Always apply safety margins

11.3 Integration with Existing Systems

Meteorological Services:

# Example: Pull forecast from national weather service
import requests

forecast = requests.get('https://api.weather.gov/gridpoints/...').json()

# Process into HERA format
hera_input = {
    'temperature': forecast['temperature']['values'],
    'humidity': forecast['relativeHumidity']['values'],
    'wind': forecast['windSpeed']['values'],
    # ... convert units, handle timezones
}

# Run HERA
hera_results = calculate_wbgt(hera_input, apply_uhi=True, latitude_adjust=True)

Event Management Systems:

# Example: Export HESTIA results to event database
hestia_results = run_simulation(...)

# Generate heat stress advisory
advisory = {
    'event_id': 'MARATHON_2025_03_15',
    'risk_level': 'HIGH',
    'medical_staff_required': int(hestia_results['percent_first_aid'] * total_participants / 100),
    'recommendations': [
        'Increase hydration stations',
        'Brief medical staff on heat illness signs',
        'Consider delayed start for participants >50 years'
    ]
}

# Send to event coordinator dashboard
event_system.post_advisory(advisory)

Public Health Surveillance:

# Example: Track prediction accuracy for model improvement
post_event_analysis = {
    'event_id': 'MARATHON_2025_03_15',
    'predicted_incidents': hestia_results['percent_first_aid'],
    'actual_incidents': 22.5,  # % from medical tent logs
    'prediction_error': 22.5 - hestia_results['percent_first_aid'],
    'lessons_learned': 'Model underpredicted by 5%. Consider lower thirst threshold for marathon-distance events.'
}

validation_database.append(post_event_analysis)

11.4 Quality Assurance Checklist

Before Using Outputs:

  • Weather forecast is <7 days old (forecast skill degrades rapidly beyond this)
  • Location coordinates are correct (verify with map)
  • Timezone is properly set (UTC vs. local time confusion is common error)
  • UHI population is realistic (census data, not metro area)
  • Activity MET value is appropriate for actual intensity
  • Clothing insulation matches expected attire
  • Simulation duration matches event duration
  • Monte Carlo sample size is adequate (n ≥ 1000 for screening, ≥ 5000 for high-stakes)

During Event:

  • Monitor actual WBGT with on-site instrument (Kestrel, QUESTemp)
  • Compare actual vs. forecast WBGT every hour
  • If deviation > 2°C, recalculate risk assessment
  • Log actual medical incidents for post-event validation

After Event:

  • Document actual outcomes (medical incidents, withdrawals)
  • Compare with predictions
  • Calculate prediction error metrics
  • Update user guidance based on lessons learned
  • Contribute data to validation database (if available)

12. Future Development Roadmap

12.1 Short-Term Enhancements (3-6 months)

Priority 1: Validation Studies

  • Retrospective analysis of 20+ historical events
  • Partnership with race organizers for prospective monitoring
  • Publication of validation results

Priority 2: Code Improvements

  • Fix identified bugs (timezone handling in PYROX, drinking behavior in HESTIA)
  • Optimize performance (parallel processing improvements)
  • Add progress indicators for long calculations
  • Implement data caching to reduce API calls

Priority 3: Documentation

  • User manual with step-by-step examples
  • Video tutorials for each module
  • FAQ based on common user questions
  • Troubleshooting guide

Priority 4: Web Interface (Prototype)

Simple web form:
- Location: [Singapore] (autocomplete)
- Date: [2025-03-15] (calendar picker)
- Activity: [Marathon] (dropdown)
- Population: [5,000] (number input)
- [Run HESTIA Simulation] (button)

Output:
- Risk summary dashboard
- Downloadable PDF report
- CSV export of full results

12.2 Medium-Term Development (6-18 months)

Scientific Enhancements:

  1. Multi-Model Ensemble:

    # Run multiple thermoregulation models
    results_jos3 = run_jos3_simulation(...)
    results_fiala = run_fiala_simulation(...)
    results_berkeley = run_berkeley_simulation(...)
    
    # Ensemble mean with uncertainty
    ensemble_mean = (results_jos3 + results_fiala + results_berkeley) / 3
    ensemble_spread = std([results_jos3, results_fiala, results_berkeley])
  2. Machine Learning Integration:

    • Train ML model on validated historical events
    • Learn optimal PYROX coefficients from data
    • Predict individual-level risk factors from demographics
  3. Advanced Behavioral Modeling:

    • Agent-based model of clothing adjustments
    • Social influence on pacing/hydration
    • Competitive pressure effects on RPE reporting
  4. Climate Projection Integration:

    • Direct ingestion of CMIP6 model outputs
    • Downscaling to local scale (10 km resolution)
    • Ensemble statistics across emission scenarios

Operational Tools:

  1. Real-Time Alerting System:

    # Pseudocode
    while event_ongoing:
        current_wbgt = measure_wbgt_sensor()
        if current_wbgt > threshold:
            send_alert_to_medical_team()
            recommend_pacing_adjustment()
        time.sleep(600)  # Check every 10 minutes
  2. Mobile Application:

    • GPS-based location awareness
    • Personalized risk assessment (user enters age, fitness, acclimatization)
    • Integration with wearable devices (heart rate, core temp sensors)
    • Push notifications for high-risk conditions
  3. API for Third-Party Integration:

    # REST API example
    POST /api/v1/hestia/simulate
    {
        "location": {"lat": 1.35, "lon": 103.82},
        "date": "2025-03-15",
        "activity_met": 11.0,
        "participants": 5000,
        "age_distribution": "standard"
    }
    
    Response:
    {
        "risk_level": "HIGH",
        "mean_core_temp": [37.0, 37.8, 38.4, ...],
        "medical_incidents_predicted": 28.5,
        "recommendations": [...]
    }

12.3 Long-Term Vision (2-5 years)

Integration into National Early Warning Systems:

  • Partnership with meteorological services (NOAA, ECMWF, national agencies)
  • Standardized heat stress forecasts alongside temperature/precipitation
  • Automated dissemination to public health authorities

Personalized Heat Stress Assessment:

  • Individual digital twin (personalized thermoregulation model)
  • Calibrated to user's physiology via wearable data
  • Real-time risk assessment based on planned activities

Global Heat Stress Atlas:

  • Pre-computed PYROX deltas for all major cities
  • Monthly risk calendars for event planning
  • Climate change impact scenarios (2030, 2050, 2070)

Policy Support Tools:

  • Cost-benefit analysis of heat mitigation interventions
  • Regulatory compliance monitoring (OSHA, ISO standards)
  • Infrastructure investment prioritization (cooling centers, green spaces)
  • Economic impact assessment (labor productivity, healthcare costs)

13. Conclusions

13.1 Summary of Capabilities

This integrated framework provides a comprehensive approach to heat stress assessment spanning:

Temporal Scales:

  • Hours: Real-time event monitoring (HERA + HESTIA)
  • Days: Event planning (HERA forecasts)
  • Years: Acclimatization context (PYROX)
  • Decades: Climate adaptation (Long-term projections)

Assessment Levels:

  • Environmental: WBGT calculations with UHI and latitude adjustments
  • Physiological: JOS-3 thermoregulation modeling
  • Psychobiological: RPE models (Borg/OMNI scales)
  • Population: Monte Carlo risk quantification

Key Innovations:

  1. PYROX: First operational framework for climate-adjusted WBGT thresholds
  2. HERA: Latitude-based adaptation quantification
  3. HESTIA: Advanced RPE models replacing linear approximations
  4. Integration: Seamless workflow across all temporal scales

13.2 Current Limitations

Critical Gaps:

  • No validation against heat illness outcomes (highest priority)
  • ❌ Arbitrary calibration constants (PYROX 0.10 coefficient, infrastructure factors)
  • ❌ Simplified behavioral models (drinking, clothing, pacing)
  • ❌ Model-dependent absolute thresholds (relative risk more reliable)

Geographic Limitations:

  • HERA: Designed for Northern Hemisphere, coastal/low-altitude locations
  • PYROX: Best for locations with clear seasonal patterns
  • Both: Untested in Southern Hemisphere

Technical Issues:

  • Performance: HESTIA simulations can take 10-30 minutes for large populations
  • Timezone handling: Minor inconsistencies between modules
  • Documentation: Insufficient end-user guidance

13.3 Validation Status and Next Steps

Current Status: Research prototype suitable for:

  • ✅ Academic research
  • ✅ Pilot studies with proper disclaimers
  • ✅ Educational demonstrations
  • ✅ Preliminary event planning (not sole decision basis)

Not Ready For (until validated):

  • ❌ Operational deployment without expert oversight
  • ❌ Regulatory compliance applications
  • ❌ High-stakes safety decisions as sole criterion
  • ❌ Commercial products without liability protection

Critical Next Steps:

  1. Immediate (1-3 months): Retrospective validation study (20+ historical events)
  2. Short-term (3-6 months): Laboratory validation of JOS-3 predictions
  3. Medium-term (6-18 months): Prospective field monitoring with wearables
  4. Long-term (2-5 years): Multi-city epidemiological validation

13.4 Recommended Use Strategy

Conservative Approach (Current Recommendation):

Use framework outputs as SCREENING TOOLS:
1. Identify potentially high-risk scenarios
2. Trigger more detailed risk assessment
3. Inform (not determine) final decisions
4. Always combine with official forecasts and guidelines
5. Apply generous safety margins
6. Monitor actual conditions during events

Future Operational Use (After Validation):

Validated framework could serve as:
1. Standard heat stress forecasting tool
2. Population-level early warning system
3. Event planning requirement (sports, military, occupational)
4. Climate adaptation policy support
5. Infrastructure investment prioritization

13.5 Contribution to Scientific Knowledge

This framework advances heat stress science by:

  1. Operationalizing known concepts:

    • Climate adaptation (epidemiological observations → PYROX methodology)
    • Latitude effects (scattered studies → systematic adjustment)
  2. Improving model realism:

    • Piecewise RPE models (vs. linear approximations)
    • Pediatric adaptations (vs. scaled adult models)
    • Population variability quantification (vs. generic thresholds)
  3. Bridging disciplinary gaps:

    • Meteorology ↔ Physiology ↔ Public Health
    • Short-term forecasting ↔ Long-term projections
    • Individual risk ↔ Population health
  4. Enabling reproducible research:

    • Open-source code
    • Documented methods
    • Validation frameworks
    • Uncertainty quantification

13.6 Final Recommendations

For Researchers:

  • Use framework to generate hypotheses about heat adaptation
  • Contribute validation data from field studies
  • Extend framework to specific populations (pregnant women, chronic diseases)
  • Integrate with other climate health models

For Practitioners:

  • Deploy in pilot studies with careful outcome monitoring
  • Compare predictions with actual incidents systematically
  • Provide feedback to improve model parameters
  • Share lessons learned with research community

For Policymakers:

  • Use long-term projections to inform adaptation planning
  • Support validation studies through research funding
  • Require heat stress assessment for major outdoor events
  • Invest in early warning system infrastructure

For the Public:

  • Understand that models are tools, not crystal balls
  • Combine model outputs with personal heat tolerance knowledge
  • Advocate for heat adaptation measures in your community
  • Participate in validation studies if opportunities arise

14. Acknowledgments and Disclaimers

14.1 Model Foundations

This framework builds on:

  • JOS-3 thermoregulation model: Developed by Japanese research consortium
  • pvlib solar radiation library: Sandia National Laboratories and community
  • pythermalcomfort: Federico Tartarini and colleagues
  • Open-Meteo weather API: Open-source meteorological data service
  • ISO 7243 WBGT standard: International Organization for Standardization

14.2 Scientific Literature

Key concepts adapted from:

  • Gasparrini et al. (2015): Heat mortality thresholds by latitude
  • Périard et al. (2015): Heat acclimatization physiology
  • Vanos et al. (2023): Survivability and liveability limits
  • Oke (1973): Urban heat island empirical formula
  • Borg (1982): Rate of perceived exertion scale development
  • Utter et al. (2002): OMNI pediatric RPE scale validation

14.3 Important Disclaimers

SOFTWARE DISCLAIMER:

This software is provided "as is" without warranty of any kind, express or 
implied, including but not limited to warranties of merchantability, fitness 
for a particular purpose, and non-infringement. The authors and contributors 
are not liable for any damages arising from the use of this software.

MEDICAL DISCLAIMER:

This framework is not a medical device and does not provide medical advice. 
Outputs should not be used for diagnosis or treatment of heat illness. 
Always consult qualified medical professionals for health-related decisions.

VALIDATION DISCLAIMER:

This framework has not been validated against real-world heat illness outcomes. 
Predictions represent model-based estimates with significant uncertainty. Users 
must apply appropriate safety margins and not rely solely on model outputs for 
safety-critical decisions.

LIABILITY LIMITATION:

Users assume all risk associated with use of this framework. The developers, 
contributors, and affiliated institutions bear no responsibility for outcomes 
resulting from use or misuse of these tools. Always follow official guidelines 
from meteorological services, public health authorities, and regulatory agencies.

14.4 How to Cite This Work

Whitepaper Citation:

[Author Name]. (2024). Integrated Heat Stress Assessment Framework: 
A Multi-Scale Approach to WBGT Prediction and Thermoregulatory Simulation. 
Technical Whitepaper, Version 1.0. Retrieved from [URL/DOI]

Software Citation (if/when released):

[Author Name]. (2024). HERA/HESTIA/PYROX: Integrated Heat Stress Assessment 
Tools (Version 1.0) [Software]. GitHub. https://github.com/[username]/[repo]

14.5 License Recommendation

Suggested Open-Source License: MIT License

Rationale:

  • Permits commercial and academic use
  • Requires attribution
  • Limits liability
  • Encourages adoption and improvement
  • Compatible with most institutional policies

Alternative: Apache 2.0 (includes patent protection)


15. References

15.1 Core Scientific Literature

Heat Stress Physiology:

  1. Périard, J.D., Racinais, S., & Sawka, M.N. (2015). Adaptations and mechanisms of human heat acclimation: Applications for competitive athletes and sports. Scandinavian Journal of Medicine & Science in Sports, 25(S1), 20-38.

  2. Taylor, N.A. (2014). Human heat adaptation. Comprehensive Physiology, 4(1), 325-365.

  3. Racinais, S., et al. (2015). Consensus recommendations on training and competing in the heat. Scandinavian Journal of Medicine & Science in Sports, 25(S1), 6-19.

Heat Health Epidemiology: 4. Gasparrini, A., et al. (2015). Mortality risk attributable to high and low ambient temperature: A multicountry observational study. The Lancet, 386(9991), 369-375.

  1. Bobb, J.F., et al. (2014). Heat-related mortality and adaptation to heat in the United States. Environmental Health Perspectives, 122(8), 811-816.

  2. Vanos, J.K., et al. (2023). Quantifying the health and safety effects of climate change: A comprehensive framework. Nature Communications [Full citation pending publication].

Pediatric Thermoregulation: 7. Falk, B., & Dotan, R. (2008). Children's thermoregulation during exercise in the heat: A revisit. Applied Physiology, Nutrition, and Metabolism, 33(2), 420-427.

  1. Bar-Or, O., & Rowland, T.W. (2004). Pediatric Exercise Medicine. Human Kinetics.

Perceived Exertion: 9. Borg, G. (1982). Psychophysical bases of perceived exertion. Medicine & Science in Sports & Exercise, 14(5), 377-381.

  1. Utter, A.C., et al. (2002). Children's OMNI Scale of Perceived Exertion: Walking/running evaluation. Medicine & Science in Sports & Exercise, 34(1), 139-144.

15.2 Standards and Guidelines

  1. ISO 7243:2017. Ergonomics of the thermal environment — Assessment of heat stress using the WBGT (wet bulb globe temperature) index. International Organization for Standardization.

  2. ISO 7933:2004. Ergonomics of the thermal environment — Analytical determination and interpretation of heat stress using calculation of the predicted heat strain. International Organization for Standardization.

  3. ISO 7726:1998. Ergonomics of the thermal environment — Instruments for measuring physical quantities. International Organization for Standardization.

  4. ACGIH (2023). Threshold Limit Values for Chemical Substances and Physical Agents. American Conference of Governmental Industrial Hygienists.

15.3 Urban Climate

  1. Oke, T.R. (1973). City size and the urban heat island. Atmospheric Environment, 7(8), 769-779.

  2. Oke, T.R., Mills, G., Christen, A., & Voogt, J.A. (2017). Urban Climates. Cambridge University Press.

15.4 Thermoregulation Models

  1. Fiala, D., Havenith, G., Bröde, P., Kampmann, B., & Jendritzky, G. (2012). UTCI-Fiala multi-node model of human heat transfer and temperature regulation. International Journal of Biometeorology, 56(3), 429-441.

  2. Tanabe, S., Kobayashi, K., Nakano, J., Ozeki, Y., & Konishi, M. (2002). Evaluation of thermal comfort using combined multi-node thermoregulation (65MN) and radiation models and computational fluid dynamics (CFD). Energy and Buildings, 34(6), 637-646.

  3. Stolwijk, J.A.J. (1971). A mathematical model of physiological temperature regulation in man. NASA Contractor Report CR-1855.

15.5 Solar Radiation

  1. Ineichen, P., & Perez, R. (2002). A new airmass independent formulation for the Linke turbidity coefficient. Solar Energy, 73(3), 151-157.

  2. Holmgren, W.F., Hansen, C.W., & Mikofski, M.A. (2018). pvlib python: A python package for modeling solar energy systems. Journal of Open Source Software, 3(29), 884.

15.6 Climate Projections

  1. IPCC (2021). Climate Change 2021: The Physical Science Basis. Contribution of Working Group I to the Sixth Assessment Report. Cambridge University Press.

  2. O'Neill, B.C., et al. (2016). The Scenario Model Intercomparison Project (ScenarioMIP) for CMIP6. Geoscientific Model Development, 9(9), 3461-3482.

15.7 Software and Tools

  1. Tartarini, F., et al. (2020). pythermalcomfort: A Python package for thermal comfort research. SoftwareX, 12, 100578.

  2. Open-Meteo (2023). Open-Meteo Weather API Documentation. Retrieved from https://open-meteo.com/

  3. McKinney, W. (2010). Data structures for statistical computing in Python. Proceedings of the 9th Python in Science Conference, 56-61.


Appendix A: Installation and Setup

A.1 System Requirements

Minimum:

  • Python 3.8 or higher
  • 8 GB RAM (for HESTIA with n=1000)
  • 2 GB disk space
  • Internet connection (for weather data)

Recommended:

  • Python 3.10+
  • 16 GB RAM (for HESTIA with n=5000)
  • Multi-core CPU (for parallel processing)
  • SSD for faster I/O

A.2 Installation Steps

# 1. Clone repository (once available)
git clone https://github.com/[username]/thermal-stress-framework.git
cd thermal-stress-framework

# 2. Create virtual environment (recommended)
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# 3. Install dependencies
pip install -r requirements.txt

# 4. Verify installation
python -c "from pythermalcomfort.models import JOS3; print('Success!')"

A.3 Dependencies (requirements.txt)

# Core scientific computing
numpy>=1.21.0
pandas>=1.3.0
scipy>=1.7.0

# Thermal comfort models
pythermalcomfort>=2.8.0

# Solar radiation
pvlib>=0.9.0

# Time zone handling
pytz>=2021.1
timezonefinder>=6.0.0

# Weather data
requests>=2.26.0

# Statistics
statsmodels>=0.13.0

# Visualization
matplotlib>=3.4.0
seaborn>=0.11.0

# Progress bars
tqdm>=4.62.0

# Terminal colors
colorama>=0.4.4

# Excel export
openpyxl>=3.0.0

# Parallel processing (built-in, but ensure multiprocessing module available)

A.4 Quick Start Example

# Example 1: Calculate WBGT for a location (HERA)
from hera import get_lat_lon, calculate_and_export_wbgt

lat, lon = get_lat_lon("Singapore")
calculate_and_export_wbgt(
    city_name="Singapore",
    lat=lat,
    lon=lon,
    apply_uhi=True,
    population=5700000,
    apply_latitude_adj=True
)
# Output: Excel file with 5-day WBGT forecast

# Example 2: Run event simulation (HESTIA)
from hestia import run_monte_carlo_adult

results, stats, df = run_monte_carlo_adult(
    interp_data=weather_data,
    lat=lat,
    lon=lon,
    met_value=11.0,  # Marathon
    clo_value=0.1,   # Minimal clothing
    n_simulations=5000,
    age_configuration="standard",
    training_factor=0.75,
    acclimatization_factor=1.0
)
# Output: Population risk statistics and visualizations

A.5 Troubleshooting Common Issues

Issue 1: pvlib version conflicts

# Error: "module 'pvlib.solarposition' has no attribute 'get_solarposition'"
# Fix: Update pvlib to >=0.9.0
pip install --upgrade pvlib>=0.9.0

Issue 2: Timezone database outdated

# Error: "Unknown timezone 'Africa/Freetown'"
# Fix: Update timezonefinder
pip install --upgrade timezonefinder

Issue 3: JOS-3 memory error

# Error: MemoryError during large simulations
# Fix: Reduce number of simulations or increase RAM
# Alternatively, use parallel processing with smaller batches

Issue 4: API rate limiting

# Error: 429 Too Many Requests from Open-Meteo
# Fix: Implement caching or reduce request frequency
# Solution is built into code (@lru_cache decorators)

Appendix B: Code Examples

B.1 Custom WBGT Calculation

import numpy as np
from pythermalcomfort.utilities import wet_bulb_tmp
from pythermalcomfort.models import wbgt

def calculate_custom_wbgt(temperature, humidity, wind, 
                         solar_radiation, latitude, apply_uhi=False):
    """
    Calculate WBGT with optional adjustments.
    
    Parameters:
    -----------
    temperature : float
        Air temperature (°C)
    humidity : float
        Relative humidity (%)
    wind : float
        Wind speed at 10m (m/s)
    solar_radiation : float
        Global horizontal irradiance (W/m²)
    latitude : float
        Location latitude (degrees)
    apply_uhi : bool
        Whether to apply UHI correction
        
    Returns:
    --------
    dict with keys: wbgt_base, wbgt_adjusted, latitude_adj, uhi_effect
    """
    
    # Calculate wet bulb temperature
    t_wb = wet_bulb_tmp(tdb=temperature, rh=humidity)
    
    # Calculate globe temperature (simplified for example)
    # In production, use full iterative method from main scripts
    t_g = temperature + (solar_radiation / 800) * 15  # Approximation
    
    # Calculate base WBGT
    with_solar = solar_radiation > 10
    if with_solar:
        wbgt_result = wbgt(twb=t_wb, tg=t_g, tdb=temperature, 
                          with_solar_load=True, wind_speed=wind)
    else:
        wbgt_result = wbgt(twb=t_wb, tg=t_g, with_solar_load=False)
    
    wbgt_base = float(wbgt_result.wbgt)
    
    # Apply adjustments
    latitude_adj = 0.02 * (40 - abs(latitude))
    latitude_adj = np.clip(latitude_adj, -2.0, 2.0)
    
    uhi_effect = 0.0
    if apply_uhi:
        # Simplified UHI (needs population parameter in production)
        uhi_effect = 1.5  # Placeholder
    
    wbgt_adjusted = wbgt_base + uhi_effect - latitude_adj
    
    return {
        'wbgt_base': wbgt_base,
        'wbgt_adjusted': wbgt_adjusted,
        'latitude_adj': latitude_adj,
        'uhi_effect': uhi_effect,
        't_wb': t_wb,
        't_g': t_g
    }

# Usage example
result = calculate_custom_wbgt(
    temperature=32,
    humidity=70,
    wind=3.0,
    solar_radiation=600,
    latitude=1.35,  # Singapore
    apply_uhi=True
)

print(f"WBGT (base): {result['wbgt_base']:.1f}°C")
print(f"WBGT (adjusted): {result['wbgt_adjusted']:.1f}°C")
print(f"Latitude adjustment: {result['latitude_adj']:+.2f}°C")
print(f"UHI effect: {result['uhi_effect']:+.2f}°C")

B.2 Risk Classification Function

def classify_heat_risk(wbgt, activity_met, age, acclimatization_level):
    """
    Classify heat stress risk for an individual.
    
    Parameters:
    -----------
    wbgt : float
        Wet Bulb Globe Temperature (°C)
    activity_met : float
        Metabolic rate (MET)
    age : int
        Age in years
    acclimatization_level : str
        'none', 'partial', or 'full'
        
    Returns:
    --------
    dict with risk_level, recommendations, and details
    """
    
    # Adjust thresholds based on acclimatization
    accl_adjustments = {'none': 0, 'partial': 1.0, 'full': 2.0}
    adjustment = accl_adjustments.get(acclimatization_level, 0)
    
    # Adjust for age vulnerability
    if age > 65:
        adjustment -= 1.0
    elif age < 18:
        adjustment -= 0.5
    
    # Adjust for activity level
    if activity_met > 8:
        adjustment -= 1.0
    
    # Calculate effective WBGT
    wbgt_effective = wbgt - adjustment
    
    # Classify risk
    if wbgt_effective < 25:
        risk = 'LOW'
        color = 'green'
        recommendations = ['Proceed with normal activities', 
                         'Maintain standard hydration']
    elif wbgt_effective < 28:
        risk = 'MODERATE'
        color = 'yellow'
        recommendations = ['Monitor for heat stress symptoms',
                         'Increase hydration frequency',
                         'Take breaks in shade every 30-45 min']
    elif wbgt_effective < 31:
        risk = 'HIGH'
        color = 'orange'
        recommendations = ['Implement work/rest cycles (45min/15min)',
                         'Drink 200-250ml every 20 minutes',
                         'Monitor core temperature if possible',
                         'Medical staff on standby']
    else:
        risk = 'EXTREME'
        color = 'red'
        recommendations = ['Reduce activity intensity by 50%',
                         'Work/rest cycles (20min/40min)',
                         'Consider postponing non-essential activities',
                         'Medical monitoring required']
    
    return {
        'risk_level': risk,
        'risk_color': color,
        'wbgt_raw': wbgt,
        'wbgt_effective': wbgt_effective,
        'adjustment': adjustment,
        'recommendations': recommendations
    }

# Usage example
risk_assessment = classify_heat_risk(
    wbgt=29.5,
    activity_met=11.0,  # Marathon
    age=35,
    acclimatization_level='full'
)

print(f"Risk Level: {risk_assessment['risk_level']}")
print(f"Effective WBGT: {risk_assessment['wbgt_effective']:.1f}°C")
print("\nRecommendations:")
for rec in risk_assessment['recommendations']:
    print(f"  • {rec}")

B.3 Batch Processing Multiple Locations

import pandas as pd
from concurrent.futures import ThreadPoolExecutor

def process_location(location_data):
    """Process single location (for parallel execution)."""
    city_name = location_data['city']
    lat = location_data['lat']
    lon = location_data['lon']
    
    try:
        # Run HERA calculation
        from hera import calculate_and_export_wbgt
        calculate_and_export_wbgt(
            city_name=city_name,
            lat=lat,
            lon=lon,
            apply_uhi=True,
            population=location_data.get('population', 500000),
            apply_latitude_adj=True
        )
        return {'city': city_name, 'status': 'success'}
    except Exception as e:
        return {'city': city_name, 'status': 'failed', 'error': str(e)}

# Define locations
locations = [
    {'city': 'Singapore', 'lat': 1.35, 'lon': 103.82, 'population': 5700000},
    {'city': 'Dubai', 'lat': 25.20, 'lon': 55.27, 'population': 3400000},
    {'city': 'Miami', 'lat': 25.76, 'lon': -80.19, 'population': 5600000},
    {'city': 'Bangkok', 'lat': 13.75, 'lon': 100.50, 'population': 10700000},
    {'city': 'Cairo', 'lat': 30.04, 'lon': 31.24, 'population': 20900000},
]

# Process in parallel
with ThreadPoolExecutor(max_workers=3) as executor:
    results = list(executor.map(process_location, locations))

# Summary
results_df = pd.DataFrame(results)
print("\nProcessing Summary:")
print(results_df)
print(f"\nSuccessful: {(results_df['status']=='success').sum()}/{len(results)}")

Appendix C: Validation Protocol Template

C.1 Retrospective Event Analysis Protocol

Objective: Validate HESTIA predictions against historical heat stress outcomes.

Materials Needed:

  • Historical weather data for event location/date
  • Event details (start time, duration, activity type, participant count)
  • Outcome data (medical incidents, DNF rates, core temperature measurements if available)

Step-by-Step Protocol:

  1. Event Selection (minimum n=20):

    • Include range of WBGT conditions (20-35°C)
    • Mix of event types (races, military, occupational)
    • Geographic diversity
    • Well-documented outcomes
  2. Data Collection:

    event_data = {
        'event_id': 'MARATHON_CHICAGO_2007',
        'location': {'lat': 41.88, 'lon': -87.63, 'city': 'Chicago'},
        'date': '2007-10-07',
        'start_time': '08:00',
        'duration_hours': 5.0,
        'activity': {'type': 'marathon', 'met': 11.0},
        'participants': {'total': 45000, 'age_dist': 'standard'},
        'weather_observed': {
            'temperature': [18, 22, 27, 29, 30],  # Hourly
            'humidity': [75, 70, 60, 55, 50],
            'wind': [2.5, 2.8, 3.0, 3.5, 4.0],
            'solar': [300, 500, 700, 800, 750]
        },
        'outcomes': {
            'medical_incidents': 300,  # Number seeking medical attention
            'hospitalizations': 49,
            'dnf': 10.7,  # % Did Not Finish
            'fatalities': 1
        }
    }
  3. Run Simulation:

    # Reconstruct conditions
    weather_data = create_weather_input(event_data['weather_observed'])
    
    # Run HESTIA
    results, stats, df = run_monte_carlo_adult(
        interp_data=weather_data,
        lat=event_data['location']['lat'],
        lon=event_data['location']['lon'],
        met_value=event_data['activity']['met'],
        clo_value=0.1,  # Typical race attire
        n_simulations=5000,
        age_configuration='standard',
        training_factor=0.75,  # Assume marathon-trained
        acclimatization_factor=0.5  # Assume partial (fall race)
    )
  4. Extract Predictions:

    predictions = {
        'medical_incidents_pct': stats['percent_ehbo'][-1],  # At finish time
        'mean_core_temp': stats['mean_t_rect'][-1],
        'high_risk_pct': (stats['upper_t_rect'] > 40.0).sum() / len(stats['upper_t_rect']) * 100
    }
    
    predicted_incidents = predictions['medical_incidents_pct'] * event_data['participants']['total'] / 100
  5. Compare Results:

    actual = event_data['outcomes']['medical_incidents']
    predicted = predicted_incidents
    
    error = predicted - actual
    error_pct = (error / actual) * 100
    
    validation_result = {
        'event_id': event_data['event_id'],
        'actual_incidents': actual,
        'predicted_incidents': predicted,
        'absolute_error': error,
        'percent_error': error_pct,
        'within_50pct': abs(error_pct) < 50
    }
  6. Aggregate Across Events:

    # After processing all events
    validation_df = pd.DataFrame(all_validation_results)
    
    metrics = {
        'mean_error': validation_df['absolute_error'].mean(),
        'rmse': np.sqrt((validation_df['absolute_error']**2).mean()),
        'bias': validation_df['predicted_incidents'].mean() / validation_df['actual_incidents'].mean() - 1,
        'correlation': validation_df[['actual_incidents', 'predicted_incidents']].corr().iloc[0,1],
        'within_50pct_rate': validation_df['within_50pct'].mean()
    }
    
    print("Validation Metrics:")
    print(f"  RMSE: {metrics['rmse']:.1f} incidents")
    print(f"  Bias: {metrics['bias']*100:+.1f}%")
    print(f"  Correlation: {metrics['correlation']:.3f}")
    print(f"  Within ±50%: {metrics['within_50pct_rate']*100:.0f}% of events")
  7. Acceptance Criteria:

    • ✅ Correlation r > 0.7
    • ✅ Within ±50% for ≥70% of events
    • ✅ No systematic bias (|bias| < 20%)
    • ✅ RMSE < 30% of mean incident rate

C.2 Sensitivity Analysis Template

def sensitivity_analysis(base_params, parameter_name, value_range):
    """
    Test how outputs change with parameter variations.
    
    Example: How sensitive are predictions to sweat_factor uncertainty?
    """
    results = []
    
    for value in value_range:
        # Modify parameter
        test_params = base_
 

About

integrated framework for heat stress assessment combining four complementary methodologies

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors