Zone Z7 against the natural reference Z1: mean mid-morning summer land-surface temperature, – to –.
From a summer heat gap to a cooling plan
Scroll through the scenes, or press autoplay. The maps and charts on the stage are redrawn from the paper's tables and from the analysis outputs on the project's compute cluster, and each scene names its source.
A semi-arid metropolis on the Highveld
The study sits on the Highveld plateau, about – m above sea level, with a mean annual temperature near – °C and about – mm of rain a year.
Gauteng
Two metropolitan municipalities, the City of Johannesburg and Ekurhuleni, together hold about – million residents.
A cross-municipal core
The study area spans – wards. The analysed core is the footprint of one surface-temperature tile, with about – % of its valid pixels in Johannesburg and – % in Ekurhuleni, and holds about – million residents.
Grassland and built-up land dominate
ESA WorldCover gives the study area – % grassland and – % built-up land, with tree cover and cropland at – % each. Heat is read on a common – m grid of – × – cells inside the dashed tile.
Six layers, three roles
The zones are learned from a –-band AlphaEarth satellite embedding and – surface-morphology layers. Census income is kept out of the model and used only to stratify the results.
Temperature is withheld
Land-surface temperature never enters the clustering. It is read back afterwards as the outcome, from – gap-filled daily mid-morning scenes, – to –. The embedding is not temperature-blind, though: its own satellite inputs include Landsat's thermal band.
Seven zones emerge from the surface
A Gaussian mixture over the embedding and morphology, reduced to – principal components, yields – zones. Ordered by summer temperature they run from the open, vegetated reference Z1 to the densest fabric Z7.
The poorest, densest zone runs hottest
Summer surface temperature climbs zone by zone to – °C above the natural reference in Z7, where mean household income is about R– thousand a year, against R– thousand in the leafy suburb Z2.
Ward by ward
At the native ward support, – wards lie at least – % inside the temperature tile: – in Johannesburg and – in Ekurhuleni.
Poorer wards run hotter
Each ward leaves the map and lands at its income and its summer temperature. Spearman ρ = –, population-weighted r = –, and every census wealth indicator points the same way.
About – °C between the poorest and richest fifth
The poorest ward-income quintile ran about – °C hotter than the richest. On all – intersecting wards the correlation is weaker (ρ = –): partly covered wards dilute the coupling rather than create it.
Ten summers against one reference
Each frame is one summer's surface-heat gap against the frozen natural reference. The built minus reference gap ran from – °C in – to – °C in –.
The gap widened from below
Every zone cooled slightly in absolute terms (reference –, built – to – °C per year, none distinguishable from zero), but the moisture-sensitive grassland reference cooled fastest. Differenced against it, the gap widened by – to – °C per year in every built zone.
Judged on blocks the model never saw
Blocks the size of the variogram range (about – km) are grouped into – contiguous super-folds, each held out in turn behind an exclusion buffer, so the evaluation rests on about – independent units rather than on correlated pixels.
The embedding out-predicts engineered indices
Out-of-block R² for the summer gap: – with the AlphaEarth embedding against – for enriched engineered indices and – for zone means. Naive random cross-validation would have reported –. Trained on Johannesburg alone, the model scores R² – on unseen Ekurhuleni.
Vegetation structure leads the named factors
Among the named surface features, vegetation structure and its decadal change carry the largest share of the summer gap (mean |SHAP| – °C, ahead of – °C for the embedding). Its contribution is largest in the poorest income quintile, about – °C, and near zero in the richest. That is the lever the next scene tests: greening.
How much cooling greening could buy
A donor-substitution emulator compares each built pixel with real, greener pixels of the same built form. Implied summer cooling averages – °C per greened pixel (median – °C).
Most cooling per greened pixel where incomes are lowest
Implied cooling per greened pixel is largest in the two poorest income quintiles (– and – °C, against – to – °C in the others). But those quintiles hold far fewer candidate pixels (– and –, against – and – in the two richest), so most of the total recoverable cooling lies in wealthier areas, the trade-off the ward allocation manages.
And where it would not
About – % of built pixels (– % of those with a greener same-form donor) show no cooling association after matching, most often in the wealthy commercial core (– % of Z5), pointing to reflective surfaces and shading there instead.
The hottest wards are the poorest, and the most efficient to green
Across the – covered wards with greening candidates, cooling per greened pixel tracks the ward heat gap (ρ –) and falls with income (ρ –). Efficiency and equity point the same way, through heat.
Targeting concentrates the cooling
Greening the most cooling-efficient – % of buildable area delivers about – % of the achievable cooling, against – % under spatially blind allocation.
Equity is nearly free
Raising the poorest tercile's share of delivered cooling from – % to – % costs about – points of cooling (– % to – %).
Where greening is the right instrument, and where it is not
The policy Cooling Priority Index and the mechanistic allocation agree in broad rank (ρ ≈ –). – weight-invariant priority wards are all poor and hot, and – of them are also among the most greening-responsive; – high-priority wards in the dense south-west show near-zero recoverable cooling, where reflective roofs and shading are the better lever.