[](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/commits/main)
[](https://pypi.org/project/optiwindnet/)
[](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/blob/main/LICENSE)
[](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/commits/main)
<!---
[](https://zenodo.org/badge/latestdoi/164115313)
-->

OptiWindNet
===========
Tool for designing and optimizing the electrical cable network of offshore wind farms.
|Documentation:<br>[optiwindnet.readthedocs.io][docs]||
|:--|:-:|
|<ul><li>[Quickstart][quick]</li><li>[Download the Jupyter notebooks][down] used in the documentation.</li><li>[Report an issue][issue] (at GitHub mirror)</li><li>[API Reference][api]</li><li>[How to Cite][cite]</li></ul>||
[docs]: https://optiwindnet.readthedocs.io
[quick]: https://optiwindnet.readthedocs.io/stable/notebooks/quickstart_high.html
[down]: https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/-/tree/main/docs/notebooks
[issue]: https://github.com/DTUWindEnergy/OptiWindNet/issues
[api]: https://optiwindnet.readthedocs.io/stable/autoapi/index.html
[cite]: https://optiwindnet.readthedocs.io/stable/index.html#how-to-cite
Installation
------------
```
pip install optiwindnet
```
Detailed instructions in [Installation](https://optiwindnet.readthedocs.io/stable/setup.html#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*)
Paper
-----
The methodology implemented in *OptiWindNet* is described in the peer-reviewed cientific article:
- Mauricio Souza de Alencar, Tuhfe Göçmen, Nicolaos A. Cutululis,
_Flexible cable routing framework for wind farm collection system optimization_,
European Journal of Operational Research,
2025, ISSN 0377-2217, <https://doi.org/10.1016/j.ejor.2025.07.069>.
```{code-block} bib
@article{
SOUZADEALENCAR2025,
title = {Flexible cable routing framework for wind farm collection system optimization},
journal = {European Journal of Operational Research},
year = {2025},
issn = {0377-2217},
doi = {https://doi.org/10.1016/j.ejor.2025.07.069},
url = {https://www.sciencedirect.com/science/article/pii/S0377221725005946},
author = {Mauricio {Souza de Alencar} and Tuhfe Göçmen and Nicolaos A. Cutululis},
keywords = {Combinatorial optimization, Network design, Collection system, Wind farm},
}
```
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).
Raw data
{
"_id": null,
"home_page": null,
"name": "optiwindnet",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "optimization, wind farm, network, routing",
"author": null,
"author_email": "DTU Wind Energy <mikf@dtu.dk>, Mauricio Souza de Alencar <ma___@dtu.dk>, Amir Arasteh <am___@dtu.dk>",
"download_url": "https://files.pythonhosted.org/packages/8b/1a/88b001300c36182a55832ee8cbff36c429e4f44825f5acd10a80d7d65237/optiwindnet-0.0.6.tar.gz",
"platform": null,
"description": "[](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/commits/main)\n[](https://pypi.org/project/optiwindnet/)\n[](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/blob/main/LICENSE)\n[](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/commits/main)\n<!---\n[](https://zenodo.org/badge/latestdoi/164115313)\n-->\n\n\n\nOptiWindNet\n===========\n\nTool for designing and optimizing the electrical cable network of offshore wind farms.\n\n\n|Documentation:<br>[optiwindnet.readthedocs.io][docs]||\n|:--|:-:|\n|<ul><li>[Quickstart][quick]</li><li>[Download the Jupyter notebooks][down] used in the documentation.</li><li>[Report an issue][issue] (at GitHub mirror)</li><li>[API Reference][api]</li><li>[How to Cite][cite]</li></ul>||\n\n[docs]: https://optiwindnet.readthedocs.io\n[quick]: https://optiwindnet.readthedocs.io/stable/notebooks/quickstart_high.html\n[down]: https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/-/tree/main/docs/notebooks\n[issue]: https://github.com/DTUWindEnergy/OptiWindNet/issues\n[api]: https://optiwindnet.readthedocs.io/stable/autoapi/index.html\n[cite]: https://optiwindnet.readthedocs.io/stable/index.html#how-to-cite\n\nInstallation\n------------\n\n```\npip install optiwindnet\n```\n\nDetailed instructions in [Installation](https://optiwindnet.readthedocs.io/stable/setup.html#installation).\n\nRequirements\n------------\n\nPython 3.10+. The use of a Python virtual environment is recommended. OptiWindNet's dependencies will be installed automatically when using `pip install optiwindnet`.\n\nOne may pre-install the dependencies in a python environment by using either:\n- [requirements.txt](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/-/raw/main/requirements.txt?ref_type=heads&inline=false): `pip install -r requirements.txt`\n- [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*)\n\nPaper\n-----\n\nThe methodology implemented in *OptiWindNet* is described in the peer-reviewed cientific article:\n- Mauricio Souza de Alencar, Tuhfe G\u00f6\u00e7men, Nicolaos A. Cutululis,\n_Flexible cable routing framework for wind farm collection system optimization_,\nEuropean Journal of Operational Research,\n2025, ISSN 0377-2217, <https://doi.org/10.1016/j.ejor.2025.07.069>.\n\n```{code-block} bib\n@article{\n SOUZADEALENCAR2025,\n title = {Flexible cable routing framework for wind farm collection system optimization},\n journal = {European Journal of Operational Research},\n year = {2025},\n issn = {0377-2217},\n doi = {https://doi.org/10.1016/j.ejor.2025.07.069},\n url = {https://www.sciencedirect.com/science/article/pii/S0377221725005946},\n author = {Mauricio {Souza de Alencar} and Tuhfe G\u00f6\u00e7men and Nicolaos A. Cutululis},\n keywords = {Combinatorial optimization, Network design, Collection system, Wind farm},\n}\n```\n\nAcknowledgements\n----------------\n\nThe 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)\n\nThe 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).\n\nThe 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).\n",
"bugtrack_url": null,
"license": null,
"summary": "Tool for designing and optimizing the electrical cable network of offshore wind farms",
"version": "0.0.6",
"project_urls": {
"Documentation": "https://optiwindnet.readthedocs.io/",
"Download": "https://optiwindnet.readthedocs.io/stable/setup.html#installation",
"Homepage": "https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet",
"Issue Tracker": "https://github.com/DTUWindEnergy/OptiWindNet/issues",
"Release Notes": "https://github.com/DTUWindEnergy/OptiWindNet/tags",
"Source": "https://github.com/DTUWindEnergy/OptiWindNet"
},
"split_keywords": [
"optimization",
" wind farm",
" network",
" routing"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "31b9a5d08880f71caafd7e42b3695d5a556f2ba2e063a84410ee5ee73f77f1f7",
"md5": "8a8742adf9c86870254b55abab3e9beb",
"sha256": "c18d739a6310d24f163c2409c4937fb115acb62bdb42d707dfff9231981d8bdb"
},
"downloads": -1,
"filename": "optiwindnet-0.0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8a8742adf9c86870254b55abab3e9beb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 388882,
"upload_time": "2025-08-29T13:36:55",
"upload_time_iso_8601": "2025-08-29T13:36:55.803027Z",
"url": "https://files.pythonhosted.org/packages/31/b9/a5d08880f71caafd7e42b3695d5a556f2ba2e063a84410ee5ee73f77f1f7/optiwindnet-0.0.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8b1a88b001300c36182a55832ee8cbff36c429e4f44825f5acd10a80d7d65237",
"md5": "cba8feae59afc6c624db631d30520a25",
"sha256": "90ad6836fc60e08d65c3d8dbb49e369cd7f048163c5229f3782bca80fb72cc87"
},
"downloads": -1,
"filename": "optiwindnet-0.0.6.tar.gz",
"has_sig": false,
"md5_digest": "cba8feae59afc6c624db631d30520a25",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 397441,
"upload_time": "2025-08-29T13:36:58",
"upload_time_iso_8601": "2025-08-29T13:36:58.254884Z",
"url": "https://files.pythonhosted.org/packages/8b/1a/88b001300c36182a55832ee8cbff36c429e4f44825f5acd10a80d7d65237/optiwindnet-0.0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-29 13:36:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "DTUWindEnergy",
"github_project": "OptiWindNet",
"travis_ci": false,
"coveralls": true,
"github_actions": false,
"requirements": [
{
"name": "python",
"specs": [
[
">=",
"3.11"
]
]
},
{
"name": "bidict",
"specs": [
[
">=",
"0.23.1"
]
]
},
{
"name": "bitarray",
"specs": [
[
">=",
"3.4.2"
]
]
},
{
"name": "condeltri",
"specs": [
[
">=",
"0.0.2"
]
]
},
{
"name": "darkdetect",
"specs": [
[
">=",
"0.8.0"
]
]
},
{
"name": "esy.osm.pbf",
"specs": [
[
">=",
"0.1.1"
]
]
},
{
"name": "hybgensea",
"specs": [
[
">=",
"0.0.1"
]
]
},
{
"name": "makefun",
"specs": [
[
">=",
"1.15.6"
]
]
},
{
"name": "matplotlib",
"specs": [
[
">=",
"3.10.1"
]
]
},
{
"name": "networkx",
"specs": [
[
">=",
"3.4.2"
]
]
},
{
"name": "numba",
"specs": [
[
">=",
"0.60"
]
]
},
{
"name": "numpy",
"specs": [
[
"<",
"2.3"
],
[
">=",
"2.0"
]
]
},
{
"name": "ortools",
"specs": [
[
">=",
"9.12.4544"
]
]
},
{
"name": "pony",
"specs": [
[
">=",
"0.7.18"
]
]
},
{
"name": "py",
"specs": [
[
">=",
"1.11.0"
]
]
},
{
"name": "pyomo",
"specs": [
[
">=",
"6.9.1"
]
]
},
{
"name": "PyYAML",
"specs": [
[
">=",
"6.0.2"
]
]
},
{
"name": "pyyaml-include",
"specs": [
[
">=",
"2.1"
]
]
},
{
"name": "scipy",
"specs": [
[
">=",
"1.15.2"
]
]
},
{
"name": "shapely",
"specs": [
[
">=",
"2.0.7"
]
]
},
{
"name": "svg.py",
"specs": [
[
">=",
"1.6.0"
]
]
},
{
"name": "utm",
"specs": [
[
">=",
"0.7.0"
]
]
}
],
"lcname": "optiwindnet"
}