alan-turing-institute / spatial-inequality

MIT License
9 stars 1 forks source link
hacktoberfest hut23 hut23-244

spatial-inequality

Repository for the Spatial Inequality in the Smart City project.

Papers and Publications

If you're looking for the scripts used to generate the figures in the paper "Optimising for equity: Sensor coverage, networks and the responsive city", please go to the OptimisingForEquity directory.

Pre-requisites

  1. Git
  2. Conda

Setup

  1. Clone the repo:

    git clone https://github.com/alan-turing-institute/spatial-inequality.git
  2. Change to the spatial-inequality directory:

    cd spatial-inequality
  3. Create the conda environment:

    conda env create
  4. Activate the environment:

    conda activate spatial-inequality

API

Start the API

docker-compose up

Should then be available on 0.0.0.0:5000

Command to force a rebuild if something hasn't udpated correctly:

docker-compose up --build --force-recreate

Submitting Optimisation Jobs with SocketIO

Generate a pseudo-optimised network of sensors with a greedy algorithm. See scripts/client.py for an example.

Coverage Endpoint

The /coverage endpoint computes coverage for a user-defined network (set of sensors placed at output area centroids), and takes a JSON with the following format:

{
   "sensors": ["E00042671","E00042803"],
   "theta": 500,
   "lad20cd": "E08000021"
}

where theta and lad20cd are optional and take the values above by default, but sensors must be defined and takes a list of oa11cd codes that have sensors in them.

It should return a JSON with this structure:

{
   "oa_coverage":[
      {"coverage":0.6431659719289781,"oa11cd":"E00042665"}, 
      ...,
    ],
   "total_coverage": {
      "pop_children":0.0396946631327479,
      "pop_elderly":0.024591629984248815,
      "pop_total":0.059299090984356984,
      "workplace":0.0947448314996531
   }
}

Dependencies

The dockerised version of the code used for the API uses only pip and the packages in requirements.txt. This doesn't include some plotting and optimisation libraries included in the conda environment.