acg

← Projects

A district-by-district look at 26 years of PM2.5. Research · Code, 2026.

Data:ACAG V6.GL.02.04 (WashU)
Boundaries:SHRUG v2.1, Census 2011 districts
Series:1998–2023 annual mean PM2.5
Licence:CC BY-NC-SA 4.0

PM2.5 estimates in Indian districts over the time period of 1998–2023. The data was initially cleaned and processed for my master’s thesis. And recently, going back to my thesis, I thought that it would be nice to also have an interactive visualisation of this data.

I think that it is also much easier to understand the degradation in air quality over time when the information is presented visually. It helps provide a clearer picture of how the problem has evolved across different areas and, more importantly, makes it easier to identify the places where pollution has persisted or worsened to a much greater and potentially more dangerous extent than elsewhere.

So here is India: district by district, from 1998 to 2023. Pick a place, see what its air has been doing, and hold it up against somewhere else. Not one district gets under the WHO’s guideline in any year.

Fig. 1 Annual mean PM2.5, 2023, µg/m³
Map of India coloured by annual mean PM2.5 in 2023: highest across the plains of the north, from Punjab and Delhi to Bihar and West Bengal, lowest in the far north, the north-east and the south-west coast.Map of India coloured by annual mean PM2.5 in 2023: highest across the plains of the north, from Punjab and Delhi to Bihar and West Bengal, lowest in the far north, the north-east and the south-west coast.
040100150+ µg/m³
5 WHO40 NAAQS

365 of 640 districts above 40 µg/m³ in 2023

Source: satellite-derived PM2.5 estimates from ACAG V6.GL.02.04 (Shen et al., 2024; van Donkelaar et al., 2021). District boundaries from SHRUG v2.1 (Asher et al., 2021; CC BY-NC-SA 4.0). Elevation: SRTM and GMTED2010 via AWS Terrain Tiles. Standards: India CPCB NAAQS (40 µg/m³) · WHO 2021 AQG (5 µg/m³). All 640 districts exceed WHO 5 µg/m³ in every year.

The map plays monthly means of fine particulate matter (PM2.5) and the table holds yearly ones, in micrograms per cubic metre, averaged over each district's area. The land stands at its real height, exaggerated about twenty times; only the colour is the air. They come from satellites and models rather than from monitors on the ground, so treat a tenth of a microgram with some suspicion.

Table 1 All 640 districts, yearly means, 2023 and 1998, µg/m³
DistrictState20231998Change
CentralNCT of Delhi104.666.3+38.3
EastNCT of Delhi104.267.1+37.1
North EastNCT of Delhi104.065.9+38.1
NorthNCT of Delhi103.665.6+38.0
New DelhiNCT of Delhi103.265.7+37.5
WestNCT of Delhi101.563.1+38.4
North WestNCT of Delhi94.661.3+33.3
SouthNCT of Delhi89.456.6+32.8
South WestNCT of Delhi89.355.5+33.8
Gautam Buddha NagarUttar Pradesh82.855.1+27.7
FaridabadHaryana80.453.6+26.8
GhaziabadUttar Pradesh79.555.5+24.0
SonipatHaryana78.046.5+31.5
BaghpatUttar Pradesh77.448.5+28.9
BulandshahrUttar Pradesh77.053.2+23.8
RohtakHaryana76.843.9+32.9
VaishaliBihar75.646.2+29.4
AligarhUttar Pradesh75.350.6+24.7
Mahamaya NagarUttar Pradesh75.349.9+25.4
PanipatHaryana74.743.7+31.0
JaunpurUttar Pradesh74.445.1+29.3
SaranBihar74.346.7+27.6
EtahUttar Pradesh73.948.3+25.6
SamastipurBihar73.745.4+28.3
GurgaonHaryana73.444.5+28.9
GhazipurUttar Pradesh73.345.8+27.5
JindHaryana73.140.4+32.7
JhajjarHaryana73.144.4+28.7
Kanshiram NagarUttar Pradesh73.146.9+26.2
AzamgarhUttar Pradesh73.045.5+27.5
MauUttar Pradesh72.745.0+27.7
BalliaUttar Pradesh72.745.9+26.8
FirozabadUttar Pradesh72.544.2+28.3
BegusaraiBihar72.343.3+29.0
MathuraUttar Pradesh72.246.6+25.6
BudaunUttar Pradesh72.246.8+25.4
PratapgarhUttar Pradesh72.142.8+29.3
MeerutUttar Pradesh72.047.7+24.3
MainpuriUttar Pradesh71.944.4+27.5
FarrukhabadUttar Pradesh71.743.5+28.2
SiwanBihar71.746.0+25.7
KhagariaBihar71.743.0+28.7
Ambedkar NagarUttar Pradesh70.243.1+27.1
BuxarBihar70.145.0+25.1
Kanpur NagarUttar Pradesh70.041.6+28.4
HardoiUttar Pradesh69.841.8+28.0
SultanpurUttar Pradesh69.842.3+27.5
PatnaBihar69.742.9+26.8
FatehpurUttar Pradesh69.339.5+29.8
VaranasiUttar Pradesh69.343.0+26.3
HisarHaryana69.237.2+32.0
MuzaffarpurBihar69.145.6+23.5
KaithalHaryana68.938.3+30.6
PalwalHaryana68.748.8+19.9
SaharsaBihar68.742.1+26.6
KaushambiUttar Pradesh68.638.8+29.8
UnnaoUttar Pradesh68.542.5+26.0
DeoriaUttar Pradesh68.543.2+25.3
ShahjahanpurUttar Pradesh68.439.8+28.6
LucknowUttar Pradesh68.441.2+27.2
BhojpurBihar68.443.6+24.8
AgraUttar Pradesh68.240.2+28.0
Rae BareliUttar Pradesh68.142.1+26.0
KannaujUttar Pradesh67.942.5+25.4
FaizabadUttar Pradesh67.739.6+28.1
GopalganjBihar67.745.2+22.5
KarnalHaryana67.638.9+28.7
GorakhpurUttar Pradesh66.940.8+26.1
Bara BankiUttar Pradesh66.738.9+27.8
EtawahUttar Pradesh66.638.7+27.9
AuraiyaUttar Pradesh66.439.5+26.9
FatehabadHaryana66.336.3+30.0
SitapurUttar Pradesh66.336.4+29.9
AllahabadUttar Pradesh66.238.2+28.0
Sant Ravidas Nagar (Bhadohi)Uttar Pradesh66.240.7+25.5
MogaPunjab66.133.3+32.8
DarbhangaBihar66.142.1+24.0
SangrurPunjab65.936.1+29.8
Jyotiba Phule NagarUttar Pradesh65.946.3+19.6
Kanpur DehatUttar Pradesh65.839.7+26.1
MuzaffarnagarUttar Pradesh65.740.6+25.1
KatiharBihar65.738.5+27.2
BarnalaPunjab65.636.3+29.3
GondaUttar Pradesh65.635.3+30.3
ArwalBihar65.641.7+23.9
JehanabadBihar65.141.1+24.0
BastiUttar Pradesh65.037.9+27.1
PurniaBihar64.838.0+26.8
NadiaWest Bengal64.825.5+39.3
FaridkotPunjab64.733.3+31.4
Sant Kabir NagarUttar Pradesh64.738.6+26.1
Tarn TaranPunjab64.631.0+33.6
MansaPunjab64.536.3+28.2
BhiwaniHaryana64.535.6+28.9
MadhepuraBihar64.539.5+25.0
RewariHaryana63.937.3+26.6
BhindMadhya Pradesh63.735.2+28.5
BhagalpurBihar63.638.6+25.0
HamirpurUttar Pradesh63.232.6+30.6
NalandaBihar63.239.9+23.3
North Twenty Four ParganasWest Bengal63.222.6+40.6
FirozpurPunjab63.131.9+31.2
MewatHaryana63.042.1+20.9
HugliWest Bengal62.926.2+36.7
LudhianaPunjab62.832.6+30.2
BathindaPunjab62.835.2+27.6
BareillyUttar Pradesh62.838.5+24.3
JalaunUttar Pradesh62.833.3+29.5
BarddhamanWest Bengal62.630.3+32.3
BandaUttar Pradesh62.532.9+29.6
MaldahWest Bengal62.332.2+30.1
Dakshin DinajpurWest Bengal62.233.6+28.6
KurukshetraHaryana62.135.4+26.7
MoradabadUttar Pradesh62.142.1+20.0
MuktsarPunjab61.932.7+29.2
KushinagarUttar Pradesh61.736.3+25.4
BharatpurRajasthan61.436.9+24.5
PatialaPunjab61.334.1+27.2
SirsaHaryana61.333.7+27.6
South Twenty Four ParganasWest Bengal61.122.1+39.0
MungerBihar61.038.0+23.0
BankuraWest Bengal60.633.7+26.9
Purba ChamparanBihar60.438.9+21.5
AmritsarPunjab60.331.3+29.0
ChandauliUttar Pradesh60.136.8+23.3
KapurthalaPunjab59.932.0+27.9
JalandharPunjab59.831.7+28.1
LakhisaraiBihar59.737.7+22.0
BahraichUttar Pradesh59.331.2+28.1
SheikhpuraBihar59.138.0+21.1
Uttar DinajpurWest Bengal59.133.5+25.6
SheoharBihar58.640.8+17.8
RohtasBihar58.135.4+22.7
HanumangarhRajasthan58.031.9+26.1
AurangabadBihar58.035.3+22.7
MurshidabadWest Bengal57.926.8+31.1
KheriUttar Pradesh57.830.6+27.2
MirzapurUttar Pradesh57.833.7+24.1
ChitrakootUttar Pradesh57.732.1+25.6
GayaBihar57.534.7+22.8
DhaulpurRajasthan57.431.6+25.8
PuruliyaWest Bengal57.234.5+22.7
GanganagarRajasthan57.135.3+21.8
MahobaUttar Pradesh57.027.7+29.3
MahendragarhHaryana56.430.5+25.9
HaoraWest Bengal56.423.5+32.9
DhanbadJharkhand56.336.1+20.2
Kaimur (Bhabua)Bihar56.233.1+23.1
MadhubaniBihar56.134.0+22.1
SupaulBihar55.832.5+23.3
ArariaBihar55.831.4+24.4
RamgarhJharkhand55.829.8+26.0
RampurUttar Pradesh55.735.3+20.4
Purba MedinipurWest Bengal55.721.1+34.6
SahibganjJharkhand55.633.1+22.5
Fatehgarh SahibPunjab55.531.2+24.3
BokaroJharkhand55.535.9+19.6
BargarhOdisha55.518.7+36.8
MorenaMadhya Pradesh55.530.8+24.7
BirbhumWest Bengal55.429.6+25.8
KolkataWest Bengal55.325.0+30.3
DatiaMadhya Pradesh55.328.8+26.5
Janjgir - ChampaChhattisgarh54.917.8+37.1
DhenkanalOdisha54.821.8+33.0
SiddharthnagarUttar Pradesh54.731.3+23.4
NawadaBihar54.634.6+20.0
AlwarRajasthan54.531.1+23.4
SitamarhiBihar54.234.9+19.3
SubarnapurOdisha54.218.4+35.8
MahasamundChhattisgarh54.218.6+35.6
BankaBihar54.133.9+20.2
DurgChhattisgarh54.119.0+35.1
JhansiUttar Pradesh53.727.6+26.1
SambalpurOdisha53.619.7+33.9
AmbalaHaryana53.430.2+23.2
SaharanpurUttar Pradesh53.430.7+22.7
Saraikela-KharsawanJharkhand53.431.4+22.0
MahrajganjUttar Pradesh53.331.2+22.1
Purbi SinghbhumJharkhand53.333.5+19.8
ShrawastiUttar Pradesh53.229.3+23.9
PilibhitUttar Pradesh53.130.3+22.8
Pashchimi SinghbhumJharkhand53.026.5+26.5
JamuiBihar52.933.1+19.8
JharsugudaOdisha52.918.8+34.1
BalrampurUttar Pradesh52.829.3+23.5
RewaMadhya Pradesh52.527.6+24.9
Paschim MedinipurWest Bengal52.425.3+27.1
PalamuJharkhand52.425.7+26.7
Pashchim ChamparanBihar52.329.9+22.4
JagatsinghapurOdisha52.318.7+33.6
AnugulOdisha52.220.9+31.3
ChatraJharkhand52.127.8+24.3
DebagarhOdisha52.120.4+31.7
GwaliorMadhya Pradesh52.129.0+23.1
GoddaJharkhand51.932.5+19.4
KendraparaOdisha51.918.7+33.2
RaipurChhattisgarh51.918.0+33.9
PakurJharkhand51.629.6+22.0
JamtaraJharkhand51.632.7+18.9
KhuntiJharkhand51.624.6+27.0
CuttackOdisha51.618.8+32.8
KodarmaJharkhand51.431.3+20.1
YamunanagarHaryana51.327.2+24.1
RanchiJharkhand51.326.0+25.3
JajapurOdisha51.319.1+32.2
HazaribaghJharkhand51.228.6+22.6
BalangirOdisha51.216.7+34.5
KhordhaOdisha51.117.8+33.3
BijnorUttar Pradesh51.030.0+21.0
SonbhadraUttar Pradesh51.024.9+26.1
GiridihJharkhand50.931.3+19.6
RaigarhChhattisgarh50.717.9+32.8
South TripuraTripura50.618.9+31.7
SundargarhOdisha50.620.4+30.2
KendujharOdisha50.521.9+28.6
GarhwaJharkhand50.422.2+28.2
SimdegaJharkhand50.221.0+29.2
KishanganjBihar50.128.6+21.5
SatnaMadhya Pradesh50.023.0+27.0
West TripuraTripura49.918.4+31.5
NayagarhOdisha49.918.6+31.3
GumlaJharkhand49.818.9+30.9
Shahid Bhagat Singh NagarPunjab49.527.9+21.6
BaudhOdisha49.519.0+30.5
LateharJharkhand49.421.7+27.7
PuriOdisha49.418.5+30.9
ChandigarhChandigarh49.325.7+23.6
AnandGujarat49.330.1+19.2
BhadrakOdisha49.218.4+30.8
SingrauliMadhya Pradesh49.222.0+27.2
SidhiMadhya Pradesh49.121.7+27.4
DausaRajasthan48.927.1+21.8
DeogharJharkhand48.831.0+17.8
AhmadabadGujarat48.833.4+15.4
Sahibzada Ajit Singh NagarPunjab48.725.9+22.8
LohardagaJharkhand48.620.0+28.6
BilaspurChhattisgarh48.517.3+31.2
ChuruRajasthan48.327.4+20.9
JhunjhununRajasthan48.127.2+20.9
HyderabadAndhra Pradesh47.919.5+28.4
KarauliRajasthan47.828.0+19.8
BharuchGujarat47.626.7+20.9
NuapadaOdisha47.516.4+31.1
DhamtariChhattisgarh47.516.2+31.3
Sawai MadhopurRajasthan47.428.9+18.5
TonkRajasthan46.929.6+17.3
DumkaJharkhand46.929.7+17.2
SurgujaChhattisgarh46.917.3+29.6
RajnandgaonChhattisgarh46.816.8+30.0
ChhatarpurMadhya Pradesh46.823.0+23.8
Mumbai SuburbanMaharashtra46.827.3+19.5
GurdaspurPunjab46.625.6+21.0
HardwarUttarakhand46.624.5+22.1
BikanerRajasthan46.536.1+10.4
JashpurChhattisgarh46.516.9+29.6
KorbaChhattisgarh46.518.4+28.1
JaipurRajasthan46.427.5+18.9
MayurbhanjOdisha46.223.6+22.6
MumbaiMaharashtra46.230.5+15.7
KabeerdhamChhattisgarh45.916.1+29.8
ShahdolMadhya Pradesh45.818.7+27.1
TikamgarhMadhya Pradesh45.622.0+23.6
RupnagarPunjab45.322.3+23.0
GanjamOdisha45.316.1+29.2
KalahandiOdisha45.215.3+29.9
PannaMadhya Pradesh45.122.4+22.7
KhedaGujarat45.130.3+14.8
BundiRajasthan45.027.6+17.4
KatniMadhya Pradesh44.819.5+25.3
SikarRajasthan44.726.8+17.9
NagaurRajasthan44.732.3+12.4
BaleshwarOdisha44.719.9+24.8
Udham Singh NagarUttarakhand44.523.1+21.4
KotaRajasthan44.425.3+19.1
BhavnagarGujarat44.429.2+15.2
JaisalmerRajasthan44.332.5+11.8
VadodaraGujarat44.225.5+18.7
BhandaraMaharashtra44.216.9+27.3
HoshiarpurPunjab44.124.8+19.3
KoriyaChhattisgarh44.017.7+26.3
GondiyaMaharashtra44.016.3+27.7
JabalpurMadhya Pradesh43.918.2+25.7
SuratGujarat43.824.4+19.4
PanchkulaHaryana43.720.9+22.8
DhubriAssam43.723.0+20.7
UmariaMadhya Pradesh43.718.6+25.1
JalgaonMaharashtra43.718.1+25.6
GandhinagarGujarat43.631.1+12.5
KandhamalOdisha43.515.6+27.9
DharMadhya Pradesh43.420.4+23.0
Khargone (West Nimar)Madhya Pradesh43.319.2+24.1
VizianagaramAndhra Pradesh43.214.2+29.0
IndoreMadhya Pradesh43.120.3+22.8
AnuppurMadhya Pradesh43.116.5+26.6
DhuleMaharashtra43.119.0+24.1
LalitpurUttar Pradesh43.020.8+22.2
AkolaMaharashtra43.017.1+25.9
JodhpurRajasthan42.937.9+5.0
BarmerRajasthan42.939.1+3.8
SheopurMadhya Pradesh42.925.1+17.8
UjjainMadhya Pradesh42.919.6+23.3
NagpurMaharashtra42.917.7+25.2
West Garo HillsMeghalaya42.819.8+23.0
BarwaniMadhya Pradesh42.820.0+22.8
MandsaurMadhya Pradesh42.720.5+22.2
MahesanaGujarat42.731.4+11.3
WardhaMaharashtra42.717.2+25.5
AjmerRajasthan42.628.5+14.1
BaranRajasthan42.623.4+19.2
DamohMadhya Pradesh42.520.0+22.5
VidishaMadhya Pradesh42.520.0+22.5
AshoknagarMadhya Pradesh42.521.6+20.9
SrikakulamAndhra Pradesh42.514.8+27.7
RatlamMadhya Pradesh42.419.7+22.7
PatanGujarat42.430.9+11.5
SurendranagarGujarat42.428.6+13.8
JalnaMaharashtra42.315.8+26.5
AhmadnagarMaharashtra42.316.1+26.2
RayagadaOdisha42.214.6+27.6
NarsimhapurMadhya Pradesh42.218.2+24.0
JhalawarRajasthan42.121.9+20.2
SagarMadhya Pradesh42.119.4+22.7
BhopalMadhya Pradesh42.119.4+22.7
SeoniMadhya Pradesh42.117.3+24.8
GajapatiOdisha42.013.9+28.1
BalaghatMadhya Pradesh42.016.1+25.9
ShivpuriMadhya Pradesh41.922.8+19.1
AurangabadMaharashtra41.916.1+25.8
ShajapurMadhya Pradesh41.818.9+22.9
KamrupAssam41.721.1+20.6
RajgarhMadhya Pradesh41.719.3+22.4
NandurbarMaharashtra41.719.2+22.5
BuldanaMaharashtra41.716.5+25.2
Khandwa (East Nimar)Madhya Pradesh41.618.6+23.0
JalpaiguriWest Bengal41.522.0+19.5
BurhanpurMadhya Pradesh41.517.7+23.8
PaliRajasthan41.434.6+6.8
Panch MahalsGujarat41.426.2+15.2
WashimMaharashtra41.316.0+25.3
YavatmalMaharashtra41.316.7+24.6
JalorRajasthan41.240.6+0.6
Koch BiharWest Bengal41.225.8+15.4
GunaMadhya Pradesh41.221.6+19.6
NabarangapurOdisha41.014.3+26.7
JhabuaMadhya Pradesh41.020.5+20.5
RajkotGujarat41.025.8+15.2
ChandrapurMaharashtra41.016.6+24.4
DewasMadhya Pradesh40.818.8+22.0
SehoreMadhya Pradesh40.818.5+22.3
RaisenMadhya Pradesh40.819.2+21.6
BanswaraRajasthan40.721.6+19.1
GoalparaAssam40.720.3+20.4
Uttar Bastar KankerChhattisgarh40.715.0+25.7
KachchhGujarat40.625.1+15.5
NavsariGujarat40.621.0+19.6
AmravatiMaharashtra40.616.8+23.8
KarimnagarAndhra Pradesh40.616.9+23.7
HardaMadhya Pradesh40.517.4+23.1
MandlaMadhya Pradesh40.516.7+23.8
HingoliMaharashtra40.515.6+24.9
PuneMaharashtra40.516.9+23.6
Banas KanthaGujarat40.432.0+8.4
NarmadaGujarat40.322.0+18.3
ParbhaniMaharashtra40.315.1+25.2
BhilwaraRajasthan40.227.5+12.7
HoshangabadMadhya Pradesh40.018.0+22.0
Sabar KanthaGujarat40.026.4+13.6
DhalaiTripura39.917.0+22.9
Kamrup MetropolitanAssam39.720.7+19.0
TapiGujarat39.719.7+20.0
BidMaharashtra39.714.4+25.3
DungarpurRajasthan39.625.2+14.4
DindoriMadhya Pradesh39.615.5+24.1
GadchiroliMaharashtra39.615.5+24.1
DohadGujarat39.522.4+17.1
NandedMaharashtra39.515.6+23.9
NashikMaharashtra39.417.3+22.1
SirohiRajasthan39.330.5+8.8
AlirajpurMadhya Pradesh39.321.2+18.1
DamanDaman and Diu39.321.2+18.1
AdilabadAndhra Pradesh39.215.8+23.4
NeemuchMadhya Pradesh38.821.1+17.7
West GodavariAndhra Pradesh38.714.7+24.0
ChittaurgarhRajasthan38.623.5+15.1
PratapgarhRajasthan38.621.1+17.5
AmreliGujarat38.624.1+14.5
UdaipurRajasthan38.524.3+14.2
RajsamandRajasthan38.427.1+11.3
MalkangiriOdisha38.414.1+24.3
BastarChhattisgarh38.414.1+24.3
ThaneMaharashtra38.421.4+17.0
NizamabadAndhra Pradesh38.416.0+22.4
ChhindwaraMadhya Pradesh38.316.6+21.7
WarangalAndhra Pradesh38.315.8+22.5
East Garo HillsMeghalaya38.118.1+20.0
BarpetaAssam38.021.5+16.5
SolapurMaharashtra37.914.1+23.8
DarjilingWest Bengal37.824.1+13.7
NalgondaAndhra Pradesh37.816.5+21.3
KrishnaAndhra Pradesh37.815.4+22.4
RaigarhMaharashtra37.619.9+17.7
LaturMaharashtra37.613.8+23.8
OsmanabadMaharashtra37.613.5+24.1
VisakhapatnamAndhra Pradesh37.612.9+24.7
JamnagarGujarat37.525.6+11.9
YanamPuducherry37.416.2+21.2
BijapurChhattisgarh37.314.8+22.5
North TripuraTripura37.216.5+20.7
South Garo HillsMeghalaya37.217.7+19.5
MorigaonAssam37.220.4+16.8
KhammamAndhra Pradesh37.215.2+22.0
ChennaiTamil Nadu37.219.1+18.1
KokrajharAssam37.118.6+18.5
Dakshin Bastar DantewadaChhattisgarh37.114.0+23.1
NarayanpurChhattisgarh37.014.2+22.8
KoraputOdisha36.912.8+24.1
East GodavariAndhra Pradesh36.813.5+23.3
KarimganjAssam36.617.7+18.9
BetulMadhya Pradesh36.616.4+20.2
MedakAndhra Pradesh36.615.5+21.1
BishnupurManipur36.415.7+20.7
UnaHimachal Pradesh36.318.7+17.6
ValsadGujarat36.319.5+16.8
GunturAndhra Pradesh36.115.0+21.1
NalbariAssam36.020.7+15.3
HailakandiAssam35.917.6+18.3
ChirangAssam35.717.4+18.3
PorbandarGujarat35.629.3+6.3
BongaigaonAssam35.518.4+17.1
DehradunUttarakhand35.422.2+13.2
DarrangAssam35.420.1+15.3
SolanHimachal Pradesh35.217.9+17.3
NainitalUttarakhand35.121.9+13.2
CacharAssam35.117.1+18.0
DiuDaman and Diu35.026.9+8.1
Dadra and Nagar HaveliDadra and Nagar Haveli35.018.8+16.2
JammuJammu and Kashmir34.920.5+14.4
The DangsGujarat34.918.1+16.8
ThoubalManipur34.716.3+18.4
RangareddyAndhra Pradesh34.714.8+19.9
JunagadhGujarat34.523.9+10.6
RibhoiMeghalaya34.416.1+18.3
SataraMaharashtra34.314.0+20.3
GulbargaKarnataka34.313.7+20.6
SambaJammu and Kashmir34.217.2+17.0
UdalguriAssam34.215.6+18.6
Imphal WestManipur34.116.7+17.4
BidarKarnataka34.113.7+20.4
ThiruvallurTamil Nadu33.715.9+17.8
SirmaurHimachal Pradesh33.619.3+14.3
SangliMaharashtra33.613.2+20.4
DimapurNagaland33.518.6+14.9
South DistrictSikkim33.220.7+12.5
BilaspurHimachal Pradesh33.017.5+15.5
KancheepuramTamil Nadu32.915.9+17.0
Imphal EastManipur32.717.1+15.6
West Khasi HillsMeghalaya32.714.5+18.2
KolasibMizoram32.616.8+15.8
BaksaAssam32.616.5+16.1
BijapurKarnataka32.413.0+19.4
NagaonAssam32.217.7+14.5
GarhwalUttarakhand31.920.9+11.0
Karbi AnglongAssam31.716.6+15.1
TiruvannamalaiTamil Nadu31.714.5+17.2
West DistrictSikkim31.517.4+14.1
PrakasamAndhra Pradesh31.514.4+17.1
ErodeTamil Nadu31.514.0+17.5
SalemTamil Nadu31.413.8+17.6
East DistrictSikkim31.319.4+11.9
Dima HasaoAssam31.215.7+15.5
PuducherryPuducherry31.215.0+16.2
HamirpurHimachal Pradesh31.116.8+14.3
Jaintia HillsMeghalaya31.112.2+18.9
MahePuducherry31.117.1+14.0
SonitpurAssam31.014.9+16.1
Tehri GarhwalUttarakhand30.918.5+12.4
East Khasi HillsMeghalaya30.913.2+17.7
RatnagiriMaharashtra30.916.8+14.1
GolaghatAssam30.818.6+12.2
ViluppuramTamil Nadu30.815.4+15.4
DharmapuriTamil Nadu30.813.6+17.2
YadgirKarnataka30.614.1+16.5
VelloreTamil Nadu30.613.4+17.2
MahbubnagarAndhra Pradesh30.514.4+16.1
Sri Potti Sriramulu NelloreAndhra Pradesh30.415.9+14.5
Y.S.R.Andhra Pradesh30.413.6+16.8
KolhapurMaharashtra30.313.5+16.8
RaichurKarnataka30.314.2+16.1
KozhikodeKerala30.312.7+17.6
MamitMizoram30.215.8+14.4
KathuaJammu and Kashmir30.020.1+9.9
ChandelManipur30.017.9+12.1
KurnoolAndhra Pradesh30.013.5+16.5
TiruppurTamil Nadu30.014.2+15.8
PerenNagaland29.816.8+13.0
BangaloreKarnataka29.811.6+18.2
MalappuramKerala29.812.1+17.7
ChampawatUttarakhand29.721.0+8.7
WokhaNagaland29.719.4+10.3
NamakkalTamil Nadu29.714.0+15.7
North GoaGoa29.615.2+14.4
KangraHimachal Pradesh29.517.5+12.0
TamenglongManipur29.215.3+13.9
SindhudurgMaharashtra29.215.5+13.7
PerambalurTamil Nadu29.214.2+15.0
BelgaumKarnataka29.012.5+16.5
KarurTamil Nadu28.914.4+14.5
CuddaloreTamil Nadu28.915.1+13.8
KrishnagiriTamil Nadu28.912.6+16.3
BagalkotKarnataka28.812.0+16.8
MandiHimachal Pradesh28.717.4+11.3
BageshwarUttarakhand28.716.5+12.2
AlmoraUttarakhand28.518.2+10.3
ChittoorAndhra Pradesh28.413.0+15.4
CoimbatoreTamil Nadu28.413.2+15.2
ChurachandpurManipur28.315.7+12.6
VirudhunagarTamil Nadu28.212.6+15.6
LawngtlaiMizoram28.116.2+11.9
DindigulTamil Nadu28.113.3+14.8
JorhatAssam27.919.1+8.8
RudraprayagUttarakhand27.816.8+11.0
North DistrictSikkim27.815.0+12.8
South GoaGoa27.815.6+12.2
RamanagaraKarnataka27.711.4+16.3
TiruchirappalliTamil Nadu27.714.4+13.3
LungleiMizoram27.615.5+12.1
MaduraiTamil Nadu27.512.9+14.6
RajouriJammu and Kashmir27.322.1+5.2
KohimaNagaland27.317.4+9.9
BellaryKarnataka27.311.9+15.4
PalakkadKerala27.311.5+15.8
MokokchungNagaland27.119.8+7.3
AizawlMizoram27.114.7+12.4
AnantapurAndhra Pradesh26.912.3+14.6
TheniTamil Nadu26.812.4+14.4
LakhimpurAssam26.715.2+11.5
AriyalurTamil Nadu26.714.3+12.4
UttarkashiUttarakhand26.616.4+10.2
UdhampurJammu and Kashmir26.521.8+4.7
MonNagaland26.522.3+4.2
KannurKerala26.512.1+14.4
LonglengNagaland26.421.2+5.2
SaihaMizoram26.414.9+11.5
KoppalKarnataka26.412.1+14.3
LakshadweepLakshadweep26.415.0+11.4
MandyaKarnataka26.310.8+15.5
ErnakulamKerala26.312.1+14.2
UkhrulManipur26.217.5+8.7
UdupiKarnataka26.114.1+12.0
ShimlaHimachal Pradesh26.016.1+9.9
NagapattinamTamil Nadu26.015.6+10.4
ThiruvarurTamil Nadu26.015.1+10.9
Dakshina KannadaKarnataka25.913.1+12.8
SenapatiManipur25.816.4+9.4
ChamarajanagarKarnataka25.812.4+13.4
KolarKarnataka25.811.1+14.7
ThanjavurTamil Nadu25.814.6+11.2
GadagKarnataka25.711.8+13.9
SivagangaTamil Nadu25.714.4+11.3
RamanathapuramTamil Nadu25.714.6+11.1
KulluHimachal Pradesh25.516.3+9.2
Uttara KannadaKarnataka25.213.6+11.6
PudukkottaiTamil Nadu25.214.7+10.5
ThoothukkudiTamil Nadu25.213.0+12.2
KaraikalPuducherry25.215.0+10.2
ZunhebotoNagaland25.118.2+6.9
ChikkaballapuraKarnataka25.110.6+14.5
Bangalore RuralKarnataka25.110.3+14.8
DharwadKarnataka25.012.1+12.9
KasaragodKerala25.013.3+11.7
ReasiJammu and Kashmir24.922.3+2.6
The NilgirisTamil Nadu24.912.6+12.3
TirapArunachal Pradesh24.820.2+4.6
ChamphaiMizoram24.815.7+9.1
SerchhipMizoram24.814.3+10.5
IdukkiKerala24.712.3+12.4
PhekNagaland24.618.3+6.3
TumkurKarnataka24.610.4+14.2
PunchJammu and Kashmir24.520.0+4.5
ThrissurKerala24.512.4+12.1
KottayamKerala24.510.9+13.6
BadgamJammu and Kashmir24.318.5+5.8
ChamoliUttarakhand24.315.7+8.6
SivasagarAssam24.219.4+4.8
West KamengArunachal Pradesh24.013.4+10.6
AlappuzhaKerala24.013.2+10.8
BaramulaJammu and Kashmir23.917.8+6.1
PithoragarhUttarakhand23.916.0+7.9
DodaJammu and Kashmir23.617.5+6.1
MysoreKarnataka23.410.8+12.6
SrinagarJammu and Kashmir23.317.3+6.0
ChambaHimachal Pradesh23.317.8+5.5
TuensangNagaland23.219.9+3.3
ChitradurgaKarnataka23.210.8+12.4
TirunelveliTamil Nadu23.211.5+11.7
ShupiyanJammu and Kashmir23.117.2+5.9
WayanadKerala23.111.3+11.8
KiphireNagaland22.919.7+3.2
HaveriKarnataka22.911.4+11.5
ChikmagalurKarnataka22.811.2+11.6
KodaguKarnataka22.811.6+11.2
DavanagereKarnataka22.711.1+11.6
TinsukiaAssam22.616.4+6.2
PathanamthittaKerala22.610.6+12.0
RambanJammu and Kashmir22.518.5+4.0
KanniyakumariTamil Nadu22.511.4+11.1
East KamengArunachal Pradesh22.414.2+8.2
ShimogaKarnataka22.412.1+10.3
ThiruvananthapuramKerala22.411.4+11.0
HassanKarnataka22.310.2+12.1
DhemajiAssam22.214.3+7.9
DibrugarhAssam22.215.3+6.9
KulgamJammu and Kashmir21.619.7+1.9
Papum PareArunachal Pradesh21.613.8+7.8
KollamKerala21.610.9+10.7
KinnaurHimachal Pradesh21.515.7+5.8
ChanglangArunachal Pradesh21.516.1+5.4
LohitArunachal Pradesh21.518.2+3.3
PulwamaJammu and Kashmir21.314.7+6.6
TawangArunachal Pradesh21.313.5+7.8
KupwaraJammu and Kashmir21.116.4+4.7
Lahul and SpitiHimachal Pradesh21.015.7+5.3
North and Middle AndamanAndaman and Nicobar Islands20.812.2+8.6
AnantnagJammu and Kashmir19.915.7+4.2
GanderbalJammu and Kashmir19.615.5+4.1
BandiporeJammu and Kashmir19.415.7+3.7
KishtwarJammu and Kashmir19.015.8+3.2
South AndamanAndaman and Nicobar Islands18.810.3+8.5
Lower SubansiriArunachal Pradesh18.714.3+4.4
East SiangArunachal Pradesh18.415.6+2.8
Lower Dibang ValleyArunachal Pradesh18.115.5+2.6
Kurung KumeyArunachal Pradesh17.512.2+5.3
KargilJammu and Kashmir16.513.9+2.6
West SiangArunachal Pradesh15.812.6+3.2
Upper SubansiriArunachal Pradesh15.612.1+3.5
AnjawArunachal Pradesh15.411.3+4.1
Upper SiangArunachal Pradesh14.011.9+2.1
Dibang ValleyArunachal Pradesh12.810.1+2.7
NicobarsAndaman and Nicobar Islands12.87.8+5.0
Leh (Ladakh)Jammu and Kashmir11.610.1+1.5

Data & Sources

  • PM2.5 estimates (ACAG V6.GL.02.04). Shen, S., Li, C., van Donkelaar, A., Jacobs, N., Wang, C., & Martin, R. V. (2024). Enhancing global estimation of fine particulate matter concentrations by including geophysical a priori information in deep learning. ACS ES&T Air, 1(5), 332–345. doi.org/10.1021/acsestair.3c00054 ↗
  • van Donkelaar, A., Hammer, M. S., Bindle, L., Brauer, M., Brook, J. R., Garay, M. J., Hsu, N. C., Kalashnikova, O. V., Kahn, R. A., Lee, C., Levy, R. C., Lyapustin, A., Sayer, A. M., & Martin, R. V. (2021). Monthly global estimates of fine particulate matter and their uncertainty. Environmental Science & Technology, 55(22), 15287–15300. doi.org/10.1021/acs.est.1c05309 ↗
  • Atmospheric Composition Analysis Group, Washington University in St. Louis. Surface PM2.5, V6.GL.02.04, monthly and annual means 1998–2023. sites.wustl.edu/acag/surface-pm2-5 ↗
  • District boundaries (SHRUG v2.1). Asher, S., Lunt, T., Matsuura, R., & Novosad, P. (2021). Development research at high geographic resolution: an analysis of night-lights, firms, and poverty in India using the SHRUG open data platform. The World Bank Economic Review, 35(4), 845–871. Development Data Lab, licensed CC BY-NC-SA 4.0. The layer also holds the part of Jammu and Kashmir that the 2011 census did not cover; it belongs to no district, so it is left out of the table and the counts; on the map it still answers, with its monthly means taken from the 0.01° grids like every district’s. devdatalab.org/shrug ↗
  • Elevation. Terrain Tiles on AWS (Mapzen), merged from NASA SRTM and USGS GMTED2010, resampled to the map grid and exaggerated about 20 times in height. registry.opendata.aws/terrain-tiles ↗
  • Standards. Central Pollution Control Board (2009). National Ambient Air Quality Standards: PM2.5, 40 µg/m³ as an annual mean. cpcb.nic.in/national-ambient-air-quality-standards ↗
  • World Health Organization (2021). WHO global air quality guidelines: particulate matter (PM2.5 and PM10), ozone, nitrogen dioxide, sulfur dioxide and carbon monoxide. PM2.5, 5 µg/m³ as an annual mean. who.int/publications/i/item/9789240034228 ↗

Read my master’s thesis →