ML-Powered Air Quality Intelligence for Pune
Built by Wild Impala · Samarth Lad, Mehul Mahajan, Atharva Garud - AMD Slingshot 2026
Navigate Your Air - Real CPCB data, ward-level AQI, XGBoost predictions, and health-first decision tools.
NaviQ Air turns 8,010 hours of real CPCB Pune sensor data into actionable health intelligence. It tells you when to go outside, why your ward is polluted, and what city interventions would reduce AQI the most - all powered by a trained XGBoost model with SHAP explainability.
| Page | What it does |
|---|---|
| 🏙️ City Overview | Live AQI gauge, 6 pollutant cards with WHO tooltips, daily PM2.5 pattern chart, ward rankings, forecast strip |
| 🗺️ Ward Map | 15 Pune wards plotted with real coordinates, bubble size = AQI severity, commute safety calculator |
| 📈 Historical Patterns | 7-year trend (2017–2024), COVID lockdown dip proof, monthly seasonality, worst-day calendar |
| 🔬 Source Analysis | XGBoost SHAP feature importance — CO, PM10, NO₂ ranked as top AQI drivers |
| 🔔 Alerts & Actions | Data-driven intervention recommendations with AQI impact scores per ward |
| ✅ Should I Go Out? | Health profile × activity × 24h PM2.5 timeline safety engine |
cd naviq-frontend
npm install
npm run dev
# → http://localhost:5173The frontend works fully offline - all fallbacks are pre-computed from real CPCB data.
cd naviq-backend
pip install -r requirements.txt
uvicorn main:app --reload
# → http://localhost:8000NaviQ/
├── naviq-backend/
│ ├── main.py # FastAPI — all /api/* endpoints
│ ├── requirements.txt
│ ├── 2024_hourly_data.csv # 8,010 hourly CPCB readings
│ └── aqi_data_pune_2017_to_2024.csv # 2,922 daily AQI records
│
└── naviq-frontend/
├── index.html
├── vite.config.js
├── public/
│ └── naviq-favicon.svg
└── src/
├── App.jsx # Root layout + LIGHT/DARK theme tokens
├── main.jsx
├── index.css
├── components/
│ ├── Header.jsx # Ward selector + dark mode toggle
│ └── Sidebar.jsx # Navigation + keyboard shortcuts
├── data/
│ ├── api.js # API layer with static fallbacks
│ └── puneData.js # Ward coordinates + helpers
└── pages/
├── Dashboard.jsx # City Overview
├── MapView.jsx # Ward Map
├── HistoricalPatterns.jsx
├── SourceAttribution.jsx # ML explainability
├── Interventions.jsx # Alerts & Actions
└── GoOut.jsx # Health Decision Engine
| Dataset | Details |
|---|---|
| CPCB Hourly 2024 | 8,010 readings · CO, NH₃, NO₂, O₃, PM10, PM2.5, SO₂ |
| CPCB Daily 2017–2024 | 2,922 daily AQI records · 7-year trend analysis |
| Ward Interpolation | 16 wards derived from city-level data using traffic/industrial multipliers |
- XGBoost trained on 2024 CPCB hourly data · SHAP values for explainability
- CO is 3.51× higher on polluted vs clean days - strongest single AQI predictor
- November 2024: 80% of readings were Severe (AQI ≥ 301) - Diwali + crop burning
- Safest daily window: 6 PM · Peak pollution: 10 AM (morning rush + inversion)
Frontend: React 18 · Vite · Recharts · CSS-in-JS
Backend: FastAPI · Pandas · NumPy · Uvicorn
Data: CPCB Pune via Kaggle · 10,932 total readings
| Key | Action |
|---|---|
1 – 6 |
Switch between pages |
D |
Toggle dark / light mode |
NaviQ Air · Wild Impala · AMD Slingshot 2026
Data: CPCB Pune via Kaggle · 2017–2024 · Not a substitute for official CPCB/SAFAR data