This is the github repository corresponding to our Buildsys 2015 paper.
Please use the following bib for citing our work:
@inproceedings{batra_buildsys_2015,
title={
If You Measure It, Can You Improve It? Exploring The Value of Energy Disaggregation},
author={Batra, Nipun and Singh, Amarjeet and Whitehouse, Kamin},
booktitle={Proceedings of the second ACM International Conference on Embedded Systems For Energy-Efficient Built Environments},
year={2015},
organization={ACM}
}
You'll need to request me (nipunb@iiitd.ac.in) for getting access to binary data. Once done, you can download the following:
Sno | Data | Location in local machine | Description |
---|---|---|---|
1 | Rice hall fridge data | ~\Documents | Contains data for controlled experiments |
2 | Wiki-temp.h5 | ~\Downloads | Contains data newer version of dataport |
3 | wikienergy-2.h5 | ~\ | Contains data for old version of data port |
4 | wikinergy-2013.h5 | ~\ | Contains data for 2013, needed since our HVAC survey is from the same time |
Please download all the data dependencies before running the following code.
-
Figure 1: code/fridge/fridge_demo.py
-
Figure 2: code/fridge/rice_hall_precision_recall_energy.py All the required code is already contained in the Github repo
-
Figure 3: code/hvac/model_setpoint_accuracy.py. This requires data/hvac/top_k_2013.json which is generated using code/hvac/find_top_k_hvac.py. The data/hvac/minutes_GT.csv is created by calling code/hvac/create_hvac_feature_csvs.py
-
Figure 4: code/fridge/fridge_usage_energy_usage_ratio_outlier.py It is dependent on
usage_defrost_cycles.csv
which is already there in the Github repository. This CSV can be generated by calling code/fridge/fridge_compressor_durations_optimised_jul_7.py. It must be noted thatd_new.to_csv("../../data/fridge/usage_defrost_cycles.csv", index_label="home")
should be uncommented! The function is generic. -
Figure 5: code/fridge/fridge_defrost_num_cycles_ratio_outlier.py It is dependent on
usage_defrost_cycles.csv
which is already there in the Github repository. Remaining instructions same as that for Figure 4. -
Figure 6: code/fridge/fridge_malfunction.py Remaining things were edited in Preview.
-
Figure 7: code/hvac/model_accuracy_nilm_gt_confusion_only_gt.py It is dependent on data/hvac/minutes_GT.csv; this is generated as mentioned in the instructions for Figure 3.
-
Figure 8: code/havc/disag_optimal_fridge_usage_energy_usage_ratio_outlier_only_disag.py It is dependent on data/hvac/minutes_N2....csv. This is generated using code/hvac/nilm_create_features.py. This requires as inputs the folder code/bash_runs_hvac/N2.... which is generated using code/bash_scripts/hvac/disaggregate_sweep_hvac.sh which calls code/hvac/disaggregate_hvac.py with the required parameters. No changes needed if executed on UVa cluster. If run otherwise, slurm needs to be changed and all the individual bash scripts will need to be serially executed.
-
Figure 9: code/hvac/fridge_low_accuracy_nilm_baseline.py. Prerequisites are the same as that for Figure 8.
-
Figure 10: code/fridge/plot_power_level.py. Prerequisites are the same as that for Figure 8.
-
Figure 11: code/hvac/model_accuracy_nilm_gt_confusion_only_nilm.py It is dependent on:
- minutes_*.csv: which is generated as mentioned in Figure 8.
- rf_hvac.pkl: code/hvac/model_accuracy.py
-
Figure 12: code/hvac/hvac_feedback_low_accuracy_reason.py
Nipun Batra nipunb@iiitd.ac.in