Free tools · NASA Black Marble, night light
Night light from space
The light NASA’s Black Marble sees at about 1:30 in the morning, for every ward, municipality, district and province, month by month since January 2012 and every year. Newest year: 2025.
Night light is the light a satellite sees from space at about 1:30 in the morning: street lights, buildings, mines, factories, harbours and fires. NASA takes out moonlight, haze and stray light, leaves out cloudy nights and sets faint glow to zero. Brightness is the light given off, in nanowatts per square centimetre per steradian (nW/cm²/sr), averaged over the place; “lit” is the share of the land giving off 1 or more, twice the faint glow NASA treats as noise.
What it is not: it cannot tell the grid from solar or a generator, who pays for the light, how many people live there or how well off they are. A load-shedding month mixes dark nights with lit ones, fires and flares can light a month up, and a cloudy month rests on fewer nights.
The country, month by month
At 1:30 in the morning a place in a load-shedding slot is dark and one outside it is not, so a month’s figure mixes the two. How the dip in 2022 and 2023 was checked is in the docs.
Every municipality, 2025
By average brightness in NASA’s yearly product: the light given off over the whole municipality, divided by its area, so a big, mostly dark municipality reads low even with a bright town in it. Lit is the share of its land giving off 1 or more.
| # | Municipality | Province | Brightness (nW/cm²/sr) | Lit | Against 2024 |
|---|---|---|---|---|---|
| 1 | City of Johannesburg | Gauteng | 22.1 | 98% | 9.1% brighter |
| 2 | Ekurhuleni | Gauteng | 16.4 | 100% | 12% brighter |
| 3 | City of Cape Town | Western Cape | 13.5 | 65% | 11% brighter |
| 4 | eThekwini | KwaZulu-Natal | 10.7 | 86% | 10% brighter |
| 5 | The Msunduzi | KwaZulu-Natal | 6.1 | 75% | 6.6% brighter |
| 6 | Emfuleni | Gauteng | 5.9 | 56% | 1.7% brighter |
| 7 | City of Tshwane | Gauteng | 4.9 | 51% | 6.7% brighter |
| 8 | Nelson Mandela Bay | Eastern Cape | 4.5 | 41% | 3.5% brighter |
| 9 | uMhlathuze | KwaZulu-Natal | 3.5 | 57% | 6.6% brighter |
| 10 | Mogale City | Gauteng | 3.5 | 44% | 9.1% brighter |
| 11 | Stellenbosch | Western Cape | 3.0 | 56% | 14% brighter |
| 12 | Rustenburg | North West | 2.9 | 39% | 5.9% brighter |
| 13 | Rand West City | Gauteng | 2.8 | 48% | 5.8% brighter |
| 14 | KwaDukuza | KwaZulu-Natal | 2.6 | 40% | 12% brighter |
| 15 | Govan Mbeki | Mpumalanga | 2.4 | 20% | about the same |
| 16 | Emalahleni | Mpumalanga | 2.4 | 40% | 0.8% darker |
| 17 | Midvaal | Gauteng | 2.1 | 43% | 5.6% brighter |
| 18 | Local Municipality of Madibeng | North West | 2.1 | 41% | 6.2% brighter |
| 19 | Drakenstein | Western Cape | 2.0 | 26% | 12% brighter |
| 20 | Mandeni | KwaZulu-Natal | 2.0 | 56% | 13% brighter |
| 21 | Buffalo City | Eastern Cape | 1.7 | 21% | 8.2% brighter |
| 22 | Victor Khanye | Mpumalanga | 1.7 | 36% | 4.3% brighter |
| 23 | Polokwane | Limpopo | 1.5 | 25% | 5.0% brighter |
| 24 | Ray Nkonyeni | KwaZulu-Natal | 1.4 | 32% | 7.5% brighter |
| 25 | Greater Tzaneen | Limpopo | 1.4 | 29% | 4.4% brighter |
| 26 | Newcastle | KwaZulu-Natal | 1.3 | 18% | 7.2% darker |
| 27 | Thulamela | Limpopo | 1.3 | 27% | 10% brighter |
| 28 | City of Mbombela | Mpumalanga | 1.2 | 18% | 2.5% brighter |
| 29 | Lesedi | Gauteng | 1.2 | 28% | 7.2% brighter |
| 30 | Fetakgomo Tubatse | Limpopo | 1.2 | 25% | 2.6% brighter |
| 31 | Dr JS Moroka | Mpumalanga | 1.1 | 27% | 4.6% brighter |
| 32 | Mkhambathini | KwaZulu-Natal | 1.1 | 28% | 22% brighter |
| 33 | Merafong City | Gauteng | 1.1 | 20% | 3.8% brighter |
| 34 | Mfolozi | KwaZulu-Natal | 1.1 | 29% | 4.9% brighter |
| 35 | Moretele | North West | 1.1 | 24% | 9.1% brighter |
| 36 | Greater Letaba | Limpopo | 1.0 | 23% | 2.0% brighter |
| 37 | Steve Tshwete | Mpumalanga | 0.96 | 14% | 5.0% darker |
| 38 | Port St Johns | Eastern Cape | 0.88 | 27% | 1.1% brighter |
| 39 | City of Matlosana | North West | 0.88 | 12% | 11% brighter |
| 40 | Nkomazi | Mpumalanga | 0.87 | 16% | 7.4% brighter |
| 41 | Saldanha Bay | Western Cape | 0.86 | 11% | 8.9% brighter |
| 42 | Thembisile Hani | Mpumalanga | 0.84 | 15% | 3.7% brighter |
| 43 | Makhuduthamaga | Limpopo | 0.82 | 21% | 9.3% brighter |
| 44 | Ndwedwe | KwaZulu-Natal | 0.79 | 23% | 13% brighter |
| 45 | Mangaung | Free State | 0.76 | 7.3% | 1.3% brighter |
| 46 | Mafikeng | North West | 0.72 | 11% | 1.4% darker |
| 47 | Umdoni | KwaZulu-Natal | 0.71 | 17% | 7.6% brighter |
| 48 | Sol Plaatje | Northern Cape | 0.63 | 5.8% | 1.6% brighter |
| 49 | Mossel Bay | Western Cape | 0.63 | 7.3% | 8.6% brighter |
| 50 | Inkosi Mtubatuba | KwaZulu-Natal | 0.62 | 16% | 13% brighter |
| 51 | King Sabata Dalindyebo | Eastern Cape | 0.58 | 8.8% | 4.9% darker |
| 52 | uMlalazi | KwaZulu-Natal | 0.58 | 16% | 3.6% brighter |
| 53 | Greater Giyani | Limpopo | 0.57 | 13% | 14% brighter |
| 54 | Lepele-Nkumpi | Limpopo | 0.57 | 14% | 12% brighter |
| 55 | Phokwane | Northern Cape | 0.56 | 11% | 3.7% brighter |
| 56 | Gamagara | Northern Cape | 0.56 | 7.2% | about the same |
| 57 | Metsimaholo | Free State | 0.52 | 6.7% | 2.0% brighter |
| 58 | Ephraim Mogale | Limpopo | 0.52 | 11% | 1.9% darker |
| 59 | Alfred Duma | KwaZulu-Natal | 0.50 | 10% | 2.0% brighter |
| 60 | Collins Chabane | Limpopo | 0.50 | 13% | 6.4% brighter |
| 61 | Breede Valley | Western Cape | 0.50 | 6.8% | 6.4% brighter |
| 62 | Matjhabeng | Free State | 0.49 | 6.8% | 3.9% darker |
| 63 | uMngeni | KwaZulu-Natal | 0.48 | 11% | about the same |
| 64 | Moses Kotane | North West | 0.48 | 9.1% | 12% brighter |
| 65 | Umzumbe | KwaZulu-Natal | 0.47 | 10% | 6.8% brighter |
| 66 | Mogalakwena | Limpopo | 0.45 | 8.2% | 4.7% brighter |
| 67 | Elias Motsoaledi | Limpopo | 0.45 | 11% | about the same |
| 68 | Overstrand | Western Cape | 0.44 | 6.0% | 10.0% brighter |
| 69 | Maphumulo | KwaZulu-Natal | 0.43 | 11% | 16% brighter |
| 70 | Ingquza Hill | Eastern Cape | 0.42 | 10% | 5.0% brighter |
| 71 | Bushbuckridge | Mpumalanga | 0.42 | 9.6% | 2.4% brighter |
| 72 | Knysna | Western Cape | 0.40 | 6.4% | 8.1% brighter |
| 73 | uMshwathi | KwaZulu-Natal | 0.39 | 11% | 7.1% darker |
| 74 | Makhado | Limpopo | 0.38 | 8.3% | 8.6% brighter |
| 75 | Winnie Madikizela-Mandela | Eastern Cape | 0.35 | 8.8% | 6.1% brighter |
| 76 | Nyandeni | Eastern Cape | 0.34 | 7.8% | 3.0% brighter |
| 77 | Kouga | Eastern Cape | 0.33 | 4.9% | 14% brighter |
| 78 | Bitou | Western Cape | 0.33 | 5.7% | 14% brighter |
| 79 | Swartland | Western Cape | 0.32 | 5.4% | 3.2% brighter |
| 80 | Ba-Phalaborwa | Limpopo | 0.30 | 4.6% | 3.4% brighter |
| 81 | Theewaterskloof | Western Cape | 0.30 | 5.0% | 7.1% brighter |
| 82 | George | Western Cape | 0.30 | 3.3% | 15% brighter |
| 83 | Nongoma | KwaZulu-Natal | 0.29 | 6.6% | 3.3% darker |
| 84 | uMuziwabantu | KwaZulu-Natal | 0.27 | 6.7% | 3.8% brighter |
| 85 | Dannhauser | KwaZulu-Natal | 0.27 | 8.8% | 13% darker |
| 86 | Richmond | KwaZulu-Natal | 0.26 | 5.3% | about the same |
| 87 | Maruleng | Limpopo | 0.26 | 6.5% | 8.3% brighter |
| 88 | JB Marks | North West | 0.25 | 4.1% | 4.2% brighter |
| 89 | Maluti a Phofung | Free State | 0.24 | 5.1% | 4.3% brighter |
| 90 | Jozini | KwaZulu-Natal | 0.24 | 5.9% | 9.1% brighter |
| 91 | Lekwa | Mpumalanga | 0.24 | 3.9% | 7.7% darker |
| 92 | Umzimvubu | Eastern Cape | 0.23 | 5.2% | 15% brighter |
| 93 | Endumeni | KwaZulu-Natal | 0.23 | 4.4% | about the same |
| 94 | Molemole | Limpopo | 0.23 | 5.0% | 4.5% brighter |
| 95 | Inkosi Langalibalele | KwaZulu-Natal | 0.22 | 4.5% | about the same |
| 96 | Mnquma | Eastern Cape | 0.21 | 3.7% | 5.0% brighter |
| 97 | uPhongolo | KwaZulu-Natal | 0.21 | 5.4% | about the same |
| 98 | Umhlabuyalingana | KwaZulu-Natal | 0.21 | 5.2% | 17% brighter |
| 99 | Ntabankulu | Eastern Cape | 0.20 | 4.7% | 18% brighter |
| 100 | Johannes Phumani Phungula | KwaZulu-Natal | 0.20 | 5.3% | about the same |
| 101 | Msinga | KwaZulu-Natal | 0.19 | 4.1% | about the same |
| 102 | Ulundi | KwaZulu-Natal | 0.19 | 4.3% | about the same |
| 103 | Chief Albert Luthuli | Mpumalanga | 0.19 | 4.4% | about the same |
| 104 | Greater Taung | North West | 0.19 | 4.7% | 9.5% darker |
| 105 | Oudtshoorn | Western Cape | 0.19 | 2.1% | 19% brighter |
| 106 | Ga-Segonyana | Northern Cape | 0.18 | 3.5% | about the same |
| 107 | Langeberg | Western Cape | 0.18 | 2.7% | 5.9% brighter |
| 108 | Dihlabeng | Free State | 0.17 | 2.4% | 6.3% brighter |
| 109 | Dipaleseng | Mpumalanga | 0.17 | 3.0% | 5.6% darker |
| 110 | Ngwathe | Free State | 0.16 | 2.5% | about the same |
| 111 | Abaqulusi | KwaZulu-Natal | 0.16 | 2.8% | 6.7% brighter |
| 112 | Kumkani Mhlontlo | Eastern Cape | 0.15 | 3.4% | about the same |
| 113 | Moqhaka | Free State | 0.15 | 2.2% | 6.3% darker |
| 114 | Umvoti | KwaZulu-Natal | 0.15 | 2.7% | 7.1% brighter |
| 115 | Umzimkhulu | KwaZulu-Natal | 0.15 | 2.8% | 15% brighter |
| 116 | Msukaligwa | Mpumalanga | 0.15 | 2.6% | 12% darker |
| 117 | Mkhondo | Mpumalanga | 0.15 | 2.7% | 7.1% brighter |
| 118 | Kgatelopele | Northern Cape | 0.15 | 1.9% | about the same |
| 119 | Ndlambe | Eastern Cape | 0.14 | 2.8% | 7.7% brighter |
| 120 | Thaba Chweu | Mpumalanga | 0.14 | 2.2% | about the same |
| 121 | Matatiele | Eastern Cape | 0.13 | 2.4% | 8.3% brighter |
| 122 | Greater Kokstad | KwaZulu-Natal | 0.13 | 1.5% | 8.3% brighter |
| 123 | Bela-Bela | Limpopo | 0.13 | 2.3% | about the same |
| 124 | Ditsobotla | North West | 0.13 | 2.6% | about the same |
| 125 | Nqutu | KwaZulu-Natal | 0.12 | 2.7% | 20% darker |
| 126 | Thabazimbi | Limpopo | 0.12 | 1.9% | 20% brighter |
| 127 | Lephalale | Limpopo | 0.12 | 2.1% | about the same |
| 128 | Emakhazeni | Mpumalanga | 0.12 | 2.4% | about the same |
| 129 | Nala | Free State | 0.11 | 1.6% | 8.3% darker |
| 130 | Nkandla | KwaZulu-Natal | 0.11 | 2.2% | about the same |
| 131 | Bergrivier | Western Cape | 0.11 | 1.7% | 10.0% brighter |
| 132 | Dr AB Xuma | Eastern Cape | 0.10 | 1.9% | about the same |
| 133 | Big Five Hlabisa | KwaZulu-Natal | 0.10 | 2.5% | 9.1% darker |
| 134 | Mthonjaneni | KwaZulu-Natal | 0.10 | 1.7% | 17% darker |
| 135 | Musina | Limpopo | 0.10 | 1.4% | 11% brighter |
| 136 | Ratlou | North West | 0.10 | 3.2% | 17% darker |
| 137 | Sundays River Valley | Eastern Cape | 0.09 | 2.2% | 13% brighter |
| 138 | Mbhashe | Eastern Cape | 0.09 | 1.6% | 13% brighter |
| 139 | Setsoto | Free State | 0.09 | 1.4% | about the same |
| 140 | Ramotshere Moiloa | North West | 0.09 | 2.4% | about the same |
| 141 | Lekwa-Teemane | North West | 0.09 | 1.4% | about the same |
| 142 | Witzenberg | Western Cape | 0.09 | 1.3% | 13% brighter |
| 143 | Cape Agulhas | Western Cape | 0.09 | 1.3% | 13% brighter |
| 144 | Okhahlamba | KwaZulu-Natal | 0.08 | 2.2% | 11% darker |
| 145 | eDumbe | KwaZulu-Natal | 0.08 | 1.9% | about the same |
| 146 | Kgetlengrivier | North West | 0.08 | 1.6% | 11% darker |
| 147 | Swellendam | Western Cape | 0.08 | 1.1% | 14% brighter |
| 148 | Elundini | Eastern Cape | 0.07 | 1.1% | 17% brighter |
| 149 | Mafube | Free State | 0.07 | 1.3% | about the same |
| 150 | Mpofana | KwaZulu-Natal | 0.07 | 1.0% | about the same |
| 151 | Impendle | KwaZulu-Natal | 0.07 | 1.9% | 17% brighter |
| 152 | Dr Nkosazana Dlamini Zuma | KwaZulu-Natal | 0.07 | 1.7% | about the same |
| 153 | Blouberg | Limpopo | 0.07 | 1.8% | 17% brighter |
| 154 | Dr Pixley Ka Isaka Seme | Mpumalanga | 0.07 | 1.5% | 12% darker |
| 155 | Maquassi Hills | North West | 0.07 | 1.3% | 12% darker |
| 156 | Makana | Eastern Cape | 0.06 | 1.0% | about the same |
| 157 | Raymond Mhlaba | Eastern Cape | 0.06 | 1.1% | 14% darker |
| 158 | Intsika Yethu | Eastern Cape | 0.06 | 0.8% | about the same |
| 159 | Nketoana | Free State | 0.06 | 0.9% | 20% brighter |
| 160 | Modimolle-Mookgophong | Limpopo | 0.06 | 1.0% | about the same |
| 161 | Tsantsabane | Northern Cape | 0.06 | 0.7% | about the same |
| 162 | Magareng | Northern Cape | 0.06 | 1.3% | 50% brighter |
| 163 | Naledi | North West | 0.06 | 0.9% | 14% darker |
| 164 | Mamusa | North West | 0.06 | 1.2% | 14% darker |
| 165 | Kou-Kamma | Eastern Cape | 0.05 | 1.1% | 67% brighter |
| 166 | Ngqushwa | Eastern Cape | 0.05 | 1.2% | 25% brighter |
| 167 | Sakhisizwe | Eastern Cape | 0.05 | 1.0% | about the same |
| 168 | Enoch Mgijima | Eastern Cape | 0.05 | 1.0% | 25% brighter |
| 169 | Masilonyana | Free State | 0.05 | 0.9% | about the same |
| 170 | Tswelopele | Free State | 0.05 | 0.6% | about the same |
| 171 | Mantsopa | Free State | 0.05 | 1.0% | about the same |
| 172 | Emadlangeni | KwaZulu-Natal | 0.05 | 1.0% | 17% darker |
| 173 | Tswaing | North West | 0.05 | 1.3% | 17% darker |
| 174 | Hessequa | Western Cape | 0.05 | 1.0% | about the same |
| 175 | Amahlathi | Eastern Cape | 0.04 | 0.9% | 33% brighter |
| 176 | Joe Morolong | Northern Cape | 0.04 | 0.7% | about the same |
| 177 | Matzikama | Western Cape | 0.04 | 0.8% | about the same |
| 178 | Great Kei | Eastern Cape | 0.03 | 0.8% | about the same |
| 179 | Inxuba Yethemba | Eastern Cape | 0.03 | 0.4% | about the same |
| 180 | Emalahleni | Eastern Cape | 0.03 | 0.8% | about the same |
| 181 | Senqu | Eastern Cape | 0.03 | 0.7% | about the same |
| 182 | Khâi-Ma | Northern Cape | 0.03 | 0.4% | about the same |
| 183 | Emthanjeni | Northern Cape | 0.03 | 0.3% | 50% brighter |
| 184 | Dawid Kruiper | Northern Cape | 0.03 | 0.3% | about the same |
| 185 | Dikgatlong | Northern Cape | 0.03 | 0.5% | about the same |
| 186 | Cederberg | Western Cape | 0.03 | 0.6% | about the same |
| 187 | Blue Crane Route | Eastern Cape | 0.02 | 0.3% | 100% brighter |
| 188 | Walter Sisulu | Eastern Cape | 0.02 | 0.3% | about the same |
| 189 | Letsemeng | Free State | 0.02 | 0.4% | about the same |
| 190 | Kopanong | Free State | 0.02 | 0.4% | 100% brighter |
| 191 | Tokologo | Free State | 0.02 | 0.4% | about the same |
| 192 | Phumelela | Free State | 0.02 | 0.5% | 33% darker |
| 193 | Richtersveld | Northern Cape | 0.02 | 0.3% | about the same |
| 194 | Nama Khoi | Northern Cape | 0.02 | 0.4% | about the same |
| 195 | Umsobomvu | Northern Cape | 0.02 | 0.4% | about the same |
| 196 | Siyathemba | Northern Cape | 0.02 | 0.2% | 100% brighter |
| 197 | Kai !Garib | Northern Cape | 0.02 | 0.4% | about the same |
| 198 | Kannaland | Western Cape | 0.02 | 0.4% | about the same |
| 199 | Beaufort West | Western Cape | 0.02 | 0.2% | about the same |
| 200 | Dr Beyers Naude | Eastern Cape | 0.01 | 0.2% | about the same |
| 201 | Mohokare | Free State | 0.01 | 0.3% | about the same |
| 202 | Hantam | Northern Cape | 0.01 | 0.1% | about the same |
| 203 | Thembelihle | Northern Cape | 0.01 | 0.1% | about the same |
| 204 | Siyancuma | Northern Cape | 0.01 | 0.3% | about the same |
| 205 | !Kheis | Northern Cape | 0.01 | 0.2% | about the same |
| 206 | Kagisano/Molopo | North West | 0.01 | 0.3% | about the same |
| 207 | Laingsburg | Western Cape | 0.01 | 0.1% | about the same |
| 208 | Prince Albert | Western Cape | 0.01 | 0.1% | about the same |
| 209 | Kamiesberg | Northern Cape | 0.00 | 0% | about the same |
| 210 | Karoo Hoogland | Northern Cape | 0.00 | 0% | about the same |
| 211 | Ubuntu | Northern Cape | 0.00 | 0.1% | 100% darker |
| 212 | Kareeberg | Northern Cape | 0.00 | 0.1% | about the same |
| 213 | Renosterberg | Northern Cape | 0.00 | 0.1% | about the same |
The metros
Each metro’s page has every year and month since 2012 and its wards by number.
By province
How it was checked
NASA makes the yearly figure separately from the monthly ones, so the two were set against each other place by place: for municipalities the yearly figure and the mean of the year’s twelve months are a median 1.8% apart (360 of 374 municipality-years within 10%), for wards a median 1.0% (34,024 of 34,088 within 20%). The country’s light in each month of 2022 and 2023, the years of the heaviest load-shedding, was set against the same month in 2024 and 2025, after load-shedding largely stopped: 23 of the 24 months were darker. Against 2019 and 2021 only 6 were: the country’s light was rising through the decade, so the satellite shows the end of load-shedding more clearly than its start. In 2025 the 6 metros among the eight municipalities giving off the most light were City of Johannesburg, City of Cape Town, Ekurhuleni, City of Tshwane, eThekwini, Nelson Mandela Bay. Every ward adds up to its province. The workings are in the docs.
Source
NASA Black Marble night lights, VNP46A3 (monthly) and VNP46A4 (yearly), collection 2, from NASA’s LAADS DAAC (doi:10.5067/VIIRS/VNP46A3.002 and doi:10.5067/VIIRS/VNP46A4.002). The product’s page.
What we changed: we added up NASA’s light over each 2026 ward (each pixel, about 460 m across, split in four and given to the ward holding each quarter) and added the wards up to municipalities, districts and provinces.
The satellite (Suomi NPP) passes at about 1:30 in the morning. NASA’s monthly figure is the mean of the month’s clear nights; a pixel with no clear night is filled from earlier months, and that share is shown. The yearly figure is NASA’s own mean of the year’s clear nights, so it is close to, not exactly, the mean of the twelve months.
Dataset: night light by ward, release 2026-11-13.