From f15825db1d83eda51db8ce424843bb87686af243 Mon Sep 17 00:00:00 2001 From: Alireza Adli Date: Fri, 2 Aug 2024 12:26:13 -0400 Subject: [PATCH] Replace the building workload with end of life emission --- lca_carbon_workflow.py | 64 +++++++++++++++++++++++++----------------- 1 file changed, 38 insertions(+), 26 deletions(-) diff --git a/lca_carbon_workflow.py b/lca_carbon_workflow.py index d7736be..220b41b 100644 --- a/lca_carbon_workflow.py +++ b/lca_carbon_workflow.py @@ -58,15 +58,15 @@ class LCACarbonWorkflow: self.building_envelope_emission = [] self.building_opening_emission = [] self.building_component_emission = [] - self.building_envelope_workload = [] - self.building_opening_workload = [] - self.building_component_workload = [] + self.building_envelope_end_of_life_emission = [] + self.building_opening_end_of_life_emission = [] + self.building_component_end_of_life_emission = [] def calculate_building_component_emission(self, building): surface_envelope_emission = [] surface_opening_emission = [] - surface_envelope_workload = [] - surface_opening_workload = [] + surface_envelope_end_of_life_emission = [] + surface_opening_end_of_life_emission = [] opaque_surface_code = self.nrcan_catalogs.find_opaque_surface( self.nrcan_catalogs.hub_to_nrcan_function(building.function), self.nrcan_catalogs.year_to_period_of_construction( @@ -76,33 +76,35 @@ class LCACarbonWorkflow: for surface in building.surfaces: boundary_envelope_emission = [] boundary_opening_emission = [] - boundary_envelope_workload = [] - boundary_opening_workload = [] + boundary_envelope_end_of_life_emission = [] + boundary_opening_end_of_life_emission = [] for boundary in surface.associated_thermal_boundaries: opening_emission = None - opening_workload = None - layer_emission, boundary_work_load = \ + opening_end_of_life_emission = None + layer_emission, layer_end_of_life_emission = \ self._calculate_envelope_emission(boundary) boundary_envelope_emission += layer_emission - boundary_envelope_workload += boundary_work_load + boundary_envelope_end_of_life_emission += layer_end_of_life_emission if boundary.window_ratio: - opening_emission, opening_workload = \ + opening_emission, opening_end_of_life_emission = \ self._calculate_opening_emission( building, surface, boundary, opaque_surface_code) if opening_emission: boundary_opening_emission += opening_emission - boundary_opening_workload += opening_workload + boundary_opening_end_of_life_emission += opening_end_of_life_emission if boundary_opening_emission: surface_opening_emission += boundary_opening_emission - surface_opening_workload += boundary_opening_workload + surface_opening_end_of_life_emission += \ + boundary_opening_end_of_life_emission surface_envelope_emission += boundary_envelope_emission - surface_envelope_workload += boundary_envelope_workload + surface_envelope_end_of_life_emission += \ + boundary_envelope_end_of_life_emission building_envelope_emission = sum(surface_envelope_emission) - building_envelope_workload = sum(surface_envelope_workload) + building_envelope_workload = sum(surface_envelope_end_of_life_emission) building_opening_emission = sum(surface_opening_emission) - building_opening_workload = sum(surface_opening_workload) + building_opening_workload = sum(surface_opening_end_of_life_emission) building_component_emission = \ building_envelope_emission + building_opening_emission building_component_workload = \ @@ -123,12 +125,16 @@ class LCACarbonWorkflow: boundary.opaque_area, layer.thickness, layer.density).calculate_envelope_emission()) - boundary_workload = boundary.opaque_area * layer.thickness * layer.density + boundary_workload = \ + boundary.opaque_area * \ + layer.thickness * \ + layer.density layer_end_of_life_emission.append(EndOfLifeEmission( layer_material['recycling_ratio'], layer_material['onsite_recycling_ratio'], layer_material['company_recycling_ratio'], - layer_material['landfilling_ratio'], boundary_workload)) + layer_material['landfilling_ratio'], + boundary_workload).calculate_end_of_life_emission()) return layer_emission, layer_end_of_life_emission def _calculate_opening_emission( @@ -140,7 +146,7 @@ class LCACarbonWorkflow: These two values are being used to calculate window's workload for End of Life emission evaluation.""" opening_emission = [] - window_end_of_life_emission = [] + opening_end_of_life_emission = [] for opening in boundary.thermal_openings: transparent_surface_type = 'Window' if building.year_of_construction >= 2020 and \ @@ -153,21 +159,27 @@ class LCACarbonWorkflow: opening.area).calculate_opening_emission()) window_workload = opening.area * boundary.thickness * density - window_end_of_life_emission.append(EndOfLifeEmission( + opening_end_of_life_emission.append(EndOfLifeEmission( opening_material['recycling_ratio'], opening_material['onsite_recycling_ratio'], opening_material['company_recycling_ratio'], - opening_material['landfilling_ratio'], window_workload)) - return opening_emission, window_end_of_life_emission + opening_material['landfilling_ratio'], + window_workload).calculate_end_of_life_emission()) + return opening_emission, opening_end_of_life_emission def calculate_emission(self): for building in self.city.buildings: envelope_emission, opening_emission, component_emission, \ - envelope_workload, opening_workload, component_workload = \ + envelope_end_of_life_emission, \ + opening_end_of_life_emission, \ + component_end_of_life_emission = \ self.calculate_building_component_emission(building) self.building_envelope_emission.append(envelope_emission) self.building_opening_emission.append(opening_emission) self.building_component_emission.append(component_emission) - self.building_envelope_workload.append(envelope_workload) - self.building_opening_workload.append(opening_workload) - self.building_component_workload.append(component_workload) + self.building_envelope_end_of_life_emission.append( + envelope_end_of_life_emission) + self.building_opening_end_of_life_emission.append( + opening_end_of_life_emission) + self.building_component_end_of_life_emission.append( + component_end_of_life_emission)