Metadata-Version: 2.1
Name: oogeso
Version: 1.0.0
Summary: Offshore Oil and Gas Field Energy System Operational Optimisation (OOGESO)
Home-page: https://github.com/oogeso/oogeso
License: MIT License (http://opensource.org/licenses/MIT)
Author: Harald Svendsen
Author-email: harald.svendsen@sintef.no
Requires-Python: >=3.7.1,<3.11
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.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Scientific/Engineering
Requires-Dist: PyYAML (>=6.0,<7.0)
Requires-Dist: Pyomo (>=6.1.2,<7.0.0)
Requires-Dist: ipython (>=7,<8)
Requires-Dist: ipywidgets (>=7,<8)
Requires-Dist: matplotlib (>=3.5.1,<4.0.0)
Requires-Dist: networkx (>=2.6.3,<3.0.0)
Requires-Dist: numpy (>=1.21.4,<2.0.0)
Requires-Dist: pandas (>=1.3.4,<2.0.0)
Requires-Dist: plotly (>=5.5.0,<6.0.0)
Requires-Dist: pyarrow (>=6.0.1,<7.0.0)
Requires-Dist: pydantic (>=1.9.0,<2.0.0)
Requires-Dist: pydot (>=1.4.2,<2.0.0)
Requires-Dist: scipy (>=1.7.2,<2.0.0)
Requires-Dist: seaborn (>=0.11.2,<0.12.0)
Requires-Dist: tqdm (>=4.62.3,<5.0.0)
Requires-Dist: xlrd (>=2.0.1,<3.0.0)
Project-URL: Repository, https://github.com/oogeso/oogeso
Description-Content-Type: text/markdown

<p>
<a href="https://badge.fury.io/gh/oogeso%2Foogeso"><img src="https://badge.fury.io/gh/oogeso%2Foogeso.svg" alt="GitHub version" height="18"></a>
<a href="https://github.com/oogeso/oogeso/actions/workflows/build.yml?query=workflow%3ACI"><img src="https://img.shields.io/github/workflow/status/oogeso/oogeso/CI" alt="Badge"></a>
<a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.7%20%7C%203.8%20%7C%203.9%20%7C%203.10-blue.svg" alt="Badge"></a>
<a href="https://github.com/psf/black"><img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Badge"></a>
<a href="https://lgtm.com/projects/g/oogeso/oogeso/alerts/"><img alt="Total alerts" src="https://img.shields.io/lgtm/alerts/g/oogeso/oogeso.svg?logo=lgtm&logoWidth=18"/></a>
<a href="https://lgtm.com/projects/g/oogeso/oogeso/context:python"><img src="https://img.shields.io/lgtm/grade/python/g/oogeso/oogeso.svg?logo=lgtm&logoWidth=18" alt="Badge"></a>
</p>
<br/>

# Offshore Oil and Gas Energy System Operational Optimisation Model (oogeso)

Python module for modelling and analysing the energy system of offshore oil and gas fields, with renewable energy and storage integration.

Part of the [Low Emission Centre](https://www.sintef.no/en/projects/lowemission-research-centre/) (SP5).

## Getting started
Install latest Oogeso release from PyPi:
```
pip install oogeso
```

in order to use the plotting functionality you will need to install plotting libraries:

```
pip install matplotlib plotly seaborn
```

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

*  [User guide](https://oogeso.github.io/oogeso/)


## Local installation
Prerequisite: 
- [Poetry](https://python-poetry.org/docs/#installation)
- [Pre-commit](https://pre-commit.com/)
- [CBC solver](https://projects.coin-or.org/Cbc)
Clone or download the code and install it as a python package. I.e. navigate to the folder with the MANIFEST.in file and type:

### Install dependencies
1. `git clone git@github.com:oogeso/oogeso.git`
2. `cd oogeso`
3. `poetry install --no-root`  --no-root to not install the package itself, only the dependencies.
4. `poetry shell`
5. `poetry run pytest tests`

### Local development in Docker
Alternatively you can run and develop the code using docker and the Dockerfile in the root folder.

### GitHub Actions Pipelines
4 pipelines are defined.

1. Build: Building and testing on multiple OS and python versions. Triggered on any push to GitHub.
2. CBC-optimizer CI: Build and test oogeso with the CBC-solver and spesific cbc-tests.
3. Release: Create release based on tags starting on v*.
4. Publish: Publish the package to PyPi when a release is marked as published.

## 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

