<!--
SPDX-FileCopyrightText: 2017-2023 Contributors to the OpenSTEF project <korte.termijn.prognoses@alliander.com>
SPDX-License-Identifier: MPL-2.0
-->
# OpenSTEF
<!-- Badges -->
[![Downloads](https://static.pepy.tech/badge/openstef)](https://pepy.tech/project/openstef)
[![Downloads](https://static.pepy.tech/badge/openstef/month)](https://pepy.tech/project/openstef)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5585/badge)](https://bestpractices.coreinfrastructure.org/projects/5585)
<!-- SonarCloud badges -->
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=bugs)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)
[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=code_smells)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=coverage)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)
[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=duplicated_lines_density)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)
[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=reliability_rating)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=security_rating)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)
[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=sqale_index)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)
OpenSTEF is a Python package designed for generating short-term forecasts in the energy sector. The repository includes all the essential components required for machine learning pipelines that facilitate the forecasting process. To utilize the package, users are required to furnish their own data storage and retrieval interface.
# Table of contents
- [OpenSTEF](#openstef)
- [Table of contents](#table-of-contents)
- [External information sources](#external-information-sources)
- [Installation](#installation)
- [Usage](#usage)
- [Example notebooks](#example-notebooks)
- [Reference Implementation](#reference-implementation)
- [Database connector for OpenSTEF](#database-connector-for-openstef)
- [License](license)
- [Contributing](#contributing)
- [Contact](#contact)
# External information sources
- [Documentation website](https://openstef.github.io/openstef/index.html);
- [Python package](https://pypi.org/project/openstef/);
- [Linux Foundation project page](https://www.lfenergy.org/projects/openstef/);
- [Documentation on dashboard](https://raw.githack.com/OpenSTEF/.github/main/profile/html/openstef_dashboard_doc.html);
- [Video about OpenSTEF](https://www.lfenergy.org/forecasting-to-create-a-more-resilient-optimized-grid/);
# Installation
## Install the openstef package
```shell
pip install openstef
```
### Remark regarding installation within a **conda environment on Windows**
A version of the pywin32 package will be installed as a secondary dependency along with the installation of the openstef package. Since conda relies on an old version of pywin32, the new installation can break conda's functionality. The following command can solve this issue:
```shell
pip install pywin32==300
```
For more information on this issue see the [readme of pywin32](https://github.com/mhammond/pywin32#installing-via-pip) or [this Github issue](https://github.com/mhammond/pywin32/issues/1865#issue-1212752696).
## Remark regarding installation on Apple Silicon
If you want to install the `openstef` package on Apple Silicon (Mac with M1-chip or newer), you can encounter issues with the dependencies, such as `xgboost`. Solution:
1. Run `brew install libomp` (if you haven’t installed Homebrew: [follow instructions here](https://brew.sh/))
2. If your interpreter can not find the `libomp` installation in `/usr/local/bin`, it is probably in `/opt/brew/Cellar`. Run:
```sh
mkdir -p /usr/local/opt/libomp/
ln -s /opt/brew/Cellar/libomp/{your_version}/lib /usr/local/opt/libomp/lib
```
3. Uninstall `xgboost` with `pip` (`pip uninstall xgboost`) and install with `conda-forge` (`conda install -c conda-forge xgboost`)
4. If you encounter similar issues with `lightgbm`: uninstall `lightgbm` with `pip` (`pip uninstall lightgbm`) and install later version with `conda-forge` (`conda install -c conda-forge 'lightgbm>=4.2.0'`)
# Usage
## Example notebooks
To help you get started, a set of fundamental example notebooks has been created. You can access these offline examples [here](https://github.com/OpenSTEF/openstef-offline-example).
## Reference Implementation
A complete implementation including databases, user interface, example data, etc. is available at: https://github.com/OpenSTEF/openstef-reference
![screenshot](https://user-images.githubusercontent.com/60883372/146760483-29af3ac7-62af-4f13-98c7-982a79c517d1.jpg)
Screenshot of the operational dashboard showing the key functionality of OpenSTEF.
Dashboard documentation can be found [here](https://raw.githack.com/OpenSTEF/.github/main/profile/html/openstef_dashboard_doc.html).
To run a task use:
```shell
python -m openstef task <task_name>
```
## Database connector for openstef
This repository provides an interface to OpenSTEF (reference) databases. The repository can be found [here](https://github.com/OpenSTEF/openstef-dbc).
# License
This project is licensed under the Mozilla Public License, version 2.0 - see LICENSE for details.
## Licenses third-party libraries
This project includes third-party libraries, which are licensed under their own respective Open-Source licenses. SPDX-License-Identifier headers are used to show which license is applicable. The concerning license files can be found in the LICENSES directory.
# Contributing
Please read [CODE_OF_CONDUCT.md](https://github.com/OpenSTEF/.github/blob/main/CODE_OF_CONDUCT.md), [CONTRIBUTING.md](https://github.com/OpenSTEF/.github/blob/main/CONTRIBUTING.md) and [PROJECT_GOVERNANCE.md](https://github.com/OpenSTEF/.github/blob/main/PROJECT_GOVERNANCE.md) for details on the process for submitting pull requests to us.
# Contact
Please read [SUPPORT.md](https://github.com/OpenSTEF/.github/blob/main/SUPPORT.md) for how to connect and get into contact with the OpenSTEF project
Raw data
{
"_id": null,
"home_page": "https://github.com/OpenSTEF/openstef",
"name": "openstef",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11.0",
"maintainer_email": null,
"keywords": "energy, forecasting, machinelearning",
"author": "Alliander N.V",
"author_email": "korte.termijn.prognoses@alliander.com",
"download_url": "https://files.pythonhosted.org/packages/14/90/73d0b38732ba8eeaed3848f60242b757e78d49a090c22506ba61381d772e/openstef-3.4.48.tar.gz",
"platform": null,
"description": "<!--\nSPDX-FileCopyrightText: 2017-2023 Contributors to the OpenSTEF project <korte.termijn.prognoses@alliander.com>\n\nSPDX-License-Identifier: MPL-2.0\n-->\n\n# OpenSTEF\n<!-- Badges -->\n[![Downloads](https://static.pepy.tech/badge/openstef)](https://pepy.tech/project/openstef)\n[![Downloads](https://static.pepy.tech/badge/openstef/month)](https://pepy.tech/project/openstef)\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/5585/badge)](https://bestpractices.coreinfrastructure.org/projects/5585)\n<!-- SonarCloud badges -->\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=bugs)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=code_smells)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=coverage)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)\n[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=duplicated_lines_density)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=reliability_rating)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=security_rating)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)\n[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=sqale_index)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=OpenSTEF_openstef&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=OpenSTEF_openstef)\n\nOpenSTEF is a Python package designed for generating short-term forecasts in the energy sector. The repository includes all the essential components required for machine learning pipelines that facilitate the forecasting process. To utilize the package, users are required to furnish their own data storage and retrieval interface.\n\n# Table of contents\n- [OpenSTEF](#openstef)\n- [Table of contents](#table-of-contents)\n- [External information sources](#external-information-sources)\n- [Installation](#installation)\n- [Usage](#usage)\n - [Example notebooks](#example-notebooks)\n - [Reference Implementation](#reference-implementation)\n - [Database connector for OpenSTEF](#database-connector-for-openstef)\n- [License](license)\n- [Contributing](#contributing)\n- [Contact](#contact)\n\n# External information sources\n- [Documentation website](https://openstef.github.io/openstef/index.html);\n- [Python package](https://pypi.org/project/openstef/);\n- [Linux Foundation project page](https://www.lfenergy.org/projects/openstef/);\n- [Documentation on dashboard](https://raw.githack.com/OpenSTEF/.github/main/profile/html/openstef_dashboard_doc.html);\n- [Video about OpenSTEF](https://www.lfenergy.org/forecasting-to-create-a-more-resilient-optimized-grid/);\n\n# Installation\n\n## Install the openstef package\n\n```shell\npip install openstef\n```\n\n### Remark regarding installation within a **conda environment on Windows**\n\nA version of the pywin32 package will be installed as a secondary dependency along with the installation of the openstef package. Since conda relies on an old version of pywin32, the new installation can break conda's functionality. The following command can solve this issue:\n```shell\npip install pywin32==300\n```\nFor more information on this issue see the [readme of pywin32](https://github.com/mhammond/pywin32#installing-via-pip) or [this Github issue](https://github.com/mhammond/pywin32/issues/1865#issue-1212752696).\n\n## Remark regarding installation on Apple Silicon\n\nIf you want to install the `openstef` package on Apple Silicon (Mac with M1-chip or newer), you can encounter issues with the dependencies, such as `xgboost`. Solution:\n\n1. Run `brew install libomp` (if you haven\u2019t installed Homebrew: [follow instructions here](https://brew.sh/))\n2. If your interpreter can not find the `libomp` installation in `/usr/local/bin`, it is probably in `/opt/brew/Cellar`. Run:\n```sh\nmkdir -p /usr/local/opt/libomp/\nln -s /opt/brew/Cellar/libomp/{your_version}/lib /usr/local/opt/libomp/lib\n```\n3. Uninstall `xgboost` with `pip` (`pip uninstall xgboost`) and install with `conda-forge` (`conda install -c conda-forge xgboost`)\n4. If you encounter similar issues with `lightgbm`: uninstall `lightgbm` with `pip` (`pip uninstall lightgbm`) and install later version with `conda-forge` (`conda install -c conda-forge 'lightgbm>=4.2.0'`)\n\n# Usage\n\n## Example notebooks\nTo help you get started, a set of fundamental example notebooks has been created. You can access these offline examples [here](https://github.com/OpenSTEF/openstef-offline-example).\n\n## Reference Implementation\nA complete implementation including databases, user interface, example data, etc. is available at: https://github.com/OpenSTEF/openstef-reference\n\n![screenshot](https://user-images.githubusercontent.com/60883372/146760483-29af3ac7-62af-4f13-98c7-982a79c517d1.jpg)\nScreenshot of the operational dashboard showing the key functionality of OpenSTEF.\nDashboard documentation can be found [here](https://raw.githack.com/OpenSTEF/.github/main/profile/html/openstef_dashboard_doc.html).\n\nTo run a task use:\n\n```shell\npython -m openstef task <task_name>\n```\n\n## Database connector for openstef\nThis repository provides an interface to OpenSTEF (reference) databases. The repository can be found [here](https://github.com/OpenSTEF/openstef-dbc).\n\n# License\nThis project is licensed under the Mozilla Public License, version 2.0 - see LICENSE for details.\n\n## Licenses third-party libraries\nThis project includes third-party libraries, which are licensed under their own respective Open-Source licenses. SPDX-License-Identifier headers are used to show which license is applicable. The concerning license files can be found in the LICENSES directory.\n\n# Contributing\nPlease read [CODE_OF_CONDUCT.md](https://github.com/OpenSTEF/.github/blob/main/CODE_OF_CONDUCT.md), [CONTRIBUTING.md](https://github.com/OpenSTEF/.github/blob/main/CONTRIBUTING.md) and [PROJECT_GOVERNANCE.md](https://github.com/OpenSTEF/.github/blob/main/PROJECT_GOVERNANCE.md) for details on the process for submitting pull requests to us.\n\n# Contact\nPlease read [SUPPORT.md](https://github.com/OpenSTEF/.github/blob/main/SUPPORT.md) for how to connect and get into contact with the OpenSTEF project\n \n",
"bugtrack_url": null,
"license": "MPL-2.0",
"summary": "Open short term energy forecaster",
"version": "3.4.48",
"project_urls": {
"Homepage": "https://github.com/OpenSTEF/openstef"
},
"split_keywords": [
"energy",
" forecasting",
" machinelearning"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "19151c0217a12b65fb27ee01225b3983aebaadc24fa8ccaf052cb2f08ad2b713",
"md5": "b413536698135dcfd3c10324314dab12",
"sha256": "53297ae2ed83412079972c2aaeaa802a8075e59fcc3c92d3a84f68390d52f807"
},
"downloads": -1,
"filename": "openstef-3.4.48-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b413536698135dcfd3c10324314dab12",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11.0",
"size": 288654,
"upload_time": "2024-12-12T13:36:30",
"upload_time_iso_8601": "2024-12-12T13:36:30.857957Z",
"url": "https://files.pythonhosted.org/packages/19/15/1c0217a12b65fb27ee01225b3983aebaadc24fa8ccaf052cb2f08ad2b713/openstef-3.4.48-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "149073d0b38732ba8eeaed3848f60242b757e78d49a090c22506ba61381d772e",
"md5": "9e4d35b81dd48aa4dc19c74f03612eee",
"sha256": "8148cd993ddca3251b3659edae4e7fe4751aed18fcf511d11ced0560e024132e"
},
"downloads": -1,
"filename": "openstef-3.4.48.tar.gz",
"has_sig": false,
"md5_digest": "9e4d35b81dd48aa4dc19c74f03612eee",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11.0",
"size": 237399,
"upload_time": "2024-12-12T13:36:33",
"upload_time_iso_8601": "2024-12-12T13:36:33.968388Z",
"url": "https://files.pythonhosted.org/packages/14/90/73d0b38732ba8eeaed3848f60242b757e78d49a090c22506ba61381d772e/openstef-3.4.48.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-12 13:36:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "OpenSTEF",
"github_project": "openstef",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "holidays",
"specs": [
[
"==",
"0.21"
]
]
},
{
"name": "joblib",
"specs": [
[
"==",
"1.3.2"
]
]
},
{
"name": "lightgbm",
"specs": [
[
"~=",
"3.3"
]
]
},
{
"name": "matplotlib",
"specs": [
[
"~=",
"3.7"
]
]
},
{
"name": "mlflow",
"specs": [
[
"~=",
"2.3"
]
]
},
{
"name": "networkx",
"specs": [
[
"~=",
"3.1"
]
]
},
{
"name": "numpy",
"specs": [
[
">=",
"2"
],
[
"<",
"3"
]
]
},
{
"name": "optuna",
"specs": [
[
"~=",
"3.1"
]
]
},
{
"name": "optuna-integration",
"specs": [
[
"~=",
"3.6"
]
]
},
{
"name": "pandas",
"specs": [
[
"~=",
"2.2.0"
]
]
},
{
"name": "plotly",
"specs": [
[
"~=",
"5.18"
]
]
},
{
"name": "pvlib",
"specs": [
[
"==",
"0.10.5"
]
]
},
{
"name": "pydantic",
"specs": [
[
"~=",
"2.4"
]
]
},
{
"name": "pydantic-settings",
"specs": [
[
"~=",
"2.3"
]
]
},
{
"name": "pymsteams",
"specs": [
[
"~=",
"0.2.2"
]
]
},
{
"name": "scikit-learn",
"specs": [
[
">=",
"1.3"
],
[
"<",
"1.6"
]
]
},
{
"name": "scipy",
"specs": [
[
"~=",
"1.10"
]
]
},
{
"name": "statsmodels",
"specs": [
[
"<",
"1.0.0"
],
[
">=",
"0.13.5"
]
]
},
{
"name": "structlog",
"specs": [
[
"<",
"25"
],
[
">=",
"23.1"
]
]
},
{
"name": "xgboost",
"specs": [
[
"~=",
"2.0"
]
]
}
],
"lcname": "openstef"
}