Air Pollution Trends in Myanmar#
This notebook summarizes tropospheric nitrogen dioxide (NO₂) levels in Myanmar using data from NASA’s Ozone Monitoring Instrument (OMI). This analysis focuses on annual national trends across Myanmar (ADM0) and monthly/annual trends for Yangon (ADM1).
Annual National NO₂ Trend#
The chart below shows the mean annual tropospheric NO₂ column density across Myanmar.
nearest = alt.selection_point(
on="mouseover", fields=["date"], nearest=True, empty=False
)
base = alt.Chart(omi_annual_adm0.reset_index())
line = base.mark_line(strokeWidth=2.5).encode(
x=alt.X("date:T", title="", axis=alt.Axis(format="%Y")),
y=alt.Y("no2:Q", title="NO₂"),
)
points = base.mark_point(filled=True, size=60).encode(
x=alt.X("date:T"),
y=alt.Y("no2:Q"),
)
rules = (
base.mark_rule(color="gray")
.encode(
x="date:T",
opacity=alt.when(nearest).then(alt.value(0.3)).otherwise(alt.value(0)),
tooltip=[
alt.Tooltip("date:T", title="Year", format="%Y"),
alt.Tooltip("no2:Q", title="NO₂", format=".6f"),
],
)
.add_params(nearest)
)
(line + points + rules).properties(
width=600,
height=300,
title={
"text": "Annual National NO₂ Trend in Myanmar",
"subtitle": "Source: NASA OMI (Ozone Monitoring Instrument), 2010–2025",
},
)
Yangon NO₂ Trends#
The charts below show the monthly and annual mean tropospheric NO₂ column density for Yangon.
nearest = alt.selection_point(
on="mouseover", fields=["date"], nearest=True, empty=False
)
base = alt.Chart(omi_monthly_yangon.reset_index())
line = base.mark_line(color="steelblue").encode(
x=alt.X("date:T", title=""),
y=alt.Y("no2:Q", title="NO₂"),
)
rules = (
base.mark_rule(color="gray")
.encode(
x="date:T",
opacity=alt.when(nearest).then(alt.value(0.3)).otherwise(alt.value(0)),
tooltip=[
alt.Tooltip("date:T", title="Month", format="%b %Y"),
alt.Tooltip("no2:Q", title="NO₂", format=".6f"),
],
)
.add_params(nearest)
)
(line + rules).properties(
width=700,
height=280,
title={
"text": "Monthly NO₂ in Yangon",
"subtitle": "Source: NASA OMI, 2010–2025",
},
)
nearest = alt.selection_point(
on="mouseover", fields=["date"], nearest=True, empty=False
)
base = alt.Chart(omi_annual_yangon.reset_index())
line = base.mark_line().encode(
x=alt.X("date:T", title="", axis=alt.Axis(format="%Y")),
y=alt.Y("no2:Q", title="NO₂ (×10¹⁵ molecules/cm²)"),
)
points = base.mark_point(filled=True, size=60).encode(
x=alt.X("date:T"),
y=alt.Y("no2:Q"),
)
rules = (
base.mark_rule(color="gray")
.encode(
x="date:T",
opacity=alt.when(nearest).then(alt.value(0.3)).otherwise(alt.value(0)),
tooltip=[
alt.Tooltip("date:T", title="Year", format="%Y"),
alt.Tooltip("no2:Q", title="NO₂", format=".6f"),
],
)
.add_params(nearest)
)
(line + points + rules).properties(
width=600,
height=280,
title={
"text": "Annual NO₂ Trend in Yangon",
"subtitle": "Source: NASA OMI, 2010–2025",
},
)