This code is used in the paper:
Agwan, U., Bobick, S., Rangan, S., Poolla, K., & Spanos, C. (2025). The potential for building emissions reduction through sporadic and targeted load modulation. In Workshop on Computational Optimization of Buildings at the 42nd International Conference on Machine Learning (ICML) (Vol. 267). PMLR.
This code is designed to interface with marginal emissions intensities (MOERs) from Wattime and synthetic load profiles from NREL's ResStock and ComStock.
The Wattime API provides access to real-time, forecasted, and historical Marginal Operating Emissions Rate (MOER) in units of kg
NREL's ResStock and ComStock datasets model residential and commercial loads, respectively. NREL utilized super-computing to run over 20 million simulations using a statistical model of building stock characteristics for the entire United States in 15-minute intervals, differentiated by end-use. For our study, we queried load profiles from Alameda County, California, USA from a simulation of 2018 using actual meteorological data. Users can view and access the data using NREL's data viewer its API.
To use this code, after querying data from the sources above and adding into the data directory, run the entire simulation with
python main.py
This will populate a .csv in the out directory which details the optimal load modulation actions for each day of the year and end-use.
To change the assumptions of the load flexibility of different end uses, edit data/commercial_assumptions.json and/or data/commercial_assumptions.json. Each end use corresponds to a 4-tuple, which contains the load flexibility parameter