diff --git a/lca_carbon_workflow.py b/lca_carbon_workflow.py index 56a813d..4d7a101 100644 --- a/lca_carbon_workflow.py +++ b/lca_carbon_workflow.py @@ -14,8 +14,8 @@ from hub.imports.construction_factory import ConstructionFactory from hub.helpers.dictionaries import Dictionaries from city_model_structure.life_cycle_assessment.access_nrcan_catalogue \ import AccessNrcanCatalog -from city_model_structure.life_cycle_assessment.building_component \ - import BuildingComponent +from city_model_structure.life_cycle_assessment.opening_emission \ + import OpeningEmission class LCACarbonWorkflow: @@ -52,26 +52,44 @@ class LCACarbonWorkflow: ConstructionFactory(self.handler, self.city).enrich() def calculate_opening_emission(self, building): - surface_emission = [] - opaque_code = self.nrcan_catalogs.find_opaque_surface( - building.function, building.year_of_construction, '6') - print(building.function, building.year_of_construction) - print(opaque_code) + surface_opening_emission = [] + period_of_construction = self.nrcan_catalogs.year_to_period_of_construction(building.year_of_construction) + print(period_of_construction) + print(building.year_of_construction) + 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( + building.year_of_construction), + '6') + for surface in building.surfaces: + boundary_opening_emission = [] for boundary in surface.associated_thermal_boundaries: + opening_emission = [] if boundary.window_ratio == 0: opening_surface = 0 opening_material_emission = 0 # print('window = 0') else: - opening_surface = 0 - opening_material_emission = 0 - # print('window != 0') - # for opening in surface.associated_thermal_boundaries.thermal_openings: - # opening_surface += opening.area - # opening_material_emission = + print('window != 0') + for opening in boundary.thermal_openings: + transparent_surface_type = 'Window' + if building.year_of_construction >= 2020 and \ + surface.type == 'Roof': + transparent_surface_type = 'Skylight' + opening_emission.append(OpeningEmission( + self.nrcan_catalogs.search_transparent_surfaces( + transparent_surface_type, opaque_surface_code)['embodied_carbon'], + opening.area).calculate_opening_emission()) + print('\t\t\t', opening_emission) + print('opening_emission', opening_emission) + boundary_opening_emission.append(opening_emission) + print('boundary_opening_emission', boundary_opening_emission) + surface_opening_emission.append(boundary_opening_emission) + print('surface_opening_emission', surface_opening_emission) def calculate_emission(self): emitted_carbon = [] + opening_emission = [] for building in self.city.buildings: self.calculate_opening_emission(building)