Endemo is a Python-based energy demand forecasting model. It uses historical data and various regression methods (linear, quadratic, and custom quadratic with offset) to estimate future energy demand across multiple sectors (households, industry, transport, etc.). By breaking down the estimation into distinct sectors and subsectors, Endemo aims to produce more accurate forecasts of overall useful energy demand.
This repository is a ground-up rework of the original model endemo. It has been incorporated in the main repository here.
- Sector-Specific Modeling: Each sector and subsector (e.g., steel production, household heating, transport types) is estimated separately for higher accuracy.
- Data-Driven Forecasts: Uses historical input data from Excel files and applies regression techniques to project future trends.
- Flexible Regression Approaches: Supports linear, standard quadratic, and custom quadratic-with-offset regressions.
- Configurable Outputs: Produces forecasts stored in Excel format. Plots and visualizations of input data and resulting forecasts can be optionally generated.
- Structured Results: Outputs are typically organized by sector, subsector, and estimation type (population, GDP, product output, heating demand, etc.).
The model’s workflow involves reading input data, preprocessing and filtering instances, applying regression-based estimations, and consolidating the results. The included images illustrate how data, filters, and parameters flow through the model’s layers.
- Input & Settings: Load input Excel files and configuration parameters.
- Preprocessing: Process and group data. Extract coefficients and define country groups.
- Instance Filters & Model Setup: Apply sector, country, and product filters, then run the model scenarios.
- Forecasting & Output: Run regression estimates, produce forecast data, and (optionally) generate plots.
Detailed documentation of the source code is located in docs/_build/html/index.html
. Open this file in a web browser for full API references and usage guidelines.
For frequent use, consider bookmarking the documentation page.
Recommended: Use Anaconda or Mamba for managing the Python environment.
Python Version: 3.10 recommended.
- Install Anaconda or Mamba (64-bit preferred).
- Download the
endemo-env.yml
environment file from this repository. - Open a new terminal and run:
conda env create -f endemo-env.yml conda activate endemo
- If needed, initialize conda:
conda init
If not using Anaconda/Mamba, install packages listed in endemo-env.yml
manually. Ensure compatibility with Python 3.10 if possible.
- Navigate to the directory where you cloned or downloaded Endemo.
- Run:
python main.py
- The results, including output Excel files (and optionally generated plots), will be stored in the
output
directory.
For developers, we recommend using Git with SSH keys for secure access.
Git Installation instructions and SSH key setup are available on the official GitHub documentation.
For pull requests, please ensure code quality, include tests where applicable, and update documentation as needed.
This revised README gives a clearer, more direct overview of the project's purpose, features, installation steps, usage instructions, and structure. It also highlights the input/output formats and how to access documentation for further details.