lufterl watches air pollution from orbit. Each month the Sentinel-5P satellite maps nitrogen dioxide over the whole planet. We average it onto hexagons of about 36 km² and ask each one the same question: is this the cleanest it has ever been? A hexagon that sets a new low earns credit. The map shows where that is happening, and where it is not.
Most NO₂ comes from combustion, so it is a good proxy for local air pollution.
Monthly NO₂ from Sentinel-5P/TROPOMI (Terrascope L3, 0.02° grid, quality-filtered) since May 2018, averaged onto H3 resolution-6 hexagons and weighted by coverage. The values are tropospheric columns in µmol/m²: the NO₂ in the lower atmosphere above a hexagon, summed over that column of air. They are not ground-level concentrations.
Every score is built on m, the mean NO₂ of the past 12 months, which removes the seasonal cycle and most of the noise.
Hover a hexagon for its history in the selected layer. Click to pin it, ⧉ to copy a link to it, and ⌖ unpin to let go. Zoom in far enough and the hexagons fade out into satellite imagery, so you can see the ground they cover; the cells stay live, so you can still hover and pin one.
The series. m is the mean of the 12 months before the current one, so a new month never changes a closed one. If the months missing from a window usually carry much of a cell's annual NO₂ (the polar night, say), we show nothing rather than a mean of the low months.
Records. The baseline B is the cell's lowest m of the previous five years. Credit is paid when m drops below B by more than a 1.2% noise margin, roughly the month-to-month jitter of m in cells with no trend. The credit equals the relative drop (B − m)/B: a clean cell and a dirty one earn the same for the same percentage improvement. Each step down is credited once, so over a whole record the credits sum to about log(first m / latest m) whatever the pace. Records expire after five years, so a cell can earn again.
Small steps. A drop under the margin is not lost. We measure from the level last credited, so small improvements add up until together they clear the margin.
Three vetoes. Only cells with m ≥ 30 µmol/m² are scored; below that, percentages are noise. A record has to be shared. NO₂ travels tens of kilometres, and a lone record may just be a neighbour's plume gone elsewhere for a year, so the coarser hexagon it sits in (about 1,770 km²) must be under its own baseline too. And a record must come from a window that saw the cell's usual peak months. Fail the second or third test and the month earns nothing, but the drop still counts towards the next credit.
Change is the annual rate of m since the cell's first full year, over the last five years, or against twelve months before. The three often disagree. The whole record includes 2019 to 2021, when little moved. The shorter two need m from back then, so far-north cells that lost a window to the polar night stay empty on those two, but not on the whole record.
Static files, no backend, built with MapLibre GL and H3. Contains modified Copernicus Sentinel-5P data, processed by VITO/Terrascope. Basemap © OpenStreetMap contributors © CARTO. Satellite imagery © Esri, Maxar, Earthstar Geographics.