An open-source capacity expansion model based on the methodology and datasets used by the Australian Energy Market Operator (AEMO) in their Integrated System Plan (ISP).
Project description
ISPyPSA
An open-source capacity expansion modelling tool based on the methodology and assumptions used by the Australian Energy Market Operator (AEMO) to produce their Integrated System Plan (ISP). Built on PyPSA.
This README is a quick reference. For detailed instructions, tutorials, and API documentation, see the full documentation:
- Getting Started - Installation and first model run
- Configuration Reference - All configuration options
- CLI Guide - Command line interface details
- API Reference - Python API for custom workflows
- Workflow Overview - How the modelling pipeline works
Installation
pip install ispypsa
Or with uv:
uv add ispypsa
Quick Start
- Download the example config and edit paths for your environment
- Run:
# Download ISP workbook and trace data
ispypsa config=ispypsa_config.yaml download_workbook
ispypsa config=ispypsa_config.yaml download_trace_data
# Run complete workflow (capacity expansion + operational model)
ispypsa config=ispypsa_config.yaml
CLI Reference
| Task | Description |
|---|---|
download_workbook |
Download IASR Excel workbook |
download_trace_data |
Download wind/solar/demand traces |
cache_required_iasr_workbook_tables |
Extract workbook data to CSV cache |
create_ispypsa_inputs |
Generate ISPyPSA input tables |
create_pypsa_friendly_inputs |
Convert to PyPSA format |
create_and_run_capacity_expansion_model |
Build and solve capacity expansion |
create_and_run_operational_model |
Build and solve operational model |
create_capacity_expansion_plots |
Generate result plots |
create_operational_plots |
Generate operational plots |
list |
Show available tasks |
Common Options
# Override config values on command line
ispypsa config=config.yaml create_plots=True create_and_run_capacity_expansion_model
# Skip optimisation (build network only)
ispypsa config=config.yaml run_optimisation=False create_and_run_capacity_expansion_model
# Force re-run even if up-to-date
ispypsa config=config.yaml -a create_ispypsa_inputs
Output Structure
<run_directory>/
└── <ispypsa_run_name>/
├── ispypsa_inputs/
│ ├── build_costs.csv
│ └── ...
├── pypsa_friendly/
│ ├── buses.csv
│ ├── ...
│ ├── capacity_expansion_timeseries/
│ │ ├── demand_traces/
│ │ │ ├── CNSW.parquet
│ │ │ └── ...
│ │ ├── solar_traces/
│ │ │ ├── Bomen Solar Farm.parquet
│ │ │ └── ...
│ │ └── wind_traces/
│ │ ├── Ararat Wind Farm.parquet
│ │ └── ...
│ └── operational_timeseries/
│ └── (same structure as capacity_expansion_timeseries)
└── outputs/
├── capacity_expansion.nc
├── capacity_expansion_results_viewer.html
├── capacity_expansion_tables
│ └── ...
├── capacity_expansion_plots
│ └── ...
├── operational.nc
├── operational_results_viewer.html
├── operational_tables
│ └── ...
└── operational_plots
└── ...
Related Projects
- isp-workbook-parser - Extract data from IASR workbooks
- isp-trace-parser - Process wind/solar/demand trace data
Contributing
Interested in contributing to the source code or adding table configurations? Check out the contributing instructions, which also includes steps to install ispypsa for development.
Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.
License
ispypsa was created as a part of the OpenISP project. It is licensed under the terms of GNU GPL-3.0-or-later licences.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 ispypsa-0.1.3b1.tar.gz.
File metadata
- Download URL: ispypsa-0.1.3b1.tar.gz
- Upload date:
- Size: 134.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdc238f8a539202ba1dce9919b6a2284eaa1417c4e2dfd04a97d5d3bdadf60f5
|
|
| MD5 |
99c21af326b54438b27f1f26eba24df1
|
|
| BLAKE2b-256 |
c102519d8dcf299fde128fed2e902363679e722d41836658893b3b2f99b17049
|
Provenance
The following attestation bundles were made for ispypsa-0.1.3b1.tar.gz:
Publisher:
cicd.yml on Open-ISP/ISPyPSA
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ispypsa-0.1.3b1.tar.gz -
Subject digest:
bdc238f8a539202ba1dce9919b6a2284eaa1417c4e2dfd04a97d5d3bdadf60f5 - Sigstore transparency entry: 994515660
- Sigstore integration time:
-
Permalink:
Open-ISP/ISPyPSA@0c44c888273c8f7ac471643db37708f531716a0d -
Branch / Tag:
refs/tags/v0.1.3beta1 - Owner: https://github.com/Open-ISP
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cicd.yml@0c44c888273c8f7ac471643db37708f531716a0d -
Trigger Event:
release
-
Statement type:
File details
Details for the file ispypsa-0.1.3b1-py3-none-any.whl.
File metadata
- Download URL: ispypsa-0.1.3b1-py3-none-any.whl
- Upload date:
- Size: 167.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07708ae7e59d8394a519d5dfbb9841fd01ca98931e20a694dfb049d5186ff047
|
|
| MD5 |
d5e712510faedb214da6b3e925221995
|
|
| BLAKE2b-256 |
45804c14d43f04d5d0dc99fdb238507c18eae4e4ea20a750dbec7d57a4ca88aa
|
Provenance
The following attestation bundles were made for ispypsa-0.1.3b1-py3-none-any.whl:
Publisher:
cicd.yml on Open-ISP/ISPyPSA
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ispypsa-0.1.3b1-py3-none-any.whl -
Subject digest:
07708ae7e59d8394a519d5dfbb9841fd01ca98931e20a694dfb049d5186ff047 - Sigstore transparency entry: 994515760
- Sigstore integration time:
-
Permalink:
Open-ISP/ISPyPSA@0c44c888273c8f7ac471643db37708f531716a0d -
Branch / Tag:
refs/tags/v0.1.3beta1 - Owner: https://github.com/Open-ISP
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cicd.yml@0c44c888273c8f7ac471643db37708f531716a0d -
Trigger Event:
release
-
Statement type: