gridfinder


Namegridfinder JSON
Version 3.0.1 PyPI version JSON
download
home_page
SummaryAlgorithm for guessing MV grid network based on night time lights
upload_time2024-03-05 08:44:48
maintainer
docs_urlNone
author
requires_python>=3.9
licenseMIT License
keywords ntl electricity grid
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # gridfinder

gridfinder uses night-time lights imagery to as an indicator of settlements/towns with grid electricity access. Then a minimum spanning tree is calculated for these connect points, using a many-to-many variant Dijkstra algorithm and using existing road networks as a cost function. Adapted from [this work from Facebook](https://github.com/facebookresearch/many-to-many-dijkstra). Currently gridfinder only uses road networks, but it would be trivial to add other cost parameters such as slope or terrain.

The algorithm looks as follows in process, guessing the grid network for Uganda:

[![Animated algorithm](https://raw.githubusercontent.com/carderne/gridfinder/master/gridfinder-animated.gif)](#)

## Input requirements
gridfinder requires the following data sources:
- VIIRS data, monthly and annual composites available [here](https://eogdata.mines.edu/products/vnl/).
- OSM highway data, most easily available using the [HOT Export Tool](https://export.hotosm.org/en/v3/), otherwise [geofabrik](https://download.geofabrik.de/)

## Model usage

To get to grips with the API and steps in the model, open the Jupyter notebook `example.ipynb`.
This repository  includes the input data needed to do a test run for Burundi, so it should be a matter of openening the notebook and running all cells.

## Installation
### Install with pip
```bash
pip install gridfinder
```

**Note:** On some operating systems (Ubuntu 18.04), you may get an error about `libspatialindex`. To overcome this on Ubuntu, run:
```bash
sudo apt install libspatialindex-dev
```

## Development
Download or clone the repository and install the required packages (preferably in a virtual environment):
```bash
git clone https://github.com/carderne/gridfinder.git
cd gridfinder
pip install -e '.[dev]'
```

### Linting
```bash
make lint
```

### Typecheck
```bash
make check
```

### Testing
```bash
make test
```

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "gridfinder",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "",
    "keywords": "ntl,electricity,grid",
    "author": "",
    "author_email": "Chris Arderne <chris@rdrn.me>",
    "download_url": "https://files.pythonhosted.org/packages/8d/e1/74f7e2c957bcb69c10ca103f1f2d43d159da7b97fb1706da0176d14473fe/gridfinder-3.0.1.tar.gz",
    "platform": null,
    "description": "# gridfinder\n\ngridfinder uses night-time lights imagery to as an indicator of settlements/towns with grid electricity access. Then a minimum spanning tree is calculated for these connect points, using a many-to-many variant Dijkstra algorithm and using existing road networks as a cost function. Adapted from [this work from Facebook](https://github.com/facebookresearch/many-to-many-dijkstra). Currently gridfinder only uses road networks, but it would be trivial to add other cost parameters such as slope or terrain.\n\nThe algorithm looks as follows in process, guessing the grid network for Uganda:\n\n[![Animated algorithm](https://raw.githubusercontent.com/carderne/gridfinder/master/gridfinder-animated.gif)](#)\n\n## Input requirements\ngridfinder requires the following data sources:\n- VIIRS data, monthly and annual composites available [here](https://eogdata.mines.edu/products/vnl/).\n- OSM highway data, most easily available using the [HOT Export Tool](https://export.hotosm.org/en/v3/), otherwise [geofabrik](https://download.geofabrik.de/)\n\n## Model usage\n\nTo get to grips with the API and steps in the model, open the Jupyter notebook `example.ipynb`.\nThis repository  includes the input data needed to do a test run for Burundi, so it should be a matter of openening the notebook and running all cells.\n\n## Installation\n### Install with pip\n```bash\npip install gridfinder\n```\n\n**Note:** On some operating systems (Ubuntu 18.04), you may get an error about `libspatialindex`. To overcome this on Ubuntu, run:\n```bash\nsudo apt install libspatialindex-dev\n```\n\n## Development\nDownload or clone the repository and install the required packages (preferably in a virtual environment):\n```bash\ngit clone https://github.com/carderne/gridfinder.git\ncd gridfinder\npip install -e '.[dev]'\n```\n\n### Linting\n```bash\nmake lint\n```\n\n### Typecheck\n```bash\nmake check\n```\n\n### Testing\n```bash\nmake test\n```\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Algorithm for guessing MV grid network based on night time lights",
    "version": "3.0.1",
    "project_urls": {
        "homepage": "https://gridfinder.rdrn.me",
        "repository": "https://github.com/carderne/gridfinder"
    },
    "split_keywords": [
        "ntl",
        "electricity",
        "grid"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b013f2822c95583e96a6574be48c83b7dcb884ac90fdea4165208bb6c6f203d1",
                "md5": "69b53c0defae96325bd1e02ce15c5e87",
                "sha256": "e8419856dfd60ba23fd7af20d29a2aa7e6714379081ead339aa77f2f753154db"
            },
            "downloads": -1,
            "filename": "gridfinder-3.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "69b53c0defae96325bd1e02ce15c5e87",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 12524,
            "upload_time": "2024-03-05T08:44:45",
            "upload_time_iso_8601": "2024-03-05T08:44:45.263819Z",
            "url": "https://files.pythonhosted.org/packages/b0/13/f2822c95583e96a6574be48c83b7dcb884ac90fdea4165208bb6c6f203d1/gridfinder-3.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8de174f7e2c957bcb69c10ca103f1f2d43d159da7b97fb1706da0176d14473fe",
                "md5": "9edcd0eb567cdde34f86547e5b222dbc",
                "sha256": "c5b60cd50895a02292bc6e377b07725da33b2863ce5ed678a6a1299e7f369b3d"
            },
            "downloads": -1,
            "filename": "gridfinder-3.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "9edcd0eb567cdde34f86547e5b222dbc",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 689831,
            "upload_time": "2024-03-05T08:44:48",
            "upload_time_iso_8601": "2024-03-05T08:44:48.917465Z",
            "url": "https://files.pythonhosted.org/packages/8d/e1/74f7e2c957bcb69c10ca103f1f2d43d159da7b97fb1706da0176d14473fe/gridfinder-3.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-05 08:44:48",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "carderne",
    "github_project": "gridfinder",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "gridfinder"
}
        
Elapsed time: 2.26034s