Metadata-Version: 2.1
Name: powergim
Version: 0.4.0
Summary: Power Grid Investment Module (PowerGIM)
Home-page: https://github.com/powergama/powergim
License: MIT License (http://opensource.org/licenses/MIT)
Author: Harald G Svendsen
Author-email: harald.svendsen@sintef.no
Requires-Python: >=3.10,<3.12
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: License :: Other/Proprietary License
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering
Provides-Extra: plotting
Requires-Dist: Pyomo (>=6.4.2,<7.0.0)
Requires-Dist: branca (>=0.5,<0.6) ; extra == "plotting"
Requires-Dist: cloudpickle (>=2.2.0,<3.0.0)
Requires-Dist: folium (>=0.12,<0.13) ; extra == "plotting"
Requires-Dist: geopandas (>=0.12.1,<0.13.0)
Requires-Dist: ipywidgets (>=8,<9)
Requires-Dist: jinja2 (>=3.1,<4.0) ; extra == "plotting"
Requires-Dist: jupyterlab (>=3.4.7,<4.0.0)
Requires-Dist: matplotlib (>=3.6.0,<4.0.0) ; extra == "plotting"
Requires-Dist: mpi-sppy (>=0.11.1,<0.12.0)
Requires-Dist: mpi4py (>=3.1.1,<4.0.0)
Requires-Dist: networkx (>=3.0,<4.0)
Requires-Dist: numpy (>=1.23.0,<2.0.0)
Requires-Dist: openpyxl (>=3.0.10,<4.0.0)
Requires-Dist: pandas (>=1.5.0,<2.0.0)
Requires-Dist: plotly (>=5.10.0,<6.0.0) ; extra == "plotting"
Requires-Dist: pydantic (>=1.10.0,<2.0.0)
Requires-Dist: ruamel.yaml (>=0.17.21,<0.18.0)
Requires-Dist: scikit-learn (>=1.1.2,<2.0.0)
Requires-Dist: scipy (>=1.9.1,<2.0.0)
Requires-Dist: seaborn (>=0.12.0,<0.13.0) ; extra == "plotting"
Project-URL: Repository, https://github.com/powergama/powergim
Description-Content-Type: text/markdown


[![GitHub license](https://img.shields.io/github/license/powergama/powergama)](https://github.com/powergama/powergim/blob/main/LICENSE)
[![Python](https://img.shields.io/badge/python-3-blue.svg)](https://python.org)
[![Code style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
[![build](https://github.com/powergama/powergim/actions/workflows/build.yml/badge.svg)](https://github.com/powergama/powergim/actions/workflows/build.yml)
[![GitHub version](https://badge.fury.io/gh/powergama%2Fpowergim.svg)](https://badge.fury.io/gh/powergama%2Fpowergim)
[![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/powergama/powergim)


# Power Grid Investment Module (PowerGIM)

PowerGIM is a Python package for stochastic power system expansion planning that can consider both transmission and generator investments in a two-stage formulation with uncertain parameters.


## Getting started
Install latest PowerGIM release from PyPi:
```
pip install powergim
```



## User guide and examples
The online user guide  gives more information about how to
specify input data and run a simulation case.

*  [User guide](docs/powergim.md)


## Developer installation
Prerequisite: 
- [Poetry](https://python-poetry.org/docs/#installation)
- [Pre-commit](https://pre-commit.com/)
- A MILP solver, e.g. the free [CBC solver](https://projects.coin-or.org/Cbc).
Clone or download the code and install it as a python package. 
- A working MPI implementation, preferably supporting MPI-3 and built with shared/dynamic libraries

### Install dependencies
1. `git clone git@github.com:powergim/powergim.git`
2. `cd powergim`
3. `poetry install` 
4. `poetry shell`
5. `poetry run pytest tests`


### GitHub Actions Pipelines
These pipelines are defined:

1. Build: Building and testing on multiple OS and python versions. Triggered on any push to GitHub.

## Contribute
You are welcome to contribute to the improvement of the code.

* Use Issues to describe and track needed improvements and bug fixes
* Use branches for development and pull requests to merge into main
* Use [Pre-commit hooks](https://pre-commit.com/)

### Contact

[Harald G Svendsen](https://www.sintef.no/en/all-employees/employee/?empid=3414)  
SINTEF Energy Research

