Where is heat most dangerous to people — and is that the same as where it is simply hottest?
A heat-hazard map for ten neighbourhoods of a synthetic, hot-humid, lower-income city, bridged
honestly to a socio-economic heat-risk indicator — with the places it helps, and the
places it shouldn't be trusted, both on the table.
10neighbourhoods modelled with SUEWS
≠hottest place is not highest-risk
×7.7more dangerous heat under +2.5 °C
−73%dangerous hours cut by cool roofs + greening
In two sentences. In this hot-humid city, the hottest air is in the leafy,
near-empty periphery — but the danger to people is concentrated in three dense informal
settlements where many vulnerable residents have little defence against the heat. A warmer future
makes the same places far more dangerous, and low-cost cool-roof + greening measures meaningfully
help — but only if we judge them by real heat avoided, not by a relative score.
The headline finding.Jade Gardens — a low-rise green periphery —
runs the hottest air of all ten, yet sits at the bottom of the risk ranking. The highest
risk is Kampong Lama, a dense informal settlement that is only the
third-hottest. Heat is a hazard; risk is what that hazard does to exposed,
vulnerable people — and here the two point in opposite directions.
The city at a glance
Each tile is a neighbourhood, shaded by its heat-risk index (bright = high
risk). The four dense hotspot settlements carry almost all of the people-risk; the hottest
place of all, Jade Gardens (☀), sits at zero risk because almost nobody lives there.
1. Hottest ≠ highest-risk
Hazard and risk are different questions. One is about the air; the other is about the people in it.
Horizontal = how hot (hours above 35 °C). Vertical = how dangerous to people (risk index).
The hottest place (Jade Gardens, far right) is at the floor of risk; the highest-risk place
(Kampong Lama, top) is only mid-pack on heat.
Why the divergence? It comes down to urban form:
Why Jade Gardens is hottest: it is smooth and low-rise. Aerodynamically smooth
surfaces mix the air weakly, so daytime heat builds up near the ground — but almost nobody
lives there (80 people per hectare, the lowest), with more air-conditioning and less
deprivation. High hazard, near-zero exposure → low risk.
Why Kampong Lama is highest-risk: a dense informal settlement — still genuinely
hot, but packed with 300 people per hectare, only 8% air-conditioning
access, 62% outdoor workers and high deprivation. High on all three pillars of risk at once.
2. The risk table
Risk = Hazard × Exposure × Vulnerability, each scored 0–1 across the ten neighbourhoods and
combined as a (deliberately cautious) geometric mean — a near-zero in any one pillar pulls risk down.
The three pillars. Kampong Lama (top) scores high on all three; Jade Gardens has high
hazard but its exposure bar is zero, which collapses its risk.
Rank
Neighbourhood
Type
Danger hrs (T2>35°C)
Hazard
Exposure
Vuln.
Risk index
1
Kampong Lama
hotspot
42
0.67
1.00
0.95
1.00
2
Dhobi Lines
hotspot
26
0.40
1.00
0.92
0.83
3
Fuzhou Lanes
hotspot
22
0.33
1.00
0.97
0.80
4
Mlima Moto
hotspot
5
0.05
1.00
1.00
0.43
5
Lusitano Square
core
5
0.05
0.77
0.09
0.18
6
Victoria Exchange
core
5
0.05
0.77
0.06
0.15
7=
Jade Gardens
refuge
62
1.00
0.00
0.32
0.00
7=
Taman Melati
refuge
47
0.75
0.00
0.36
0.00
7=
Serendib Rise
refuge
26
0.40
0.00
0.27
0.00
7=
Zheng He Towers
core
2
0.00
0.77
0.00
0.00
Take-away for action: the four hotspot settlements carry
essentially all of the people-risk. The hottest refuge areas are a
heat-management issue, not a life-safety priority — provided they stay sparsely populated.
3. What humidity and a +2.5 °C future change
Humidity makes everywhere more dangerous — but doesn't change who's worst
A dry-bulb 35 °C threshold understates danger in a city at ~81% humidity. Re-scoring the hazard with
a humid-heat measure (wet-bulb temperature) shows every neighbourhood endures 90–265 hours of
dangerous humid heat — far more than the dry-bulb count suggests.
Counting humid heat (wet-bulb > 28 °C, orange) reveals far more dangerous hours than
dry-bulb alone (blue) — in every neighbourhood. Humidity raises the danger everywhere
together, so the ranking is unchanged; the absolute danger is much higher.
One lesson we learned the hard way: switching to a humid-heat metric without also
raising the threshold makes it "dangerous almost always" and destroys the signal — the metric and its
threshold must move together.
+2.5 °C warming multiplies the hazard ~8-fold
Dangerous-heat hours, present vs a +2.5 °C hotter future. City-wide the total rises from
242 to 1,861 hours (×7.7). The ordering barely moves — warming hits everywhere.
Under the warmer future the people-risk ranking is stable (only a minor 2↔3 swap),
because uniform warming raises hazard everywhere while exposure and vulnerability are unchanged. The
message is not "the map reshuffles" — it's "the same places get far more dangerous, and the
highest-risk settlements stay highest-risk."
4. A targeted intervention: cool roofs + street greening
We tested one concrete action on the three highest-risk settlements: brighten the roofs and
pavements (reflect more sun) and convert some paved/bare ground to grass and trees (add evaporative cooling).
Cool roofs + greening cut dangerous-heat hours by 60–73% in the three treated settlements.
It works on the physics. Reflective surfaces cut absorbed sunlight, greening adds
evaporative cooling, and together the sensible heating of the air falls by about a quarter —
which is what cools the street. Dangerous-heat hours drop 42→17
(Kampong Lama, −60%), 26→9 (Dhobi Lines, −65%) and
22→6 (Fuzhou Lanes, −73%).
A scoring caution worth shouting about. The relative risk index barely moves
after this intervention — Kampong Lama stays pinned at 1.00 — even though its real danger fell 60%. That
is an artefact of scoring everything relative to the worst neighbourhood: improving the worst
case simply re-baselines the scale. Judge interventions by the absolute hazard (hours of
dangerous heat avoided), not by a relative index designed to always keep someone at 1.0.
5. Where this bridge holds — and where it breaks
The honest part. This pipeline is a decision aid, not an oracle.
✓ Where it holds
The headline is robust. Hottest ≠ highest-risk survives every humid-heat metric
and the +2.5 °C future — a structural feature of the city, not an artefact of one threshold.
Relative ranking of the hotspots is stable and physically explainable (form →
mixing → heat; density + low coping → risk).
The physics of the intervention is sound and traceable to the surface energy
balance (less absorbed sun, more evaporation, less sensible heat).
Direction of travel — who to prioritise, and that warming worsens the same
places — is trustworthy.
✗ Where it breaks
It is an environmental hazard, not a health outcome. Hours above a temperature
are a proxy for danger, not a prediction of illness or death.
The socio-economic layer is synthetic. Read ranks, never absolute
numbers; these are plausible magnitudes, not survey data for a real place.
Relative (min–max) scaling doesn't transfer and hides progress — it inflates the
apparent risk of untouched areas when the worst case improves, and pins sparsely-populated places
at zero risk no matter how hot they get.
District averages hide individuals — the most exposed people inside a "low-risk"
area are invisible here.
The future is a pseudo-warming stress test, not a downscaled projection; and the
greening benefit assumes the vegetation is kept watered.
6. So what should a city do?
Target the three informal settlements first. Kampong Lama, Dhobi Lines and Fuzhou
Lanes are where dangerous heat meets dense, vulnerable, under-protected populations — they hold
essentially all of the people-risk.
Deploy cool roofs + street greening there. A low-cost, proven lever: 60–73% fewer
dangerous-heat hours in our runs, working through reflected sunlight and evaporative cooling.
Plan for the future now. +2.5 °C multiplies dangerous heat ~8-fold in the
same places — adaptation is not optional.
Measure success in heat avoided, not in a relative score, and never read a "0"
risk for a sparsely-populated area as "safe."
Hazard: dangerous-heat hours = hours with hourly-mean 2 m air temperature
(T2) above 35 °C, after a 14-day spin-up. Humid variant:
wet-bulb (Stull 2011) above 28 °C from the model's own T2+RH2.
Risk: UNDRR-style hazard × exposure × vulnerability, each min–max
scaled to 0–1 and combined as a geometric mean (per risk_bridge.py).
Intervention: roof albedo 0.20→0.60, pavement 0.20→0.40; grass +0.10 and trees
+0.07 of land cover (from paved/bare), on gridiv 4/5/9 only. Config validated before running.
Source & data: config uda-city.yml, bridge
risk_bridge.py / caveats risk_bridge.md, scenario
uda-city-intervention.yml — all in this repository. UDA-city is
synthetic (realistic structure, not a real place); the socio-economic layer is
synthetic — read ranks, not absolute values.