Two poisons share a city's air. Carbon monoxide pours from cold tailpipes and pools under the still night — it's worst in the dark, before dawn. Ozone is different: it isn't emitted at all, it's built, sunlight welding exhaust into a fresh toxin through the afternoon. So they keep opposite clocks. Folded onto a 24-hour dial, live across 47 cities, the hour ozone peaks is the very hour CO falls to its floor — the same sun does both.
—
ozone peaks (typical, solar time)
—
CO hits its floor (typical, solar time)
—
between the two — they nearly touch
—
cities folded onto one dial, live
One day on a 24-hour dial — noon at top, midnight at bottom; each city normalized to its own range, then medianhover the dial
ozonecarbon monoxide
The orange petal is ozone, swelling across the afternoon toward a single fat lobe near two o'clock. The blue ring is carbon monoxide, and watch what it does where the orange bulges: it pinches inward to its tightest point, right at ozone's peak. That notch is the whole story. The afternoon's tall, churning, sunlit air does two opposite things at once — it stirs the ground-level CO up and away into a deep mixing layer, thinning it out, while that same sunlight cooks the leftover nitrogen oxides and hydrocarbons into ozone. Dilution and manufacture, driven by one source, landing on the same hour.
CO shows two humps — the morning and evening commutes, trapped low under cool, stable air — and a deep midday trough. Ozone has no morning hump at all: it has to be made first, so it lags the sun by a couple of hours and crests in mid-afternoon, long after the light begins to fade. The cleanest CO air of the day is the most ozone-poisoned. Neither moment is safe; they just arrive at opposite ends of the clock.
How this was built. Live hourly surface ozone and carbon monoxide for 47 cities from the Open-Meteo air-quality API (CAMS model output; no key, fetched in your browser when this page loads), two days of it. Each city's hours are stamped with local solar time — UTC plus longitude÷15, so noon means the sun is actually on the meridian. The two days are averaged hour-by-hour to damp passing weather, each pollutant normalized to that city's own daily low→high range, then the median taken across all cities per hour (robust to a stray plume). Crest and trough hours are located by parabolic interpolation around the extreme hour. The dial is those two median curves drawn radially. Concentrations are modelled, not measured at a station — read the shape of the day, not the absolute microgram count.
The PloverData: Open-Meteo air-quality (CAMS) · Fetched in-browser · No build step · Source on request