CapacityExpansion is a julia implementation of an input-data-scaling capacity expansion modeling framework.

The primary purpose of the package is providing an extensible, simple-to-use generation and transmission capacity expansion model that allows addressing a diverse set of research questions in the area of energy systems planning. The secondary purposes are:

- Providing a simple process to integrate (clustered) time-series input data, geographical input data, cost input data, and technology input data.
- Providing a model configuration, a modular model setup and model optimization.
- Providing an interface between the optimization result and further analysis.

Model Information | |
---|---|

Model class | Capacity Expansion Planning |

Model type | Optimization, Linear optimization model input-data depending energy system |

Carriers | Electricity, Hydrogen,... |

Technologies | dispatchable and non-dispatchable Generation, Conversion, Storage (seasonal), Transmission, Demand |

Decisions | investment and dispatch |

Objective | Total system cost |

Variables | Cost, Capacities, Generation, Storage, Lost-Load, Lost-Emissions |

Input Data Depending | Provided Input Data |
---|---|

Regions | California, USA (single and multi-node) and Germany, Europe (single and multi-node) |

Geographic Resolution | aggregated regions |

Time resolution | hourly |

Network coverage | transmission, DCOPF load flow |

The package uses TimeSeriesClustering as a basis for its time-series aggregation.

This package is developed by Elias Kuepper @YoungFaithful and Holger Teichgraeber @holgerteichgraeber.

## Installation

This package runs under julia v1.0 and higher. It depends on multiple packages, which are also listed in the `Project.toml`

. The packages are automatically installed by the julia package manager:

`JuMP.jl`

- for the modeling environment`CSV.jl`

- for handling of`.csv`

-Files`DataFrames.jl`

- for handling of tables`StatsBase.jl`

- for handling of basic`JLD2`

- for saving your result data`FileIO`

- for file accessing`TimeSeriesClustering.jl`

- for time-series data

You can install `CapacityExpansion`

using the package mode:

```
]
add CapacityExpansion
```

or using the `Pkg.add`

function:

```
using Pkg
Pkg.add("CapacityExpansion")
```

A solver is required to run an optimization, as explained in section Solver. Install, e.g. `Clp`

using the package mode:

```
]
add Clp
```

or using the `Pkg.add`

function:

```
using Pkg
Pkg.add("Clp")
```