Unmapped Dataworks

News · Air

How clean is your air? Nitrogen dioxide in every municipality, and its sources from space

The story behind our film: a model’s estimate of nitrogen dioxide for all 213 municipalities in 2025, where it is highest, why the Highveld stands out, its biggest sources seen from space, what it means for your health, and how far a model can be trusted.

By Unmapped News · · Updated · Film, 3 min

Share WhatsApp Facebook X LinkedIn
Our film, 13 November 2026. AI voice; every figure is modelled by the Copernicus Atmosphere Monitoring Service, through our data.

Everything in the film is in the story below, with the numbers and their sources.

The air over parts of Gauteng and Mpumalanga carries up to 4.1 times the nitrogen dioxide the World Health Organization advises. That is a model’s estimate for 2025, not a reading on any street. But it is the same model for the whole country, so it lets you compare your municipality with every other one.

What we measured, and how

Nitrogen dioxide is a gas released when fuel burns, mostly in traffic and in industry. The World Health Organization’s guideline is a yearly average of no more than 10 micrograms in each cubic metre of air (written 10 µg/m³).

South Africa has too few public ground stations to cover every town. So these figures come from a model: the Copernicus Atmosphere Monitoring Service, run for the European Union, combines satellite readings with weather data to estimate the air over the whole planet. Its blocks are about 80 km wide. We averaged them over each municipality, district and province, month by month, back to 2003.

That means every number here is a regional average. A busy road, or a smoky winter evening in one suburb, is smoothed into the region around it. It is not a reading at your address.

Where it is highest

In 2025, 70 of the 213 municipalities were above the guideline, and 28 were above twice the guideline.

The ten highest are all in Gauteng and Mpumalanga:

MunicipalityProvinceNitrogen dioxide, 2025 (µg/m³)Times the guideline
Govan Mbeki (Secunda)Mpumalanga41.24.1
Rand West CityGauteng40.34.0
JohannesburgGauteng40.14.0
EmfuleniGauteng39.23.9
Victor KhanyeMpumalanga39.23.9
Mogale CityGauteng38.93.9
EkurhuleniGauteng38.23.8
LesediGauteng37.43.7
EmalahleniMpumalanga35.53.6
LekwaMpumalanga34.73.5

The lowest are on the north-west edge of the Northern Cape: Khâi-Ma and Richtersveld, both at 1.3.

Nitrogen dioxide near the ground, 2025, every municipality (modelled, µg/m³)

Buffalo City: 5.2 µg/m³, 0.5 times the guidelineCape Town: 10.7 µg/m³, 1.1 times the guidelineDr Beyers Naude: 3.0 µg/m³, 0.3 times the guidelineBlue Crane Route: 4.6 µg/m³, 0.5 times the guidelineMakana: 4.4 µg/m³, 0.4 times the guidelineNdlambe: 3.2 µg/m³, 0.3 times the guidelineSundays River Valley: 5.4 µg/m³, 0.5 times the guidelineKouga: 4.7 µg/m³, 0.5 times the guidelineKou-Kamma: 3.4 µg/m³, 0.3 times the guidelineMbhashe: 5.9 µg/m³, 0.6 times the guidelineMnquma: 6.3 µg/m³, 0.6 times the guidelineGreat Kei: 5.4 µg/m³, 0.5 times the guidelineAmahlathi: 5.6 µg/m³, 0.6 times the guidelineNgqushwa: 4.5 µg/m³, 0.5 times the guidelineRaymond Mhlaba: 4.4 µg/m³, 0.4 times the guidelineInxuba Yethemba: 3.2 µg/m³, 0.3 times the guidelineIntsika Yethu: 6.8 µg/m³, 0.7 times the guidelineEmalahleni: 7.9 µg/m³, 0.8 times the guidelineDr AB Xuma: 7.4 µg/m³, 0.7 times the guidelineSakhisizwe: 7.8 µg/m³, 0.8 times the guidelineEnoch Mgijima: 4.7 µg/m³, 0.5 times the guidelineElundini: 7.2 µg/m³, 0.7 times the guidelineSenqu: 17.7 µg/m³, 1.8 times the guidelineWalter Sisulu: 10.0 µg/m³, 1.0 times the guidelineIngquza Hill: 5.1 µg/m³, 0.5 times the guidelinePort St Johns: 5.5 µg/m³, 0.6 times the guidelineNyandeni: 5.6 µg/m³, 0.6 times the guidelineKumkani Mhlontlo: 6.6 µg/m³, 0.7 times the guidelineKing Sabata Dalindyebo: 6.5 µg/m³, 0.7 times the guidelineMatatiele: 4.8 µg/m³, 0.5 times the guidelineUmzimvubu: 6.1 µg/m³, 0.6 times the guidelineWinnie Madikizela-Mandela: 8.0 µg/m³, 0.8 times the guidelineNtabankulu: 5.9 µg/m³, 0.6 times the guidelineEkurhuleni: 38.2 µg/m³, 3.8 times the guidelineeThekwini: 21.8 µg/m³, 2.2 times the guidelineLetsemeng: 4.4 µg/m³, 0.4 times the guidelineKopanong: 5.7 µg/m³, 0.6 times the guidelineMohokare: 18.6 µg/m³, 1.9 times the guidelineMasilonyana: 9.4 µg/m³, 0.9 times the guidelineTokologo: 7.1 µg/m³, 0.7 times the guidelineTswelopele: 10.5 µg/m³, 1.1 times the guidelineMatjhabeng: 11.6 µg/m³, 1.2 times the guidelineNala: 12.3 µg/m³, 1.2 times the guidelineSetsoto: 8.5 µg/m³, 0.9 times the guidelineDihlabeng: 7.6 µg/m³, 0.8 times the guidelineNketoana: 11.2 µg/m³, 1.1 times the guidelineMaluti a Phofung: 7.9 µg/m³, 0.8 times the guidelinePhumelela: 16.9 µg/m³, 1.7 times the guidelineMantsopa: 11.4 µg/m³, 1.1 times the guidelineMoqhaka: 15.3 µg/m³, 1.5 times the guidelineNgwathe: 29.8 µg/m³, 3.0 times the guidelineMetsimaholo: 27.4 µg/m³, 2.7 times the guidelineMafube: 20.4 µg/m³, 2.0 times the guidelineEmfuleni: 39.2 µg/m³, 3.9 times the guidelineMidvaal: 33.3 µg/m³, 3.3 times the guidelineLesedi: 37.4 µg/m³, 3.7 times the guidelineMogale City: 38.9 µg/m³, 3.9 times the guidelineMerafong City: 31.5 µg/m³, 3.2 times the guidelineRand West City: 40.3 µg/m³, 4.0 times the guidelineJohannesburg: 40.1 µg/m³, 4.0 times the guidelineUmdoni: 20.8 µg/m³, 2.1 times the guidelineUmzumbe: 9.3 µg/m³, 0.9 times the guidelineuMuziwabantu: 8.7 µg/m³, 0.9 times the guidelineRay Nkonyeni: 8.6 µg/m³, 0.9 times the guidelineuMshwathi: 14.1 µg/m³, 1.4 times the guidelineuMngeni: 10.0 µg/m³, 1.0 times the guidelineMpofana: 9.7 µg/m³, 1.0 times the guidelineImpendle: 8.9 µg/m³, 0.9 times the guidelineThe Msunduzi: 14.4 µg/m³, 1.4 times the guidelineMkhambathini: 22.0 µg/m³, 2.2 times the guidelineRichmond: 15.7 µg/m³, 1.6 times the guidelineOkhahlamba: 6.4 µg/m³, 0.6 times the guidelineInkosi Langalibalele: 8.5 µg/m³, 0.9 times the guidelineAlfred Duma: 8.9 µg/m³, 0.9 times the guidelineEndumeni: 11.2 µg/m³, 1.1 times the guidelineNqutu: 8.5 µg/m³, 0.9 times the guidelineMsinga: 8.7 µg/m³, 0.9 times the guidelineUmvoti: 13.6 µg/m³, 1.4 times the guidelineNewcastle: 21.2 µg/m³, 2.1 times the guidelineEmadlangeni: 16.7 µg/m³, 1.7 times the guidelineDannhauser: 19.3 µg/m³, 1.9 times the guidelineeDumbe: 11.0 µg/m³, 1.1 times the guidelineuPhongolo: 5.3 µg/m³, 0.5 times the guidelineAbaqulusi: 8.3 µg/m³, 0.8 times the guidelineNongoma: 4.9 µg/m³, 0.5 times the guidelineUlundi: 6.4 µg/m³, 0.6 times the guidelineUmhlabuyalingana: 1.7 µg/m³, 0.2 times the guidelineJozini: 2.5 µg/m³, 0.3 times the guidelineInkosi Mtubatuba: 2.3 µg/m³, 0.2 times the guidelineBig Five Hlabisa: 2.9 µg/m³, 0.3 times the guidelineMfolozi: 2.4 µg/m³, 0.2 times the guidelineuMhlathuze: 4.0 µg/m³, 0.4 times the guidelineuMlalazi: 5.9 µg/m³, 0.6 times the guidelineMthonjaneni: 5.9 µg/m³, 0.6 times the guidelineNkandla: 7.8 µg/m³, 0.8 times the guidelineMandeni: 5.4 µg/m³, 0.5 times the guidelineKwaDukuza: 6.1 µg/m³, 0.6 times the guidelineNdwedwe: 14.3 µg/m³, 1.4 times the guidelineMaphumulo: 12.7 µg/m³, 1.3 times the guidelineGreater Kokstad: 5.1 µg/m³, 0.5 times the guidelineJohannes Phumani Phungula: 13.2 µg/m³, 1.3 times the guidelineUmzimkhulu: 9.4 µg/m³, 0.9 times the guidelineDr Nkosazana Dlamini Zuma: 8.4 µg/m³, 0.8 times the guidelineGreater Giyani: 4.7 µg/m³, 0.5 times the guidelineGreater Letaba: 5.9 µg/m³, 0.6 times the guidelineGreater Tzaneen: 6.2 µg/m³, 0.6 times the guidelineBa-Phalaborwa: 3.8 µg/m³, 0.4 times the guidelineMaruleng: 5.8 µg/m³, 0.6 times the guidelineMusina: 3.0 µg/m³, 0.3 times the guidelineThulamela: 3.7 µg/m³, 0.4 times the guidelineMakhado: 4.8 µg/m³, 0.5 times the guidelineCollins Chabane: 3.4 µg/m³, 0.3 times the guidelineBlouberg: 6.1 µg/m³, 0.6 times the guidelineMolemole: 5.6 µg/m³, 0.6 times the guidelinePolokwane: 7.5 µg/m³, 0.8 times the guidelineLepele-Nkumpi: 7.9 µg/m³, 0.8 times the guidelineThabazimbi: 13.0 µg/m³, 1.3 times the guidelineLephalale: 13.8 µg/m³, 1.4 times the guidelineBela-Bela: 18.9 µg/m³, 1.9 times the guidelineMogalakwena: 11.2 µg/m³, 1.1 times the guidelineModimolle-Mookgophong: 14.3 µg/m³, 1.4 times the guidelineEphraim Mogale: 11.0 µg/m³, 1.1 times the guidelineElias Motsoaledi: 12.6 µg/m³, 1.3 times the guidelineMakhuduthamaga: 8.7 µg/m³, 0.9 times the guidelineFetakgomo Tubatse: 7.6 µg/m³, 0.8 times the guidelineMangaung: 13.6 µg/m³, 1.4 times the guidelineChief Albert Luthuli: 14.9 µg/m³, 1.5 times the guidelineMsukaligwa: 21.8 µg/m³, 2.2 times the guidelineMkhondo: 13.8 µg/m³, 1.4 times the guidelineDr Pixley Ka Isaka Seme: 28.7 µg/m³, 2.9 times the guidelineLekwa: 34.7 µg/m³, 3.5 times the guidelineDipaleseng: 25.7 µg/m³, 2.6 times the guidelineGovan Mbeki: 41.2 µg/m³, 4.1 times the guidelineVictor Khanye: 39.2 µg/m³, 3.9 times the guidelineEmalahleni: 35.5 µg/m³, 3.6 times the guidelineSteve Tshwete: 23.0 µg/m³, 2.3 times the guidelineEmakhazeni: 8.6 µg/m³, 0.9 times the guidelineThembisile Hani: 21.7 µg/m³, 2.2 times the guidelineDr JS Moroka: 18.4 µg/m³, 1.8 times the guidelineThaba Chweu: 7.7 µg/m³, 0.8 times the guidelineNkomazi: 6.0 µg/m³, 0.6 times the guidelineBushbuckridge: 4.8 µg/m³, 0.5 times the guidelineCity of Mbombela: 7.2 µg/m³, 0.7 times the guidelineRichtersveld: 1.3 µg/m³, 0.1 times the guidelineNama Khoi: 1.8 µg/m³, 0.2 times the guidelineKamiesberg: 2.0 µg/m³, 0.2 times the guidelineHantam: 2.0 µg/m³, 0.2 times the guidelineKaroo Hoogland: 1.8 µg/m³, 0.2 times the guidelineKhâi-Ma: 1.3 µg/m³, 0.1 times the guidelineUbuntu: 1.8 µg/m³, 0.2 times the guidelineUmsobomvu: 3.1 µg/m³, 0.3 times the guidelineEmthanjeni: 2.2 µg/m³, 0.2 times the guidelineKareeberg: 1.6 µg/m³, 0.2 times the guidelineRenosterberg: 2.8 µg/m³, 0.3 times the guidelineThembelihle: 2.7 µg/m³, 0.3 times the guidelineSiyathemba: 2.0 µg/m³, 0.2 times the guidelineSiyancuma: 2.7 µg/m³, 0.3 times the guidelineKai !Garib: 1.4 µg/m³, 0.1 times the guideline!Kheis: 1.7 µg/m³, 0.2 times the guidelineTsantsabane: 2.4 µg/m³, 0.2 times the guidelineKgatelopele: 2.5 µg/m³, 0.3 times the guidelineDawid Kruiper: 1.8 µg/m³, 0.2 times the guidelineSol Plaatje: 4.8 µg/m³, 0.5 times the guidelineDikgatlong: 3.6 µg/m³, 0.4 times the guidelineMagareng: 6.4 µg/m³, 0.6 times the guidelinePhokwane: 6.5 µg/m³, 0.7 times the guidelineJoe Morolong: 2.6 µg/m³, 0.3 times the guidelineGa-Segonyana: 2.6 µg/m³, 0.3 times the guidelineGamagara: 2.6 µg/m³, 0.3 times the guidelineNelson Mandela Bay: 7.0 µg/m³, 0.7 times the guidelineMoretele: 22.7 µg/m³, 2.3 times the guidelineMadibeng: 24.7 µg/m³, 2.5 times the guidelineRustenburg: 20.6 µg/m³, 2.1 times the guidelineKgetlengrivier: 15.2 µg/m³, 1.5 times the guidelineMoses Kotane: 12.2 µg/m³, 1.2 times the guidelineRatlou: 4.2 µg/m³, 0.4 times the guidelineTswaing: 11.3 µg/m³, 1.1 times the guidelineMafikeng: 5.3 µg/m³, 0.5 times the guidelineDitsobotla: 8.3 µg/m³, 0.8 times the guidelineRamotshere Moiloa: 6.0 µg/m³, 0.6 times the guidelineNaledi: 6.5 µg/m³, 0.7 times the guidelineMamusa: 14.1 µg/m³, 1.4 times the guidelineGreater Taung: 5.0 µg/m³, 0.5 times the guidelineLekwa-Teemane: 11.4 µg/m³, 1.1 times the guidelineKagisano/Molopo: 2.7 µg/m³, 0.3 times the guidelineCity of Matlosana: 14.6 µg/m³, 1.5 times the guidelineMaquassi Hills: 14.3 µg/m³, 1.4 times the guidelineJB Marks: 19.5 µg/m³, 2.0 times the guidelineTshwane: 29.0 µg/m³, 2.9 times the guidelineMatzikama: 2.8 µg/m³, 0.3 times the guidelineCederberg: 5.1 µg/m³, 0.5 times the guidelineBergrivier: 6.4 µg/m³, 0.6 times the guidelineSaldanha Bay: 4.6 µg/m³, 0.5 times the guidelineSwartland: 8.3 µg/m³, 0.8 times the guidelineWitzenberg: 5.4 µg/m³, 0.5 times the guidelineDrakenstein: 10.6 µg/m³, 1.1 times the guidelineStellenbosch: 11.2 µg/m³, 1.1 times the guidelineBreede Valley: 7.4 µg/m³, 0.7 times the guidelineLangeberg: 6.2 µg/m³, 0.6 times the guidelineTheewaterskloof: 6.6 µg/m³, 0.7 times the guidelineOverstrand: 5.1 µg/m³, 0.5 times the guidelineCape Agulhas: 4.3 µg/m³, 0.4 times the guidelineSwellendam: 4.2 µg/m³, 0.4 times the guidelineKannaland: 3.4 µg/m³, 0.3 times the guidelineHessequa: 2.9 µg/m³, 0.3 times the guidelineMossel Bay: 3.0 µg/m³, 0.3 times the guidelineGeorge: 3.0 µg/m³, 0.3 times the guidelineOudtshoorn: 3.3 µg/m³, 0.3 times the guidelineBitou: 2.7 µg/m³, 0.3 times the guidelineKnysna: 2.9 µg/m³, 0.3 times the guidelineLaingsburg: 2.8 µg/m³, 0.3 times the guidelinePrince Albert: 2.7 µg/m³, 0.3 times the guidelineBeaufort West: 2.0 µg/m³, 0.2 times the guideline
The darker the municipality, the more nitrogen dioxide the model puts in its air; the two palest shades are under the World Health Organization’s guideline of 10. Tap one for its page. Modelled by the Copernicus Atmosphere Monitoring Service; boundaries: Municipal Demarcation Board, 2026.

Province by province

Nitrogen dioxide near the ground, 2025, by province (modelled)

From 34.3 in Gauteng to 2.0 in the Northern Cape. Each province’s yearly average over all its land, in µg/m³. The World Health Organization’s guideline is 10. Modelled by the Copernicus Atmosphere Monitoring Service.
Show the numbers
Gauteng34.3 µg/m³
Mpumalanga17.2 µg/m³
Free State12.0 µg/m³
North West9.6 µg/m³
KwaZulu-Natal9.0 µg/m³
Limpopo8.6 µg/m³
Eastern Cape5.8 µg/m³
Western Cape4.1 µg/m³
Northern Cape2.0 µg/m³

Three provinces are above the guideline. North West, KwaZulu-Natal and Limpopo sit just under it. A province’s figure is the average over all its land, so a clean countryside pulls a province down even where its towns are higher.

The eight big cities

CityNitrogen dioxide, 2025 (µg/m³)Winter against summer
Johannesburg40.11.6 times
Ekurhuleni38.21.8 times
Tshwane29.02.3 times
eThekwini (Durban)21.82.4 times
Mangaung (Bloemfontein)13.61.9 times
Cape Town10.71.9 times
Nelson Mandela Bay (Gqeberha)7.02.5 times
Buffalo City (East London)5.23.4 times

Six of the eight are above the guideline. Cape Town is just over the line. Only Nelson Mandela Bay and Buffalo City are under it.

Why the Highveld

In November 2007 the government declared the Highveld a national air pollution hotspot: the Highveld Priority Area, which covers Ekurhuleni and parts of Gauteng and Mpumalanga, including Govan Mbeki, Emalahleni, Lekwa and Victor Khanye. The Minister’s statement listed the sources: power stations, petrochemical plants, metal smelters, coal mines, and households that still burn coal.

The government’s own air quality plan for the area, published in 2011, counted where the pollution comes from:

SourceShare of the area’s nitrogen oxidesShare of its sulphur dioxide
Power stations73%82%
Petrochemical plants15%12%
Motor vehicles9%1%

The plan counted 11 Eskom coal power stations in the area, among them Kendal, Matla, Kriel and Duvha, and says the petrochemical figure is “dominated by Sasol’s Secunda operations”. These shares are from 2011, built on data from 2004 to 2006; a second plan was gazetted in March 2025.

Our data points the same way. Sulphur dioxide is a gas that comes from burning coal and oil and from smelting. The five municipalities with the most sulphur dioxide in the air above them in 2025 are all on the Mpumalanga Highveld, inside that priority area: Govan Mbeki, Emalahleni, Lekwa, Victor Khanye and Dr Pixley Ka Isaka Seme. (This is the amount in the whole column of air overhead, which is what a satellite sees. It is not what people breathe at ground level.)

The sources, seen from space

These are real pictures from the European Union’s Sentinel-2 satellites, taken at about a quarter past ten on clear winter mornings in 2025. Each shows an area 16 km wide. Nothing has been retouched.

Satellite picture of a large industrial plant among farmland, with white plumes drifting from it
Sasol’s Secunda plant, 29 July 2025. It sits in Govan Mbeki, the municipality with the highest figure on our map. Contains modified Copernicus Sentinel data 2025.
Satellite picture of a power station with a white plume drifting east over farmland and coal mines
Eskom’s Kendal power station, in Emalahleni, 4 July 2025, its plume drifting east. Contains modified Copernicus Sentinel data 2025.
Satellite picture of two power stations, each with a white plume, among farmland and mines
Eskom’s Kriel (top) and Matla power stations, in Emalahleni, 18 August 2025. Contains modified Copernicus Sentinel data 2025.

A word of care about what the pictures show. The white plumes are steam and smoke, and the dark streaks beside them are their shadows. Nitrogen dioxide and sulphur dioxide themselves are invisible in a picture like this. So a plume tells you a plant was running that morning, and nothing about how much it emitted. The shares above come from the government’s count, not from the pictures. We chose mornings when the sky was clear and the plumes showed well.

Worse in winter

In all 213 municipalities, the model’s nitrogen dioxide was higher in winter (June to August 2025) than in summer (January, February and December 2025). In Johannesburg, winter ran at 1.6 times summer’s level. In Buffalo City, 3.4 times.

Prof Rebecca Garland of the University of Pretoria has explained why Highveld winters are worse: there is very little rain and the weather is calmer, which can trap pollution close to the ground, and people burn more wood and coal for cooking and heating.

Our place pages show winters and summers averaged over the last five years, so their figures can differ a little from these, which are for 2025 alone.

What it means for your health

Nitrogen dioxide irritates the airways. The United States Environmental Protection Agency says that breathing air with a lot of it, even for a short time, can make breathing diseases worse, asthma above all, and bring on coughing, wheezing or difficulty breathing. Over longer periods it may contribute to people developing asthma. People with asthma, children and older people are most at risk.

Three things that follow from the sources:

This is not medical advice, and our figures cannot tell you what you are breathing at your address.

How sure are we?

We checked the model against the City of Cape Town’s own monitoring stations, the one set of ground readings we may lawfully use so far. Over 138 months between 2013 and 2024, the stations averaged 12.3 µg/m³ and the model 10.1: the model read 82% of what the stations measured. That is close on average. Month by month the two only loosely agree (a correlation of 0.31), so do not read much into one month in one place.

Three more things to know:

Check yours

Look up your own municipality, month by month since 2003: unmapped.co.za/air. Every page says what the figure is, how it compares with the guideline, and that it is modelled. Govan Mbeki’s, for example: unmapped.co.za/air/govan-mbeki.

Sources and credits

Made by Unmapped Dataworks. The film’s voice is AI-generated.

More from Unmapped News

Unmapped Dataworks