CapacityExpansion.jl
Future energy system planning (Generation and Transmission Capacity Expansion Planning) in Julia.
https://github.com/YoungFaithful/CapacityExpansion.jl
Category: Energy Systems
Sub Category: Energy System Modeling Frameworks
Keywords
california capacity-expansion-planning clustering energy energy-optimization-model germany julia jump
Keywords from Contributors
energy-systems hierarchical-clustering k-means-clustering k-medoids-clustering representative-days time-series-aggregation
Last synced: about 14 hours ago
JSON representation
Repository metadata
Capacity Expansion Problem Formulation for Julia
- Host: GitHub
- URL: https://github.com/YoungFaithful/CapacityExpansion.jl
- Owner: YoungFaithful
- License: mit
- Created: 2019-03-28T21:02:36.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-04-27T07:58:56.000Z (almost 4 years ago)
- Last Synced: 2025-04-22T07:20:27.837Z (5 days ago)
- Topics: california, capacity-expansion-planning, clustering, energy, energy-optimization-model, germany, julia, jump
- Language: Julia
- Homepage: https://youngfaithful.github.io/CapacityExpansion.jl/stable
- Size: 183 MB
- Stars: 25
- Watchers: 4
- Forks: 5
- Open Issues: 6
- Releases: 9
-
Metadata Files:
- Readme: README.md
- Changelog: NEWS.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Zenodo: .zenodo.json
README.md
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.
Please refer to the documentation for details on how to use this software.
Model Information | |
---|---|
Model class | Capacity Expansion Problem |
Model type | Optimization, Linear optimization model input-data depending energy system |
Carriers | Electricity, Hydrogen,... |
Technologies | dispatchable and non-dispatchable Generation, Conversion, Storage (seasonal), Transmission |
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.
Elias Kuepper @YoungFaithful and Holger Teichgraeber @holgerteichgraeber developed this package.
Installation
This package runs under julia v1.0 and higher.
It depends on multiple packages, which are also listed in the Project.toml
. The julia package manager automatically installs the packages:
JuMP.jl
- for the modeling environmentCSV.jl
- for handling of.csv
-FilesDataFrames.jl
- for handling of tablesStatsBase.jl
- for handling of basicJLD2
- for saving your result dataFileIO
- for file accessingTimeSeriesClustering.jl
- for time-series data
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")
Example Workflow
using CapacityExpansion
using Clp
optimizer=Clp.Optimizer # select optimizer
## LOAD DATA ##
# laod ts-data
ts_input_data = load_timeseries_data_provided("GER_1"; T=24, years=[2016])
# load cep-data
cep_data = load_cep_data_provided("GER_1")
## OPTIMIZATION ##
# run a simple
run_opt(ts_input_data,cep_data,optimizer)
Testing
The model is being tested against a capacity expansion model presented in the paper On representation of temporal variability in electricity capacity planning models
by Merrick 2016. The model additionally tests itself against previously calculated data to detect new errors.
Links
- Documentation of the stable version
- Documentation of the development version
- Contributing guidelines
- CapacityExpansion: A capacity expansion modeling framework in Julia
Citing CapacityExpansion
If you find CapacityExpansion usefuel in your work, we kindly request that you cite the following paper
@article{Kuepper2020,
doi = {10.21105/joss.02034},
url = {https://doi.org/10.21105/joss.02034},
year = {2020},
publisher = {The Open Journal},
volume = {5},
number = {52},
pages = {2034},
author = {Lucas Elias Kuepper and Holger Teichgraeber and Adam R. Brandt},
title = {CapacityExpansion: A capacity expansion modeling framework in Julia},
journal = {Journal of Open Source Software}
}
Owner metadata
- Name:
- Login: YoungFaithful
- Email:
- Kind: user
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/10561245?u=eb8cb65795a72ec3696e5563b697d9de8df1c60e&v=4
- Repositories: 2
- Last ynced at: 2024-06-11T15:43:25.059Z
- Profile URL: https://github.com/YoungFaithful
GitHub Events
Total
- Watch event: 1
- Fork event: 1
Last Year
- Watch event: 1
- Fork event: 1
Committers metadata
Last synced: 5 days ago
Total Commits: 435
Total Committers: 7
Avg Commits per committer: 62.143
Development Distribution Score (DDS): 0.545
Commits in past year: 0
Committers in past year: 0
Avg Commits per committer in past year: 0.0
Development Distribution Score (DDS) in past year: 0.0
Name | Commits | |
---|---|---|
elias.kuepper | e****r@r****e | 198 |
holgerteichgraeber | h****r@t****e | 195 |
Holger Teichgraeber | h****h@c****u | 20 |
Holger Teichgraeber | H****r | 14 |
Ali Ramadhan | a****n@g****m | 4 |
Holger Teichgraeber | h****h@c****u | 3 |
YoungFaithful | e****r@k****t | 1 |
Committer domains:
- kerith.net: 1
- cees-tool-8.stanford.edu: 1
- cees-mazama.stanford.edu: 1
- teichgr.de: 1
- rwth-aachen.de: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 20
Total pull requests: 46
Average time to close issues: about 2 months
Average time to close pull requests: 8 days
Total issue authors: 4
Total pull request authors: 4
Average comments per issue: 2.6
Average comments per pull request: 1.15
Merged pull request: 41
Bot issues: 0
Bot pull requests: 0
Past year issues: 0
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 0
Past year average comments per issue: 0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- holgerteichgraeber (10)
- YoungFaithful (5)
- ali-ramadhan (4)
- GillLenon (1)
Top Pull Request Authors
- YoungFaithful (28)
- holgerteichgraeber (11)
- ali-ramadhan (6)
- JuliaTagBot (1)
Top Issue Labels
- enhancement (4)
- bug (3)
- question (1)
Top Pull Request Labels
- enhancement (4)
- bug (3)
Package metadata
- Total packages: 1
- Total downloads: unknown
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 8
juliahub.com: CapacityExpansion
Capacity Expansion Problem Formulation for Julia
- Homepage: https://youngfaithful.github.io/CapacityExpansion.jl/stable
- Documentation: https://docs.juliahub.com/General/CapacityExpansion/stable/
- Licenses: MIT
- Latest release: 0.2.2 (published over 4 years ago)
- Last Synced: 2025-04-25T12:01:30.976Z (1 day ago)
- Versions: 8
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent repos count: 9.94%
- Stargazers count: 23.441%
- Average: 25.099%
- Forks count: 28.099%
- Dependent packages count: 38.915%
Score: -Infinity