Metadata-Version: 2.4
Name: optiwindnet
Version: 0.0.3
Summary: Tools for optimizing the electrical cable network (collection system) for offshore wind power plants.
Author: DTU Wind Energy
Author-email: Mauricio Souza de Alencar <ma___@dtu.dk>
License-Expression: MIT
Project-URL: Documentation, https://topfarm.pages.windenergy.dtu.dk/OptiWindNet/
Project-URL: Source code, https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet
Project-URL: Issue tracker, https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/-/issues
Keywords: optimization,wind farms,routing
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: backports.strenum<2.0,>=1.3.1; python_version < "3.11"
Requires-Dist: bidict~=0.23.1
Requires-Dist: condeltri~=0.0.2
Requires-Dist: darkdetect~=0.8.0
Requires-Dist: hybgensea~=0.0.1
Requires-Dist: makefun<1.17,>=1.15.6
Requires-Dist: matplotlib<4.0,>=3.10.1
Requires-Dist: networkx<3.6,>=3.4.2
Requires-Dist: numba<0.62,>=0.60
Requires-Dist: numpy<2.3,>=2.0
Requires-Dist: ortools<9.14,>=9.12.4544
Requires-Dist: osmium~=4.0.2
Requires-Dist: pony<0.7.20,>=0.7.18
Requires-Dist: py~=1.11.0
Requires-Dist: Pyomo<7.0,>=6.9
Requires-Dist: PyYAML~=6.0.2
Requires-Dist: scipy<1.17,>=1.15.2
Requires-Dist: shapely<2.2,>=2.0.7
Requires-Dist: svg.py~=1.6.0
Requires-Dist: utm<0.9,>=0.7
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: psutil; extra == "test"
Requires-Dist: memory_profiler; extra == "test"
Requires-Dist: line_profiler; extra == "test"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx_rtd_theme; extra == "docs"
Requires-Dist: ipywidgets; extra == "docs"
Requires-Dist: numpydoc; extra == "docs"
Requires-Dist: nbsphinx; extra == "docs"
Requires-Dist: sphinx_copybutton; extra == "docs"
Requires-Dist: sphinx_sitemap; extra == "docs"
Requires-Dist: ipympl; extra == "docs"
Requires-Dist: ipykernel; extra == "docs"
Requires-Dist: pypandoc; extra == "docs"
Requires-Dist: sphinx-autoapi; extra == "docs"
Dynamic: license-file

[![pipeline status](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/badges/main/pipeline.svg)](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/commits/main)
[![PyPi](https://img.shields.io/pypi/v/optiwindnet)](https://pypi.org/project/optiwindnet/)
[![License](https://img.shields.io/pypi/l/optiwindnet)](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/blob/main/LICENSE)
<!---
[![coverage report](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/badges/main/coverage.svg)](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/commits/main)
[![DOI](https://zenodo.org/badge/164115313.svg)](https://zenodo.org/badge/latestdoi/164115313)
-->

OptiWindNet
===========

Tool for designing and optimizing the electrical cable network (collection system) for offshore wind power plants.

Documentation: [https://topfarm.pages.windenergy.dtu.dk/OptiWindNet](https://topfarm.pages.windenergy.dtu.dk/OptiWindNet)
- [Quickstart](https://topfarm.pages.windenergy.dtu.dk/OptiWindNet/Quickstart)
- [Download the Jupyter notebooks](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/-/tree/main/docs/notebooks) used in the documentation.
- [Report an issue](https://github.com/DTUWindEnergy/OptiWindNet/issues) (mirror of OptiWindNet on GitHub)
- [API Reference](https://topfarm.pages.windenergy.dtu.dk/OptiWindNet/autoapi/optiwindnet/index.html)
- [How to Cite](https://topfarm.pages.windenergy.dtu.dk/OptiWindNet/index.html#how-to-cite)

Installation
------------

```
pip install optiwindnet
```

Detailed instructions in [Installation](https://topfarm.pages.windenergy.dtu.dk/OptiWindNet/setup#Installation).

Requirements
------------

Python 3.10+. The use of a Python virtual environment is recommended. OptiWindNet's dependencies will be installed automatically when using `pip install optiwindnet`.

One may pre-install the dependencies in a python environment by using either:
- [requirements.txt](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/-/raw/main/requirements.txt?ref_type=heads&inline=false): `pip install -r requirements.txt`
- [environment.yml](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/-/raw/main/environment.yml?ref_type=heads&inline=false): `conda env create -f environment.yml` (name: *optiwindnet_env*)

Acknowledgements
----------------

The heuristics implemented in this repository (release 0.0.1) are presented and analyzed in the MSc thesis [Optimization heuristics for offshore wind power plant collection systems design](https://fulltext-gateway.cvt.dk/oafilestore?oid=62dddf809a5e7116caf943f3&targetid=62dddf80a41ba354e4ed35bc) (DTU Wind - Technical University of Denmark, July 4, 2022)

The meta-heuristic used is [vidalt/HGS-CVRP: Modern implementation of the hybrid genetic search (HGS) algorithm specialized to the capacitated vehicle routing problem (CVRP). This code also includes an additional neighborhood called SWAP\*.](https://github.com/vidalt/HGS-CVRP) via its Python bindings [chkwon/PyHygese: A Python wrapper for the Hybrid Genetic Search algorithm for Capacitated Vehicle Routing Problems (HGS-CVRP)](https://github.com/chkwon/PyHygese).

The cable routing relies on a navigation mesh generated by the library [artem-ogre/CDT: Constrained Delaunay Triangulation (C++)](https://github.com/artem-ogre/CDT) via its Python bindings - [artem-ogre/PythonCDT: Constrained Delaunay Triangulation (Python)](https://github.com/artem-ogre/PythonCDT).
