CapacityExpansion logo

Build Status

CapacityExpansion is a julia implementation of a input-data-scaling, multi-sector capacity expansion modeling framework.

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

  1. Providing a simple process to integrate (clustered) time-series input data, geographical input data, cost input data, and technology input data.
  2. Providing a model configuration, a modular model setup and model optimization.
  3. Providing an interface between the optimization result and further analysis.
Model Information
Model classCapacity Expansion Problem
Model typeOptimization, Linear optimization model input-data depending energy system
CarriersElectricity, Hydrogen, ...
Technologiesdispathable and non-dispathable Generation, Conversion, Storage (seasonal), Transmission
Decisionsinvestment and dispatch
ObjectiveTotal system cost
VariablesCost, Capacities, Generation, Storage, Lost-Load, Lost-Emissions
Input Data DependingProvided Input Data
RegionsCalifornia, USA (single and multi-node) and Germany, Europe (single and multi-node)
Geographic Resolutionaggregated regions
Time resolutionhourly
Network coveragetransmission, 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.


This package runs under julia v1.0 and higher. It depends on:

  • 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.jl - for saving your result data
  • FileIO.jl - for file accessing
  • TimeSeriesClustering.jl - for time-series data
using Pkg

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

using Pkg