forked from s_ranjbar/city_retrofit
changed in data ACH to 1/s all Wh in J
This commit is contained in:
parent
04ef636423
commit
ab81edc33d
|
@ -318,7 +318,7 @@ class Building(CityObject):
|
|||
@property
|
||||
def heating_demand(self) -> dict:
|
||||
"""
|
||||
Get heating demand in Wh
|
||||
Get heating demand in J
|
||||
:return: dict{[float]}
|
||||
"""
|
||||
return self._heating_demand
|
||||
|
@ -326,7 +326,7 @@ class Building(CityObject):
|
|||
@heating_demand.setter
|
||||
def heating_demand(self, value):
|
||||
"""
|
||||
Set heating demand in Wh
|
||||
Set heating demand in J
|
||||
:param value: dict{[float]}
|
||||
"""
|
||||
self._heating_demand = value
|
||||
|
@ -334,7 +334,7 @@ class Building(CityObject):
|
|||
@property
|
||||
def cooling_demand(self) -> dict:
|
||||
"""
|
||||
Get cooling demand in Wh
|
||||
Get cooling demand in J
|
||||
:return: dict{[float]}
|
||||
"""
|
||||
return self._cooling_demand
|
||||
|
@ -342,7 +342,7 @@ class Building(CityObject):
|
|||
@cooling_demand.setter
|
||||
def cooling_demand(self, value):
|
||||
"""
|
||||
Set cooling demand in Wh
|
||||
Set cooling demand in J
|
||||
:param value: dict{[float]}
|
||||
"""
|
||||
self._cooling_demand = value
|
||||
|
@ -350,7 +350,7 @@ class Building(CityObject):
|
|||
@property
|
||||
def lighting_electrical_demand(self) -> dict:
|
||||
"""
|
||||
Get lighting electrical demand in Wh
|
||||
Get lighting electrical demand in J
|
||||
:return: dict{[float]}
|
||||
"""
|
||||
return self._lighting_electrical_demand
|
||||
|
@ -358,7 +358,7 @@ class Building(CityObject):
|
|||
@lighting_electrical_demand.setter
|
||||
def lighting_electrical_demand(self, value):
|
||||
"""
|
||||
Set lighting electrical demand in Wh
|
||||
Set lighting electrical demand in J
|
||||
:param value: dict{[float]}
|
||||
"""
|
||||
self._lighting_electrical_demand = value
|
||||
|
@ -366,7 +366,7 @@ class Building(CityObject):
|
|||
@property
|
||||
def appliances_electrical_demand(self) -> dict:
|
||||
"""
|
||||
Get appliances electrical demand in Wh
|
||||
Get appliances electrical demand in J
|
||||
:return: dict{[float]}
|
||||
"""
|
||||
return self._appliances_electrical_demand
|
||||
|
@ -374,7 +374,7 @@ class Building(CityObject):
|
|||
@appliances_electrical_demand.setter
|
||||
def appliances_electrical_demand(self, value):
|
||||
"""
|
||||
Set appliances electrical demand in Wh
|
||||
Set appliances electrical demand in J
|
||||
:param value: dict{[float]}
|
||||
"""
|
||||
self._appliances_electrical_demand = value
|
||||
|
@ -382,7 +382,7 @@ class Building(CityObject):
|
|||
@property
|
||||
def domestic_hot_water_heat_demand(self) -> dict:
|
||||
"""
|
||||
Get domestic hot water heat demand in Wh
|
||||
Get domestic hot water heat demand in J
|
||||
:return: dict{[float]}
|
||||
"""
|
||||
return self._domestic_hot_water_heat_demand
|
||||
|
@ -390,7 +390,7 @@ class Building(CityObject):
|
|||
@domestic_hot_water_heat_demand.setter
|
||||
def domestic_hot_water_heat_demand(self, value):
|
||||
"""
|
||||
Set domestic hot water heat demand in Wh
|
||||
Set domestic hot water heat demand in J
|
||||
:param value: dict{[float]}
|
||||
"""
|
||||
self._domestic_hot_water_heat_demand = value
|
||||
|
@ -447,7 +447,8 @@ class Building(CityObject):
|
|||
monthly_values = PeakLoads(self).heating_peak_loads_from_methodology
|
||||
if monthly_values is None:
|
||||
return None
|
||||
results[cte.MONTH] = monthly_values
|
||||
# todo: @Pilar!!!!
|
||||
results[cte.MONTH] = monthly_values * cte.WATTS_HOUR_TO_JULES
|
||||
results[cte.YEAR] = [max(monthly_values)]
|
||||
return results
|
||||
|
||||
|
@ -464,7 +465,8 @@ class Building(CityObject):
|
|||
monthly_values = PeakLoads(self).cooling_peak_loads_from_methodology
|
||||
if monthly_values is None:
|
||||
return None
|
||||
results[cte.MONTH] = monthly_values
|
||||
# todo: @Pilar!!!!
|
||||
results[cte.MONTH] = monthly_values * cte.WATTS_HOUR_TO_JULES
|
||||
results[cte.YEAR] = [max(monthly_values)]
|
||||
return results
|
||||
|
||||
|
@ -618,7 +620,7 @@ class Building(CityObject):
|
|||
@property
|
||||
def heating_consumption(self):
|
||||
"""
|
||||
Get energy consumption for heating according to the heating system installed in Wh
|
||||
Get energy consumption for heating according to the heating system installed in J
|
||||
return: dict
|
||||
"""
|
||||
if len(self._heating_consumption) == 0:
|
||||
|
@ -634,7 +636,7 @@ class Building(CityObject):
|
|||
@property
|
||||
def cooling_consumption(self):
|
||||
"""
|
||||
Get energy consumption for cooling according to the cooling system installed in Wh
|
||||
Get energy consumption for cooling according to the cooling system installed in J
|
||||
return: dict
|
||||
"""
|
||||
if len(self._cooling_consumption) == 0:
|
||||
|
@ -650,7 +652,7 @@ class Building(CityObject):
|
|||
@property
|
||||
def domestic_hot_water_consumption(self):
|
||||
"""
|
||||
Get energy consumption for domestic according to the domestic hot water system installed in Wh
|
||||
Get energy consumption for domestic according to the domestic hot water system installed in J
|
||||
return: dict
|
||||
"""
|
||||
if len(self._domestic_hot_water_consumption) == 0:
|
||||
|
@ -692,7 +694,7 @@ class Building(CityObject):
|
|||
@property
|
||||
def distribution_systems_electrical_consumption(self):
|
||||
"""
|
||||
Get total electricity consumption for distribution and emission systems in Wh
|
||||
Get total electricity consumption for distribution and emission systems in J
|
||||
return: dict
|
||||
"""
|
||||
if len(self._distribution_systems_electrical_consumption) != 0:
|
||||
|
|
|
@ -208,7 +208,7 @@ class CityObject:
|
|||
@property
|
||||
def global_horizontal(self) -> dict:
|
||||
"""
|
||||
Get global horizontal radiation surrounding the city object in W/m2
|
||||
Get global horizontal radiation surrounding the city object in J/m2
|
||||
:return: dict{dict{[float]}}
|
||||
"""
|
||||
return self._global_horizontal
|
||||
|
@ -216,7 +216,7 @@ class CityObject:
|
|||
@global_horizontal.setter
|
||||
def global_horizontal(self, value):
|
||||
"""
|
||||
Set global horizontal radiation surrounding the city object in W/m2
|
||||
Set global horizontal radiation surrounding the city object in J/m2
|
||||
:param value: dict{dict{[float]}}
|
||||
"""
|
||||
self._global_horizontal = value
|
||||
|
@ -224,7 +224,7 @@ class CityObject:
|
|||
@property
|
||||
def diffuse(self) -> dict:
|
||||
"""
|
||||
Get diffuse radiation surrounding the city object in W/m2
|
||||
Get diffuse radiation surrounding the city object in J/m2
|
||||
:return: dict{dict{[float]}}
|
||||
"""
|
||||
return self._diffuse
|
||||
|
@ -232,7 +232,7 @@ class CityObject:
|
|||
@diffuse.setter
|
||||
def diffuse(self, value):
|
||||
"""
|
||||
Set diffuse radiation surrounding the city object in W/m2
|
||||
Set diffuse radiation surrounding the city object in J/m2
|
||||
:param value: dict{dict{[float]}}
|
||||
"""
|
||||
self._diffuse = value
|
||||
|
@ -240,7 +240,7 @@ class CityObject:
|
|||
@property
|
||||
def beam(self) -> dict:
|
||||
"""
|
||||
Get beam radiation surrounding the city object in W/m2
|
||||
Get beam radiation surrounding the city object in J/m2
|
||||
:return: dict{dict{[float]}}
|
||||
"""
|
||||
return self._beam
|
||||
|
@ -248,7 +248,7 @@ class CityObject:
|
|||
@beam.setter
|
||||
def beam(self, value):
|
||||
"""
|
||||
Set beam radiation surrounding the city object in W/m2
|
||||
Set beam radiation surrounding the city object in J/m2
|
||||
:param value: dict{dict{[float]}}
|
||||
"""
|
||||
self._beam = value
|
||||
|
|
|
@ -66,8 +66,9 @@ class SimplifiedRadiosityAlgorithm:
|
|||
else:
|
||||
i = (total_days + day - 1) * 24 + hour - 1
|
||||
representative_building = self._city.buildings[0]
|
||||
content += f'{day} {month} {hour} {representative_building.global_horizontal[cte.HOUR][i]} ' \
|
||||
f'{representative_building.beam[cte.HOUR][i]}\n'
|
||||
_global = representative_building.global_horizontal[cte.HOUR][i] * cte.WATTS_HOUR_TO_JULES
|
||||
_beam = representative_building.beam[cte.HOUR][i] * cte.WATTS_HOUR_TO_JULES
|
||||
content += f'{day} {month} {hour} {_global} {_beam}\n'
|
||||
with open(file, 'w', encoding='utf-8') as file:
|
||||
file.write(content)
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ class InselMonthlyEnergyBalance:
|
|||
demand = str(line).replace("['", '').replace("']", '').split()
|
||||
for i in range(0, 2):
|
||||
if demand[i] != 'NaN':
|
||||
aux = float(demand[i]) * 1000 # kWh to Wh
|
||||
aux = float(demand[i]) * cte.WATTS_HOUR_TO_JULES * 1000 # kWh to J
|
||||
demand[i] = str(aux)
|
||||
else:
|
||||
demand[i] = '0'
|
||||
|
@ -66,7 +66,8 @@ class InselMonthlyEnergyBalance:
|
|||
for value in schedule.values:
|
||||
total_day += value
|
||||
for day_type in schedule.day_types:
|
||||
total_lighting += total_day * cte.WEEK_DAYS_A_MONTH[day_type][month] * lighting_density
|
||||
total_lighting += total_day * cte.WEEK_DAYS_A_MONTH[day_type][month] \
|
||||
* lighting_density / cte.WATTS_HOUR_TO_JULES
|
||||
lighting_demand.append(total_lighting * area)
|
||||
|
||||
for schedule in thermal_zone.appliances.schedules:
|
||||
|
@ -74,7 +75,8 @@ class InselMonthlyEnergyBalance:
|
|||
for value in schedule.values:
|
||||
total_day += value
|
||||
for day_type in schedule.day_types:
|
||||
total_appliances += total_day * cte.WEEK_DAYS_A_MONTH[day_type][month] * appliances_density
|
||||
total_appliances += total_day * cte.WEEK_DAYS_A_MONTH[day_type][month] \
|
||||
* appliances_density / cte.WATTS_HOUR_TO_JULES
|
||||
appliances_demand.append(total_appliances * area)
|
||||
|
||||
for schedule in thermal_zone.domestic_hot_water.schedules:
|
||||
|
@ -83,7 +85,8 @@ class InselMonthlyEnergyBalance:
|
|||
total_day += value
|
||||
for day_type in schedule.day_types:
|
||||
demand = (
|
||||
peak_flow * cte.WATER_DENSITY * cte.WATER_HEAT_CAPACITY * (service_temperature - cold_water[month])
|
||||
peak_flow * cte.WATER_DENSITY * cte.WATER_HEAT_CAPACITY
|
||||
* (service_temperature - cold_water[month]) / cte.WATTS_HOUR_TO_JULES
|
||||
)
|
||||
total_dhw_demand += total_day * cte.WEEK_DAYS_A_MONTH[day_type][month] * demand
|
||||
domestic_hot_water_demand.append(total_dhw_demand * area)
|
||||
|
@ -97,14 +100,15 @@ class InselMonthlyEnergyBalance:
|
|||
|
||||
def enrich(self):
|
||||
"""
|
||||
Enrich the city by using the insel monthly energy balance output files
|
||||
Enrich the city by using the insel monthly energy balance output files (J)
|
||||
:return: None
|
||||
"""
|
||||
for building in self._city.buildings:
|
||||
file_name = building.name + '.out'
|
||||
insel_output_file_path = Path(self._base_path / file_name).resolve()
|
||||
if insel_output_file_path.is_file():
|
||||
building.heating_demand[cte.MONTH], building.cooling_demand[cte.MONTH] = self._conditioning_demand(insel_output_file_path)
|
||||
building.heating_demand[cte.MONTH], building.cooling_demand[cte.MONTH] \
|
||||
= self._conditioning_demand(insel_output_file_path)
|
||||
building.heating_demand[cte.YEAR] = [sum(building.heating_demand[cte.MONTH])]
|
||||
building.cooling_demand[cte.YEAR] = [sum(building.cooling_demand[cte.MONTH])]
|
||||
self._dhw_and_electric_demand()
|
||||
|
|
|
@ -110,9 +110,10 @@ class EpwWeatherParameters:
|
|||
# new_value = pd.DataFrame(self._weather_values[['dry_bulb_temperature_c']].to_numpy(), columns=['epw'])
|
||||
# number_invalid_records = new_value[new_value.epw == 99.9].count().epw
|
||||
building.external_temperature[cte.HOUR] = self._weather_values['dry_bulb_temperature_c']
|
||||
building.global_horizontal[cte.HOUR] = self._weather_values['global_horizontal_radiation_wh_m2']
|
||||
building.diffuse[cte.HOUR] = self._weather_values['diffuse_horizontal_radiation_wh_m2']
|
||||
building.beam[cte.HOUR] = self._weather_values['direct_normal_radiation_wh_m2']
|
||||
building.global_horizontal[cte.HOUR] = self._weather_values[
|
||||
'global_horizontal_radiation_wh_m2'] / cte.WATTS_HOUR_TO_JULES
|
||||
building.diffuse[cte.HOUR] = self._weather_values['diffuse_horizontal_radiation_wh_m2'] / cte.WATTS_HOUR_TO_JULES
|
||||
building.beam[cte.HOUR] = self._weather_values['direct_normal_radiation_wh_m2'] / cte.WATTS_HOUR_TO_JULES
|
||||
building.cold_water_temperature[cte.HOUR] = wh().cold_water_temperature(building.external_temperature[cte.HOUR])
|
||||
|
||||
# create the monthly and yearly values out of the hourly
|
||||
|
|
Loading…
Reference in New Issue
Block a user