Skip to content

Commit 014ea0f

Browse files
Merge pull request #100 from arbrandt/patch-1
Updates for Adam's edits Jul 3rd 2019
2 parents 0571b9d + f3bb359 commit 014ea0f

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

paper/paper.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ authors:
1414
orcid:
1515
affiliation: 1
1616
- name: Adam R. Brandt
17-
orcid:
17+
orcid: 0000-0002-2528-1473
1818
affiliation: 1
1919
affiliations:
2020
- name: Department of Energy Resources Engineering, Stanford University
@@ -25,22 +25,22 @@ bibliography: paper.bib
2525

2626
# Summary
2727

28-
``ClustForOpt`` is an extensible framework for time-series aggregation in julia. It provides a type system for temporal data that can easily be integrated with the formulation of optimization problems, and provides an implementation of the most commonly used clustering methods and extreme value selection methods for temporal data. It provides simple integration of multiple attributes (e.g. wind availability, solar availability, and electricity demand) in a single aggregation process.
28+
``ClustForOpt`` is an extensible framework for time-series aggregation in julia. It is designed specifically to perform time series aggregation for energy systems optimization problems, though could be adapated to be used with arbitrary time series datasets. ``ClustForOpt`` provides a type system for temporal data that can easily be integrated with the formulation of optimization problems, and provides an implementation of the most commonly used clustering methods and extreme value selection methods for temporal data. ``ClustForOpt`` provides simple integration of multiple attributes (e.g. wind availability, solar availability, and electricity demand) in a single aggregation process.
2929

30-
Its unique design allows for scientific comparison of the performance of different time-series aggregation methods, both in terms of the statistical error measure and in terms of optimization outcome.
30+
The unique design of ``ClustForOpt`` allows for scientific comparison of the performance of different time-series aggregation methods, both in terms of the statistical error measure and in terms of optimization outcome.
3131
The choice of temporal modeling, especially of time-series aggregation methods, can have significant impact on overall optimization outcome, which in the end is used to make policy and business decisions. It is thus important to not view time-series aggregation and optimization model formulation as two seperate, consecutive steps, but to integrate time-series aggregation into the overall process of building an optimization model in an iterative manner. ``ClustForOpt`` allows for this iterative integration in a simple way.
3232

3333
``ClustForOpt`` provides two sample optimization problems to illustrate the integration of time-series aggregation and optimization problem formulation through our type system.
3434
However, it is generally thought to be independent of the application at hand, and others are encouraged to use the package as a base for their own optimization problem formulation.
35-
The julia package [``CapacityExpansion``](https://github.com/YoungFaithful/CapacityExpansion.jl) provides a detailed generation and transmission capacity expansion model built upon ``ClustForOpt``, and illustrates its capabilities in conjunction with a complex optimization problem formulation.
35+
The Julia package [``CapacityExpansion``](https://github.com/YoungFaithful/CapacityExpansion.jl) provides a detailed generation and transmission capacity expansion model built upon ``ClustForOpt``, and illustrates its capabilities in conjunction with a complex optimization problem formulation.
3636

3737
The clustering methods that are implemented in ``ClustForOpt`` follow the framework presented by @Teichgraeber:2019, and the extreme value selection methods follow the framework presented by @Lindenmeyer:2019. Using these frameworks allows ``ClustForOpt`` to be generally extensible to new aggregation methods in the future.
3838

3939
To the best of our knowledge, time-series aggregation has been included in two open-source packages to date, both in written in python.
4040
@TSAM provides an implementation of several time-series aggregation methods in python.
4141
Calliope [@Pfenninger:2018] is a capacity expansion modeling software in python that includes time-series aggregation for the use case of generation and transmission capacity expansion modeling.
4242

43-
ClustForOpt is the first package to provide time-series aggregation in julia. This is advantageous because it can be used in conjunction with the JuMP [@Dunning:2017] package in julia, which provides an excellent modeling language for optimization problems. Furthermore, ClustForOpt includes both clustering and extreme value selection and integrates them into the same output type. This is important in order to retain the characteristics of the time-series that are relevant to many optimization problems.
43+
``ClustForOpt`` is the first package to provide time-series aggregation in Julia. This is advantageous because it can be used in conjunction with the JuMP [@Dunning:2017] package in Julia, which provides an excellent modeling language for optimization problems. Furthermore, ClustForOpt includes both clustering and extreme value selection and integrates them into the same output type. This is important in order to retain the characteristics of the time-series that are relevant to many optimization problems.
4444

4545
At this point, we would like to point to the key features that ``ClustForOpt`` provides. Implementation details can be found in the software's documentation.
4646

@@ -56,7 +56,7 @@ At this point, we would like to point to the key features that ``ClustForOpt`` p
5656

5757
Generally, optimization is concerned with the maximization or minimization of a certain objective subject to a number of constraints. The range of optimization problems ``ClustForOpt`` is applicable to is broad.
5858
They generally fall into the class of design and operations problems, also called planning problems or two-stage optimization problems. In these problems, decisions on two time horizons have to be made: Long-term design decisions, as to what equipment to buy, and short-term operating decisions, as to when to operate that equipment. Because the two time horizons are intertwined, operating decisions impact the system design, and vice versa. Operating decisions are of temporal nature, and the amount of temporal input data for these optimization problems often makes them computationally intractable.
59-
Usually, time series of length N (e.g. hourly electricity demand for one year, where N=8760) are split into $\hat{K}$ periods of length $T=\frac{N}{\hat{K}}$ (e.g. $\hat{K}=365$ daily periods, with $T=24$), and each of the $\hat{K}$ periods is treated independently in the operations stage of the optimization problem. Using time-series aggregation methods, we can represent the data with $K < \hat{K}$ periods, which results in reduced computational complexity.
59+
Usually, time series of length N (e.g. hourly electricity demand for one year, where N=8760) are split into $\hat{K}$ periods of length $T=\frac{N}{\hat{K}}$ (e.g. $\hat{K}=365$ daily periods, with $T=24$), and each of the $\hat{K}$ periods is treated independently in the operations stage of the optimization problem. Using time-series aggregation methods, we can represent the data with $K < \hat{K}$ periods, which results in reduced computational complexity and improved modeling performance.
6060

6161
Many of the design and operations optimization problems that time-series aggregation has been applied to are in the general domain of energy systems optimization. These problems include generation and transmission capacity expansion problems [@Nahmmacher:2016; @Pfenninger:2017], local energy supply system design problems [@Bahl:2017; @Kotzur:2018], and individual technology design problems [@Brodrick:2017; @Teichgraeber:2017].
6262
Time series of interest in these problems include energy demands (electricity, heating, cooling), electricity prices, wind and solar availability factors, and temperatures.
@@ -69,6 +69,6 @@ Because it keeps track of the chronology of the periods, it can also be used to
6969
``ClustForOpt`` has been used in several research projects to date. It has been used to compare both conventionally-used clustering methods and shape-based clustering methods and their characteristics [@Teichgraeber:2019], and also to compare extreme value selection methods [@Lindenmeyer:2019].
7070
It has also been used to analyze temporal modeling detail in energy systems modeling with high renewable energy penetration [@Kuepper:2019].
7171
``ClustForOpt`` also serves as input to [``CapacityExpansion``](https://github.com/YoungFaithful/CapacityExpansion.jl), a scalable capacity expansion model in julia.
72-
Furthermore, ``ClustForOpt`` has been used as an educational tool. It is frequently used for class projects in Stanford's Optimization of Energy Systems class, and has also served as a basis for the capacity expansion studies evaluated in homeworks for Stanford's Advanced Methods in Modeling for Climate and Energy Policy class.
72+
Furthermore, ``ClustForOpt`` has been used as an educational tool. It is frequently used for class projects in the Stanford University course "Optimization of Energy Systems", and has also served as a basis for the capacity expansion studies evaluated in homeworks for Stanford University course "Advanced Methods in Modeling for Climate and Energy Policy".
7373

7474
# References

0 commit comments

Comments
 (0)