Computational project

Bangladesh Urban Air Pollutant & AQI Explorer

An exploratory Python project using a large public air-quality dataset to study temporal patterns, city differences, seasonality, and—most importantly—the reliability of the data itself.

Python · Pandas · NumPy · Matplotlib · Seaborn2000–2025 dataset30 cities

Problem statement

I built this project while developing my Python/data-analysis skills and wanted the exercise to remain grounded in an environmental question. The dataset contains hourly air-quality observations across Bangladeshi cities over a long time horizon, allowing exploration of how pollution changes by year, month, season and city.

The analysis asks practical exploratory questions: Has air quality changed over time? Which seasons are worse? Which cities appear cleaner or more polluted? Which pollutants dominate the observed patterns? How often does the reported AQI fall into unhealthy categories?

25 yearsdataset span: 2000–2025
30 citiesBangladesh coverage in the source dataset
Hourlyreported temporal resolution
Pythonfull exploratory workflow

Analysis process

01

Load & inspect

Read the large public dataset, inspect schema, city identifiers, pollutant fields and temporal coverage.

02

Clean & aggregate

Use Pandas/NumPy to transform timestamps, group by city and time period, and compute summary statistics suitable for trend and seasonal analysis.

03

Visualize

Build line, seasonal and city-level views with Matplotlib/Seaborn to identify patterns rather than relying only on single summary values.

04

Interrogate anomalies

When Dhaka's long-term series looked implausibly smooth before 2022 and changed abruptly around 2022, I checked identifiers, coordinates and external published sources instead of treating the dataset as automatically correct.

The most useful result was a data-quality problem

The repository documents an unexpected discontinuity in the Dhaka series. Before 2022, multiple pollutants appeared to rise in nearly linear patterns; around 2022, the pattern changed sharply, with carbon monoxide reported as increasing by roughly 150–300× while PM2.5/PM10 behavior also changed direction.

What I did: checked city IDs and latitude/longitude, compared the numerical behavior with published Dhaka air-quality literature, and documented the inconsistency instead of hiding it. The available dataset metadata did not provide enough information to resolve the cause conclusively.

That finding is more important to my research development than producing another polished chart: it reinforced the need to verify environmental datasets before drawing physical conclusions from them.

Scope, limitations & next step

This is a learning and exploratory project, not a peer-reviewed air-pollution study. The source dataset's unexplained discontinuity limits defensible long-term inference. The notebook therefore separates exploratory observations from conclusions that would require a better validated source dataset.

A natural extension would be to rebuild the analysis with independently validated monitoring data, then integrate meteorological or population exposure variables and only after that consider forecasting.