optiwindnet


Nameoptiwindnet JSON
Version 0.0.6 PyPI version JSON
download
home_pageNone
SummaryTool for designing and optimizing the electrical cable network of offshore wind farms
upload_time2025-08-29 13:36:58
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords optimization wind farm network routing
VCS
bugtrack_url
requirements python bidict bitarray condeltri darkdetect esy.osm.pbf hybgensea makefun matplotlib networkx numba numpy ortools pony py pyomo PyYAML pyyaml-include scipy shapely svg.py utm
Travis-CI No Travis.
coveralls test coverage
            [![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](docs/_static/OptiWindNet.svg)

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>|![FancyWindFarm](docs/_static/OptiWindNet_windfarm.svg)|

[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": "[![pipeline status](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/badges/main/pipeline.svg)](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/commits/main)\n[![PyPi](https://img.shields.io/pypi/v/optiwindnet)](https://pypi.org/project/optiwindnet/)\n[![License](https://img.shields.io/pypi/l/optiwindnet)](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/blob/main/LICENSE)\n[![coverage report](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/badges/main/coverage.svg)](https://gitlab.windenergy.dtu.dk/TOPFARM/OptiWindNet/commits/main)\n<!---\n[![DOI](https://zenodo.org/badge/164115313.svg)](https://zenodo.org/badge/latestdoi/164115313)\n-->\n\n![OptiWindNet](docs/_static/OptiWindNet.svg)\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>|![FancyWindFarm](docs/_static/OptiWindNet_windfarm.svg)|\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"
}
        
Elapsed time: 1.37214s