Skip to content

A small package to access the API of ACLED and retrieve conflict event data. IMPORTANT: the dev version is maintained on my GitLab page.

License

Notifications You must be signed in to change notification settings

chris-dworschak/acled.api

Repository files navigation

Automated Retrieval of ACLED Conflict Event Data

CRAN status Lifecycle: stable Travis build status License: CC BY-NC 4.0 CRANlogs

This small package provides functionality to access and manage the application programming interface (API) of the Armed Conflict Location & Event Data Project (ACLED), while requiring a minimal number of dependencies. The function acled.api() makes it easy to retrieve a user-defined sample (or all of the available data) of ACLED, enabling a seamless integration of regular data updates into the research work flow.

When using this package, you acknowledge that you have read ACLED’s terms and conditions of use, and that you agree with their attribution requirements.

Installation

You can install the latest release version of acled.api from CRAN with:

install.packages("acled.api") # downloads and installs the package from CRAN

You can install the development version from GitLab with:

remotes::install_gitlab("chris-dworschak/acled.api") # downloads and installs the package from GitLab

Example

Using acled.api is straight forward. To download data on, for example, all ACLED conflict events in Europe and Central America that happened between June 2019 and July 2020, you can supply:

library(acled.api) # loads the package
#> 
#>  Before using this package to download data, you require an ACLED access key.
#> You can request your key by registering with ACLED on https://developer.acleddata.com/.
#> The package may be cited as:
#> Dworschak, Christoph. 2020. "Acled.api: Automated Retrieval of ACLED Conflict
#> Event Data." R package. CRAN version 1.1.8.
#> For the development version of this package, visit <https://gitlab.com/chris-dworschak/acled.api/>

my.data.frame <- acled.api( # stores an ACLED sample in object my.data.frame
  email.address = Sys.getenv("ACLED_EMAIL_ADDRESS"),
  access.key = Sys.getenv("ACLED_ACCESS_KEY"),
  region = c("South Asia", "Central America"), 
  start.date = "2019-09-01", 
  end.date = "2020-01-31")
#> Your ACLED data request was successful. 
#> Events were retrieved for the period starting 2019-09-01 until 2020-01-31.

my.data.frame[1:5,] # returns the first three observations of the ACLED sample
#>   event_id_cnty          region  country year event_date
#> 1       HND1343 Central America Honduras 2020 2020-01-31
#> 2      IND70618      South Asia    India 2020 2020-01-31
#> 3      IND70620      South Asia    India 2020 2020-01-31
#> 4      IND70869      South Asia    India 2020 2020-01-31
#> 5      IND70611      South Asia    India 2020 2020-01-31
#>                     source      admin1         admin2     admin3   location
#> 1          Proceso Digital      Cortes        La Lima    La Lima    La Lima
#> 2 Asian News International       Bihar          Patna Sampatchak      Patna
#> 3          Hindustan Times Maharashtra           Pune  Pune City       Pune
#> 4           Siliguri Times West Bengal Uttar Dinajpur   Islampur   Islampur
#> 5           Times of India Maharashtra          Thane   Bhiwandi Chimbipada
#>   latitude longitude                 event_type   sub_event_type
#> 1  15.4333  -87.9167 Violence against civilians           Attack
#> 2  25.5941   85.1356                   Protests Peaceful protest
#> 3  18.5195   73.8553                   Protests Peaceful protest
#> 4  26.2654   88.1898                   Protests Peaceful protest
#> 5  19.3771   73.0035                      Riots     Mob violence
#>                   interaction fatalities                 tags  timestamp
#> 1 Political militia-Civilians          1                      1618511533
#> 2             Protesters only          0 crowd size=no report 1649276878
#> 3             Protesters only          0 crowd size=no report 1649276878
#> 4             Protesters only          0 crowd size=no report 1649276878
#> 5           Rioters-Civilians          1       crowd size=6-7 1649276878

A note on replicability

After the release of versions 1 through 8, ACLED changed their update system to allow for real-time amendments and post-release corrections, thereby forgoing traditional data versioning. This change requires researchers to take additional steps in order to ensure the replicability of their results when using ACLED data. Some tasks, like real-time forecasting models used by practitioners, may not require replicability of intermediate results. However, most research-related tasks assume the possibility of replication at a later stage. This is especially the case for results that are intended for publication, or for an ongoing data project where constant changes to the underlying sample are not desirable.

To this end, downloaded data intended for replicable use must be permanently stored by the analyst. Data downloaded through acled.api() are only stored temporarily in the working space, and may be lost after closing R. Therefore, if replicability is important to the analyst’s task, a call through acled.api() should occur only once at the beginning of the data project, immediately followed by, e.g., saveRDS(downloaded.data, file = "my_acled_data.rds"). This locally stored data file can then be used again at a later point by calling readRDS(file = "my_acled_data.rds"), and ensures that the analysis sample stays constant over time.

ACLED provides a time stamp for each individual observation (column timestamp), enabling researchers to do “micro versioning” of data points if necessary, and to verify congruence across samples. Starting from version 1.0.9, the function acled.api() includes the timestamp variable in its default API call. More recently, ACLED also introduced a discussion of data versioning in its API Guide.

About

A small package to access the API of ACLED and retrieve conflict event data. IMPORTANT: the dev version is maintained on my GitLab page.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages