Urban Heat x Canopy | Treejectory
  • Story
  • Explorers
  • Press Kit
  • Virtual Interview
  • Methods

Methods & Data Sources

This analysis was produced in a single week (June 2026) to support public understanding during the current European heatwave. If you spot errors or have suggestions, please flag them — they are genuinely welcomed. Contact: thami.croeser@gmail.com

Data pipeline

All analysis was conducted using open-source tools (Python, GDAL, GeoPandas) on publicly available datasets. The pipeline:

  1. Tree canopy — Meta/WRI Global Canopy Height dataset (1m resolution, 2020), accessed via Google Earth Engine. Filtered to trees ≥3m height. Binary mask derived at 1m resolution. Nodata value set to 255 to prevent false-positive canopy counts at tile edges — a common issue with the Meta/WRI product where nodata pixels default to 0 and get counted as “no tree” rather than “no data”. Mosaics were computed per city from overlapping GEE export tiles, taking the maximum value at each pixel to handle tile overlaps.

  2. Building footprints — IGN BD TOPO v3 for French cities (accessed via WFS), Overture Maps Foundation for all other cities. Building height, type, and dwelling count from the same source where available. Overture Maps buildings were filtered to exclude non-building features (fences, walls, ruins) using the class field.

  3. Canopy per building — For each building, a 60m buffer was computed and the percentage of tree canopy pixels (≥3m height) within that buffer was extracted using exactextract (raster-vector zonal statistics). The 60m radius reflects the distance at which cooling from tree canopy has been shown to remain significant (Ziter et al. 2019; Speak et al. 2020). The canopy_pct_60m metric is the ratio of canopy pixels to total valid pixels within the buffer.

  4. Surface temperature — Landsat 9 Collection 2, Level 2 (ST_B10 thermal band), converted from scaled DN to degrees Celsius using the collection’s scale factor and offset. Scenes were manually selected during documented heatwave events for each city (see scene table below). Cloud-free scenes were prioritised; partial cloud cover was masked using the QA_PIXEL band. The temperature was then zonal-averaged per building footprint and per hex cell.

  5. Income / deprivation — Country-specific indices at the finest available spatial resolution. Joined to buildings via spatial overlay. Variables were normalised to quartiles within each city to enable cross-country comparison despite different index methodologies.

  6. Cool spots — Identified as hex cells (300m resolution) meeting three simultaneous criteria: mean canopy ≥20% within 60m, surface temperature below the city’s 25th percentile, and residential density ≥8 dwellings/ha. These represent dense urban areas that maintain adequate canopy and are measurably cooler.

Notable processing decisions

  • 60m buffer, not building footprint — Canopy was measured within a 60m radius of each building, not within the building parcel. This captures street trees, small parks, and neighbouring gardens that contribute to localised cooling. The buffer distance is based on empirical evidence from thermal transect studies showing measurable cooling within ~50-80m of canopy clusters.

  • Binary canopy threshold (≥3m) — Rather than using continuous canopy height, a binary mask was applied at ≥3m. This excludes shrubs and hedges that provide some shade but do not create the sustained canopy cooling effect documented in the literature. The 3m threshold follows the Meta/WRI product’s intended use case.

  • Nodata handling — The Meta/WRI canopy height product uses 0 for both “no tree” and nodata in some tiles. To prevent edge artifacts, all tiles were pre-processed to set nodata to 255. This was validated by visual inspection against aerial imagery at tile boundaries.

  • Dwelling count estimation — For cities where dwelling counts were not available in the building footprints (most non-French cities), dwellings were estimated from building area and number of stories using a standard floor area per dwelling assumption (80m² for residential, adjusted by country).

  • LST scene selection — Heatwave scenes were selected manually, prioritising clear-sky days during documented heat events. UK cities use May 2026 scenes (the most recent available warm-weather pass); all other cities use 2024 summer heatwave scenes. Lyon uses a 2022 scene due to persistent cloud cover in 2024.

Canopy validation

The 1m Meta/WRI canopy product was validated against independently derived 20cm resolution vector canopy data for Berlin and London. The 20cm product was generated from high-resolution aerial imagery using automated tree detection, providing a higher-fidelity reference for canopy area estimation.

Berlin validation

Berlin canopy validation

London validation

London canopy validation

Key finding: The 1m Meta/WRI product underestimates canopy area by approximately 5–15 percentage points compared to the 20cm reference, particularly in the 15–50% canopy range. This is expected — the coarser resolution misses narrow tree crowns, street trees, and small garden trees that are resolved at 20cm. At very high canopy density (>60%), the products converge or the 1m product slightly overestimates due to crown overlap effects.

Implication for this analysis: The canopy deficit figures presented here are likely conservative. If anything, there is slightly more canopy than the 1m product detects — meaning the true cooling gap may be marginally smaller, but the overwhelming finding (>90% of buildings below threshold) holds robustly. The 30% threshold applied in this analysis corresponds to roughly 35–40% in the 20cm product, still well within the range identified in the cooling literature.

Threshold justification

The 30% canopy threshold is based on peer-reviewed evidence:

  • Ziter et al. (2019) found that cooling effects of urban tree canopy become significant above approximately 25–30% coverage within the local vicinity.
  • The 60m buffer distance corresponds to the neighbourhood-scale at which canopy-mediated cooling is detectable in surface and air temperature measurements.
  • This is a conservative threshold — some studies suggest 40% is needed for optimal cooling.

Landsat scene table

City Scene date Notes
Marseille 2024-08-05 Summer heatwave
Rome 2024-07-17 Summer heatwave
Naples 2024-08-11 Summer heatwave
Madrid 2024-07-23 Summer heatwave
Milan 2024-07-15 Summer heatwave
Toulouse 2024-08-10 Summer heatwave
Nice 2024-07-29 Summer heatwave
Barcelona 2024-07-27 Summer heatwave
Munich 2024-07-31 Summer heatwave
Berlin 2024-09-01 Partial scene coverage (south only)
Cologne 2024-08-28 Summer heatwave
Lyon 2022-08-07 2022 scene (cloud cover in 2024)
Paris 2024-08-26 Summer heatwave
Lisbon 2024-09-14 Late summer
Athens 2024-08-03 Summer heatwave
London 2026-05-26 May 2026 (most recent clear pass)
Porto 2024-09-14 Late summer
Thessaloniki 2024-07-16 Summer heatwave
Bristol 2026-05-24 May 2026
Birmingham 2026-05-24 May 2026
Sevilla 2024-07-23 LST raster does not cover city boundary; excluded from LST analysis

Data sources

Input Source Resolution Vintage Access
Tree canopy height Meta/WRI Global Canopy Height 1m 2020 Google Earth Engine
Tree mask (≥3m) Derived from canopy height 1m 2020 —
Hi-res validation canopy Aerial-derived vector canopy 20cm 2024 Berlin Senate / Ordnance Survey
Building footprints (FR) IGN BD TOPO v3 Vector 2024 data.gouv.fr WFS
Building footprints (other) Overture Maps Foundation Vector 2024 overturemaps.org
Land surface temperature Landsat 9 C2L2 ST_B10 30m 2022–2026 USGS EarthExplorer
Income (FR) INSEE Filosofi 200m grid 2019 insee.fr
Deprivation (UK) IMD 2025 LSOA 2025 gov.uk
Deprivation (DE) GISD Municipality 2020 rki.de

Software

Python 3.12, GeoPandas, Rasterio, exactextract, GDAL, NumPy, Matplotlib, contextily, Leaflet.js. Site built with Quarto. Maps rendered using CartoDB Positron basemap tiles.

Code availability

Analysis code is available at github.com/tcroeser/EU_Heatwave_Explorers.

Citation

Croeser, T., Rahman, M. & Ghosh, A. (2026). Urban forestry for cooler cities faces three critical hurdles. Nature Communications. [DOI pending]

Unpublished spatial analysis by Dr Thami Croeser, June 2026. This analysis was conducted independently to support the above comment article. The data, methods, and findings are the sole responsibility of the analyst.

 

RMIT Centre for Urban Research
Unpublished analysis by Dr Thami Croeser, June 2026