A Snakemake workflow to generate country-level electricity supply datasets.
Project description
⚡️ supplyforge
supplyforge is a Python package that implements a reproducible Snakemake workflow to generate country-level
datasets describing the electricity supply side for power system analysis and planning.
It is the companion package to demandforge, which focuses on demand projection.
🌍 Overview
The goal of supplyforge is to build a consistent and transparent data foundation describing the generation infrastructure and resources of European electricity systems.
The workflow integrates data obtained primarily from ENTSO-E (the European Network of Transmission System Operators for Electricity), including:
- 🏭 Installed capacity by technology (nuclear, gas, hydro, wind, solar, etc.)
- ⚙️ Availability profiles by technology and country
- 💧 Hydro inflows and reservoir information
- 🌦️ Renewable resource time series (when available)
- 📊 Aggregated country-level summaries ready for power system modeling tools
🧩 Features
- Automated data retrieval from ENTSO-E public APIs and datasets
- Harmonized technology classification across countries
- Computation of availability and inflow time series for each technology
- Generation of validated, ready-to-use datasets for scenario analysis and planning models
- Full traceability and reproducibility via Snakemake
🔗 Relation to demandforge
| Package | Focus | Description |
|---|---|---|
| demandforge | Demand | Creates projected electricity load curves for future scenarios |
| supplyforge | Supply | Builds datasets describing generation capacity, availability, and inflows |
Together, these tools provide a complete data pipeline for future electricity system modeling at the national scale.
⚙️ Workflow
supplyforge uses a modular Snakemake workflow with well-defined stages:
- Download — fetch data from ENTSO-E and other sources
- Preprocess — clean and align generation technology data
- Compute — derive availability, inflow, and capacity time series
- Aggregate — generate standardized outputs for modeling tools
Each rule is designed for transparency, reproducibility, and easy extension to new datasets.
🧱 Outputs
Typical outputs include:
| Output file | Description |
|---|---|
installed_capacity.csv |
Installed capacity by country and technology |
availability_profiles.parquet |
Hourly availability by technology |
hydro_inflows.parquet |
Hourly inflow series for hydro reservoirs |
metadata.yaml |
Documentation of data sources and processing steps |
📦 Installation
pip install supplyforge
or from source:
git clone https://git.persee.minesparis.psl.eu/energy-alternatives/supplyforge.git
cd supplyforge
pip install -e .
🚀 Usage
You can run the Snakemake workflow with:
snakemake --cores all
This will download raw data, process it, and generate the final datasets under the output/ directory.
📚 Data Sources
- ENTSO-E Transparency Platform — generation, availability, and inflows
- ENTSO-E Statistical Factsheets — installed capacities
- Optional integration with renewable resource datasets for solar/wind availability
All datasets are open or publicly accessible, and sources are documented in the workflow metadata.
🧑💻 Contributing
Contributions are welcome!
You can:
- Add support for additional data sources or countries
- Improve technology mappings or validation checks
- Extend workflow outputs for specific modeling frameworks
📄 License
Licensed under the MIT License.
✉️ Contact
For questions, suggestions, or collaboration opportunities, please contact:
[Your Name] – [your.email@domain]
or open an issue on the Gitlab repository.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file supplyforge-0.1.1-py3-none-any.whl.
File metadata
- Download URL: supplyforge-0.1.1-py3-none-any.whl
- Upload date:
- Size: 15.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9e9b57d51f238db991975b06238d475adb63d97fc08d4458946b7aee757c34b
|
|
| MD5 |
144262955ad2404233c9c0014ec966ef
|
|
| BLAKE2b-256 |
04a9080e32b1016804b074e7f1d0b61e9240f5ec904dafa5ffd3723ee5ce36c9
|