CapacityExpansion

CapacityExpansion: A capacity expansion modeling framework in Julia - Published in JOSS (2020)

https://github.com/youngfaithful/capacityexpansion.jl

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 14 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
    3 of 7 committers (42.9%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

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: 6 months ago · JSON representation

Repository

Capacity Expansion Problem Formulation for Julia

Basic Info
Statistics
  • Stars: 25
  • Watchers: 4
  • Forks: 6
  • Open Issues: 6
  • Releases: 9
Topics
california capacity-expansion-planning clustering energy energy-optimization-model germany julia jump
Created almost 7 years ago · Last pushed almost 5 years ago
Metadata Files
Readme Changelog Contributing License Zenodo

README.md

CapacityExpansion logo

Build Status DOI DOI

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: 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.

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 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

Install CapacityExpansion using the package mode: julia ] add CapacityExpansion or using the Pkg.add function: julia 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: julia ] add Clp or using the Pkg.add function: julia using Pkg Pkg.add("Clp")

Example Workflow

```julia using CapacityExpansion using Clp optimizer=Clp.Optimizer # select optimizer

LOAD DATA

laod ts-data

tsinputdata = loadtimeseriesdataprovided("GER1"; T=24, years=[2016])

load cep-data

cepdata = loadcepdataprovided("GER_1")

OPTIMIZATION

run a simple

runopt(tsinputdata,cepdata,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

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

  • Login: YoungFaithful
  • Kind: user

JOSS Publication

CapacityExpansion: A capacity expansion modeling framework in Julia
Published
August 31, 2020
Volume 5, Issue 52, Page 2034
Authors
Lucas Elias Kuepper ORCID
Department of Energy Resources Engineering, Stanford University
Holger Teichgraeber ORCID
Department of Energy Resources Engineering, Stanford University
Adam R. Brandt ORCID
Department of Energy Resources Engineering, Stanford University
Editor
Kathryn Huff ORCID
Tags
energy optimization storage time series teaching

GitHub Events

Total
  • Watch event: 1
  • Fork event: 1
Last Year
  • Watch event: 1
  • Fork event: 1

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 435
  • Total Committers: 7
  • Avg Commits per committer: 62.143
  • Development Distribution Score (DDS): 0.545
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email 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 (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • 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 requests: 41
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • holgerteichgraeber (10)
  • YoungFaithful (5)
  • ali-ramadhan (4)
  • GillLenon (1)
Pull Request Authors
  • YoungFaithful (28)
  • holgerteichgraeber (11)
  • ali-ramadhan (6)
  • JuliaTagBot (1)
Top Labels
Issue Labels
enhancement (4) bug (3) question (1)
Pull Request Labels
enhancement (4) bug (3)

Packages

  • Total packages: 3
  • Total downloads: unknown
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 26
proxy.golang.org: github.com/YoungFaithful/CapacityExpansion.jl
  • Versions: 9
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
proxy.golang.org: github.com/youngfaithful/capacityexpansion.jl
  • Versions: 9
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
juliahub.com: CapacityExpansion

Capacity Expansion Problem Formulation for Julia

  • Versions: 8
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 9.9%
Stargazers count: 23.4%
Average: 25.1%
Forks count: 28.1%
Dependent packages count: 38.9%
Last synced: 6 months ago