Episode probability
Six weighted components (layer thickness, persistence, wind speed and coherence, and more) combine into a single calibrated 0–100% score over a two-hour window.
← Back Case study · Flagship Handed over · still running
A real-time atmospheric-intelligence platform that turned three sites of raw Doppler-LiDAR, plus three more feeds, into calibrated, inspectable decisions, and reaches out the moment the sky over Singapore starts to move. I designed it, built it end to end, operated it from 2025 to 2026, and handed it over in full: the CCEH team runs it today.
00 / 04Context
Elevated aerosol layers (haze, transported smoke, dust) sit aloft for hours before they mix down to street level. By the time a ground monitor reads the spike, the event is already happening. The signals that see it coming live in Doppler-LiDAR backscatter and wind profiles, but those feeds are noisy, ragged, and arrive on different clocks across sites, and clouds routinely masquerade as aerosol.
The brief: make that early signal trustworthy and actionable. Fuse the sources onto one timeline, score the likelihood of an episode with a physical model an operator can interrogate, forecast when it reaches the surface, and push that judgement to the people who act on it, without drowning them in false alarms.
01 / 04System
One pipeline, five stages, sensors to surface. Raw range gates are deduplicated and state-tracked in SQLite, wind is recovered by a least-squares retrieval, and every feed is resampled onto a single ten-minute clock before any detector reasons over it.
Three Doppler LiDARs report backscatter and radial wind at one-minute resolution; raw HPL range gates are parsed, deduplicated and state-tracked, with each site delivering every ten minutes.
Four sources on one clock (LiDAR, NEA air quality, NASA FIRMS fire detections, and a cloud mask) with gaps carried explicitly, never interpolated away.
Two detection stages on every two-hour window: a six-component episode probability plus a boundary-layer breakthrough ETA.
Proactive alerts over Teams and Telegram with the full signal set attached; every episode lands in a replayable ledger.
Mission control with ten panels and a five-viewport Geo-Hub: live state, replay, and inspection in one place.
02 / 04Detection
Detection is a calibrated, glass-box score, not a black box. A two-hour rolling window is rated 0–100% from a six-component physical model, each component weighted and individually inspectable, so an operator can see exactly why a number moved.
Six weighted components (layer thickness, persistence, wind speed and coherence, and more) combine into a single calibrated 0–100% score over a two-hour window.
A diurnal boundary-layer model estimates when an elevated layer will reach the surface, turning "something is aloft" into "expect it at street level by …".
A three-stage cloud classifier gates the signal so condensation and cloud returns don't trigger false aerosol alarms: the hardest part of trusting LiDAR.
The same scoring code drives the live pipeline, the replay engine, and the dashboard, so what you see in review is exactly what fired in production.
03 / 04Delivery
A score nobody sees is worthless. The system is proactive: when the lead detector crosses threshold, conversational agents reach out over Microsoft Teams and Telegram with the full signal set attached, and the same agents answer questions on demand.
04 / 04Result
Monitoring shifted from reading spikes after the fact to being told an episode is likely, with a forecast for when it reaches the surface.
The web app ships a public preview at lidar-dashboard-3dreams.vercel.app; the operational dashboard behind it is login-gated for the CCEH team. The signal that drove a score is one click from the alert itself: no black boxes between the sensor and the decision.
A shared scorer across live, replay and dashboard means past events re-run exactly as they fired: the basis for tuning and trust.
Ingestion, retrieval, scoring, backend, dashboard and agents: designed, built and operated by one person, then migrated in full to the CCEH team, who run it today.
Replayed against the 36-hour February 2026 reference episode, v2 issued ten alerts where the previous detector issued zero. The first HIGH-confidence alert came at 02:30, nearly six hours before mixing reached breathing height at the surface.
Presented to the World Health Organization at the international forum CCEH co-hosted with WHO on the health impacts of air pollution and heat; the cinematic film was produced for that audience.