Data Visualization and Analysis of simulated building energy data
- saman aboutorab
- Jan 18, 2024
- 1 min read
Here is a data analysis of simulated data from a building energy model like EnergyPlus. We will look at a scenario of a Mall based in Phoenix, United States The goal of this notebook is to illustrate how to use output files from the EnergyPlus energy simulation engine to get an initial understanding of the Pandas DataFrame and functions.
The scenario for this analysis is a shopping mall project in Phoenix. ( The name of the mall is not mentioned for data privacy) -
One of the biggest shopping malls of the world
- Floor area is about 500,000 m2
- Number of visitors every year is around 90 million
- Building with tremendously high cooling energy demand There will be various decisions to make about which design options to integrate into the design.
The Baseline simulation model is the design of the building with conventional design options.
Importimport pandas as pd directory = "simulation_data/"
file = "Baseline.csv" baseline_data = pd.read_csv(directory + file, index_col='Month') baseline_data.info() Baseline Monthly Energy Visualizationbaseline_data.columns.name = 'Scenario'
baseline_data.index.name = 'Months of the Year'
baseline_data.plot(lw=2, colormap='jet', marker='.', markersize=10,
title='Cooling Energy Consumption of Baseline Building in Total GWh') Compare two files -- Baseline vs. Different Schedulingfile = "Scenario - Aircon Schedules.csv" schedule_scenario = pd.read_csv(directory + file, index_col="Month") combined_data = pd.concat([baseline_data, schedule_scenario], axis=1) combined_data.plot(lw=2, colormap='jet', marker='.', markersize=10,
title='Cooling Energy Consumption of Baseline Building in Total GWh') combined_data['Difference'] = combined_data['Baseline'] - combined_data['Scenario - Aircon Schedules'] combined_data['Difference'].plot.bar(title='Difference between Baseline and Improved Schedules in Total GWh') # we can define a function to calculate a new column def get_difference_conditional(monthly_data):
#print(monthly_data)
if monthly_data.name == 'July':
return 0
else:
return monthly_data['Baseline'] - monthly_data['Scenario - Aircon Schedules'] combined_data['Difference_NoJuly'] = combined_data.apply(lambda x: get_difference_conditional(x), axis=1) combined_data['Difference_NoJuly'].plot.bar(title='Difference between Baseline and Improved Schedules in Total GWh') Comparing all the scenarioslist_of_files = ['Scenario - Aircon Schedules.csv',
'Scenario - Cool roof.csv',
'Scenario - Rooftop Gardens.csv',
'Scenario - Increase Setpoint.csv',
'Scenario - Low-E Glass.csv',
'Baseline.csv'] data_container = []
for filename in list_of_files:
print(filename)
df = pd.read_csv(directory + filename, index_col='Month')
data_container.append(df)
all_data = pd.concat(data_container, axis=1) all_data.plot(lw=2, colormap='jet', marker='.', markersize=10,
title='Cooling Energy Consumption of Baseline Building in Total GWh', figsize=(15,8)) all_data.subtract(all_data['Baseline'], axis=0).sum().plot.bar() |
Conclusion
Turns out that Increasing the setpoing is by far the most effective energy savings option! Schedules are second place and cool roof is third. The Rooftop gardens and Low-E glass seem to have only a bit of impact for this building
Reference: - Data Science for Construction, Architecture and Engineering by Clayton Miller (clayton@nus.edu.sg - miller.clayton@gmail.com): https://www.edx.org/learn/data-science/the-national-university-of-singapore-data-science-for-construction-architecture-and-engineering - Simulation files and visualizations created by Miguel Martin (miguel.martin@u.nus.edu.sg)
Comments