eplusr-docker: Dockerfiles for working with EnergyPlus and R
There are summarized two major components to successful reproducible research (Peng 2015) : (1) data, i.e. the availability of raw data from the experiment, and (2) code, i.e. the availability of the statistical code and documentation to reproduce the results. In the context of Building Energy Simulation (BES), these two component will be (1) the building energy models and (2) the code to perform simulations and following data-driven analytics. However, the complex and rapidly changing nature of computer environments makes it immensely challenging to reproduce the same workflow and results even with the original data and code are available.
eplusr-docker project aims to address this issue. It provides infrastructures to bring portable and reusable computational environments to facilitate reproducible BES applications. It based on the Docker containerization technology, which captures the full software stack, including all software dependencies in a portable and reusable image.
Docker (Merkel 2014) is a popular open-source tool
for containerization and has shown its potential to improve computational
reproducibility (Boettiger 2015; Nüst et al. 2020).
The Rocker Project was launched in 2014 as a
collaboration to provide high-quality Docker images containing the R
environment and has seen both considerable uptakes in the R community and
substantial development and evolution (Boettiger and Eddelbuettel 2017).
eplusr-docker is built upon the
It contains four groups of toolchains needed for common BES and data-driven
analytics workflows using the eplusr framework:
- Statistical computing environment, including the latest R environment and RStudio Server, a web-based integrated development environment for R programming
- BES engine, including EnergyPlus of specified version and the eplusr R package
- Data analytics toolkits, including a collection of tidyverse (Wickham et al. 2019) R packages for data import, tidying, manipulation, visualization and programming
- Literate programming environment, including R Markdown related packages for dynamic document generation
The source files of Docker configuration were written in several text files so-called Dockerfiles and are publicly available and hosted via GitHub. Further evolutions can be taken to make the computational environment tailored to different audiences and use purposes. The docker approach is suited for moving between local and cloud platforms when a web-based integrated development environment is available, such as RStudio Server (Boettiger 2015), providing the scalability potential for large cloud-based BES computation.
Boettiger, Carl. 2015. “An Introduction to Docker for Reproducible Research.” ACM SIGOPS Operating Systems Review 49 (1). https://doi.org/10.1145/2723872.2723882.
Boettiger, Carl, and Dirk Eddelbuettel. 2017. “An Introduction to Rocker: Docker Containers for R.” The R Journal 9 (2): 527–36. https://doi.org/10.32614/RJ-2017-065.
Merkel, Dirk. 2014. “Docker: Lightweight Linux Containers for Consistent Development and Deployment.” Linux Journal 2014 (239): 2:2. https://doi.org/10.5555/2600239.2600241.
Nüst, Daniel, Dirk Eddelbuettel, Dom Bennett, Robrecht Cannoodt, Dav Clark, Gergely Daroczi, Mark Edmondson, et al. 2020. “The Rockerverse: Packages and Applications for Containerization with R.” arXiv:2001.10641 [Cs], March. http://arxiv.org/abs/2001.10641.
Peng, Roger. 2015. “The Reproducibility Crisis in Science: A Statistical Counterattack.” Significance 12 (3): 30–32. https://doi.org/10.1111/j.1740-9713.2015.00827.x.
Wickham, Hadley, Mara Averick, Jennifer Bryan, Winston Chang, Lucy McGowan, Romain François, Garrett Grolemund, et al. 2019. “Welcome to the Tidyverse.” Journal of Open Source Software 4 (43): 1686. https://doi.org/10.21105/joss.01686.