← Work index

Climate Intelligence

An open, keyless climate instrument: hand it any coordinate on Earth and it returns a sourced, multi-hazard exposure profile with a live satellite view, then hands the whole engine to AI agents.

Period
2026–present
Role
Founder and full-stack developer
Scale
Global, any coordinate
Context
Product, Research
The Climate Intelligence console: a MapLibre globe with hazard layers and a per-location climate exposure profile.
Open Climate Intelligence · captured from the running instrument

Physical climate-risk screening, knowing what extreme heat, drought, wildfire weather or coastal exposure a specific place actually faces, is normally paywalled, opaque and impossible to reproduce, so a planner, a community group or an ordinary resident cannot check what a location is exposed to, or why. The task was to build an open instrument that turns any coordinate into a sourced exposure profile from public, keyless data anyone can rerun, and to do it honestly, as a clean-room reimplementation rather than a copy.

My contribution

I reoriented a geopolitical situational-awareness console into an open climate instrument and built Site Assess, the per-location engine. It fans out keyless hazard adapters (extreme heat, coastal and low-elevation, drought, wildfire weather, with riverine-flood as context) in parallel with Promise.allSettled, so a single dead upstream feed degrades to a "no data" sub-score instead of failing the whole assessment. The composite deliberately blends the weighted mean with the single worst hazard, 0.6 times the mean plus 0.4 times the maximum, so one extreme cannot hide behind an average; it renormalises weights over only the feeds that returned data, and derives a confidence value from both coverage and per-source quality. I added a live Sentinel-2 satellite preview via keyless STAC (Element 84 Earth Search), served the engine from a single GET /api/risk endpoint, and exposed it as 11 agent-callable tools over the Model Context Protocol. I also wrote a regression test that guards the clean-room reorientation itself, asserting the inherited military, conflict and defence layers can never come back.

Decisions and constraints

Decisions I made

  • Keep every source open and keyless, proxied server-side so no key touches the client and anyone can independently reproduce the result.
  • Blend the weighted mean with the single worst hazard (0.6 mean, 0.4 max) rather than a plain average, so a site that floods is not reassured by a calm overall number.
  • Renormalise weights over only the hazards that actually returned data, so a dead upstream feed degrades gracefully instead of dragging the score to zero.
  • Expose the whole engine as MCP tools so an AI agent can ground its climate reasoning on live data as easily as a person can.
  • Treat the clean-room boundary as testable: a regression suite asserts the inherited OSINT layers stay gone, so the reorientation cannot silently reverse in a future merge.

Operating constraint

Every feed had to be public, keyless and licence-tiered, some of them non-commercial only, and proxied server-side so no key ever touches the client. The scoring had to be deterministic, so the same point always returns the same inspectable answer, and the whole thing had to be an independent clean-room build that reused none of the original console's code, assets or branding.

Claim boundary: This is hazard and exposure screening, not loss modelling. The per-location Site Assess engine, the keyless open-data architecture and the agent tools are the finished, shipped parts; the live global-monitoring layer is still being hardened, and riverine flood is carried as context only until return-period scoring lands. The concept lineage is an independent, clean-room reimplementation of an existing situational-awareness console, reoriented from geopolitics to climate, using the same public data sources but none of the original's code, assets or branding.

Evidence

  • A per-location 0 to 100 Climate Exposure Profile with a dominant hazard, a confidence value, a mid-century heat outlook and full per-hazard provenance, served from a single keyless GET /api/risk?lat=&lon= endpoint.
  • A live Sentinel-2 satellite preview of the assessed site via keyless STAC, plus a deterministic markdown report generated with no LLM and no per-request spend.
  • 11 agent-callable MCP tools (assess_climate_exposure, search_place, grid_carbon_intensity, active_hazards, latest_imagery and more) so Claude or Gemini agents can call the engine directly.
  • 71 test files, including an osint-residue regression guard that keeps the clean-room reorientation honest, plus an explicit source catalogue recording every feed's licence tier.

Open Climate Intelligence (opens in a new tab)