Skip to content
OnlyProjects
B.Sc · Data ScienceFor educational purposes only

Air Quality in Indian Metro Cities: An Analytics Study of CPCB Open Data (Python and Power BI)

From CPCB's open data to policy-ready dashboards for four metro cities

Mapped to your syllabusMumbai University B.Sc IT 2022-23 (autonomous-college mirror) · Project Dissertation · Semester 5

Overview

1 min read

Air Quality in Indian Metro Cities is a beginner-friendly analytics study for the B.Sc. IT Phase I project dissertation (Semester 5) at the University of Mumbai. It turns the Central Pollution Control Board's open data — published on the Government of India's data.gov.in portal as the Real Time Air Quality Index from Various Locations resource — into a clean, reproducible analysis of how air quality actually behaves in Delhi, Mumbai, Kolkata and Chennai, and then presents the findings in an interactive Power BI dashboard.

The study answers questions news headlines usually blur: How much worse is Delhi's winter air than its monsoon air, numerically? Which of the four metro cities has the highest share of days in the Poor or worse AQI categories? Do two stations in the same city disagree, and what does that say about siting? The work stays deliberately beginner-level: one scripted pipeline (fetch → clean → aggregate), plain pandas operations, matplotlib charts for the report, and Power BI Desktop's drag-and-drop interface for the dashboard — no forecasting models, no cloud deployment.

Everything is designed to be re-run by anyone: the pipeline is a handful of short scripts, the data is free government open data accessed with a personal API key from data.gov.in, the historical baseline comes from a CPCB-derived city-level dataset (2015–2020), and every chart regenerates from the cleaned CSV files. The deliverable is a Phase I dissertation that reads like an honest policy brief — plus a dashboard the viva panel can click through.

Relevant for
Maharashtra
Level
Beginner · 12 weeks · solo
Common at
University of Mumbai, University of Delhi, University of Calcutta
Updated
Nov 2026

Syllabus alignment

Mumbai University · B.Sc IT 2022-23 (autonomous-college mirror)

Project Dissertation · Semester 5

Subjects this project applies
  • Python
  • Data Science with NumPy and pandas
  • Business Intelligence (Tableau / Power BI)
  • MySQL (USCS204)
  • Git / open-source tools
How it is evaluated

See your department's project guidelines.

Also fits: Delhi University UGCF 2022, University of Calcutta CCF 2022 (4-year), BCU / Bangalore University SEP 2024.

What's in the box

11 parts · 5 free · 3 previewed · 3 unlock for ₹2,000

Problem & synopsis

5 min read

Problem statement

Indian metro cities debate air quality every winter, but the public conversation runs on single-day numbers: today's AQI, this week's emergency order. The Central Pollution Control Board actually publishes the underlying measurements as open government data on data.gov.in, yet the resource arrives as long-format station rows with missing readings, inconsistent station names and no aggregation — unusable for citizens, journalists or students without a cleaning pipeline. As a result, comparisons that matter for policy — how deep the winter spike is relative to the monsoon trough in each city, which stations are chronically the worst, whether the share of days in Poor-or-worse categories is changing year over year — get asserted without being shown.

This project fills that gap at beginner scale: a documented, reproducible Python pipeline plus a Power BI dashboard that turns CPCB's open data for Delhi, Mumbai, Kolkata and Chennai into clear, honest, sourceable findings that a non-technical reader can verify.

Synopsis

Abstract

This study analyses Central Pollution Control Board (CPCB) air-quality data for four Indian metro cities using Python and Power BI. A scripted pipeline acquires data from the data.gov.in open-government portal and a CPCB-derived 2015–2020 city-level dataset, cleans it into a tidy table, and produces exploratory, trend and cross-city analyses: monthly and seasonal patterns, pollutant profiles, and city-to-city and station-to-station comparisons. Findings are presented as an interactive Power BI dashboard and a policy-relevant dissertation chapter.

Introduction

Air quality is the most visible environmental issue in Indian cities, and Delhi-NCR's winter smog makes national news every November. Yet the underlying data is public: CPCB publishes station-level readings through data.gov.in under the government's open-data policy. The gap is not data availability but usability — the raw resource is a long list of station-pollutant-value rows that a citizen cannot directly interpret. This project converts that raw feed into context: trends, seasons and honest comparisons, built with beginner-level tools the B.Sc. IT syllabus already teaches.

Existing systems and the gap

  • News reports and apps quote today's AQI but rarely show multi-year context, seasonal structure or the station-to-station spread within one city.
  • Research dashboards exist but are complex; a first-year-style analysis with documented steps is missing for a beginner to learn from.
  • The raw portal itself gives long-format rows with gaps and duplicate station spellings, which is exactly the data-wrangling practice a first analytics project needs.
  • The gap: a reproducible, documented beginner pipeline that connects the official open-data resource to defensible, policy-relevant charts.

Proposed system

A three-layer study. The pipeline layer is two Python scripts: fetch (download the data.gov.in resource via its API using a personal key, or load the bundled historical CSV) and prepare (parse dates, map AQI categories, resolve station-name variants, handle missing readings, aggregate to city-month level). The analysis layer is Jupyter notebooks producing the EDA, seasonal decomposition by month, year-over-year comparisons and the three headline findings. The presentation layer is a Power BI Desktop dashboard with city, year and pollutant slicers and a map visual of station locations.

Feasibility

  • Technical: the portal's API and bulk CSV need only a registered key and pandas' read_csv/JSON handling; Power BI Desktop is free. A modest laptop handles the file sizes easily.
  • Economic: zero cost — government open data plus free software.
  • Operational: the 12-week Phase I slot fits acquisition, cleaning, EDA, dashboard and writing, and leaves the deeper modelling (forecasting, GRAP-day analysis) as the natural Phase II continuation in Semester 6.

Objectives

  1. 01Acquire CPCB air-quality data for Delhi, Mumbai, Kolkata and Chennai from the data.gov.in *Real Time Air Quality Index from Various Locations* resource via its public API, using a registered personal key stored outside the code.
  2. 02Supplement the recent feed with the CPCB-derived 2015–2020 city-level historical dataset so multi-year trends are visible.
  3. 03Build a repeatable cleaning pipeline that handles missing readings, duplicate station spellings, AQI category mapping and long-to-wide reshaping, and writes tidy CSV outputs.
  4. 04Produce an EDA notebook set covering distributions, monthly means, seasonal patterns and pollutant profiles (PM2.5, PM10, NO2, SO2, CO, O3) for each city.
  5. 05Quantify at least three policy-relevant comparisons: winter-versus-monsoon ratios, share of days in Poor-or-worse categories by city and year, and the spread between stations within the same city.
  6. 06Assemble an interactive Power BI Desktop dashboard with city, year and pollutant slicers, a station map and the headline findings.
  7. 07Keep the entire study reproducible: scripted steps, a fixed folder layout, cited sources with access dates, and a README that a classmate could follow.

Scope

In scope

  • Four metro cities (Delhi, Mumbai, Kolkata, Chennai) and all their CPCB stations present in the chosen datasets.
  • Criteria pollutants and AQI as published: PM2.5, PM10, NO2, SO2, CO, O3, NH3 where available, plus the AQI value and its category.
  • Time spans: the 2015–2020 historical city-level dataset plus the most recent months available from the data.gov.in feed at the time of the study.
  • Monthly and seasonal aggregation, year-over-year comparison, city and station comparisons, and one winter-season deep dive for Delhi-NCR.
  • Descriptive analytics only: aggregation, trends, ratios — with sources cited and data gaps stated.

Out of scope (and why)

  • Forecasting and machine-learning models (SARIMA, regression prediction): a deliberate Phase II continuation, not a Phase I beginner deliverable.
  • Satellite-derived or modelled data (CPCB ground stations only), and health-impact or source-apportionment claims, which need domain expertise beyond the syllabus.
  • Real-time alerting or a hosted web dashboard; Power BI Desktop plus exported report figures meet the Phase I requirement.
  • Cities beyond the four metros, so depth beats breadth in a 12-week slot.

Methodology

The study follows a descriptive analytics research design: define questions → acquire → clean → aggregate → visualise → interpret, executed as a 12-week pipeline mapped to the Phase I (Semester 5) project-dissertation slot. Each phase ends with a versioned artefact (raw CSV, clean CSV, notebook, dashboard), so the guide can review concrete outputs at every meeting.

PhaseWeeksActivitiesDeliverable
Question setting1Pick the three comparison questions; register at data.gov.in and obtain the API key; record sourcesQuestion list, source register
Acquisition2–3Fetch the resource via API and download the 2015–2020 historical dataset; log row counts and gapsraw/ folder with fetch log
Cleaning4–5prepare.py: date parsing, station-name normalisation, AQI category mapping, missing-value policy (documented, not hidden), long-to-wide reshapedata/clean CSVs + data dictionary
EDA6–7Notebook 01: distributions, monthly means, pollutant profiles, missing-data mapEDA notebook and figures
Trends and comparisons8–9Notebook 02: seasonal month-by-month pattern, year-over-year changes, city and station comparisons, winter deep diveFindings tables and charts
Dashboard10Build the Power BI model (City, Station, Reading, Date dimensions), measures and slicers; test filters.pbix dashboard
Writing and review11–12Dissertation draft (Phase I format), README, reproducibility pass, guide reviewPhase I report

Quality checks built in: after cleaning, the script prints row counts before and after each rule so nothing is dropped silently; three known readings are spot-checked against the live portal table; and every figure caption in the report names the generating notebook cell, so the external can trace any chart back to code.

Study design

2 diagrams · 6 tools · 2 min read

  • Python
  • pandas
  • NumPy
  • Matplotlib
  • Power BI Desktop
  • Jupyter Notebook

The architecture is a simple one-way pipeline with a CSV hand-off — deliberately beginner-shaped, with no database or cloud dependency in Phase I (MySQL remains available if the guide prefers a database deliverable, since the syllabus includes it). Everything on the left of the hand-off is scripted Python; everything on the right is notebooks and Power BI, both reading the same clean files so the dashboard and the dissertation can never disagree.

flowchart TD
  DG["data.gov.in resource: Real Time AQI from Various Locations"] --> F["fetch.py with personal API key"]
  KG["CPCB-derived 2015-2020 city-level CSV"] --> F
  F --> RAW["raw/ folder with fetch log"]
  RAW --> P["prepare.py: clean, normalise, map AQI categories"]
  P --> QC["Quality gate: row counts, spot-checks vs portal"]
  QC --> CL["data/clean CSVs + data dictionary"]
  CL --> N1["Notebook 01: EDA and distributions"]
  CL --> N2["Notebook 02: trends and comparisons"]
  N1 --> FIG["Figures for the dissertation"]
  N2 --> FIG
  CL --> PBI["Power BI Desktop: City, Station, Date, Reading tables"]
  PBI --> DASH["Dashboard with slicers and station map"]
  FIG --> RPT["Phase I dissertation"]
  DASH --> RPT

The dashboard reads a small star-shaped layout — one fact table of readings plus three lookup tables — which keeps DAX measures simple and is the gentlest possible introduction to dimensional thinking:

erDiagram
  CITY ||--o{ STATION : "has"
  STATION ||--o{ READING : "records"
  DATE ||--o{ READING : "dates"
  CITY {
    string city_id PK
    string city_name
    string state
  }
  STATION {
    string station_id PK
    string city_id FK
    string station_name
    real latitude
    real longitude
  }
  DATE {
    date date_id PK
    int month
    string season
    int year
  }
  READING {
    string reading_id PK
    string station_id FK
    date date_id FK
    string pollutant
    real value
    int aqi
    string aqi_category
  }

Design choices worth defending: a long-format fact table (one row per station-date-pollutant) matches how the portal publishes data and makes slicers trivial; a Season column derived from the month carries the study's central comparison; and keeping raw data immutable under raw/ means any cleaning mistake can be fixed by re-running, not by patching.

Work packages

7 packages

  1. Package 01

    Data Acquisition

    Registers at data.gov.in, stores the API key in an environment variable (never in code), fetches the Real Time AQI resource as CSV/JSON with a logged download date, and downloads the CPCB-derived 2015–2020 city-level dataset as the historical baseline.

  2. Package 02

    Cleaning and Preparation

    prepare.py parses dates, normalises station-name spellings into a lookup table, maps pollutant names, fills or flags missing readings under a written policy, maps AQI values to CPCB's six categories, reshapes long rows and writes tidy city-day and station-day CSVs with a data dictionary.

  3. Package 03

    Exploratory Analysis

    Notebook 01 computes city-level summaries, pollutant distributions and monthly means, plots PM2.5 versus PM10 behaviour, and charts the missing-data footprint per station, so the report's later claims rest on a visible data-quality foundation.

  4. Package 04

    Trends and Seasonality

    Notebook 02 builds the month-by-month seasonal curve per city, quantifies the winter-to-monsoon ratio for PM2.5, compares year-over-year monthly means across 2015–2020, and adds the Delhi winter deep dive covering the November–February window.

  5. Package 05

    City and Station Comparison

    Ranks the four cities on share of days in Poor-or-worse categories each year, compares all-station medians within each city to expose intra-city spread, and identifies each city's chronically worst station with its siting context (industrial, kerbside, residential).

  6. Package 06

    Power BI Dashboard

    Loads the clean CSVs into Power BI Desktop as a star schema, defines measures such as monthly mean AQI, peak AQI and Poor-or-worse day share, and lays out pages with city/year/pollutant slicers, a station map, and a findings page that mirrors the dissertation's headline tables.

  7. Package 07

    Findings and Policy Note

    A written module that states the three headline findings with their exact supporting charts, annotates each with data-gap caveats, and closes with a one-page policy-relevant summary (season-timed advisories, station-level targeting) that never overclaims causation.

Slides

12 slides · titles free · bullets, notes and the .pptx unlock

  1. Slide 1

    Air Quality in Indian Metro Cities

  2. Slide 2

    The Problem: Data-Rich, Insight-Poor

  3. Slide 3

    Study Questions

  4. Slide 4

    Data Sources

  5. Slide 5

    Pipeline Architecture

  6. Slide 6

    Cleaning Decisions

  7. Slide 7

    EDA Findings

  8. Slide 8

    Trend and Seasonality Results

  9. Slide 9

    City and Station Comparison

  10. Slide 10

    Power BI Dashboard Demo

  11. Slide 11

    Limitations

  12. Slide 12

    Conclusion and Phase II Plan

Bullets, speaker notes and the .pptx · ₹2,000

The titles above are the real outline. The rest is what you present from.

Unlock for ₹2,000

Viva questions & answers

3 of 14 answered free · 11 unlock

Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.

  1. 01Concept

    What exactly is the Air Quality Index that CPCB publishes, and how is one number derived from many pollutants?

    CPCB computes a sub-index for each of eight pollutants from its concentration breakpoints, and the overall AQI is the worst of those sub-indices. The single number then falls into six colour-coded categories from Good to Severe, which is what the study's aqi_category column reproduces from the published breakpoints.

  2. 02Concept

    Why did you aggregate to monthly level instead of analysing daily readings directly?

    Daily readings are noisy and gappy, and the study's questions are about seasonal structure and year-over-year change, not single days. Monthly means smooth sensor noise, make missing days less damaging, and produce charts a policy reader can interpret — while the data-quality module still reports how many days fed each monthly mean.

  3. 03Concept

    What is the difference between PM2.5 and PM10, and why does it matter for your findings?

    PM10 is inhalable coarse particles up to 10 microns; PM2.5 is the fine fraction under 2.5 microns that penetrates deepest into the lungs. PM2.5 drives the AQI in most Delhi winter days, which is why the study's headline ratios are computed on PM2.5 rather than on the coarser PM10 series.

+11 more questions, with answers

Try the free ones out loud first. Your examiner will not accept “it's in the PPT”.

How to reproduce the study

7 steps · unlocks with the project

Unlocks with the project · ₹2,000

7 steps

Every step to carry the project out with the tools in the tech stack, in order.

Unlock for ₹2,000

READMEFIRST

235 words · unlocks with the project

What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.

Unlocks with the project · ₹2,000

235 words · ~1 min read

The checklist of things to rename, re-seed and re-think so the project reads as yours.

Unlock for ₹2,000

Instructions

270 words · unlocks with the project

How to study it, adapt it and walk your examiner through it, step by step.

Unlocks with the project · ₹2,000

270 words · ~1 min read

Report structure, formatting rules and the submission checklist your department will grade.

Unlock for ₹2,000

References

7 sources

  1. data.gov.in — Real Time Air Quality Index From Various Locations (CPCB open-data resource with API access)
  2. Central Pollution Control Board — National Air Quality Index: categories, colour coding and pollutant sub-index breakpoints
  3. Air Quality Data in India (2015–2020) — CPCB-derived city-level and station-level dataset used as the historical baseline
  4. World Health Organization — Ambient (outdoor) air quality and health (guideline context for pollutant levels)
  5. Microsoft Power BI Desktop documentation — data modelling, DAX measures and report authoring
  6. pandas documentation — data wrangling, reshaping and aggregation used throughout the pipeline
  7. Matplotlib documentation — charting library used for all dissertation figures

Cite this bundle

OnlyProjects. (2026). Air Quality in Indian Metro Cities: An Analytics Study of CPCB Open Data (Python and Power BI): B.Sc Data Science project bundle [Educational resource]. https://onlyprojects.online/projects/bsc-ds-metro-air-quality-cpcb-analytics

Future scope

1 min read

  • Phase II forecasting: extend with a seasonal-naive or SARIMA baseline for monthly PM2.5, so the study graduates from description to prediction.
  • Alert-day analysis: join CPCB AQI categories with GRAP-stage announcements in Delhi to show how policy days align with measured air.
  • Automated refresh: schedule fetch.py so the dashboard stays current, or publish it through Power BI Service.
  • More cities: tier-2 cities with newer CAAQMS networks drop into the same pipeline unchanged.
  • Health context overlay: attach population density or hospital-admission statistics at the city level for richer, still-honest comparisons.

Keep browsing

Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.