Armed Conflict Location and Event Data Analysis

Armed Conflict Location and Event Data Analysis#

The Armed Conflict Location & Event Data Project (ACLED) is a disaggregated data collection, analysis, and crisis mapping project. ACLED collects information on the dates, actors, locations, fatalities, and types of all reported political violence and protest events around the world. The raw data is available through a license obtained by the World Bank

Calculating Conflict Index#

Conflict Index is calculated as a geometric mean of conflict events and fatalities at admin 2 level

Hide code cell content
import numpy as np

syria_adm0 = gpd.read_file('../../data/shapefiles/syr_pplp_adm4_unocha_20210113/syr_admbnda_adm0_uncs_unocha_20201217.json')
acled_adm0 = get_acled_by_admin(syria_adm0.to_crs('EPSG:32632'), acled, columns = ['ADM0_EN'])
Hide code cell source
output_notebook()
bokeh.core.validation.silence(EMPTY_LAYOUT, True)
bokeh.core.validation.silence(MISSING_RENDERERS, True)

tabs = []
measure_names = {'nrEvents':'Number of Conflict Events', 'fatalities':'Number of Fatalities'}
measure_colors = {'nrEvents':'#4E79A7', 'fatalities':'#F28E2B'}
#acled_adm0 = get_acled_by_admin(syria_adm2_crs, acled, columns = ['ADM2_EN', 'ADM1_EN'])
for measure in ['nrEvents', 'fatalities']:

    tabs.append(
        TabPanel(
        child=get_bar_chart(acled_adm0, f"National Trend in {measure_names[measure]}", "Source: ACLED",  subtitle = '', category = 'ADM0_EN', measure = measure, color_code = measure_colors[measure]),
                    title=measure_names[measure].capitalize(),
                )
                )

tabs = Tabs(tabs=tabs, sizing_mode="scale_both")
show(tabs, warn_on_missing_glyphs=False)
Loading BokehJS ...
output_notebook()

show(get_line_plot(acled_intensity, f"Conflict index by earthquake intensity", "Source: ACLED", earthquakes=True, subtitle = '', category = 'category_max_feb06', measure = 'conflictIndex'))
Loading BokehJS ...

Observations#

It is seen from the below image that earthquake intensity had little to do with conflict intensity in Syria i.e., the areas where there was earthquake impact do not coincide with areas of high conflict. The conflict is agnostic to earthquakes and has peristsed before the earthquake.

Hide code cell source
output_notebook()
bokeh.core.validation.silence(EMPTY_LAYOUT, True)
bokeh.core.validation.silence(MISSING_RENDERERS, True)

tabs = []

acled_adm2 = get_acled_by_admin(syria_adm2_crs, acled, columns = ['ADM2_EN', 'ADM1_EN'])
for adm in list(acled_adm2['ADM1_EN'].unique()):
    df = acled_adm2[acled_adm2['ADM1_EN']==adm] 

    tabs.append(
        TabPanel(
        child=get_line_plot(df, f"Conflict Index by admin 2", "Source: ACLED", earthquakes=True, subtitle = '', category = 'ADM2_EN', measure = 'conflictIndex'),
                    title=adm.capitalize(),
                )
                )

tabs = Tabs(tabs=tabs, sizing_mode="scale_both")
show(tabs, warn_on_missing_glyphs=False)
Loading BokehJS ...
c:\Users\sahit\anaconda3\envs\turkey-rdna\lib\site-packages\pandas\core\arraylike.py:402: RuntimeWarning: divide by zero encountered in log
  result = getattr(ufunc, method)(*inputs, **kwargs)

Observations#

  • The Aleppo and Idleb regions have high conflict compared to the rest of the country

  • The conflict has reduced in Aleppo and Idleb over time

Hide code cell source
output_notebook()
title = 'Monthly conflict related fatalities by Area of Control'
source= 'ACLED'

show(get_line_plot(acled_aoc[acled_aoc['event_date'].dt.year>2016], title = title, source= source, category='aoc'))
Loading BokehJS ...

Observations#

  • The conflcit index is the highest in government and allied force controlled areas

  • It used to be much higher in Non state armed group controlled areas but went down significantly in early 2022.