plan4res is an electricity system optimisation and simulation tool composed of three integrated models:
- CEM – Capacity Expansion Model: optimizes new generation, storage, and interconnection investments to meet demand while minimizing total system costs.
- SSV – Seasonal Storage Valuation Model: computes “water values” to optimize the use of seasonal storage during high-demand periods.
- SIM – Simulation Model: performs hourly system dispatch and unit commitment across a full year.
The plan4res ecosystem includes:
- 🔧
p4r-env: execution environment developed by CRAY & HPE (GitLab) - 📦 Core models built using the
SMS++library by the University of Pisa (GitLab) - 🛠️ Python tools for data treatment and visualization (plan4res-scripts)
- 🔁 Workflow management scripts (include)
You can access all documentation and tutorials for installing and using plan4res:
-
📄 User Manual (PDF)
Includes:- Installation for Linux and Windows
- Module descriptions and workflows
- Input/output structure and file format
- Tutorials on running modules and interpreting outputs
-
📊 Introduction to plan4res
Overview of mathematical models and implementation -
🛠️ Installation Slide Guide
Walk-through of the installation steps -
🧪 How to Run plan4res
Practical guide to executing models
- Recommended system: Linux (or Windows Subsystem for Linux)
- Disk space required: min. 3 GB
-
Clone the install repo:
git clone https://github.com/plan4res/install cd install ./plan4res_install.shUse
./plan4res_install.sh -Hfor help and options. -
If using a server or external repo, configure your user:
./user_init_plan4res -D P4R_INSTALL_DIR
Use
./user_init_plan4res.sh -Hfor more info.
You can use the toyDataset as an example.
-
Create dataset from IAMC inputs and time series:
p4r CREATE toyDataset
-
Format NetCDF data for SSV (required by SMS++) out of plan4res csv data for each module - Seasonal Storage Valuation (SSV), simulation (SIM) and capacity expansion (CEM):
p4r FORMAT toyDataset -M optim # for SSV p4r FORMAT toyDataset -M simul # for SIM p4r FORMAT toyDataset -M invest # for CEM
-
Run individual modules:
p4r SSV toyDataset # Seasonal storage p4r SIM toyDataset # Simulation p4r CEM toyDataset # Capacity expansion
-
Run full workflow:
p4r SSVandSIM # Combined SSV + SIM p4r SSVandCEM # Combined SSV + CEM
The following linkage scripts are available:
- LinkageGENeSYS.py converts GENeSYS-MOD inputs and outputs related to the power system into an IAMC format excel file
- CreateInputPlan4res.py creates plan4res input data out of an IAMC format excel file
- PostTreatPlan4res.py creates an IAMC excel file out of plan4res results
Linkage scripts are available in plan4res github
They can be used through the plan4res tools:
p4r LINKGENESYS toyDataset
p4r CREATE toyDataset
p4r POSTTREAT toyDataset Check our Questions & Answers page for common issues and guidance.
For support and inquiries, please use the plan4res contact form.
References:
Official repo: https://github.com/plan4res