This project analyses the relationship between extreme temperature events and electricity demand in France, and explores the implications for loss-of-load risk under constrained generation capacity.
Extreme cold and heat events can lead to very high electricity demand due to heating and cooling needs. Understanding how temperature extremes translate into peak electricity demand is essential for adequacy planning and for assessing the robustness of power systems under climate variability.
The objectives of this project are to:
- quantify the relationship between temperature and daily peak electricity demand,
- identify how extreme temperature events translate into extreme load events,
- build a clean and reproducible dataset suitable for loss-of-load risk analysis.
- Source: ENTSO-E Transparency Platform
- Variable: Actual Total Load
- Spatial scale: France (bidding zone FR, RTE)
- Temporal resolution: Hourly
- Period: 01/01/2015 – 31/12/2025 (depending on availability)
Due to platform constraints, the data are downloaded manually as yearly CSV files. Only the actual load is used; day-ahead forecasts are discarded.
Hourly load data are aggregated into daily maximum load, which is the relevant indicator for adequacy and loss-of-load analysis.
- Source: data.gouv.fr (French open data portal)
- Dataset: Daily regional temperatures
- Variable: Daily mean temperature (TMoy)
- Spatial scale: French administrative regions
- Temporal resolution: Daily
- Period: 01/01/2016 – 30/12/2025
A national daily mean temperature is computed as the average of regional daily mean temperatures.
Due to data availability, the joint analysis of load and temperature covers the period 2016–2025.
.
├── data/
│ ├── raw/
│ │ ├── GUI_TOTAL_LOAD_*.csv
│ │ └── temperature-quotidienne-regionale.csv
│ │
│ └── processed/
│ ├── load_france_hourly_2015_2025.csv
│ ├── daily_max_load_france.csv
│ ├── daily_temperature_france.csv
│ └── daily_load_temperature_france.csv
│
├── notebooks/
│ ├── 01_exploration.ipynb
│ ├── 02_temperature_load_model.ipynb
│ ├── 03_scenario_sensitivity_analysis.ipynb
│ └── temperature_load_model_hc.pkl
│
├── src/
│ ├── process_entsoe_load.py
│ ├── process_temperature_regional.py
│ └── merge_entsoe_load.py
│
├── requirements.txt
└── README.md
All scripts are written in Python and should be executed in the following order.
- Process electricity demand data
This script reads all ENTSO-E CSV files, extracts actual hourly load, handles CET/CEST timestamps, and computes daily maximum load.
python src/process_entsoe_load.pyOutputs:
data/processed/load_france_hourly_2015_2025.csvdata/processed/daily_max_load_france.csv
- Process temperature data
This script reads regional daily temperature data and computes the national daily mean temperature.
python src/process_temperature_regional.pyOutput:
data/processed/daily_temperature_france.csv
- Merge load and temperature datasets
This script merges daily maximum load and daily mean temperature and keeps only the common period (2016–2025).
python src/merge_entsoe_load.pyFinal dataset:
data/processed/daily_load_temperature_france.csv
This dataset is the core input for exploratory analysis, modelling and loss-of-load risk assessment.
01_exploration.ipynb: exploratory data analysis and visualisation.02_temperature_load_model.ipynb: modelling of the temperature–load relationship.03_scenario_sensitivity_analysis.ipynb: analysis of load depending on different temperature scenariostemperature_load_model_hc.pkl: serialized model object produced by the modelling notebook.