energyRt: Making Energy Systems modeling as simple as a linear regression in R
energyRt is a package for R to develop Reference Energy System (RES) models and analyze energy-technologies.
energyRt package provides tools to build RES (“Bottom-Up”), technological, linear cost-minimizing models, which can be solved using GAMS and GLPK. The RES model has similarities with TIMES/MARKAL, OSeMOSYS, but has its own specifics, f.i. definition of technologies.
energyRt package is a set of classes, methods, and functions in R which are designed to:
- handle data, assist in defining RES models,
- helps to analyze data, check for errors and bugs before parsing it into solver,
- parses your dataset to GAMS or GLPK and runs them to solve the model,
- reads the solution and imports results back to R,
- assists with an analysis of results and reporting.
- minimize time of development and application of RES/BottomUp models,
- boost learning curve in energy modeling,
- improve transparency and understanding of energy models,
- use power of open-source to improve energy models and their application,
- making reproducible research (see [Reproducible Research with R and R Studio] (https://github.com/christophergandrud/Rep-Res-Book) by @christophergandrud and/or [Dynamic Documents with R and knitr] (https://github.com/yihui/knitr-book) by @yihui) accessible in RES-modeling,
- integration with other models and software.
The project has the first beta release, which includes Utopia model examples, solvable with GAMS or GLPK. Main functions have been documented, the extended tutorial is in process. By now, the functionaligy of the package allows developing multi-region models with hierarhical time-slices, exogenous and endogenous trade routes, and flexible technologies. Several large-scale projects are on the way, including “CHN_ELC_PRO” (China Electric Power Sector province level) and “usensys” (US energy system model). A visualization of some scenarios is available here:
Authors and Contributors
The package is designed by Oleg Lugovoy (@olugovoy) and Vladimir Potashnikov (@vpotashnikov).