forked from s_ranjbar/city_retrofit
erased many classes created by Sanam but never used. Modified some classes to adapt to EnergyADE
This commit is contained in:
parent
4e4875392f
commit
8ec399947c
|
@ -1,53 +0,0 @@
|
||||||
"""
|
|
||||||
Building module
|
|
||||||
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
|
||||||
Copyright © 2020 Project Author Sanam Dabirian sanam.dabirian@mail.concordia.ca
|
|
||||||
"""
|
|
||||||
from city_model_structure.attributes.facility import Facility
|
|
||||||
|
|
||||||
|
|
||||||
class DomesticHotWater(Facility):
|
|
||||||
"""
|
|
||||||
Domestic Hot Water facilities class
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, number_of_baths, number_of_showers, number_of_basin, water_storage_volume, operation_schedules,
|
|
||||||
convective_fraction, latent_fraction, radiant_fraction, total_value_of_heat_dissipation):
|
|
||||||
super().__init__(operation_schedules, convective_fraction, latent_fraction, radiant_fraction,
|
|
||||||
total_value_of_heat_dissipation)
|
|
||||||
self._number_of_baths = number_of_baths
|
|
||||||
self._number_of_showers = number_of_showers
|
|
||||||
self._number_of_basin = number_of_basin
|
|
||||||
self._water_storage_volume = water_storage_volume
|
|
||||||
|
|
||||||
@property
|
|
||||||
def number_of_baths(self):
|
|
||||||
"""
|
|
||||||
Get number of baths of a building unit
|
|
||||||
:return: number of baths
|
|
||||||
"""
|
|
||||||
return self._number_of_baths
|
|
||||||
|
|
||||||
@property
|
|
||||||
def number_of_showers(self):
|
|
||||||
"""
|
|
||||||
Get number of showers of a building unit
|
|
||||||
:return: number of showers
|
|
||||||
"""
|
|
||||||
return self._number_of_showers
|
|
||||||
|
|
||||||
@property
|
|
||||||
def number_of_basin(self):
|
|
||||||
"""
|
|
||||||
Get number of wash basins of a building unit
|
|
||||||
:return: number of wash basins
|
|
||||||
"""
|
|
||||||
return self._number_of_basin
|
|
||||||
|
|
||||||
@property
|
|
||||||
def water_storage_volume(self):
|
|
||||||
"""
|
|
||||||
Get the volume of water storage
|
|
||||||
:return: volume of water storage
|
|
||||||
"""
|
|
||||||
return self._water_storage_volume
|
|
|
@ -1,26 +0,0 @@
|
||||||
"""
|
|
||||||
Building module
|
|
||||||
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
|
||||||
Copyright © 2020 Project Author Sanam Dabirian sanam.dabirian@mail.concordia.ca
|
|
||||||
"""
|
|
||||||
from city_model_structure.attributes.facility import Facility
|
|
||||||
|
|
||||||
|
|
||||||
class ElectricAppliances(Facility):
|
|
||||||
"""
|
|
||||||
Electric appliance facilities class
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, appliance_electric_power, operation_schedules, convective_fraction, latent_fraction,
|
|
||||||
radiant_fraction, total_value_of_heat_dissipation):
|
|
||||||
super().__init__(operation_schedules, convective_fraction, latent_fraction, radiant_fraction,
|
|
||||||
total_value_of_heat_dissipation)
|
|
||||||
self._appliance_electric_power = appliance_electric_power
|
|
||||||
|
|
||||||
@property
|
|
||||||
def appliance_electric_power(self):
|
|
||||||
"""
|
|
||||||
Get appliances electric power
|
|
||||||
:return: appliances electric power
|
|
||||||
"""
|
|
||||||
return self._appliance_electric_power
|
|
|
@ -1,59 +0,0 @@
|
||||||
"""
|
|
||||||
Building module
|
|
||||||
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
|
||||||
Copyright © 2020 Project Author Sanam Dabirian sanam.dabirian@mail.concordia.ca
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
class Facility:
|
|
||||||
"""
|
|
||||||
facilities class
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, operation_schedules, convective_fraction, latent_fraction,
|
|
||||||
radiant_fraction, total_value_of_heat_dissipation):
|
|
||||||
self._operation_schedules = operation_schedules
|
|
||||||
self._convective_fraction = convective_fraction
|
|
||||||
self._latent_fraction = latent_fraction
|
|
||||||
self._radiant_fraction = radiant_fraction
|
|
||||||
self._total_value_of_heat_dissipation = total_value_of_heat_dissipation
|
|
||||||
|
|
||||||
@property
|
|
||||||
def operation_schedules(self):
|
|
||||||
"""
|
|
||||||
Get operation schedules of the facilities
|
|
||||||
:return: operation schedules
|
|
||||||
"""
|
|
||||||
return self._operation_schedules
|
|
||||||
|
|
||||||
@property
|
|
||||||
def convective_fraction(self):
|
|
||||||
"""
|
|
||||||
Get convective fraction value
|
|
||||||
:return: convective fraction
|
|
||||||
"""
|
|
||||||
return self._convective_fraction
|
|
||||||
|
|
||||||
@property
|
|
||||||
def latent_fraction(self):
|
|
||||||
"""
|
|
||||||
Get latent fraction value
|
|
||||||
:return: latent fraction
|
|
||||||
"""
|
|
||||||
return self._latent_fraction
|
|
||||||
|
|
||||||
@property
|
|
||||||
def radiant_fraction(self):
|
|
||||||
"""
|
|
||||||
Get radiant fraction value
|
|
||||||
:return: radiant fraction
|
|
||||||
"""
|
|
||||||
return self._radiant_fraction
|
|
||||||
|
|
||||||
@property
|
|
||||||
def total_value_of_heat_dissipation(self):
|
|
||||||
"""
|
|
||||||
Get heat dissipation value
|
|
||||||
:return: heat dissipation
|
|
||||||
"""
|
|
||||||
return self._total_value_of_heat_dissipation
|
|
|
@ -1,31 +0,0 @@
|
||||||
"""
|
|
||||||
Building module
|
|
||||||
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
|
||||||
Copyright © 2020 Project Author Sanam Dabirian sanam.dabirian@mail.concordia.ca
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
class Household:
|
|
||||||
"""
|
|
||||||
Household class
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, resident_type, household_type):
|
|
||||||
self._resident_type = resident_type
|
|
||||||
self._household_type = household_type
|
|
||||||
|
|
||||||
@property
|
|
||||||
def resident_type(self):
|
|
||||||
"""
|
|
||||||
Get resident type
|
|
||||||
:return: resident type
|
|
||||||
"""
|
|
||||||
return self._resident_type
|
|
||||||
|
|
||||||
@property
|
|
||||||
def household_type(self):
|
|
||||||
"""
|
|
||||||
Get household type
|
|
||||||
:return: household type
|
|
||||||
"""
|
|
||||||
return self._household_type
|
|
|
@ -1,36 +0,0 @@
|
||||||
"""
|
|
||||||
Building module
|
|
||||||
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
|
||||||
Copyright © 2020 Project Author Sanam Dabirian sanam.dabirian@mail.concordia.ca
|
|
||||||
"""
|
|
||||||
from city_model_structure.attributes.facility import Facility
|
|
||||||
|
|
||||||
|
|
||||||
class Hvac(Facility):
|
|
||||||
"""
|
|
||||||
HVAC facilities class
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, temperature_setpoints, hvac_schedules, operation_schedules, convective_fraction, latent_fraction,
|
|
||||||
radiant_fraction, total_value_of_heat_dissipation):
|
|
||||||
super().__init__(operation_schedules, convective_fraction, latent_fraction, radiant_fraction,
|
|
||||||
total_value_of_heat_dissipation)
|
|
||||||
self._temperature_setpoints = temperature_setpoints
|
|
||||||
self._hvac_schedules = hvac_schedules
|
|
||||||
|
|
||||||
@property
|
|
||||||
def temperature_setpoints(self):
|
|
||||||
"""
|
|
||||||
Get temperature setpoints
|
|
||||||
:return: temperature setpoints
|
|
||||||
"""
|
|
||||||
return self._temperature_setpoints
|
|
||||||
|
|
||||||
@property
|
|
||||||
def hvac_schedules(self):
|
|
||||||
"""
|
|
||||||
Get HVAC schedules
|
|
||||||
:return: HVAC schedules
|
|
||||||
"""
|
|
||||||
return self._hvac_schedules
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
"""
|
|
||||||
Building module
|
|
||||||
SPDX - License - Identifier: LGPL - 3.0 - or -later
|
|
||||||
Copyright © 2020 Project Author Sanam Dabirian sanam.dabirian@mail.concordia.ca
|
|
||||||
"""
|
|
||||||
from city_model_structure.attributes.facility import Facility
|
|
||||||
|
|
||||||
|
|
||||||
class Lighting(Facility):
|
|
||||||
"""
|
|
||||||
Lighting facilities class
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, electric_power, operation_schedules, convective_fraction, latent_fraction, radiant_fraction,
|
|
||||||
total_value_of_heat_dissipation):
|
|
||||||
super().__init__(operation_schedules, convective_fraction, latent_fraction, radiant_fraction,
|
|
||||||
total_value_of_heat_dissipation)
|
|
||||||
"""
|
|
||||||
Constructor
|
|
||||||
"""
|
|
||||||
|
|
||||||
self._electric_power = electric_power
|
|
||||||
|
|
||||||
@property
|
|
||||||
def electric_power(self):
|
|
||||||
"""
|
|
||||||
Get lighting electric power
|
|
||||||
:return: lighting electric power
|
|
||||||
"""
|
|
||||||
return self._electric_power
|
|
|
@ -5,8 +5,10 @@ Copyright © 2020 Project Author Sanam Dabirian sanam.dabirian@mail.concordia.ca
|
||||||
Contributors Pilar Monsalvete Álvarez de Uribarri pilar.monsalvete@concordia.ca
|
Contributors Pilar Monsalvete Álvarez de Uribarri pilar.monsalvete@concordia.ca
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from typing import TypeVar
|
||||||
import calendar as cal
|
import calendar as cal
|
||||||
from city_model_structure.attributes.usage_zone import UsageZone
|
|
||||||
|
UsageZone = TypeVar('UsageZone')
|
||||||
|
|
||||||
|
|
||||||
class Occupants:
|
class Occupants:
|
||||||
|
@ -19,11 +21,10 @@ class Occupants:
|
||||||
Constructor
|
Constructor
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self._internal_heat_gain = None
|
|
||||||
self._heat_dissipation = None
|
self._heat_dissipation = None
|
||||||
self._occupancy_rate = None
|
self._occupancy_rate = None
|
||||||
self._occupant_type = None
|
self._occupant_type = None
|
||||||
self._occupant_zone = None
|
self._usage_zone = None
|
||||||
self._occupant_schedule = None
|
self._occupant_schedule = None
|
||||||
self._number_of_occupants = None
|
self._number_of_occupants = None
|
||||||
self._arrival_time = None
|
self._arrival_time = None
|
||||||
|
@ -33,23 +34,6 @@ class Occupants:
|
||||||
self._pd_of_meetings_duration = None
|
self._pd_of_meetings_duration = None
|
||||||
self._complete_year_schedule = None
|
self._complete_year_schedule = None
|
||||||
|
|
||||||
@property
|
|
||||||
def internal_heat_gain(self):
|
|
||||||
"""
|
|
||||||
Get internal heat gain of occupants in W/person
|
|
||||||
:return: float
|
|
||||||
"""
|
|
||||||
return self._internal_heat_gain
|
|
||||||
|
|
||||||
@internal_heat_gain.setter
|
|
||||||
def internal_heat_gain(self, value):
|
|
||||||
"""
|
|
||||||
Set internal heat gain of occupants in W/person
|
|
||||||
:param value: float
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
self._internal_heat_gain = value
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def heat_dissipation(self):
|
def heat_dissipation(self):
|
||||||
"""
|
"""
|
||||||
|
@ -102,12 +86,12 @@ class Occupants:
|
||||||
self._occupant_type = value
|
self._occupant_type = value
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def occupant_zone(self) -> UsageZone:
|
def usage_zone(self) -> UsageZone:
|
||||||
"""
|
"""
|
||||||
Get the zone an occupant is in
|
Get the zone an occupant is in
|
||||||
:return: UsageZone
|
:return: UsageZone
|
||||||
"""
|
"""
|
||||||
return self._occupant_zone
|
return self._usage_zone
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def occupant_schedule(self):
|
def occupant_schedule(self):
|
||||||
|
|
|
@ -10,6 +10,7 @@ from city_model_structure.attributes.thermal_opening import ThermalOpening
|
||||||
from city_model_structure.attributes.surface import Surface
|
from city_model_structure.attributes.surface import Surface
|
||||||
|
|
||||||
ThermalZone = TypeVar('ThermalZone')
|
ThermalZone = TypeVar('ThermalZone')
|
||||||
|
Polygon = TypeVar('Polygon')
|
||||||
|
|
||||||
|
|
||||||
class ThermalBoundary:
|
class ThermalBoundary:
|
||||||
|
@ -32,13 +33,7 @@ class ThermalBoundary:
|
||||||
self._he = None
|
self._he = None
|
||||||
self._window_ratio = None
|
self._window_ratio = None
|
||||||
self._refurbishment_measure = None
|
self._refurbishment_measure = None
|
||||||
|
self._surface_geometry = None
|
||||||
# todo: to discuss with @Guille: 1. emissivity is a function of absorptance
|
|
||||||
# 2. pg 17: fraction and surface -> NO
|
|
||||||
self._emissivity = None
|
|
||||||
|
|
||||||
# todo: @Guille
|
|
||||||
self._polygon = None
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def surface(self) -> Surface:
|
def surface(self) -> Surface:
|
||||||
|
@ -302,3 +297,11 @@ class ThermalBoundary:
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
self._he = value
|
self._he = value
|
||||||
|
|
||||||
|
@property
|
||||||
|
def surface_geometry(self) -> Polygon:
|
||||||
|
"""
|
||||||
|
Get the polygon that defines the thermal boundary
|
||||||
|
:return: Polygon
|
||||||
|
"""
|
||||||
|
return self._surface_geometry
|
||||||
|
|
|
@ -4,6 +4,9 @@ SPDX - License - Identifier: LGPL - 3.0 - or -later
|
||||||
Copyright © 2020 Project Author Guille Gutierrez guillermo.gutierrezmorote@concordia.ca
|
Copyright © 2020 Project Author Guille Gutierrez guillermo.gutierrezmorote@concordia.ca
|
||||||
Contributors Pilar Monsalvete Álvarez de Uribarri pilar.monsalvete@concordia.ca
|
Contributors Pilar Monsalvete Álvarez de Uribarri pilar.monsalvete@concordia.ca
|
||||||
"""
|
"""
|
||||||
|
from typing import TypeVar
|
||||||
|
|
||||||
|
Polygon = TypeVar('Polygon')
|
||||||
|
|
||||||
|
|
||||||
class ThermalOpening:
|
class ThermalOpening:
|
||||||
|
@ -22,9 +25,7 @@ class ThermalOpening:
|
||||||
self._overall_u_value = None
|
self._overall_u_value = None
|
||||||
self._hi = None
|
self._hi = None
|
||||||
self._he = None
|
self._he = None
|
||||||
|
self._surface_geometry = None
|
||||||
# todo: discuss with @Guille
|
|
||||||
self._polygon = None
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def area(self):
|
def area(self):
|
||||||
|
@ -217,3 +218,11 @@ class ThermalOpening:
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
self._he = value
|
self._he = value
|
||||||
|
|
||||||
|
@property
|
||||||
|
def surface_geometry(self) -> Polygon:
|
||||||
|
"""
|
||||||
|
Get the polygon that defines the thermal opening
|
||||||
|
:return: Polygon
|
||||||
|
"""
|
||||||
|
return self._surface_geometry
|
||||||
|
|
|
@ -4,10 +4,12 @@ SPDX - License - Identifier: LGPL - 3.0 - or -later
|
||||||
Copyright © 2020 Project Author Pilar Monsalvete pilar_monsalvete@yahoo.es
|
Copyright © 2020 Project Author Pilar Monsalvete pilar_monsalvete@yahoo.es
|
||||||
Contributors Guille Gutierrez guillermo.gutierrezmorote@concordia.ca
|
Contributors Guille Gutierrez guillermo.gutierrezmorote@concordia.ca
|
||||||
"""
|
"""
|
||||||
from typing import List
|
from typing import List, TypeVar
|
||||||
from city_model_structure.attributes.internal_gains import InternalGains
|
|
||||||
from city_model_structure.attributes.lighting import Lighting
|
InternalGains = TypeVar('InternalGains')
|
||||||
from city_model_structure.attributes.occupants import Occupants
|
Lighting = TypeVar('Lighting')
|
||||||
|
Occupants = TypeVar('Occupants')
|
||||||
|
Polyhedron = TypeVar('Polyhedron')
|
||||||
|
|
||||||
|
|
||||||
class UsageZone:
|
class UsageZone:
|
||||||
|
@ -31,6 +33,8 @@ class UsageZone:
|
||||||
self._lights = None
|
self._lights = None
|
||||||
self._heating_schedule = None
|
self._heating_schedule = None
|
||||||
self._cooling_schedule = None
|
self._cooling_schedule = None
|
||||||
|
self._ventilation_schedule = None
|
||||||
|
self._volume_geometry = None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def lights(self) -> List[Lighting]:
|
def lights(self) -> List[Lighting]:
|
||||||
|
@ -175,24 +179,24 @@ class UsageZone:
|
||||||
@property
|
@property
|
||||||
def occupants(self) -> [Occupants]:
|
def occupants(self) -> [Occupants]:
|
||||||
"""
|
"""
|
||||||
Get occupancy data
|
Get occupants data
|
||||||
:return: [Occupancy]
|
:return: [Occupants]
|
||||||
"""
|
"""
|
||||||
return self._occupants
|
return self._occupants
|
||||||
|
|
||||||
@occupants.setter
|
@occupants.setter
|
||||||
def occupants(self, values):
|
def occupants(self, values):
|
||||||
"""
|
"""
|
||||||
Set occupancy
|
Set occupants data
|
||||||
:param values: [Occupancy]
|
:param values: [Occupants]
|
||||||
"""
|
"""
|
||||||
self._occupants = values
|
self._occupants = values
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def heating_schedule(self):
|
def heating_schedule(self):
|
||||||
"""
|
"""
|
||||||
Get heating schedule: list of 0, 1 that define whether the heating system is OFF or ON
|
Get heating schedule: list of 0, 1 that define whether the heating system should be OFF or ON
|
||||||
:return: dict{DtaFrame(int)}
|
:return: dict{DataFrame(int)}
|
||||||
"""
|
"""
|
||||||
return self._heating_schedule
|
return self._heating_schedule
|
||||||
|
|
||||||
|
@ -200,15 +204,15 @@ class UsageZone:
|
||||||
def heating_schedule(self, values):
|
def heating_schedule(self, values):
|
||||||
"""
|
"""
|
||||||
heating schedule
|
heating schedule
|
||||||
:param values: dict{DtaFrame(int)}
|
:param values: dict{DataFrame(int)}
|
||||||
"""
|
"""
|
||||||
self._heating_schedule = values
|
self._heating_schedule = values
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def cooling_schedule(self):
|
def cooling_schedule(self):
|
||||||
"""
|
"""
|
||||||
Get cooling schedule: list of 0, 1 that define whether the heating system is OFF or ON
|
Get cooling schedule: list of 0, 1 that define whether the cooling system should be OFF or ON
|
||||||
:return: dict{DtaFrame(int)}
|
:return: dict{DataFrame(int)}
|
||||||
"""
|
"""
|
||||||
return self._cooling_schedule
|
return self._cooling_schedule
|
||||||
|
|
||||||
|
@ -216,10 +220,26 @@ class UsageZone:
|
||||||
def cooling_schedule(self, values):
|
def cooling_schedule(self, values):
|
||||||
"""
|
"""
|
||||||
cooling schedule
|
cooling schedule
|
||||||
:param values: dict{DtaFrame(int)}
|
:param values: dict{DataFrame(int)}
|
||||||
"""
|
"""
|
||||||
self._cooling_schedule = values
|
self._cooling_schedule = values
|
||||||
|
|
||||||
|
@property
|
||||||
|
def ventilation_schedule(self):
|
||||||
|
"""
|
||||||
|
Get ventilation schedule: list of 0, 1 that define whether the ventilation system should be OFF or ON
|
||||||
|
:return: dict{DataFrame(int)}
|
||||||
|
"""
|
||||||
|
return self._ventilation_schedule
|
||||||
|
|
||||||
|
@ventilation_schedule.setter
|
||||||
|
def ventilation_schedule(self, values):
|
||||||
|
"""
|
||||||
|
ventilation_schedule schedule
|
||||||
|
:param values: dict{DataFrame(int)}
|
||||||
|
"""
|
||||||
|
self._ventilation_schedule = values
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def occupancy_density(self):
|
def occupancy_density(self):
|
||||||
"""
|
"""
|
||||||
|
@ -283,3 +303,11 @@ class UsageZone:
|
||||||
:param values: float
|
:param values: float
|
||||||
"""
|
"""
|
||||||
self._electrical_app_average_consumption_sqm_year = values
|
self._electrical_app_average_consumption_sqm_year = values
|
||||||
|
|
||||||
|
@property
|
||||||
|
def volume_geometry(self) -> Polyhedron:
|
||||||
|
"""
|
||||||
|
Get the polyhedron defined by the thermal zone
|
||||||
|
:return: Polyhedron
|
||||||
|
"""
|
||||||
|
return self._volume_geometry
|
||||||
|
|
Loading…
Reference in New Issue
Block a user