From b865708629ac0890b30c716231f616d14fa9f55c Mon Sep 17 00:00:00 2001 From: s_ranjbar Date: Tue, 14 May 2024 12:17:35 -0400 Subject: [PATCH] feat: code is prepared to store the roof radiation and its components in a csv file --- main.py | 44 ++++++++++++++++---------------------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/main.py b/main.py index d29d7ddf..8172ce3c 100644 --- a/main.py +++ b/main.py @@ -1,22 +1,16 @@ +import csv + from scripts.geojson_creator import process_geojson from pathlib import Path import subprocess -from scripts.ep_run_enrich import energy_plus_workflow from hub.imports.geometry_factory import GeometryFactory from hub.helpers.dictionaries import Dictionaries from hub.imports.construction_factory import ConstructionFactory from hub.imports.usage_factory import UsageFactory from hub.imports.weather_factory import WeatherFactory from hub.imports.results_factory import ResultFactory -from scripts.energy_system_analysis_report import EnergySystemAnalysisReport -from scripts import random_assignation -from hub.imports.energy_systems_factory import EnergySystemsFactory -from scripts.energy_system_sizing import SystemSizing -from scripts.energy_system_retrofit_results import system_results, new_system_results -from scripts.energy_system_sizing_and_simulation_factory import EnergySystemsSimulationFactory -from scripts.costs.cost import Cost -from scripts.costs.constants import SKIN_RETROFIT_AND_SYSTEM_RETROFIT_AND_PV from hub.exports.exports_factory import ExportsFactory +import hub.helpers.constants as cte # Specify the GeoJSON file path geojson_file = process_geojson(x=-73.5681295982132, y=45.49218262677643, diff=0.0001) file_path = (Path(__file__).parent.parent / 'input_files' / f'{geojson_file}') @@ -33,30 +27,24 @@ city = GeometryFactory('geojson', ConstructionFactory('nrcan', city).enrich() UsageFactory('nrcan', city).enrich() -WeatherFactory('epw', city).enrich() +# WeatherFactory('epw', city).enrich() ExportsFactory('sra', city, output_path).export() sra_path = (output_path / f'{city.name}_sra.xml').resolve() subprocess.run(['sra', str(sra_path)]) ResultFactory('sra', city, output_path).enrich() -energy_plus_workflow(city) -ExportsFactory('obj', city, output_path).export() -random_assignation.call_random(city.buildings, random_assignation.residential_systems_percentage) -EnergySystemsFactory('montreal_custom', city).enrich() -SystemSizing(city.buildings).montreal_custom() -current_system = new_system_results(city.buildings) -random_assignation.call_random(city.buildings, random_assignation.residential_new_systems_percentage) -EnergySystemsFactory('montreal_future', city).enrich() for building in city.buildings: - EnergySystemsSimulationFactory('archetype1', building=building, output_path=output_path).enrich() -new_system = system_results(city.buildings) -EnergySystemAnalysisReport(city, output_path).create_report(current_system, new_system) -for building in city.buildings: - costs = Cost(building=building, retrofit_scenario=SKIN_RETROFIT_AND_SYSTEM_RETROFIT_AND_PV).life_cycle - costs.to_csv(output_path / f'{building.name}_lcc.csv') - (costs.loc['global_operational_costs', f'Scenario {SKIN_RETROFIT_AND_SYSTEM_RETROFIT_AND_PV}']. - to_csv(output_path / f'{building.name}_op.csv')) - costs.loc['global_capital_costs', f'Scenario {SKIN_RETROFIT_AND_SYSTEM_RETROFIT_AND_PV}'].to_csv( - output_path / f'{building.name}_cc.csv') + beam = [x / 3600 for x in building.beam[cte.HOUR]] + diffuse = [x / 3600 for x in building.diffuse[cte.HOUR]] + roof = building.roofs[0].global_irradiance[cte.HOUR] + data = list(zip(beam, diffuse, roof)) + file_name = f'solar_radiation_{building.name}.csv' + with open(output_path / file_name, 'w', newline='') as csvfile: + output_file = csv.writer(csvfile) + # Write header + output_file.writerow(['beam_component', 'diffuse_component', 'roof_global_irradiance']) + # Write data + output_file.writerows(data) +print('test')