Air Pollution in Syria

Contents

Air Pollution in Syria#

Air Quality and, in particular, levels of fine particulate matter (e.g., PM2.5 and PM 10 ) over cities can be a proxy for assessment of economic activity and density of city populations (Yailymova et.al., 2023). NO2 along with other NOx reacts with other chemicals in the air to form both particulate matter and ozone. A 2020 study of cities in Sub-Saharan Africa finds that NO2 provides a useful, albeit “noisy”, real-time proxy measure of how COVID-19 has affected economic activity. Studies also found a clear relationship between NO2 levels and industrial production growth (Deb, et.al., 2020).

Data#

The data for this was obtained from the Copernicus Satellite Imagery available through Google Earth Engine. We clipped the dataset to get it at a monthly level for each admin 2 region. Nitrogen oxides (NO2 and NO) are important trace gases in the Earth’s atmosphere, present in both the troposphere and the stratosphere. They enter the atmosphere as a result of anthropogenic activities (notably fossil fuel combustion and biomass burning) and natural processes (wildfires, lightning, and microbiological processes in soils). Here, NO2 is used to represent concentrations of collective nitrogen oxides because during daytime, i.e. in the presence of sunlight, a photochemical cycle involving ozone (O3) converts NO into NO2 and vice versa on a timescale of minutes.

The total vertical column of NO2 is calculated by taking the slant column density (SCD) of NO2, which is the amount of NO2 measured along the line of sight of the satellite instrument, and dividing it by the air mass factor (AMF), which corrects the slant column density for the effect of the path length and the scattering and absorption properties of the atmosphere. The Total Vertical Column Density (VCD) is typically given in molecules per square centimeter (molec/cm²).

References#

  • Deb, P., Furceri, D., Ostry, J. D., & Tawk, N. (2020). The economic effects of COVID-19 containment measures.

  • Yailymova, H., Kolotii, A., Kussul, N., & Shelestov, A. (2023, July). Air quality as proxy for assesment of economic activity. In IEEE EUROCON 2023-20th International Conference on Smart Technologies (pp. 89-92). IEEE.

output_notebook()
show(
    get_line_chart(
        monthly_no2_national,
        title="Air Pollution in Syria (NO2 levels)",
        source="Source: Google Earth Engine",
        category="ADM0_EN",
        measure="NO2_column_number_density",
    )
)
Loading BokehJS ...
Hide code cell source
output_notebook()
show(
    get_line_chart(
        monthly_no2_adm1,
        title="Air Pollution in Syria (NO2 levels)",
        source="Source: Google Earth Engine",
        category="ADM1_EN",
        measure="NO2_column_number_density",
    )
)
Loading BokehJS ...
Hide code cell source
output_notebook()
bokeh.core.validation.silence(EMPTY_LAYOUT, True)
bokeh.core.validation.silence(MISSING_RENDERERS, True)

tabs = []

for adm in list(monthly_no2["ADM1_EN"].unique()):
    df = monthly_no2[monthly_no2["ADM1_EN"] == adm]

    tabs.append(
        TabPanel(
            child=get_line_chart(
                df,
                "Air Pollution at Admin 2 (NO2 levels)",
                "Source: Google Earth Engine",
                category="ADM2_EN",
                measure="NO2_column_number_density",
            ),
            title=adm.capitalize(),
        )
    )

tabs = Tabs(tabs=tabs, sizing_mode="scale_both")
show(tabs, warn_on_missing_glyphs=False)
Loading BokehJS ...
Hide code cell source
plt.rcParams["font.family"] = "Georgia"

ax = syria_adm2.merge(monthly_no2, on=["ADM1_EN", "ADM2_EN"]).plot(
    column="NO2_column_number_density", legend=True, cmap="Blues"
)

subtitle = "Source: Air Pollution levels from Google Earth Engine, shapefiles from HdX"

ax.text(
    0,
    -0.15,
    subtitle,
    ha="left",
    va="center",
    transform=ax.transAxes,
    fontsize=10,
    color="black",
    weight="normal",
)


ax.set_title("NO2 levels in Admin 2 Regions")
ax.axis("off");
../../_images/1d8edbd5e7ecd3556ca9f1523910ab802ee571a9ebf7db19b022c4106fb66dd2.png
syria_adm4 = gpd.read_file(
    "../../data/shapefiles/syr_pplp_adm4_unocha_20210113/syr_pplp_adm4_unocha_20210113.shp"
)
damascus = syria_adm4[syria_adm4["ADM2_EN"] == "Damascus"]
syria_adm3 = gpd.read_file(
    "../../data/shapefiles/syr_pplp_adm4_unocha_20210113/syr_admbnda_adm3_uncs_unocha_20201217.json"
)
damascus_adm3 = syria_adm3[syria_adm3["ADM2_EN"] == "Damascus"]
buffer_radius = 0.005
damascus["geometry"] = damascus["geometry"].apply(lambda x: x.buffer(buffer_radius))
c:\Users\sahit\anaconda3\envs\turkey-rdna\lib\site-packages\geopandas\geodataframe.py:1543: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  super().__setitem__(key, value)
damascus.to_file(
    "../../data/air_pollution/damascus_neighborhoods.shp", file_format="ESRI Shapefile"
)