enda is a Python package that provides tools to manipulate timeseries data in conjunction with contracts data for analysis and forecasting.
Initially, it has been developed to help Rescoop.eu members build various applications, such as short-term electricity load and production forecasts, specifically for the RescoopVPP project. Hence some tools in this package perform TSO (transmission network operator) and DNO (distribution network operator) data wrangling as well as weather data management. enda is mainly developed by Enercoop.
Here are some things enda does well:
- Provide robust machine learning algorithms for short-term electricity load and production forecasts. enda provides a convenient wrapper around the popular multipurpose machine-learning backends Scikit and H2O. The load forecast was originally based on Komi Nagbe's thesis (https://www.theses.fr/s148364).
- Manipulate timeseries data, such as load curves. enda handles timeseries-specific detection of missing data, like time gaps, frequency changes, extra values, as well as various resampling methods.
- Provide several backtesting and scoring methods to ensure the quality of the trained algorithm on almost real conditions.
- Manipulate contracts data coming from your ERP and turn it into timeseries you can use for analysis, visualisation and machine learning.
- Date-time feature engineering robust to timezone hazards.
The source code is currently hosted on GitHub at: https://github.com/enercoop/enda. If you wish to run the examples it contains, you can clone enda from the Github repository
Binary installers for the latest released version are available at the Python Package Index (PyPI) (for now it is not directly on Conda).
pip install enda
or using poetry:
poetry add enda
The complete API is available online here.
For a more comprehensive approach to enda, several Jupyter notebooks have been proposed in the [guides](https://github.com/enercoop/enda/tree/main/guides.).
Some dependencies are needed to run these examples, that you can easily install with poetry, running poetry install enda[examples]
- Pandas
- Scikit-learn
- H2O
- Numpy
- Statsmodels
- Libraries that are recommended by the previous packages: datatable, polars, numexpr, unidecode
- Libraries meant to get calendar data: jours-feries-france, vacances-scolaires-france
If you want to run the examples, you may need extra dependencies. These dependencies can be installed using poetry:
poetry install --with examples
or manually:
pip install numexpr bottleneck pandas enda jupyter h2o scikit-learn statsmodels joblib matplotlib
Accordingly, if you wish to develop into enda, we suggest some tools and linters that can be used.
poetry install --with dev