What if heatwaves shaped mountains?
Between May 21 and 31, 2026, Metropolitan France experienced an unprecedented heatwave for the time of year, breaking hundreds of records. This visualization translates the intensity of the event into terrain: each peak represents the gap between the observed maximum temperature and the 1991–2020 baseline. The higher the mountain, the greater the anomaly.
Météo-France Open Data (tabular API)
↓
download_observations_MF.py — TX max per station, May 21–31 2026 → stations.csv
download_means-MF.py — TX mean per station, May 1991–2020 → means.csv
↓
merge.py — delta = TX_MAX − TX_MEAN per station → delta-stations-averages.csv
↓
process.py — spatial interpolation onto regular grid, France mask → heightmap.npy
↓
heightmap.py — quadratic normalization → 16-bit PNG heightmap
↓
Blender — displacement modifier, Z-gradient shader, geological strata normals,
legend pillar
↓
Affinity Publisher — text annotations, remarkable stations, final layout → poster
Observations horaires — Météo-France Open Data
Dataset 6569b4473bedf2e7abad3b72 — hourly station data 2025–2026.
Variable: TX (temperature max horaire), May 21–31 2026.
Normales mensuelles — Météo-France Open Data
Dataset 6569b3d7d193b4daf2b43edc — monthly normals 1950–2024.
Variable: TX (temperature max mensuelle), May 1991–2020 (reference period).
- Python 3.11+
requests— API callspandas— CSV merging and delta computationscipy— spatial interpolation (griddata) and smoothing (gaussian filter)geopandas+shapely— France boundary masknumpy,Pillow,matplotlib— array processing and PNG export- Blender 4.x — 3D rendering
- Affinity 3 — poster layout
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txtData visualization & design: Benjamin Bartholet · @trab.studio
Metropolitan France boundary from geoBoundaries
Sources: Météo-France — Synoptic observations & 1991–2020 climatological normals


