D3 · Climate

Climate stripes for Indonesia and Southeast Asia

Ed Hawkins’ stripes, taken local: SEA capitals ranked, Jakarta’s heat-island station by station, and the notebooks to reproduce it.

Fig. 01 · Annual mean temperature anomaly (Berkeley Earth 1° gridded, sampled at city centroid, 1853–2024)
Baseline
View

Climate change is global, but people experience it locally.

Ed Hawkins’ warming stripes — one coloured rectangle per year, blue for cool, red for hot — have become the visual shorthand for climate change. The chart at the top of this page is the same grammar, but pointed at a specific city rather than the planet.

Twenty-one cities are in the dropdown: every Indonesian capital with a 1 M+ population, the SEA capitals, four Australian cities and the three biggest in Aotearoa. The dataset is Berkeley Earth’s 1° gridded land-surface analysis (Jan 2025 release, running to Dec 2024), sampled at each city’s centroid by nearest-neighbour. The default baseline is 1961–2010 — long enough to absorb decadal variability without being dragged into the recent warming. Toggle to 1981–2010 or 1991–2020 to see the same series re-anchored.

Southeast Asia, ranked

Different countries have warmed at different rates, and within each country the capital city has usually warmed faster than the national average — partly real climate change, partly station relocation, partly the urban heat island. The barcode below lets you compare. Sort by recent anomaly to see who had the hottest 2020s; sort by trend to see who is warming fastest.

Fig. 05 · Southeast Asia + Australia/New Zealand warming stripes (Berkeley Earth)
Source
Order
Trend column is OLS slope across the full record (°C per decade). Stripe baseline = 1991–2020.

Notebooks and data

Everything on this page is built from public, auth-free data. The notebooks and the JSON shapes the components read are in github.com/tuttinator/sea-climate-stripes.

NotebookSourceWhat it does
00_setup_and_geometries.pyNatural Earth + GADMAdmin polygons, Indonesian island masks, DKI kelurahan
01_berkeley_earth_cities.pyBE 1° gridded NetCDF + BE regionalPer-city + per-country annual anomaly, 21 cities + 8 countries
07_bmkg_station_validation.pyNOAA GSOD (BMKG via WMO)Jakarta WMO station daily aggregation + warming-rate computation
09_jakarta_heat_map.pyNOAA GSOD + BE gridded + OSM OverpassStations + kelurahan choropleth + waterway lines, bundled for the map

Heavy downloads cache to data/raw/. The full pipeline is uv sync && make notebooks && make sync-blog.