What is this project about?
Climate change is a complex system, and complexity is easy to misread. A snowstorm in New York becomes evidence that the Earth isn't warming. What it actually reflects is a polar vortex destabilised by warming Arctic ice. The heat is real, but it's redistributing itself in ways that don't match intuition.
On top of this, some changes are extremely fast in climatic terms, yet slow in human-perceptual terms. A phenomenon can take months or years to manifest itself, and we may recognise it only when we already suffer the consequences. A good example is the increase in salinity in fresh water, which can collapse drinking water supplies and ecosystems before anyone notices the trend.
The instinct to deny what you can't directly observe is understandable. The tool to counter it is context: specifically, the ability to place today's conditions against a baseline and triangulate across data sources. The Met Office's 2025 annual assessment makes the point directly: a colder month than usual within a warmer-than-average year only makes sense in context.
ClimaLens started as a 15-minute mockup built to demonstrate a point about AI-assisted prototyping: how quickly a working idea can take shape. Then the data got interesting, and the project kept going. The hard part turned out to be finding and connecting the right sources.
Current status
The part still in progress is the narrative: making the story legible to readers without a background in the field. This requires testing and feedback.
Feedback is very welcome. I'm not a specialist in the field, and the project doesn't claim any particular expertise. I’m curious about complex systems, and worried about changes happening at an unprecedented speed.
For feedback, ideas, attributions, or anything else: [email protected]
Credits
Sources update at different cadences, some automatically, some manually, some yearly, some monthly.
- MET Norway / ECMWF — forecast and hourly breakdown, up to 9 days. ECMWF-based global model via the Norwegian Meteorological Institute
- Open-Meteo — air quality (CAMS), sea surface temperature point values (ERA5 marine reanalysis)
- Copernicus Climate Change Service / ERA5 — reanalysis underpinning the historical climate trend, 1970–present. Baseline: 1981–2010 WMO reference period
- CAMS – Copernicus Atmosphere Monitoring Service — air quality index, via Open-Meteo
- University of Colorado Sea Level Research Group — Global Mean Sea Level time series from merged satellite altimetry, seasonal signals and GIA removed
- IPCC AR6 Working Group I, Chapter 9 — local relative sea level rates and cause attribution for coastal cities
- PSMSL – Permanent Service for Mean Sea Level — tide gauge records used to cross-reference city-level data
- NASA GIBS / PODAAC / JPL — sea surface temperature tiles (GHRSST MUR L4); polar sea ice historical tiles (SSMIS and AMSR-E)
- Copernicus Marine Service / OSI-SAF — live Arctic and Antarctic sea ice concentration (AMSR2 radiometer)
- NSIDC Sea Ice Index v4.0 — polar ice extent charts. Fetterer et al. 2017, updated yearly. NSIDC, Boulder CO
- NOAA CoastWatch ERDDAP — ocean surface currents (geostrophic velocity from SSH). Current paths: NOAA, GEBCO, Tomczak & Godfrey (2003)
- ETOPO 2022 — global elevation and bathymetry at 1 arc-minute. NOAA National Centers for Environmental Information. Rendered in-browser to reconstruct coastlines at any sea level
- Spratt & Lisiecki (2016) — global mean sea level stack, 0–100 ka BP, from benthic foraminiferal records
- Lambeck et al. (2014) — sea level constraints for the last 25 ka, informing the deglaciation portion of the curve
- GLAC-1D — global ice sheet mask, 0–26 ka BP at 0.1 ka intervals. Covers Laurentide, Fennoscandian, Barents-Kara, Greenland, and Antarctic ice sheets. Steps older than 26 ka use the LGM extent as an approximation
- ESA WorldCover 2021 — global land classification at 10 m from Sentinel-1 and Sentinel-2. Served via Terrascope WMTS
- MODIS IGBP Land Cover Type 1 — annual land cover 2001–2024 at 500 m. NASA GIBS / LP DAAC
- Esri World Imagery — satellite tiles on the sea level map
- CARTO Dark Matter — basemap tiles on ocean currents
- NASA Blue Marble — basemap on polar ice maps, via NASA GIBS
- Windy — embedded weather map on the forecast page
- Leaflet.js — interactive maps
- Chart.js — climate and forecast charts
- Proj4js + proj4leaflet — polar stereographic projections (EPSG:3413 Arctic, EPSG:3031 Antarctic)
- TopoJSON — geographic boundaries
- JSZip — shapefile parsing for sea ice median extent
- Cloudflare Pages + Workers — hosting, API proxying, and KV caching
- Microsoft Clarity — anonymous usage analytics. It allows me to understand how the website is experienced. No personal data is collected; if you rejected the cookies, this will be inactive.