[](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 (collection system) for offshore wind power plants.
Documentation: [https://optiwindnet.readthedocs.io](https://optiwindnet.readthedocs.io)
- [Quickstart](https://optiwindnet.readthedocs.io/stable/notebooks/Quickstart.html)
- [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://optiwindnet.readthedocs.io/stable/autoapi/index.html)
- [How to 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*)
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 farms, routing",
"author": "DTU Wind Energy",
"author_email": "Mauricio Souza de Alencar <ma___@dtu.dk>",
"download_url": "https://files.pythonhosted.org/packages/85/1f/8e0e135102031f6c81c9bf082a200a8353ac66707ffcf97deb188fb43b5b/optiwindnet-0.0.5.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<!---\n[](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/commits/main)\n[](https://zenodo.org/badge/latestdoi/164115313)\n-->\n\nOptiWindNet\n===========\n\nTool for designing and optimizing the electrical cable network (collection system) for offshore wind power plants.\n\nDocumentation: [https://optiwindnet.readthedocs.io](https://optiwindnet.readthedocs.io)\n- [Quickstart](https://optiwindnet.readthedocs.io/stable/notebooks/Quickstart.html)\n- [Download the Jupyter notebooks](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/-/tree/main/docs/notebooks) used in the documentation.\n- [Report an issue](https://github.com/DTUWindEnergy/OptiWindNet/issues) (mirror of OptiWindNet on GitHub)\n- [API Reference](https://optiwindnet.readthedocs.io/stable/autoapi/index.html)\n- [How to 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\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": "Tools for optimizing the electrical cable network (collection system) for offshore wind power plants.",
"version": "0.0.5",
"project_urls": {
"Documentation": "https://optiwindnet.readthedocs.io/",
"Issue tracker": "https://github.com/DTUWindEnergy/OptiWindNet/issues",
"Source code": "https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet"
},
"split_keywords": [
"optimization",
" wind farms",
" routing"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "da9c7ce4f661c1bc7ebe247eb1fc03f764c7f0fccc885527eeb0c1e82fa14a30",
"md5": "3a6cc0ab077e0963bf438ec596a1112a",
"sha256": "fab3def5ea4bf53808af8cc5b77a42ba808d1db8f0fe346de66a3fc15ee47e50"
},
"downloads": -1,
"filename": "optiwindnet-0.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3a6cc0ab077e0963bf438ec596a1112a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 372351,
"upload_time": "2025-07-31T11:22:19",
"upload_time_iso_8601": "2025-07-31T11:22:19.725314Z",
"url": "https://files.pythonhosted.org/packages/da/9c/7ce4f661c1bc7ebe247eb1fc03f764c7f0fccc885527eeb0c1e82fa14a30/optiwindnet-0.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "851f8e0e135102031f6c81c9bf082a200a8353ac66707ffcf97deb188fb43b5b",
"md5": "29df8d08c282a7b0f6ca0540e5679333",
"sha256": "807fc5a09e76560b82ff39136f0715b592d8f80bf36657831a4812062f286349"
},
"downloads": -1,
"filename": "optiwindnet-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "29df8d08c282a7b0f6ca0540e5679333",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 325786,
"upload_time": "2025-07-31T11:22:21",
"upload_time_iso_8601": "2025-07-31T11:22:21.175014Z",
"url": "https://files.pythonhosted.org/packages/85/1f/8e0e135102031f6c81c9bf082a200a8353ac66707ffcf97deb188fb43b5b/optiwindnet-0.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-31 11:22:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "DTUWindEnergy",
"github_project": "OptiWindNet",
"travis_ci": false,
"coveralls": false,
"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.0"
],
[
"<",
"2.3"
]
]
},
{
"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": "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"
}