This repository has been archived by the owner. It is now read-only.
Tool for optimising national down to village level electricity access
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
mgo
.gitignore
.travis.yml
LICENSE
Makefile
README.md
minigrid-optimiser.ipynb
requirements.txt
server_setup.md

README.md

This is no longer maintained, active development is in openelec

minigrid-optimiser

Build Status

A tool for optimising rural mini-grid systems using OpenStreetMap building data and a minimum spanning tree approach to network optimisation.

Provides model features through a simple API, as well as a basic Flask web app.

See the blog post here for a general overview of the model development (probably out of date): https://rdrn.me/flask-optimize-minigrid/

Examples

Basic API

Have a look at the example Jupyter Notebook for a quick overview of the main API features:

minigrid-optimiser.ipynb

Web App usage

Web App demo

Installation

Requirements

minigrid-optimiser requires Python >= 3.5 with the following packages installed:

  • flask >= 1.0.2 (only for the web app)
  • numpy >= 1.14.2
  • pandas >= 0.22.0
  • geopandas >= 0.4.0 (0.4.0 had API breaking changes so this version is needed)
  • shapely >= 1.6.4
  • scipy >= 1.0.0
  • scikit-learn >= 0.17.1

Install

Downloads or clone the repository:

git clone https://github.com/carderne/minigrid-optimiser.git

Then cd into the directory, and install the required packages into a virtual environment:

pip install -r requirements.txt

Then run jupyter notebook and open minigrid-optimiser.ipynb to go over the main model usage and API.

Web App

To use the web app, run the following from the main directory:

cd mgo
python mgo_app.py

and navigate to http://127.0.0.1:5000/ in a browser to access the web app.