forked from s_ranjbar/city_retrofit
94c593b651
re-structured weather.py file accordingly (now in weather_factory.helpers
108 lines
2.6 KiB
Python
108 lines
2.6 KiB
Python
"""
|
|
Configuration helper
|
|
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
|
Copyright © 2020 Project Author Guille Gutierrez guillermo.gutierrezmorote@concordia.ca
|
|
"""
|
|
import configparser
|
|
from pathlib import Path
|
|
|
|
|
|
class ConfigurationHelper:
|
|
"""
|
|
Configuration class
|
|
"""
|
|
def __init__(self):
|
|
config_file = Path(Path(__file__).parent.parent / 'config/configuration.ini').resolve()
|
|
self._config = configparser.ConfigParser()
|
|
self._config.read(config_file)
|
|
|
|
@property
|
|
def h_i(self):
|
|
"""
|
|
Configured internal convective coefficient in W/m2K
|
|
:return: float
|
|
"""
|
|
return self._config.getfloat('convective_fluxes', 'h_i')
|
|
|
|
@property
|
|
def h_e(self):
|
|
"""
|
|
Configured external convective coefficient in W/m2K
|
|
:return: float
|
|
"""
|
|
return self._config.getfloat('convective_fluxes', 'h_e')
|
|
|
|
@property
|
|
def frame_ratio(self):
|
|
"""
|
|
Configured frame ratio
|
|
:return: float
|
|
"""
|
|
return self._config.getfloat('windows', 'frame_ratio')
|
|
|
|
@property
|
|
def heated(self):
|
|
"""
|
|
Configured heated flag
|
|
:return: Boolean
|
|
"""
|
|
return self._config.getboolean('thermal_zones', 'heated')
|
|
|
|
@property
|
|
def cooled(self):
|
|
"""
|
|
Configured cooled flag
|
|
:return: Boolean
|
|
"""
|
|
return self._config.getboolean('thermal_zones', 'cooled')
|
|
|
|
@property
|
|
def additional_thermal_bridge_u_value(self):
|
|
"""
|
|
Configured additional thermal bridge u value W/m2K
|
|
:return:
|
|
"""
|
|
return self._config.getfloat('thermal_zones', 'additional_thermal_bridge_u_value')
|
|
|
|
@property
|
|
def indirectly_heated_area_ratio(self):
|
|
"""
|
|
Configured indirectly heated area ratio
|
|
:return: float
|
|
"""
|
|
|
|
return self._config.getfloat('thermal_zones', 'indirectly_heated_area_ratio')
|
|
|
|
@property
|
|
def infiltration_rate_system_on(self):
|
|
"""
|
|
Configured infiltration rate system on in air change per hour
|
|
:return: float
|
|
"""
|
|
return self._config.getfloat('thermal_zones', 'infiltration_rate_system_on')
|
|
|
|
@property
|
|
def outside_solar_absorptance(self):
|
|
"""
|
|
Configured exterior solar absorptance
|
|
:return: float
|
|
"""
|
|
return self._config.getfloat('thermal_zones', 'outside_solar_absorptance')
|
|
|
|
@property
|
|
def min_air_change(self):
|
|
"""
|
|
Configured minimum air change rate in air changes per hour
|
|
:return: float
|
|
"""
|
|
return self._config.getfloat('thermal_zones', 'min_air_change')
|
|
|
|
@property
|
|
def max_location_distance_for_shared_walls(self):
|
|
"""
|
|
Configured maximal distance between
|
|
attributes to consider that they may share walls in meters
|
|
:return: float
|
|
"""
|
|
return self._config.getfloat('attributes', 'max_location_distance_for_shared_walls')
|