The Ukraine NowPop Project is a collaboration between the World Health Organization country office in Ukraine and the Oxford NowPop team within the Leverhulme Centre for Demographic Science at the University of Oxford. The aim of the project is to develop population nowcasting methodologies to produce up-to-date estimates of population sizes and age-sex demographics at oblast level and finer within Ukraine by integrating multiple streams of digital traces that include mobile network data and social media advertising data, among others.
The project was organised into two work streams: (1) rapid-response methods using Vodafone network data to estimate population sizes at the hromada level and population flows among hromadas each month, and (2) long-term development of a statistical method to integrate multiple data streams to avoid dependence on any single source and to be sustainable when individual sources are lost. All data used in the project were anonymised and aggregated data; no individual-level or personal data were required to meet the project objectives.
This repository contains the code developed as part of the project, and there are five key components to be aware of:
- Data wrangling that prepares digital traces and geospatial covariates for analysis;
- Population nowcasting using Vodafone mobile network data;
- Statistical population nowcasting that integrate Facebook and Instagram advertising data;
- Web-based dashboard to interactively display population nowcasting results; and
- Work-in-progress that includes experimental sandbox of source code.
├── data/ # Data (public-only) used by the source code
├── src/ # Main source code directory
│ ├── data_prep/ # Prepare input data for analysis
│ │ ├── pop_data/ # Digital traces and population data
│ │ ├── covariates/ # Geospatial and other covariates
│ ├── analysis/ # Data analyses for population nowcasting
│ │ ├── vodafone_deterministic/ # Rapid-response deterministic model based on Vodafone data
│ │ ├── multi-source_statistical/ # Bayesian statistical model to integrate Facebook and Instagram data
│ ├── dashboard/ # Dashboard: Visualisation and reporting tools
│ ├── sandbox/ # Experimental code and works-in-progress
│ │ ├── simulation/ # Simulations used to inform modelling decisions
│ ├── helpers/ # Functions to be used across scripts
│ │ ├── py_helpers/ # Python helper functions
│ │ ├── R_helpers/ # R helper functions
├── wd/ # Working directory (.gitignore) for local in/out files
├── .gitignore # Files to be excluded from git tracking
├── example.env # Example environment config (for `.env`)
├── LICENSE # License terms for using the repository
├── requirements.sh # System, R, and Python dependencies
├── requirements.txt # Python dependencies
├── requirements.R # R dependencies
git clone https://github.com//OxfordDemSci/UkraineNowPop.git
cd UkraineNowPop
The shell script requirements.sh will install linux system dependencies, followed by Python requirements and R requirements.
For Python only, use the requirements.txt file to install requirements with pip install -r requirements.txt.
For R only, source the requirements.R script with RScript requirements.R.
Copy the provided ./env.example file into ./.env in the repo directory and configure the variables.
This project integrates data from multiple sources, including:
-
Social Media Audience Data: Facebook and Instagram audience estimates as collected from the
social_media_audiencedatabase. Please contact us to request access. -
ACLED: Armed Conflict Location & Event Data Project
-
PWTT - Building damages: Ollie Ballinger's alogirthm to detect building change from satellite imagery.
-
Air raid sirens as collected by eTryvoga crowdsourcing platform
-
War fires detected from satellite imagery as designed by The Economist team
-
Occupied territories as reported by deepstate.
-
Border crossing as reported by UNHCR
Contributions are welcomed. To contribute please open an issue and/or submit a pull request to merge commits into the dev branch that resolve a specific issue or set of issues.
This repository is published under a GNU General Public License v3 (see ./LICENSE).
This guarantees your freedom to:
- Use the software for any purpose,
- Change the software to suit your needs,
- Share the software with your friends and neighbours, and
- Share the changes that you make.
In exchange, you must:
- Cite us as the original source,
- Include a copy of the license and copyright notice with the materials,
- Use the same license for your modifications, and
- Document changes that you make to the materials.
The materials in this repository are made available as-is with a limitation of liability and no warranty of any kind. See full license text for details ./LICENSE.
Please open an issue in the repository to report bugs or contact @doug-leasure with questions or comments.
This work was funded by the World Health Organization in Ukraine and the Leverhulme Centre for Demographic Science at the University of Oxford.