openstef

Automated Machine Learning pipelines. Builds the Open Short Term Energy Forecasting package.

https://github.com/openstef/openstef

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    3 of 41 committers (7.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.6%) to scientific vocabulary

Keywords

data-science energy energy-forecasting forecasting machine-learning python time-series

Keywords from Contributors

interactive spacy-extension optical standards distribution parallel interpretability profiles sequences generic
Last synced: 6 months ago · JSON representation ·

Repository

Automated Machine Learning pipelines. Builds the Open Short Term Energy Forecasting package.

Basic Info
Statistics
  • Stars: 114
  • Watchers: 6
  • Forks: 37
  • Open Issues: 31
  • Releases: 272
Topics
data-science energy energy-forecasting forecasting machine-learning python time-series
Created about 5 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

OpenSTEF

Downloads Downloads CII Best Practices

Bugs Code Smells Coverage Duplicated Lines (%) Maintainability Rating Reliability Rating Security Rating Technical Debt Vulnerabilities

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

External information sources

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 or this Github issue.

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)
  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

  1. Uninstall xgboost with pip (pip uninstall xgboost) and install with conda-forge (conda install -c conda-forge xgboost)
  2. 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')

Remark regarding installation with minimal XGBoost dependency

It is possible to install openSTEF with a minimal XGBoost (CPU-only) package. This only works on x86_64 (amd64) Linux and Windows platforms. Advantage is that significantly smaller dependencies are installed. In that case run:

shell pip install openstef[cpu]

Usage

Example notebooks

To help you get started, a set of fundamental example notebooks has been created. You can access these offline examples here.

Reference Implementation

A complete implementation including databases, user interface, example data, etc. is available at: https://github.com/OpenSTEF/openstef-reference

screenshot Screenshot of the operational dashboard showing the key functionality of OpenSTEF. Dashboard documentation can be found here.

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.

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 CODEOFCONDUCT.md, CONTRIBUTING.md and PROJECT_GOVERNANCE.md for details on the process for submitting pull requests to us.

Contact

Please read SUPPORT.md for how to connect and get into contact with the OpenSTEF project

Owner

  • Name: OpenSTEF
  • Login: OpenSTEF
  • Kind: organization

Open Short Term Energy Forecaster project

Citation (CITATION.cff)

# SPDX-FileCopyrightText: 2017-2025 Contributors to the OpenSTEF project <korte.termijn.prognoses@alliander.com>
#
# SPDX-License-Identifier: MPL-2.0

cff-version: 1.2.0
message: "If you are using OpenSTEF in your research work, please consider citing our library as below."

title: "OpenSTEF/openstef"
url: "https://github.com/OpenSTEF/openstef"
doi: "10.5281/zenodo.15316405"
license: "MPL-2.0"
authors:
  - family-names: "Kreuwel"
    given-names: "Frank"
    email: "Frank.Kreuwel@Alliander.com"
    affiliation: "Alliander"
  - family-names: "Es"
    name-particle: "van"
    given-names: "Daan"
    email: "Daan.van.Es@Alliander.com"
    affiliation: "Alliander"
  - family-names: "Doorn"
    name-particle: "van"
    given-names: "Jan Maarten"
    email: "JanMaarten.vanDoorn@Sigholm.se"
    affiliation: "Sigholm"  
  - family-names: "Pleiter"
    given-names: "Bart"
    email: "Bart.Pleiter@Alliander.com"
    affiliation: "Alliander"
  - family-names: "Stoel"
    given-names: "Willem Frederik"
    email: "wfstoel@outlook.com"
  - family-names: "Bogaard"
    name-particle: "van den"
    given-names: "Jonas"
    email: "Jonas.van.den.Bogaard@Alliander.com"
    affiliation: "Alliander"
  - family-names: "Fortin"
    given-names: "Maxime"
    email: "maxime.fortin@rte-france.com"
    affiliation: "RTE"
  - family-names: "Smet"
    name-particle: "de"
    given-names: "Clara"
    email: "Clara.de.Smet@Alliander.com"
    affiliation: "Alliander"
  - family-names: "Dmitriev"
    given-names: "Egor"
    email: "Egor.Dmitriev@Alliander.com"
    affiliation: "Alliander"
  - family-names: "Schilders"
    given-names: "Lars"
    email: "Lars.Schilders@Alliander.com"
    affiliation: "Alliander"
  - family-names: "Harmsen"
    given-names: "A. W."
    email: "Bram.Harmsen@Alliander.com"
    affiliation: "Alliander"
  - name: "Contributors to the OpenSTEF project"
contact:
  - name: "Team mailbox OpenSTEF"
    email: "short.term.energy.forecasts@alliander.com"

GitHub Events

Total
  • Create event: 83
  • Issues event: 15
  • Release event: 32
  • Watch event: 18
  • Delete event: 54
  • Issue comment event: 27
  • Member event: 4
  • Push event: 341
  • Pull request review comment event: 189
  • Pull request review event: 185
  • Pull request event: 110
  • Fork event: 5
Last Year
  • Create event: 83
  • Issues event: 15
  • Release event: 32
  • Watch event: 18
  • Delete event: 54
  • Issue comment event: 27
  • Member event: 4
  • Push event: 341
  • Pull request review comment event: 189
  • Pull request review event: 185
  • Pull request event: 110
  • Fork event: 5

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 2,334
  • Total Committers: 41
  • Avg Commits per committer: 56.927
  • Development Distribution Score (DDS): 0.835
Past Year
  • Commits: 115
  • Committers: 18
  • Avg Commits per committer: 6.389
  • Development Distribution Score (DDS): 0.626
Top Committers
Name Email Commits
black a****n@g****m 385
Jan Maarten van Doorn 5****n 375
Frank Kreuwel f****l@a****m 265
Frank Kreuwel f****l@g****m 227
Bram Harmsen b****n@a****m 224
Enrico Schmitz 2****z 191
David Swinkels d****s@a****m 131
Charlotte Cambier van Nooten c****n@a****m 88
bhardier b****r@p****m 86
Alexis Mignon a****n@p****m 52
Martijn Cazemier m****r@a****m 34
Frederik Stoel 6****l 31
Maria Manoli m****m@g****m 27
gfsdekoning g****g@g****m 25
David Swinkels D****s 21
Jonita Ruiter 1****r 21
Egor Dmitriev e****2@g****m 19
Jonas van den Bogaard j****o@g****m 18
Lars Schilders 1****s 16
Bart Pleiter b****r@a****m 15
Clara De Smet 1****t 13
Augustin Touron a****n@r****m 13
dependabot[bot] 4****] 12
Denise d****k@a****m 12
thomasnijsen 6****n 6
ylvab 4****b 3
OpenSTEF github account 1****F 3
Martino Mensio m****o@o****t 3
Florian Oppermann f****n@e****e 3
Majid Khoshrou m****u@a****m 3
and 11 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 117
  • Total pull requests: 639
  • Average time to close issues: 6 months
  • Average time to close pull requests: 9 days
  • Total issue authors: 24
  • Total pull request authors: 36
  • Average comments per issue: 0.8
  • Average comments per pull request: 0.88
  • Merged pull requests: 534
  • Bot issues: 0
  • Bot pull requests: 22
Past Year
  • Issues: 15
  • Pull requests: 150
  • Average time to close issues: 20 days
  • Average time to close pull requests: 4 days
  • Issue authors: 5
  • Pull request authors: 13
  • Average comments per issue: 0.13
  • Average comments per pull request: 0.4
  • Merged pull requests: 115
  • Bot issues: 0
  • Bot pull requests: 8
Top Authors
Issue Authors
  • FrankKr (22)
  • BenoitHardier (18)
  • JanMaartenvanDoorn (18)
  • AlexisMignon (17)
  • bremme (10)
  • egordm (9)
  • Sander3003 (3)
  • maxi-fort (2)
  • bartpleiter (2)
  • charlottecvn (2)
  • Ale0x78 (1)
  • whoisroop (1)
  • Jonasvdbo (1)
  • majidkhoshrou (1)
  • Davidswinkels (1)
Pull Request Authors
  • FrankKr (141)
  • JanMaartenvanDoorn (83)
  • egordm (53)
  • Davidswinkels (42)
  • lschilders (35)
  • clara-de-smet (28)
  • EnricoASchmitz (28)
  • bartpleiter (24)
  • dependabot[bot] (22)
  • wfstoel (20)
  • bremme (18)
  • JonitaRuiter (16)
  • BenoitHardier (13)
  • ThomasNijsen (12)
  • AlexisMignon (11)
Top Labels
Issue Labels
feature (21) ready-to-implement (17) good first issue (14) OpenSTEF 4.0 (11) fix (10) chore (10) sklearn (10) feature engineering (4) localization (3) help wanted (2) dependencies (1)
Pull Request Labels
fix (113) feature (110) chore (80) dependencies (22) OpenSTEF 4.0 (13) python (3)

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 1,697 last-month
  • Total docker downloads: 13
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 3
    (may contain duplicates)
  • Total versions: 644
  • Total maintainers: 1
proxy.golang.org: github.com/OpenSTEF/openstef
  • Versions: 231
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
proxy.golang.org: github.com/openstef/openstef
  • Versions: 231
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
pypi.org: openstef

Open short term energy forecaster

  • Versions: 182
  • Dependent Packages: 1
  • Dependent Repositories: 3
  • Downloads: 1,697 Last month
  • Docker Downloads: 13
Rankings
Dependent packages count: 3.2%
Average: 7.7%
Downloads: 8.1%
Stargazers count: 8.5%
Dependent repos count: 9.1%
Forks count: 9.4%
Maintainers (1)
ktp
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • cufflinks *
  • holidays *
  • lightgbm *
  • matplotlib *
  • mlflow *
  • networkx *
  • numpy *
  • optuna *
  • pandas *
  • plotly *
  • protobuf ==3.20.1
  • pydantic *
  • pymsteams *
  • pytz *
  • scikit-learn *
  • scipy *
  • structlog *
  • xgboost *
.github/workflows/black-format-code.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/docs-check.yaml actions
  • actions/checkout v2 composite
  • ammaraskar/sphinx-action master composite
.github/workflows/docs-publish.yaml actions
  • actions/checkout master composite
  • actions/setup-python v2 composite
  • actions/setup-python v4 composite
  • ad-m/github-push-action master composite
  • sphinx-notes/pages v2 composite
.github/workflows/pr-labeler.yaml actions
  • TimonVS/pr-labeler-action v3 composite
.github/workflows/python-build.yaml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • sonarsource/sonarcloud-github-action master composite
.github/workflows/python-upload-package.yaml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/release.yaml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/reuse-compliance.yaml actions
  • actions/checkout v2 composite
  • fsfe/reuse-action v1 composite
docs/doc-requirements.txt pypi
  • docformatter ==1.5.0
  • jinja2 ==3.0.0
  • mkdocs ==1.2.3
  • pydata-sphinx-theme ==0.12.0
  • pydocstyle ==6.1.1
  • sphinx_autodoc_typehints ==1.19.4
  • toml ==0.10.2
test-requirements.txt pypi
  • autoflake ==1.7.5 test
  • bandit ==1.7.4 test
  • black ==22.10.0 test
  • docformatter ==1.5.0 test
  • isort ==5.10.1 test
  • pylint ==2.15.4 test
  • pytest ==7.1.3 test
  • pytest-asyncio ==0.19.0 test
  • pytest-cov ==4.0.0 test
  • scons ==4.4.0 test
pyproject.toml pypi
setup.py pypi
test/unit/trained_models/mlruns/893156335105023143/2ca1d126e8724852b303b256e64a6c4f/artifacts/model/requirements.txt pypi
  • cloudpickle ==2.2.1 test
  • mlflow <3,>=2.3 test
  • numpy ==1.23.5 test
  • pandas ==2.0.1 test
  • psutil ==5.9.5 test
  • scikit-learn ==1.2.2 test
  • scipy ==1.10.1 test
  • xgboost ==1.7.5 test