all test passed
This commit is contained in:
parent
ab81edc33d
commit
bdf0deb3b3
|
@ -114,8 +114,7 @@ class Building(CityObject):
|
||||||
:return: [InternalZone]
|
:return: [InternalZone]
|
||||||
"""
|
"""
|
||||||
if self._internal_zones is None:
|
if self._internal_zones is None:
|
||||||
_number_of_storeys = self.eave_height * self.volume / self.floor_area
|
self._internal_zones = [InternalZone(self.surfaces, self.floor_area, self.volume)]
|
||||||
self._internal_zones = [InternalZone(self.surfaces, self.floor_area, self.volume, _number_of_storeys)]
|
|
||||||
return self._internal_zones
|
return self._internal_zones
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
@ -447,8 +446,7 @@ class Building(CityObject):
|
||||||
monthly_values = PeakLoads(self).heating_peak_loads_from_methodology
|
monthly_values = PeakLoads(self).heating_peak_loads_from_methodology
|
||||||
if monthly_values is None:
|
if monthly_values is None:
|
||||||
return None
|
return None
|
||||||
# todo: @Pilar!!!!
|
results[cte.MONTH] = [x * cte.WATTS_HOUR_TO_JULES for x in monthly_values]
|
||||||
results[cte.MONTH] = monthly_values * cte.WATTS_HOUR_TO_JULES
|
|
||||||
results[cte.YEAR] = [max(monthly_values)]
|
results[cte.YEAR] = [max(monthly_values)]
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
@ -465,8 +463,7 @@ class Building(CityObject):
|
||||||
monthly_values = PeakLoads(self).cooling_peak_loads_from_methodology
|
monthly_values = PeakLoads(self).cooling_peak_loads_from_methodology
|
||||||
if monthly_values is None:
|
if monthly_values is None:
|
||||||
return None
|
return None
|
||||||
# todo: @Pilar!!!!
|
results[cte.MONTH] = [x * cte.WATTS_HOUR_TO_JULES for x in monthly_values]
|
||||||
results[cte.MONTH] = monthly_values * cte.WATTS_HOUR_TO_JULES
|
|
||||||
results[cte.YEAR] = [max(monthly_values)]
|
results[cte.YEAR] = [max(monthly_values)]
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
@ -772,8 +769,6 @@ class Building(CityObject):
|
||||||
Get total electricity produced onsite in J
|
Get total electricity produced onsite in J
|
||||||
return: dict
|
return: dict
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Add other systems whenever new ones appear
|
|
||||||
orientation_losses_factor = {cte.MONTH: {'north': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
orientation_losses_factor = {cte.MONTH: {'north': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
'east': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
'east': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
'south': [2.137931, 1.645503, 1.320946, 1.107817, 0.993213, 0.945175,
|
'south': [2.137931, 1.645503, 1.320946, 1.107817, 0.993213, 0.945175,
|
||||||
|
@ -784,6 +779,8 @@ class Building(CityObject):
|
||||||
'south': [1.212544],
|
'south': [1.212544],
|
||||||
'west': [0]}
|
'west': [0]}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Add other systems whenever new ones appear
|
||||||
if self.energy_systems is None:
|
if self.energy_systems is None:
|
||||||
return self._onsite_electrical_production
|
return self._onsite_electrical_production
|
||||||
for energy_system in self.energy_systems:
|
for energy_system in self.energy_systems:
|
||||||
|
|
|
@ -18,13 +18,12 @@ class InternalZone:
|
||||||
"""
|
"""
|
||||||
InternalZone class
|
InternalZone class
|
||||||
"""
|
"""
|
||||||
def __init__(self, surfaces, area, volume, number_of_storeys=None):
|
def __init__(self, surfaces, area, volume):
|
||||||
self._surfaces = surfaces
|
self._surfaces = surfaces
|
||||||
self._id = None
|
self._id = None
|
||||||
self._geometry = None
|
self._geometry = None
|
||||||
self._volume = volume
|
self._volume = volume
|
||||||
self._area = area
|
self._area = area
|
||||||
self._number_of_storeys = number_of_storeys
|
|
||||||
self._thermal_zones_from_internal_zones = None
|
self._thermal_zones_from_internal_zones = None
|
||||||
self._usages = None
|
self._usages = None
|
||||||
self._thermal_archetype = None
|
self._thermal_archetype = None
|
||||||
|
@ -132,7 +131,8 @@ class InternalZone:
|
||||||
windows_areas.append(hole.area)
|
windows_areas.append(hole.area)
|
||||||
_thermal_boundary = ThermalBoundary(surface, surface.solid_polygon.area, windows_areas)
|
_thermal_boundary = ThermalBoundary(surface, surface.solid_polygon.area, windows_areas)
|
||||||
_thermal_boundaries.append(_thermal_boundary)
|
_thermal_boundaries.append(_thermal_boundary)
|
||||||
_thermal_zone = ThermalZone(_thermal_boundaries, self, self.volume, self.area, self._number_of_storeys)
|
_number_of_storeys = int(self.volume / self.area / self.thermal_archetype.average_storey_height)
|
||||||
|
_thermal_zone = ThermalZone(_thermal_boundaries, self, self.volume, self.area, _number_of_storeys)
|
||||||
for thermal_boundary in _thermal_zone.thermal_boundaries:
|
for thermal_boundary in _thermal_zone.thermal_boundaries:
|
||||||
thermal_boundary.thermal_zones = [_thermal_zone]
|
thermal_boundary.thermal_zones = [_thermal_zone]
|
||||||
self._thermal_zones_from_internal_zones = [_thermal_zone]
|
self._thermal_zones_from_internal_zones = [_thermal_zone]
|
||||||
|
|
|
@ -90,7 +90,9 @@ class Storey:
|
||||||
:return: ThermalZone
|
:return: ThermalZone
|
||||||
"""
|
"""
|
||||||
if self._thermal_zone is None:
|
if self._thermal_zone is None:
|
||||||
self._thermal_zone = ThermalZone(self.thermal_boundaries, self._internal_zone, self.volume, self.floor_area)
|
_number_of_storeys = 1
|
||||||
|
self._thermal_zone = ThermalZone(self.thermal_boundaries, self._internal_zone,
|
||||||
|
self.volume, self.floor_area, _number_of_storeys)
|
||||||
return self._thermal_zone
|
return self._thermal_zone
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
|
@ -225,7 +225,7 @@ class InselMonthlyEnergyBalance:
|
||||||
parameters.append(thermal_opening.overall_u_value)
|
parameters.append(thermal_opening.overall_u_value)
|
||||||
parameters.append(thermal_opening.g_value)
|
parameters.append(thermal_opening.g_value)
|
||||||
if thermal_boundary.type is not cte.GROUND:
|
if thermal_boundary.type is not cte.GROUND:
|
||||||
parameters.append(thermal_boundary.parent_surface.short_wave_reflectance)
|
parameters.append(thermal_boundary.external_surface.short_wave_reflectance)
|
||||||
else:
|
else:
|
||||||
parameters.append(0.0)
|
parameters.append(0.0)
|
||||||
file = InselMonthlyEnergyBalance._add_block(file, i_block, custom_insel_block, inputs=inputs, parameters=parameters)
|
file = InselMonthlyEnergyBalance._add_block(file, i_block, custom_insel_block, inputs=inputs, parameters=parameters)
|
||||||
|
@ -259,10 +259,10 @@ class InselMonthlyEnergyBalance:
|
||||||
if cte.MONTH not in surface.global_irradiance:
|
if cte.MONTH not in surface.global_irradiance:
|
||||||
raise ValueError(f'surface: {surface.name} from building {building.name} has no global irradiance!')
|
raise ValueError(f'surface: {surface.name} from building {building.name} has no global irradiance!')
|
||||||
|
|
||||||
global_irradiance = surface.global_irradiance[cte.MONTH] * cte.WATTS_HOUR_TO_JULES
|
global_irradiance = surface.global_irradiance[cte.MONTH]
|
||||||
for j in range(0, len(global_irradiance)):
|
for j in range(0, len(global_irradiance)):
|
||||||
parameters.append(f'{j + 1} '
|
parameters.append(f'{j + 1} '
|
||||||
f'{global_irradiance[j] / 24 / _NUMBER_DAYS_PER_MONTH[j]}')
|
f'{global_irradiance[j] * cte.WATTS_HOUR_TO_JULES / 24 / _NUMBER_DAYS_PER_MONTH[j]}')
|
||||||
else:
|
else:
|
||||||
for j in range(0, 12):
|
for j in range(0, 12):
|
||||||
parameters.append(f'{j + 1} 0.0')
|
parameters.append(f'{j + 1} 0.0')
|
||||||
|
|
|
@ -34,8 +34,7 @@ class SimplifiedRadiosityAlgorithm:
|
||||||
for key in self._results:
|
for key in self._results:
|
||||||
_irradiance = {}
|
_irradiance = {}
|
||||||
header_name = key.split(':')
|
header_name = key.split(':')
|
||||||
# todo: @Pilar!!!!!!!!!!!!!!!!!!!!!!!!
|
result = [x / cte.WATTS_HOUR_TO_JULES for x in self._results[key]]
|
||||||
result = self._results[key] / cte.WATTS_HOUR_TO_JULES
|
|
||||||
city_object_name = header_name[1]
|
city_object_name = header_name[1]
|
||||||
building = self._city.city_object(city_object_name)
|
building = self._city.city_object(city_object_name)
|
||||||
surface_id = header_name[2]
|
surface_id = header_name[2]
|
||||||
|
|
|
@ -110,17 +110,21 @@ class EpwWeatherParameters:
|
||||||
# new_value = pd.DataFrame(self._weather_values[['dry_bulb_temperature_c']].to_numpy(), columns=['epw'])
|
# 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
|
# 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.external_temperature[cte.HOUR] = self._weather_values['dry_bulb_temperature_c']
|
||||||
building.global_horizontal[cte.HOUR] = self._weather_values[
|
building.global_horizontal[cte.HOUR] = [x / cte.WATTS_HOUR_TO_JULES
|
||||||
'global_horizontal_radiation_wh_m2'] / cte.WATTS_HOUR_TO_JULES
|
for x in self._weather_values['global_horizontal_radiation_wh_m2']]
|
||||||
building.diffuse[cte.HOUR] = self._weather_values['diffuse_horizontal_radiation_wh_m2'] / cte.WATTS_HOUR_TO_JULES
|
building.diffuse[cte.HOUR] = [x / cte.WATTS_HOUR_TO_JULES
|
||||||
building.beam[cte.HOUR] = self._weather_values['direct_normal_radiation_wh_m2'] / cte.WATTS_HOUR_TO_JULES
|
for x in self._weather_values['diffuse_horizontal_radiation_wh_m2']]
|
||||||
|
building.beam[cte.HOUR] = [x / cte.WATTS_HOUR_TO_JULES
|
||||||
|
for x in self._weather_values['direct_normal_radiation_wh_m2']]
|
||||||
building.cold_water_temperature[cte.HOUR] = wh().cold_water_temperature(building.external_temperature[cte.HOUR])
|
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
|
# create the monthly and yearly values out of the hourly
|
||||||
for building in self._city.buildings:
|
for building in self._city.buildings:
|
||||||
building.external_temperature[cte.MONTH] = MonthlyValues().get_mean_values(building.external_temperature[cte.HOUR])
|
building.external_temperature[cte.MONTH] = \
|
||||||
|
MonthlyValues().get_mean_values(building.external_temperature[cte.HOUR])
|
||||||
building.external_temperature[cte.YEAR] = [sum(building.external_temperature[cte.HOUR]) / 9870]
|
building.external_temperature[cte.YEAR] = [sum(building.external_temperature[cte.HOUR]) / 9870]
|
||||||
building.cold_water_temperature[cte.MONTH] = MonthlyValues().get_mean_values(building.cold_water_temperature[cte.HOUR])
|
building.cold_water_temperature[cte.MONTH] = \
|
||||||
|
MonthlyValues().get_mean_values(building.cold_water_temperature[cte.HOUR])
|
||||||
building.cold_water_temperature[cte.YEAR] = [sum(building.cold_water_temperature[cte.HOUR]) / 9870]
|
building.cold_water_temperature[cte.YEAR] = [sum(building.cold_water_temperature[cte.HOUR]) / 9870]
|
||||||
|
|
||||||
# If the usage has already being imported, the domestic hot water missing values must be calculated here that
|
# If the usage has already being imported, the domestic hot water missing values must be calculated here that
|
||||||
|
|
|
@ -51,8 +51,7 @@ class TestExports(TestCase):
|
||||||
_irradiance = {}
|
_irradiance = {}
|
||||||
for key in self._results:
|
for key in self._results:
|
||||||
header_name = key.split(':')
|
header_name = key.split(':')
|
||||||
# todo: @Pilar!!!!!!!!!!!!!!!!!!!!!!!!
|
result = [x / cte.WATTS_HOUR_TO_JULES for x in self._results[key]]
|
||||||
result = self._results[key] / cte.WATTS_HOUR_TO_JULES
|
|
||||||
city_object_name = header_name[1]
|
city_object_name = header_name[1]
|
||||||
building = self._city.city_object(city_object_name)
|
building = self._city.city_object(city_object_name)
|
||||||
surface_id = header_name[2]
|
surface_id = header_name[2]
|
||||||
|
|
|
@ -51,8 +51,7 @@ class TestExports(TestCase):
|
||||||
_irradiance = {}
|
_irradiance = {}
|
||||||
for key in self._results:
|
for key in self._results:
|
||||||
header_name = key.split(':')
|
header_name = key.split(':')
|
||||||
# todo: @Pilar!!!!!!!!!!!!!!!!!!!!!!!!
|
result = [x / cte.WATTS_HOUR_TO_JULES for x in self._results[key]]
|
||||||
result = self._results[key] / cte.WATTS_HOUR_TO_JULES
|
|
||||||
city_object_name = header_name[1]
|
city_object_name = header_name[1]
|
||||||
building = self._city.city_object(city_object_name)
|
building = self._city.city_object(city_object_name)
|
||||||
surface_id = header_name[2]
|
surface_id = header_name[2]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user