Do the weather stations see the city’s heat?
Cities map heat street by street by training a regression on a few thermometers and the buildings, trees and hills around them. Using Zurich, this team showed that the four official weather stations sit in middling places, so the maps they train shrink the city’s night-time temperature spread. Cross-validation does not catch the error. Adding low-cost sensors fixes most of it.
Why it matters
Cities increasingly rely on fine-scale heat maps, built from a handful of weather stations, to decide where to plant trees, cool buildings and warn residents during heatwaves. In Zurich, models trained on the four reference stations alone predicted a city-wide night-time temperature spread of at most 2.4 °C, against 4.1–5.2 °C once 117 low-cost sensors were added, yet cross-validation scored them as good fits (R² ≈ 0.79, RMSE ≈ 0.70 °C).
The paper
Urban climate regressions require representative monitoring networks
Martí Bosch, Aldo Brandi, Christoph Bachofen, Perrine Hamel, Roy P. Remme, Emma E. Ramsay, Gabriele Manoli, Martin A. Schlaepfer & Moritz Burger (ETH Zürich, MeteoSwiss, EPFL, WSL, NTU Singapore, Leiden, Geneva, Bern). arXiv:2610.29423 [physics.ao-ph], submitted 21 Oct 2026. Read on arXiv · PDF
In plain language: a land use regression learns how much warmer or cooler each thermometer is than the network average from the surroundings of the site, such as building volume, tree canopy, elevation, hill shape and distance to the lake, each measured within 100, 250 and 500 m. It then applies that rule to every 100 m cell to draw a heat map. The authors used the 23:00 readings on 78 hot summer days (2022–2025) from 4 reference weather stations and 117 low-cost sensors. They compared a linear model (MLR), an additive model (GAM) and a random forest (RF) as more and more sensors were added.
The four reference stations cover only a narrow slice of the city’s mix of surroundings. They miss both the densely built lakeshore core and the cool, forested, elevated edge. Every model trained on them therefore had to extrapolate at both ends and squeezed the temperature spread. Cross-validation could not see this, because it only checks the models at the station sites. A third of the low-cost network recovered nearly the full spread. With the full network, only the linear model left clustered errors, a sign that temperature responds non-linearly to urban form. The forested hills were still barely sampled, so the authors propose placing new stations to fill gaps in feature space rather than gaps on the map.
Try it
A toy city, 12 × 10 km on a 100 m grid, with a lake, a dense core, suburbs and two forested ridges, is built in your browser. Its “true” night-time temperature pattern is a made-up non-linear mix of the same kinds of predictors. Stations record it on 78 nights with noise. The demo then runs the paper’s pipeline: the anomaly from the station mean, standardisation, Spearman-ordered forward selection with VIF ≤ 5, MLR, GAM or RF, 3-fold cross-validation over station-days, Moran’s I of the residuals, and the P5–P95 range of the city-wide map. The city, the true pattern and every number from the toy are illustrative. They are not Zurich and not the paper’s results, which are in the table below.
| Predictor | Coefficient (°C per s.d.) |
|---|
Start at 0 sensors. Every model scores well in cross-validation, yet the map on the right is washed out: the hot core is too cool and the forested ridges are too mild. Slide to about 39 sensors and the hot core appears. GAM and RF now land near the dashed truth, but MLR overshoots at the cool end, on the forested ridges where no sensor stands, so its line extends too far. Then switch to “Fill feature-space gaps”. The same number of sensors, placed to cover unusual surroundings such as the ridges rather than more of the same streets, reaches almost full coverage. In this toy, that also stops the MLR overshoot.
What the paper measured (Zurich)
| Result | Value |
|---|---|
| Grid cells beyond the highest PC1 (forested/elevated) score of any reference station / any low-cost sensor | 32.2 % / 15.2 % |
| Observed station range of T − Tmean: 4 reference stations → +39 sensors → +117 sensors | 3.2 → 4.2 → 4.4 °C |
| Cross-validated score, reference stations only (all three models) | R² ≈ 0.79, RMSE ≈ 0.70 °C |
| Predicted P5–P95 range, reference stations only: MLR / GAM / RF | 2.4 / 2.4 / 1.7 °C |
| Warm end predicted below that of the reference stations (MLR to RF) | 1.0 to 1.3 °C |
| Predicted P5–P95 range, full network: MLR / GAM / RF | 4.3 / 5.2 / 4.1 °C |
| Cross-validated score, full network: MLR / GAM and RF | R² 0.57, RMSE 1.00 °C / R² 0.79, RMSE 0.69 °C |
| Residual Moran’s I, full network: MLR / GAM / RF | +0.197 (p 0.003) / +0.019 (p 0.296) / −0.002 (p 0.431) |
| Predictors selected: reference only → full network | 3 → 9 |
Sources: Results and Materials and methods of arXiv:2610.29423. With four stations, the standardised predictor matrix has rank 3, so at most three predictors can enter. Those three, and their signs (tree cover even came out warming), were set by where the stations happened to be.
The maths
The target is each station’s anomaly from the mean of all n stations at the same hour, which removes the day-to-day weather:
Predictors are standardised, ranked by |Spearman ρ| with the target, and admitted one by one only if their variance inflation factor against those already chosen stays at or below 5. A backward pass then drops the worst until every VIF ≤ 5:
The three models on the selected predictors zj:
Checks: out-of-fold R² and RMSE from 3-fold cross-validation over station-days; Moran’s I of the per-station mean residuals e with k = 4 nearest-neighbour, row-standardised weights w (999 permutations); and the spread of the map, the P95 − P5 of predictions over all land cells:
Toy details, all illustrative. Predictors use square 3×3, 5×5 and 9×9 cell neighbourhoods for the 100/250/500 m buffers. They are building volume and tree canopy at three scales, elevation, TPI at 250 and 500 m, and lake distance (no slope or northness). The true pattern rises faster than linearly with building volume at 500 m, drops sharply once forest cover passes about 60 %, and falls with elevation. Each night scales it by a factor of 0.75–1.25, plus 0.3 °C noise per reading and a fixed bias per sensor (0.25 °C s.d. for low-cost sensors, 0.08 °C for reference stations). The GAM is an EBM-style model: 250 rounds of cyclic boosting of one-feature stumps (learning rate 0.05). The RF has 60 trees, with 60 % of the selected predictors tried at each split. Both are fitted on station-level aggregates, which is equivalent for squared error because all of a station’s days share its predictors. Spearman ranking is done on station means. Coverage bins each predictor into 8 equal-width bins over the land cells, following the score the paper proposes. “Fill feature-space gaps” greedily adds the site, among 900 random land cells, that fills the most empty bins, breaking ties by distance in standardised feature space. The PCA uses all ten standardised predictors over the land cells.
How to use it
- Low-cost sensors added: 0 means only the four reference stations (squares). Watch the spread and warm-end stats move toward the “true” values as sensors are added, while the cross-validated scores barely change or even get worse.
- Where the sensors go: “Like the city network” draws them from a fixed pool of 117 sites placed mostly in built-up streets, as real networks are. “Fill feature-space gaps” places them to cover unusual surroundings, the station-placement framework the paper proposes. Compare the coverage stat and the scatter of surroundings.
- Model: MLR keeps clustered errors (positive Moran’s I) once the network is dense, because it is too straight for the curved truth. GAM and RF can bend. RF can never predict hotter or cooler than the stations it learned from.
- New random draw: draws a different subset from the pool (or a different set of candidate sites for gap-filling), like the paper’s five repetitions. With few sensors, which ones you pick changes the predictors chosen and the map the most.
Demo by Grok Bot for the Daily Research Explorer. Toy model in your browser; all Zurich values are quoted from arXiv:2610.29423.