-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathREADME.Rmd
More file actions
120 lines (77 loc) · 5.63 KB
/
Copy pathREADME.Rmd
File metadata and controls
120 lines (77 loc) · 5.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
---
output: github_document
---
<!-- README.md is generated from README.Rmd. Please edit that file -->
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```
# Timeseries Energy Benchmarking

<!-- badges: start -->
[](https://lifecycle.r-lib.org/articles/stages.html#experimental)
<!-- badges: end -->
This tool performs advanced energy benchmarking of buildings based on hourly electricity consumption time series. Its main purpose is to evaluate and compare the operational performance of a building against a reference group of peer buildings, selected from a larger population based on similar features of the electrical consumption.

## Input data
The input data are the followings:
- **Hourly electrical energy consumption timeseries**: The application accepts hourly electricity consumption data in CSV format.
- **Outside air temperature timeseries**: The application accepts outside air temperature data in CSV format.
- **End-use category** of the building: The application accept the end-use category of the building (e.g., Office, Educational, etc.) as a string.
- **Floor area** of the building: The application accepts the floor area of the building in square meters as a numeric value.
- [Optional] **State** : The application accepts the state of the building as a string. This is used to obtain the holiday calendar of the building.
If you don't have the data required, you can still inspect the application using the buildings given as examples. use the toogle  to select the usage mode.
## About the workflow
The benchmarking workflow includes the following key processes:
- **Preprocessing** of time series data: Raw electricity consumption data is cleaned through statistical outlier detection and seasonal-trend decomposition using MSTL (Multiple Seasonal-Trend decomposition with Loess). This ensures that the time series is free from inconsistencies and well-prepared for analysis.
- **Peer identification**: A critical step that involves extracting meaningful time series features from each building. These include thermal dependency of the electrical load, reference load conditions (e.g., weekdays vs weekends, seasonal groupings), load shape factors, and mean energy consumption. Based on these features, the tool identifies a set of peer buildings that exhibit similar load behaviors.
- **Key Performance Indicators (KPIs) calculation**: The application computes a series of KPIs to describe different aspects of energy performance:
- Energy Use Intensity
- Operational Schedule Efficiency: evaluate the consumption ratio among working hours, non-working hours and weekends.
- Load Volatility: evaluates the variability in daily load profiles.
- Anomaly Detection: Identification of atypical consumption patterns.
- Load Pattern Frequency: Analysis of the variety and recurrence of load shapes within a specific load condition.
- **Benchmarking**: Each KPI is benchmarked against the selected set of peers. For each load condition, a performance score for each KPI ranging from 0 to 100 is computed, where 100 indicates best-in-class performance. These scores provide building managers and energy analysts with a clear understanding of how a building performs in each area and where there are opportunities for improvement.

## Installation
### Local Installation
You can install the development version of TimeseriesEnergyBenchmarking from [GitHub](https://github.com/) like so:
``` r
# install.packages("devtools")
devtools::install_github("https://github.com/baeda-polito/TimeseriesEnergyBenchmarking")
```
Then you can run the application by simply typing in the console:
``` r
library("TimeseriesEnergyBenchmarking")
TimeseriesEnergyBenchmarking::run_app()
```
### Docker Installation
You can also run the application using Docker. The Docker image can be built using the Dockerfile provided in the repository.
First, clone the repository from GitHub:
```bash
git clone https://github.com/baeda-polito/TimeseriesEnergyBenchmarking
cd TimeseriesEnergyBenchmarking
```
Then, build the Docker image using the following command:
```bash
docker build -t timeseries_energy_benchmarking .
```
After the image is built, you can run the application using the following command:
```bash
docker run -p 80:80 timeseries_energy_benchmarking
```
This will start the application, and you can access it in your web browser at `http://localhost:80`.
## Contributors
* Ing. [Rocco Giudice](mailto:rocco.giudice@polito.it), PhD Student at [BAEDA Lab](http://www.baeda.polito.it/), Politecnico di Torino;
* Prof. [Alfonso Capozzoli](mailto:alfonso.capozzoli@polito.it), Coordinator of [BAEDA Lab](http://www.baeda.polito.it/), Politecnico di Torino;
* Prof. [Marco Savino Piscitelli](mailto:marco.piscitelli@polito.it), Assistant Prof. at [BAEDA Lab](http://www.baeda.polito.it/), Politecnico di Torino;
## License
This project is licensed under the terms of the [MIT license](https://opensource.org/licenses/MIT). See the [LICENSE](LICENSE) file for details.
## Citation
If you use this package in your research, please cite it as follows:
M.S. Piscitelli, R. Giudice, A. Capozzoli, A holistic time series-based energy benchmarking framework for applications in large stocks of buildings, Applied Energy, 2024, https://doi.org/10.1016/j.apenergy.2023.122550.
<!-- You'll still need to render `README.Rmd` regularly, to keep `README.md` up-to-date. `devtools::build_readme()` is handy for this. -->