Plate VI · Thermal remote sensing · Phoenix, July 2023
Heat in a desert city
Most of what we know about who gets the hottest streets comes from temperate and Mediterranean cities. Does the pattern hold in a desert, where the land around the city runs hotter than the city itself?
- Census tracts analysed
- 788
- Built-up surface and heat
- ρ = +0.48
- Vulnerability and vegetation
- ρ = −0.44
- Vulnerability and heat
- r = −0.03 p = 0.41
In July 2023 Phoenix spent 31 days in a row at or above 110 °F, from 30 June to 31 July, breaking the 1974 record of 18. It peaked at 119 °F on the 20th and the 25th, and the month averaged 102.7 °F, the hottest month any US city has recorded. Landsat 9 passed over at 11:03 on 24 July, one day before the second peak, with 4% cloud. Landsat only revisits every eight days, so the date was chosen from what existed, not picked freely.
From that one scene I derived three surfaces: land surface temperature from the thermal band, a vegetation index (NDVI) from red and near infrared, and a built-up index (NDBI) from near and shortwave infrared. Then I set them against the CDC's Social Vulnerability Index, a 0 to 1 percentile that ranks every tract on poverty, housing, language, age, disability and more.
One detail that silently breaks NDVI
Landsat stores reflectance as scaled integers: multiply by 0.0000275, then subtract 0.2. It is tempting to skip that step for a ratio, on the reasoning that the scaling cancels. The multiplier does. The offset doesn't: it cancels in the numerator but doubles in the denominator, so NDVI computed on stored values is simply wrong, with no error to warn you. The thermal band needed the same care, a scale of 0.00341802 and an offset of 149 K, which I took from the scene's own metadata file rather than a tutorial.
Pixels into tracts
A pixel has a temperature but no poverty rate. A tract has a poverty rate but holds thousands of pixels. The bridge is zonal statistics: average every pixel inside each tract, for each of the three surfaces, and join the three tables back to the tracts on their census code. The result is one row per tract carrying heat, vegetation, built surface and vulnerability.
Of 1,765 Arizona tracts, 1,009 are in Maricopa County and 969 sit entirely inside the Landsat scene. Requiring full containment means every average describes the whole tract, not whatever corner had data. Removing cloud and the 17 tracts with no vulnerability score leaves 788.
The result that was backwards
My first cloud mask dropped every pixel below 10 °C, since nothing in the Sonoran Desert is that cold at midday. The correlations came out with two impossible signs: vegetation appeared to make the ground hotter, and more vulnerable neighbourhoods appeared cooler.
Instead of reporting that, I went and looked at the tracts. Several showed 15 to 17 °C on bare desert. Cloud tops sit near −40 °C, so the threshold caught the clouds, but the shadows they cast sit at 15 to 30 °C and walked straight through. Landsat's QA band flags cloud and shadow for every pixel as bit-packed codes; decoded, 21824 is clear land, 55052 and 22280 are cloud, 23888 and 23826 are shadow. Of the 154 tracts that read below 45 °C, 140 were mostly cloud or shadow by the QA flags. The final mask uses the QA flags plus a plausibility floor for the few shadows the QA band missed, and both signs flipped back.
| Relationship | Threshold only | QA mask |
|---|---|---|
| Heat and vegetation | +0.48 | −0.18 |
| Heat and vulnerability | −0.37 | −0.03 |
| Heat and built-up surface | +0.05 | +0.30 |
A result that confirms what you expect gets less scrutiny than one that doesn't. That is exactly backwards, and here the wrong answer happened to be the surprising one. Had shadows pushed the signs the other way, the first pass would have looked fine.
What the corrected data say
I report both Pearson, which assumes a straight line, and Spearman, which only ranks and so copes with the skew in these data. Where they disagree in size, Spearman is the better guide.
| Relationship | Pearson r | Spearman ρ | p (Pearson) |
|---|---|---|---|
| Heat and built-up surface | +0.302 | +0.483 | < 0.001 |
| Heat and vegetation | −0.184 | −0.392 | < 0.001 |
| Vulnerability and vegetation | −0.409 | −0.444 | < 0.001 |
| Vulnerability and built-up surface | +0.096 | +0.151 | 0.007 |
| Vulnerability and heat | −0.029 | +0.152 | 0.41 |
Vegetation follows vulnerability. Heat doesn't.
Built-up surface is the strongest driver of surface temperature (ρ = +0.48), and vegetation cools (ρ = −0.39), both in the direction the physics predicts and in line with the study I followed in Seville. The clearest social finding is that more vulnerable tracts have markedly less vegetation (ρ = −0.44).
The most interesting result is the one that didn't appear. Across 788 tracts, vulnerability does not predict surface temperature: Pearson r = −0.03, p = 0.41. The rank correlation is weakly positive (ρ = +0.15), but it explains about 2% of the variation. In Seville the same comparison gave 0.35 during a heatwave. And the 110 tracts that are both highly vulnerable and least green average 60.1 °C against a study mean of 61.1 °C, slightly cooler, not hotter.
My explanation is a hypothesis, and I haven't tested it. Much of Phoenix's affluent growth sits on the desert edge, in Scottsdale, Paradise Valley and north Phoenix, where bare ground runs extremely hot in daylight. In a Mediterranean city, money buys trees and distance from the hot core; in a desert, the periphery is the hot part. Checking whether vulnerability falls with distance from the centre would settle it.
Limits
- One date. Nothing here generalises across seasons or years.
- Surface temperature isn't air temperature, and 11:03 is mid-morning, not the daily peak. The values haven't been checked against ground stations or NASA JPL's published Phoenix maps for July 2023.
- The thermal sensor resolves 100 m, resampled to 30 m, so each pixel is an average of a larger patch than it looks.
- Tract averages erase what happens inside a tract: a shaded park next to a hot lot averages to something mild.
- The vulnerability index comes from 2018–2022 survey estimates; the image is from 2023.
Next
- Night-time surface temperature from ECOSTRESS. Phoenix had 16 nights in a row that never dropped below 90 °F, and in Seville the day and night patterns reversed.
- A second, ordinary summer date to compare against the heatwave.
- The distance-from-centre test for the null result.