Impact Functions¶
Age-specific heat-mortality impact functions translate daily ambient temperature into a conditional probability of heat-attributable death for each exposed age group. They are built in NB04 (04_impact_functions_sensitivity.ipynb).
The framework distinguishes a main deterministic family, promoted to the canonical downstream slot used by NB05–NB08, from sensitivity families written alongside it for generalisability checks. Which family is main is selected by the IF_MAIN_FAMILY environment variable (default masselot_tail).
Main family — Masselot et al. (city- and age-specific)¶
The default deterministic impact functions come from a reconstruction of the city- and age-specific temperature–mortality relationships of Masselot et al. (2023) (heat- and cold-attributable mortality across 854 European cities; Zenodo record 10288665). Because these curves are estimated per city, the main IF is genuinely local rather than a European average applied uniformly.
For each city the reconstruction produces age-differentiated mean-damage-degree curves stored as masselot_if_curves_<slug>*.json, with impact-function IDs mapped to the three age groups:
| Age group | impf_T2M ID |
|---|---|
| < 15 | 1 |
| 15–64 | 2 |
| 65+ | 3 |
High-temperature extrapolation¶
The two Masselot variants differ only in how the response is extrapolated beyond the fitted temperature range — a material choice because future climate pushes daily temperatures past the observed support:
IF_MAIN_FAMILY |
Source file | Tail extrapolation |
|---|---|---|
masselot |
masselot_if_curves_<slug>.json |
Constant tail — response held flat above the last fitted point |
masselot_tail (default) |
masselot_if_curves_<slug>_tail.json |
Log-linear tail — response continues to rise log-linearly above the last fitted point |
NB04 promotes the configured family to the canonical downstream IF slot inside the active output variant, and records the true source and extrapolation assumption in the output metadata (if_main_source: Masselot, masselot_extrapolation).
Sensitivity families — Burke et al.¶
The previous main family is retained as a sensitivity / generalisability artifact. Two Burke-based curves are written by NB04 but are not used in the main mortality calculation:
Functions are anchor-point approximations to the age-differentiated European panel of Burke et al. (2025), estimated from daily mortality and temperature records across >1,000 European locations using a two-stage meta-regression.
Polynomial (Burke) dose–response¶
A polynomial in daily mean 2 m temperature T (°C), restricted to operate above a reference temperature T_ref = 20 °C:
$$D_a(T) = \max!\left(0,\;\sum_{k=0}^{K}\beta_{a,k}(T - T_{\mathrm{ref}})^k\right)$$
where D_a(T) is excess deaths per 100,000 population per day for age group a, and β_a,k are age-group-specific coefficients fitted to the Burke (2025) Fig. 2 EU-panel anchor points. This curve is city-agnostic — its only per-city term is the baseline-mortality year scaling (identical to the Masselot-main family).
Convex power-law (Burke)¶
A convex power-law variant of the same anchors, used to probe functional-form sensitivity at the high-temperature tail.
The 65+ group has a dose–response roughly 20× steeper than the working-age group at 40 °C; the <15 group has the lowest sensitivity.
Copenhagen exception. Copenhagen's Burke sensitivity IF is built on the extreme-event (Track-B) hazard rather than the daily-mean track, shipped in
burke_if_reference/copenhagen/and loaded as-is so the existing sensitivity is preserved exactly.
Interface with CLIMADA¶
CLIMADA impact functions require mean damage degrees (mdd) in [0, 1]:
$$\mathrm{mdd}_a(T) = \mathrm{clip}!\left(\frac{D_a(T)}{100{,}000},\; 0,\; 1\right)$$
For each target year a distinct CLIMADA ImpactFuncSet is constructed, and each exposure row points to its age-group IF via the impf_T2M field.
Annual scaling¶
Impact functions are adjusted for each target year to account for two modulating factors. This scaling is applied identically to the Masselot-main and Burke-sensitivity families.
1. Baseline mortality scaling¶
Age-specific all-cause mortality rates evolve following SSP-consistent epidemiological transitions (WCDE life-table projections). NB04 derives the year factor as the median ratio of each year's stored mdd curve to the reference-year curve:
$$\mathrm{mdd}{a,y}(T) = \frac{M{\mathrm{base}}_{a,y}}{M}_a(T)$$}} \cdot \mathrm{mdd
2. Air-conditioning attenuation¶
Current AC coverage attenuates the effective heat-mortality dose (applied in NB05, not NB04):
$$\mathrm{mdd}^{\mathrm{eff}}{a,y}(T,x) = \mathrm{mdd}!\left(1 - \varepsilon_a\, c_y(x),\; 0,\; 1\right)$$}(T) \cdot \mathrm{clip
where c_y(x) = local AC coverage fraction at grid cell x in year y, and ε_a = age-specific AC efficacy.
Age-specific AC efficacy (ε_a)¶
Configured via the efficacy / efficacy_scenarios blocks in the city YAML. Central defaults:
| Age group | Conservative (sera_spain) |
Central (default) | Optimistic |
|---|---|---|---|
| < 15 | 0.10 | 0.20 | 0.30 |
| 15–64 | 0.14 | 0.30 | 0.40 |
| 65+ | 0.20 | 0.40 | 0.55 |
Sensitivity dimensions¶
| Dimension | Values examined |
|---|---|
| Impact-function family | Masselot constant-tail · Masselot log-linear-tail · Burke polynomial · Burke power-law |
| High-temperature extrapolation | Constant vs. log-linear tail |
| Reference temperature T_ref | Multiple thresholds (Burke family) |
| Anchor-point level scaling | ±50% (Burke family) |
| Mortality displacement | Range of short-term displacement fractions |
See Uncertainty Analysis for full details.
This page is maintained in the URBADAPT-HEAT wiki and synced automatically. Edit it there, not in the website repository.