Skip to content

Commit

Permalink
Fix plot errors with embodied emissions
Browse files Browse the repository at this point in the history
  • Loading branch information
reyery committed Sep 9, 2023
1 parent a5e3adf commit 2d582d6
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 17 deletions.
2 changes: 1 addition & 1 deletion cea/analysis/lca/embodied.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def lca_embodied(year_to_calculate, locator):
The results are provided in total as well as per square meter:
- embodied non-renewable primary energy: E_nre_pen_GJ and E_nre_pen_MJm2
- embodied greenhouse gas emissions: GHG_sys_embodied_tonCO2 and GHG_sys_embodied_kgCO2m2
- embodied greenhouse gas emissions: GHG_sys_embodied_tonCO2yr and GHG_sys_embodied_kgCO2m2yr
As part of the algorithm, the following files are read from InputLocator:
Expand Down
2 changes: 1 addition & 1 deletion cea/plots/comparisons/Annual_emissions.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def __init__(self, project, parameters, cache):
super(ComparisonsAnnualEmissionsPlot, self).__init__(project, parameters, cache)
self.analysis_fields = ["GHG_sys_district_scale_tonCO2",
"GHG_sys_building_scale_tonCO2",
"GHG_sys_embodied_tonCO2",
"GHG_sys_embodied_tonCO2yr",
]
self.normalization = self.parameters['normalization']
self.input_files = [(x[4].get_optimization_slave_total_performance, [x[3], x[2]]) if x[2] != "today" else
Expand Down
10 changes: 5 additions & 5 deletions cea/plots/comparisons/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ def preprocessing_annual_emissions_scenarios(self):

if generation == "today":
data_building_emissions = pd.read_csv(locator_scenario.get_lca_operation()).sum(axis=0)
data_building_emissions['GHG_sys_embodied_tonCO2'] = pd.read_csv(self.locator.get_lca_embodied())['GHG_sys_embodied_tonCO2'].sum()
data_building_emissions['GHG_sys_embodied_tonCO2yr'] = pd.read_csv(self.locator.get_lca_embodied())['GHG_sys_embodied_tonCO2yr'].sum()
data_raw_df = pd.DataFrame(data_building_emissions).T
data_raw_df = self.normalize_data_emissions(data_raw_df, self.normalization, self.analysis_fields)
else:
Expand Down Expand Up @@ -132,29 +132,29 @@ def normalize_data_emissions(self, data_processed, normalization, analysis_field
lambda x: x / normalization_factor if x.name in analysis_fields else x)
data_processed['GHG_sys_district_scale_tonCO2'] = data_processed['GHG_sys_district_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_building_scale_tonCO2'] = data_processed['GHG_sys_building_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2'] = data_processed['GHG_sys_embodied_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2yr'] = data_processed['GHG_sys_embodied_tonCO2yr'] * 1000 # convert to kg
elif normalization == "net floor area":
data = pd.read_csv(self.locator.get_total_demand())
normalization_factor = sum(data['Aocc_m2'])
data_processed = data_processed.apply(
lambda x: x / normalization_factor if x.name in analysis_fields else x)
data_processed['GHG_sys_district_scale_tonCO2'] = data_processed['GHG_sys_district_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_building_scale_tonCO2'] = data_processed['GHG_sys_building_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2'] = data_processed['GHG_sys_embodied_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2yr'] = data_processed['GHG_sys_embodied_tonCO2yr'] * 1000 # convert to kg
elif normalization == "air conditioned floor area":
data = pd.read_csv(self.locator.get_total_demand())
normalization_factor = sum(data['Af_m2'])
data_processed = data_processed.apply(
lambda x: x / normalization_factor if x.name in analysis_fields else x)
data_processed['GHG_sys_district_scale_tonCO2'] = data_processed['GHG_sys_district_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_building_scale_tonCO2'] = data_processed['GHG_sys_building_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2'] = data_processed['GHG_sys_embodied_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2yr'] = data_processed['GHG_sys_embodied_tonCO2yr'] * 1000 # convert to kg
elif normalization == "building occupancy":
data = pd.read_csv(self.locator.get_total_demand())
normalization_factor = sum(data['people0'])
data_processed = data_processed.apply(
lambda x: x / normalization_factor if x.name in analysis_fields else x)
data_processed['GHG_sys_district_scale_tonCO2'] = data_processed['GHG_sys_district_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_building_scale_tonCO2'] = data_processed['GHG_sys_building_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2'] = data_processed['GHG_sys_embodied_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2yr'] = data_processed['GHG_sys_embodied_tonCO2yr'] * 1000 # convert to kg
return data_processed
4 changes: 2 additions & 2 deletions cea/plots/naming.csv
Original file line number Diff line number Diff line change
Expand Up @@ -439,9 +439,9 @@ Emissions and Primary Energy,GHG_sys_district_scale_tonCO2,ton CO2-eq/yr,Annual
Emissions and Primary Energy,PEN_sys_building_scale_MJoil,MJ oil-eq/yr,Annual primary energy of building-scale systems,red_light
Emissions and Primary Energy,PEN_sys_district_scale_MJoil,MJ oil-eq/yr,Annual primary energy of district-scale system,red

Emissions and Primary Energy,GHG_sys_embodied_tonCO2,ton CO2-eq/yr,Annual building Embodied Emissions,grey_light
Emissions and Primary Energy,GHG_sys_embodied_tonCO2yr,ton CO2-eq/yr,Annual building Embodied Emissions,grey_light
Emissions and Primary Energy,O_ghg_ton,ton CO2-eq/yr,Energy system operation,grey
Emissions and Primary Energy,GHG_sys_embodied_kgCO2m2,kg CO2-eq/m2.yr,Annual building Embodied Emissions,black
Emissions and Primary Energy,GHG_sys_embodied_kgCO2m2yr,kg CO2-eq/m2.yr,Annual building Embodied Emissions,black
Emissions and Primary Energy,GHG_sys_kgCO2m2,kg CO2-eq/m2.yr,Energy system operation,grey

Thermal Network,P_loss_%,-,Pumping energy,grey
Expand Down
10 changes: 5 additions & 5 deletions cea/plots/optimization/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def process_generation_total_performance_pareto_with_multi(self):
@cea.plots.cache.cached
def process_generation_total_performance_pareto(self):
data_processed = pd.read_csv(self.locator.get_optimization_generation_total_performance_pareto(self.generation))
data_processed['GHG_sys_embodied_tonCO2'] = pd.read_csv(self.locator.get_lca_embodied())['GHG_sys_embodied_tonCO2'].sum()
data_processed['GHG_sys_embodied_tonCO2yr'] = pd.read_csv(self.locator.get_lca_embodied())['GHG_sys_embodied_tonCO2yr'].sum()
return data_processed

def normalize_data(self, data_processed, normalization, analysis_fields):
Expand All @@ -81,31 +81,31 @@ def normalize_data(self, data_processed, normalization, analysis_fields):
lambda x: x / normalizatioon_factor if x.name in analysis_fields else x)
data_processed['GHG_sys_district_scale_tonCO2'] = data_processed['GHG_sys_district_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_building_scale_tonCO2'] = data_processed['GHG_sys_building_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2'] = data_processed['GHG_sys_embodied_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2yr'] = data_processed['GHG_sys_embodied_tonCO2yr'] * 1000 # convert to kg
elif normalization == "net floor area":
data = pd.read_csv(self.locator.get_total_demand())
normalizatioon_factor = sum(data['Aocc_m2'])
data_processed = data_processed.apply(
lambda x: x / normalizatioon_factor if x.name in analysis_fields else x)
data_processed['GHG_sys_district_scale_tonCO2'] = data_processed['GHG_sys_district_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_building_scale_tonCO2'] = data_processed['GHG_sys_building_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2'] = data_processed['GHG_sys_embodied_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2yr'] = data_processed['GHG_sys_embodied_tonCO2yr'] * 1000 # convert to kg
elif normalization == "air conditioned floor area":
data = pd.read_csv(self.locator.get_total_demand())
normalizatioon_factor = sum(data['Af_m2'])
data_processed = data_processed.apply(
lambda x: x / normalizatioon_factor if x.name in analysis_fields else x)
data_processed['GHG_sys_district_scale_tonCO2'] = data_processed['GHG_sys_district_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_building_scale_tonCO2'] = data_processed['GHG_sys_building_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2'] = data_processed['GHG_sys_embodied_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2yr'] = data_processed['GHG_sys_embodied_tonCO2yr'] * 1000 # convert to kg
elif normalization == "building occupancy":
data = pd.read_csv(self.locator.get_total_demand())
normalizatioon_factor = sum(data['people0'])
data_processed = data_processed.apply(
lambda x: x / normalizatioon_factor if x.name in analysis_fields else x)
data_processed['GHG_sys_district_scale_tonCO2'] = data_processed['GHG_sys_district_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_building_scale_tonCO2'] = data_processed['GHG_sys_building_scale_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2'] = data_processed['GHG_sys_embodied_tonCO2'] * 1000 # convert to kg
data_processed['GHG_sys_embodied_tonCO2yr'] = data_processed['GHG_sys_embodied_tonCO2yr'] * 1000 # convert to kg

return data_processed

Expand Down
2 changes: 1 addition & 1 deletion cea/plots/optimization/d_annual_emissions.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def __init__(self, project, parameters, cache):
super(AnnualEmissionsPlot, self).__init__(project, parameters, cache)
self.analysis_fields = ["GHG_sys_district_scale_tonCO2",
"GHG_sys_building_scale_tonCO2",
"GHG_sys_embodied_tonCO2",
"GHG_sys_embodied_tonCO2yr",
]
self.normalization = self.parameters['normalization']
self.input_files = [(self.locator.get_optimization_generation_total_performance_pareto, [self.generation]),
Expand Down
4 changes: 2 additions & 2 deletions cea/schemas.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10635,14 +10635,14 @@ get_lca_embodied:
unit: '[m2]'
values: '{0.0...n}'
min: 0.0
GHG_sys_embodied_kgCO2m2:
GHG_sys_embodied_kgCO2m2yr:
description: Embodied emissions per conditioned floor area due to building
construction and decommissioning
type: float
unit: "[kg CO2-eq/m2.yr]"
values: '{0.0...n}'
min: 0.0
GHG_sys_embodied_tonCO2:
GHG_sys_embodied_tonCO2yr:
description: Embodied emissions due to building construction and decommissioning
type: float
unit: "[ton CO2-eq/yr]"
Expand Down

0 comments on commit 2d582d6

Please sign in to comment.