Skip to content
/ cdcam Public

Cambridge Digital Communications Assessment Model

License

Notifications You must be signed in to change notification settings

nismod/cdcam

Repository files navigation

Cambridge Digital Communications Assessment Model (cdcam)

PyPI Documentation Status Build Status Coverage Status Zenodo DOI JOSS DOI

Description

The Cambridge Digital Communications Assessment Model (cdcam) is a decision support tool to quantify the performance of national digital infrastructure strategies for mobile broadband, focussing on 4G and 5G technologies.

Citations

  • Oughton, E.J. and Frias, Z. (2017) The Cost, Coverage and Rollout Implications of 5G Infrastructure in Britain. Telecommunications Policy. https://doi.org/10.1016/j.telpol.2017.07.009.
  • Oughton, E.J., Z. Frias, T. Russell, D. Sicker, and D.D. Cleevely. 2018. Towards 5G: Scenario-Based Assessment of the Future Supply and Demand for Mobile Telecommunications Infrastructure. Technological Forecasting and Social Change, 133 (August): 141–55. https://doi.org/10.1016/j.techfore.2018.03.016.
  • Oughton, E.J., Frias, Z., van der Gaast, S. and van der Berg, R. (2019) Assessing the Capacity, Coverage and Cost of 5G Infrastructure Strategies: Analysis of The Netherlands. Telematics and Informatics (January). https://doi.org/10.1016/j.tele.2019.01.003.

Setup and configuration

All code for The Cambridge Digital Communications Assessment Model is written in Python (Python>=3.5). The core model has no other dependencies.

See requirements-dev.txt for a full list of optional dependencies used in supporting scripts.

Using conda

The recommended installation method is to use conda, which handles packages and virtual environments, along with the conda-forge channel which has a host of pre-built libraries and packages.

Create a conda environment called cdcam:

conda create --name cdcam python=3.7

Activate it (run this each time you switch projects):

conda activate cdcam

First, install optional packages:

conda install fiona shapely rtree pyproj tqdm

Then install cdcam:

pip install cdcam

Alternatively, for development purposes, clone this repository and run:

python setup.py develop

Install test/dev requirements:

conda install pytest pytest-cov

Run the tests:

pytest --cov-report=term --cov=cdcam tests/

Quick start

If you want to quickly generate results, first download the sample dataset available at DOI 10.5281/zenodo.3525285, then run:

python scripts/run.py

You should see the model printing output such as Running: baseline baseline macrocell which means the data have been loaded and you are running the baseline population scenario, baseline data throughput scenario and macrocell upgrade strategy.

You should then see an output for each year (- 2020) indicating how much money was spent on either servicing a specified coverage obligation (Service) or in meeting demand (Demand):

- 2020
Service 0
Demand 14614
- 2021
Service 0
Demand 3293

More details are provided in the Getting Started documentation.

Contributions

Contributions to this package are welcomed via the usual pull request mechanism.

Support

If you encounter a bug, feel the documentation is incorrect or incomplete, or want to suggest new features, please post an issue in the issues tab.

DAFNI

DAFNI provides another environment to run the model.

To prepare the model for DAFNI, there are two elements:

  • build a docker container image, and upload as a DAFNI model
  • prepare the project data files, and upload as DAFNI datasets

DAFNI model

To build a docker image, install docker and check out this repository.

The Dockerfile defines how the model image is built. The image includes a python environment with cdcam installed, and the run.py and dafni-run.sh scripts.

To build and export, run:

docker build . -t nismod/cdcam
docker save nismod/cdcam | gzip > cdcam.tar.gz

Then upload the cdcam.tar.gz file along with the dafni-model-definition.yml as a model to DAFNI.

DAFNI data

The DAFNI model uses "dataslots" to input the project data files. Initially, the project sample data package (also available on Zenodo) has been uploaded.

Background and funding

The Cambridge Digital Communications Assessment Model has been collaboratively developed between the Environmental Change Institute at the University of Oxford, the Networks and Operating Systems Group (NetOS) at the Cambridge Computer Laboratory, and the UK's Digital Catapult. Research activity between 2017-2018 also took place at the Cambridge Judge Business School at the University of Cambridge.

Development has been funded by the EPSRC via (i) the Infrastructure Transitions Research Consortium (EP/N017064/1) and (ii) the UK's Digital Catapult Researcher in Residence programme.

Contributors

  • Edward J. Oughton (University of Oxford)
  • Tom Russell (University of Oxford)