air-quality [layers|cities|place|more] cityEvery colour on this page comes from a model of the atmosphere over Europe, not from one sensor. Here is how to read it.
In Layers, colour the map by the European air quality index, one pollutant (PM2.5, PM10, NO₂, ozone, SO₂), Saharan dust, UV, pollen (all kinds or one) or the temperature against 1991–2020. The box on top says how the 135 cities score.
The slider under the map runs from yesterday to about four days ahead. Press play, drag, or jump to a day. The map, the headline and the lists all follow the hour you choose, and Now brings you back.
In Cities the 135 largest cities are ranked for the chosen layer and hour, worst or cleanest first. Filter by country, search any place in Europe, and star the ones you follow.
Tap anywhere on the map, or a city. You get the air index with a tip for everyone, sensitive people or people exercising, the cleanest three hours of the next day, each pollutant against the WHO guideline, UV, pollen, and five-day charts. Drag across a chart to move the whole map to that hour.
Choose °C or °F. Copy link keeps the layer, the place and the map view. Save the cities as a csv, go full screen, or let it loop. The model is read again every three hours.
The worst of five pollutants, on the EEA scale.
All in micrograms per cubic metre.
Stricter than most legal limits.
This page shows what the air over Europe looks like now and over the next four days, from the Copernicus Atmosphere Monitoring Service (CAMS). CAMS combines a physical model of the atmosphere with satellite and ground observations, and publishes the result as a grid. The page reads that grid through the free Open-Meteo service, draws it as a smooth map, and adds the 135 largest cities, a time slider and a view for any place. Everything runs in your browser. There is no account and no key.
The air index, PM2.5, PM10, NO₂, ozone, Saharan dust, UV, pollen and the temperature against normal.
A slider from yesterday to about four days ahead, with play, day jumps and a strip of the median city.
Ranked for the layer and the hour, with a country filter and a search for any place.
Each place shows the best and worst three hours of the next day and tips for your profile.
Every pollutant has a bar with the WHO 2021 guideline marked on it.
A link keeps the layer, the place and the view. Save the cities as a csv.
The index is one number for the worst of five pollutants: fine particles (PM2.5), coarse particles (PM10), nitrogen dioxide, ozone and sulphur dioxide. Each pollutant is compared with six levels set by the European Environment Agency, and the index is the highest of the five. This page shows the index on a scale of 0 to 100 and beyond: 0 to 20 is good, 20 to 40 fair, 40 to 60 moderate, 60 to 80 poor, 80 to 100 very poor and above 100 extremely poor. The EEA revised its levels in 2023 and made them stricter for particles and nitrogen dioxide. This page uses the 2023 levels; older tools, and an earlier version of this page, still use the previous ones, so an old screenshot can look cleaner.
| Pollutant (µg/m³) | Good below | Fair below | Moderate below | Poor below | Very poor below | Extremely poor from |
|---|---|---|---|---|---|---|
| PM2.5 | 5 | 15 | 50 | 90 | 140 | 140 |
| PM10 | 15 | 45 | 120 | 195 | 270 | 270 |
| NO₂ | 10 | 25 | 60 | 100 | 150 | 150 |
| Ozone (O₃) | 60 | 100 | 120 | 160 | 180 | 180 |
| SO₂ | 20 | 40 | 125 | 190 | 275 | 275 |
The index values come from Open-Meteo, which applies these levels to the model's hourly numbers. The page colours the single-pollutant layers with the same levels, so the colour of PM2.5 and the colour of the index agree when PM2.5 is the worst pollutant.
The World Health Organization updated its air quality guidelines in 2021. The 24-hour values are 15 µg/m³ for PM2.5, 45 for PM10, 25 for NO₂ and 40 for SO₂, and 100 µg/m³ for ozone as the highest 8-hour mean of the day; the yearly guidelines are 5 µg/m³ for PM2.5, 15 for PM10 and 10 for NO₂. European legal limits are higher than most of these, so a place can be green on the index and still past the WHO value. Each pollutant bar in a place has a thin white tick at the 24-hour WHO value, and the Overview counts the cities past it. The guideline is a daily mean, while the map shows a single hour, so one hour above the tick is a hint, not a breach.
The regional CAMS Europe forecast is an ensemble of several European air quality models, run on a grid of about 0.1 degrees, roughly 11 km, and updated every day. The first three days come from that regional model; later hours, up to about four to five days, come from the coarser global CAMS model (roughly 40 km), and the end of the slider can look smoother for that reason. A model is not a measurement: it gets the regional picture right, such as a smog episode over the Po Valley or smoke blowing over the North Sea, but it cannot see a street canyon, a bonfire or a single factory. The value for a city is that of the grid cell that contains it.
The map is built in layers. At first the page reads 522 points spread over Europe (2.5 degrees apart) and blends them smoothly. When you zoom in it reads finer patches of the same model, down to about 11 km at the highest zoom, and keeps the last few in memory. The 135 cities are read separately, so their values are those of the model itself, not of the blend.
Saharan dust is the concentration of desert dust in the air near the ground, in µg/m³. It reaches southern and central Europe a few times a year and can raise PM10 well past the guideline on a clear day. UV is the UV index at that hour, with clouds taken into account: 0 to 2 low, 3 to 5 moderate, 6 to 7 high, 8 to 10 very high and 11 and more extreme. Pollen comes from the CAMS European pollen forecast for six species: alder, birch, grass, mugwort, olive and ragweed, in grains per cubic metre. The map can show the strongest of the six, or one kind. The model returns zero outside each species' season, which is why pollen is empty in winter. The bands used for colour (low below 10, moderate 10 to 50, high 50 to 200, very high above 200) are simplified; real thresholds differ by species and by country.
The anomaly layer shows how much warmer or colder than normal a day is. Normal means the mean temperature of the seven days around the same date, averaged over 1991 to 2020, the reference period used by the World Meteorological Organization. The numbers come from the ERA5 reanalysis. To keep the map light, the page uses a 5 degree lattice and eight of the thirty years (every fourth year from 1992 to 2020), which it builds once a day and keeps in your browser; the strip at the top says how many years are in so far. A place you open gets the full thirty years for its exact spot. The two can differ by a few tenths of a degree, and a single day against a seven-day climate can be far from normal even in an ordinary week. For climate trends use longer averages than a day.
The slider starts 24 hours ago and ends at the last hour the model has, normally about four days from now. The small bars above it show the median of the 135 cities for the chosen layer, so you can see when the air is worst. Play steps one hour at a time at three speeds and can loop. The times are in your own time zone; the charts in a place use the local time of that place, and the day by day table uses UTC days. The model is read again every three hours and when you come back to the tab.
Tap the map, or search a town. The page asks the model for that exact point, so a place on a hillside gets its own elevation. The cleanest three hours tip looks at the next 24 hours and finds the stretch with the lowest and the highest index; when the difference is small it says that the air stays about the same. The tips for sensitive people and active people are stricter than the ones for everyone, and they are general advice, not medical advice. If you allow it, the location button reads your position once and opens that place; the position stays in the browser and is only used for that request.
Open-Meteo gives non-commercial use of its API for free, with limits of 600 calls a minute, 5,000 an hour and 10,000 a day, where a call for many points and many days counts for more than one. A first visit uses about a thousand of those units; the finer patches, the pollen and the temperature baseline use more as you ask for them. The page keeps a count, waits when it gets close, and says so in the Data box and under the map if the service asks it to slow down. The last map is kept in your browser, so a reload does not read everything again. If the service is out of calls for the hour or day, the page shows the saved copy with its age.
There is no account, and no server of mine receives anything from you. The page, the map library and the styles come from this site, the font from Google Fonts, the map tiles from Esri, and the page statistics from SimpleAnalytics, which uses no cookies. Open-Meteo receives the coordinates of the points the page asks for: the grid over Europe, the cities, and the exact point of a place you open or search (and your IP address, as every server does). To write a name for a spot you tap, the coordinates also go to the Photon reverse geocoder of Komoot (OpenStreetMap data), and the text you type in the search box goes to Open-Meteo's geocoder.
In your browser the page stores your choices (layer, units, map style, order and country filter, play speed) under aq-ui, your starred places under aq-fav, the temperature baseline of the day under aq-nb- and the date, the thirty-year normal of the places you opened under aq-norm, the last map in IndexedDB under jb-aq, and the light or dark choice under jb-theme. An older version left jb-eaq-metric and jb-eaq-grid-v2, which are removed on the first visit. Clear saved data in the More tab removes the rest.
Do not use this page to decide on medical care or on safety. A model can be wrong about the strength or the timing of a pollution episode, and local sources and the weather in a valley can make the real air very different. For official air quality warnings, use your national or regional environment agency, and for health advice, your doctor. Some cities publish live sensor readings that are better for the street you stand on.
Add ?l=no2 to open the map on a layer (the others are eaqi, pm25, pm10, o3, so2, dust, uv, pollen and anom), &k=grass for one kind of pollen, &p=50.85,4.35&n=Brussels to open a place, and #v=lat,lon,zoom for the map view. Copy link builds the address for you.
Check the rain, the fires or the aurora. There are more tools in the full list.