diff --git a/python_scripts/run_simstadt_from_python/variable_window_ratio.py b/python_scripts/run_simstadt_from_python/variable_window_ratio.py index 54ef48b1f4e1f1a48aea7034665cba092e31be39..a8044b01604d90a6fb2f012dd9242e6e2711235c 100644 --- a/python_scripts/run_simstadt_from_python/variable_window_ratio.py +++ b/python_scripts/run_simstadt_from_python/variable_window_ratio.py @@ -1,10 +1,14 @@ from pathlib import Path import shutil from xml.etree import ElementTree as et +import logging import pandas as pd +import re from run_simstadt_workflow import find_simstadt, SCRIPT_DIR, run_workflow +# logging.getLogger().setLevel(logging.WARN) + SIMSTADT2_GLOB = 'Desktop/SimStadt2_0.*/' REPO_PATH = Path.home() / 'git' / 'simstadt2' / 'TestRepository' PROJECT_NAME = 'Gruenbuehl' @@ -15,7 +19,7 @@ PARAMS = 'params.xml' BUILDING_PHYSICS_LIBRARY = 'GermanBuildingTypologyLibrary_IWU.xml' -print(find_simstadt(SIMSTADT2_GLOB)) +WINDOW_RATIOS = [0, 0.5, 1] TEMPLATE_NAME = '99_HeatDemand' @@ -43,17 +47,36 @@ tree.write(physics_processor_params) ########################################################## -output_files = run_workflow(find_simstadt(SIMSTADT2_GLOB), workflow_path, CITYGMLS) +for window_ratio in WINDOW_RATIOS: + + #################### Update lib with custom values ############################ + with open(custom_library_path) as library_file: + content = library_file.read() + + new_content = re.sub(r"<name>[\w ]+</name>", + f"<name>Custom Physics Library with Window Ratio : {window_ratio}</name>", + content, + 1) + new_content = re.sub(r"<windowRatio>[\d\.]+</windowRatio>", + f"<windowRatio>{window_ratio}</windowRatio>", + content) + + with open(custom_library_path, 'w') as library_file: + library_file.write(new_content) + ################################################################################# + + output_files = run_workflow(find_simstadt(SIMSTADT2_GLOB), workflow_path, CITYGMLS) -heat_demand_csv = next(file for file in output_files if 'HEATING.csv' in file.name) + heat_demand_csv = next(file for file in output_files if 'HEATING.csv' in file.name) -################### Parse heat demand ######################## + ################### Parse heat demand ######################## -df = pd.read_csv(heat_demand_csv, - skiprows=list(range(19)) + [20], - sep=';', - decimal=',' - ) + df = pd.read_csv(heat_demand_csv, + skiprows=list(range(19)) + [20], + sep=';', + decimal=',' + ) -heat_demand_MWh = df['Yearly Heating demand'].sum() / 1000 -print(f"Total heat demand : {heat_demand_MWh:.0f} MWh / a") + heat_demand_MWh = df['Yearly Heating demand'].sum() / 1000 + print(f"Window Ratio : {window_ratio * 100} %") + print(f"Total heat demand : {heat_demand_MWh:.0f} MWh / a")