From f976040f45ecd350b03c6a74ab0124b624b456bb Mon Sep 17 00:00:00 2001 From: Saeed Ranjbar Date: Thu, 1 Feb 2024 12:23:58 -0500 Subject: [PATCH] A new attribute "dual_supply_capability" is added to NonPVGeneration class in non_pv_generation_system.py and the catalogue importer is adjusted --- .../non_pv_generation_system.py | 14 +++++++++++-- .../north_america_energy_system_catalog.py | 20 +++++++++++++++---- .../energy_systems/north_america_systems.xml | 18 ++++++++--------- 3 files changed, 37 insertions(+), 15 deletions(-) diff --git a/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py b/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py index a33490d4..5b203d01 100644 --- a/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py +++ b/hub/catalog_factories/data_models/energy_systems/non_pv_generation_system.py @@ -25,7 +25,7 @@ class NonPvGenerationSystem(GenerationSystem): maximum_cooling_supply_temperature=None, minimum_cooling_supply_temperature=None, heat_output_curve=None, heat_fuel_consumption_curve=None, heat_efficiency_curve=None, cooling_output_curve=None, cooling_fuel_consumption_curve=None, cooling_efficiency_curve=None, - distribution_systems=None, energy_storage_systems=None): + distribution_systems=None, energy_storage_systems=None, dual_supply_capability=False): super().__init__(system_id=system_id, name=name, model_name=model_name, manufacturer=manufacturer, fuel_type=fuel_type, distribution_systems=distribution_systems, energy_storage_systems=energy_storage_systems) self._system_type = system_type @@ -53,6 +53,7 @@ class NonPvGenerationSystem(GenerationSystem): self._cooling_output_curve = cooling_output_curve self._cooling_fuel_consumption_curve = cooling_fuel_consumption_curve self._cooling_efficiency_curve = cooling_efficiency_curve + self._dual_supply_capability = dual_supply_capability @property def system_type(self): @@ -254,6 +255,14 @@ class NonPvGenerationSystem(GenerationSystem): """ return self._cooling_efficiency_curve + @property + def dual_supply_capability(self): + """ + Get dual supply capability + :return: bool + """ + return self._dual_supply_capability + def to_dictionary(self): """Class content to dictionary""" _distribution_systems = [_distribution_system.to_dictionary() for _distribution_system in @@ -294,7 +303,8 @@ class NonPvGenerationSystem(GenerationSystem): 'cooling fuel consumption curve': self.cooling_fuel_consumption_curve, 'cooling efficiency curve': self.cooling_efficiency_curve, 'distribution systems connected': _distribution_systems, - 'storage systems connected': _energy_storage_systems + 'storage systems connected': _energy_storage_systems, + 'dual supply capability': self.dual_supply_capability } } return content diff --git a/hub/catalog_factories/energy_systems/north_america_energy_system_catalog.py b/hub/catalog_factories/energy_systems/north_america_energy_system_catalog.py index 6ba78dfb..fed83211 100644 --- a/hub/catalog_factories/energy_systems/north_america_energy_system_catalog.py +++ b/hub/catalog_factories/energy_systems/north_america_energy_system_catalog.py @@ -56,6 +56,9 @@ class NorthAmericaEnergySystemCatalog(Catalog): boiler_maximum_heat_output = float(boiler['@maximumHeatOutput']) boiler_minimum_heat_output = float(boiler['@minimumHeatOutput']) boiler_heat_efficiency = float(boiler['@nominalEfficiency']) + dual_supply = False + if '@dual_supply' in boiler.keys() and boiler['@dual_supply'] == 'True': + dual_supply = True boiler_component = NonPvGenerationSystem(boiler_id, name=name, system_type=system_type, @@ -65,7 +68,8 @@ class NorthAmericaEnergySystemCatalog(Catalog): nominal_heat_output=boiler_nominal_thermal_output, maximum_heat_output=boiler_maximum_heat_output, minimum_heat_output=boiler_minimum_heat_output, - heat_efficiency=boiler_heat_efficiency) + heat_efficiency=boiler_heat_efficiency, + dual_supply_capability=dual_supply) generation_components.append(boiler_component) for heat_pump in heat_pumps: heat_pump_id = heat_pump['@generation_id'] @@ -89,6 +93,9 @@ class NorthAmericaEnergySystemCatalog(Catalog): parameters = heat_pump['performance_curve']['parameters'] coefficients = list(heat_pump['performance_curve']['coefficients'].values()) cop_curve = PerformanceCurves(cop_curve_type, dependant_variable, parameters, coefficients) + dual_supply = False + if '@dual_supply' in heat_pump.keys() and heat_pump['@dual_supply'] == 'True': + dual_supply = True heat_pump_component = NonPvGenerationSystem(heat_pump_id, name=name, @@ -106,7 +113,8 @@ class NorthAmericaEnergySystemCatalog(Catalog): minimum_heat_supply_temperature=heat_pump_minimum_heat_supply_temperature, maximum_cooling_supply_temperature=heat_pump_maximum_cooling_supply_temperature, minimum_cooling_supply_temperature=heat_pump_minimum_cooling_supply_temperature, - heat_efficiency_curve=cop_curve) + heat_efficiency_curve=cop_curve, + dual_supply_capability=dual_supply) generation_components.append(heat_pump_component) for pv in photovoltaics: pv_id = pv['@generation_id'] @@ -143,6 +151,8 @@ class NorthAmericaEnergySystemCatalog(Catalog): for template in templates: system_id = template['@generation_id'] system_name = template['@name'] + if '@dual_supply' in template.keys() and template['@dual_supply'] == 'True': + dual_supply = True if 'storage_id' in template.keys(): storage_component = template['storage_id'] storage_systems = self._search_storage_equipment(self._load_storage_components(), storage_component) @@ -158,7 +168,8 @@ class NorthAmericaEnergySystemCatalog(Catalog): system_type=system_type, fuel_type=fuel_type, heat_efficiency=heat_efficiency, - energy_storage_systems=energy_storage_system) + energy_storage_systems=energy_storage_system, + dual_supply_capability=dual_supply) generation_components.append(boiler_template) elif "Heat Pump" in system_name: system_type = 'heat pump' @@ -173,7 +184,8 @@ class NorthAmericaEnergySystemCatalog(Catalog): supply_medium=supply_medium, fuel_type=fuel_type, heat_efficiency=heat_efficiency, - energy_storage_systems=energy_storage_system) + energy_storage_systems=energy_storage_system, + dual_supply_capability=dual_supply) generation_components.append(heat_pump_template) else: electricity_efficiency = float(template['@nominalEfficiency']) diff --git a/hub/data/energy_systems/north_america_systems.xml b/hub/data/energy_systems/north_america_systems.xml index f7c9eb3a..9ce9a4fe 100644 --- a/hub/data/energy_systems/north_america_systems.xml +++ b/hub/data/energy_systems/north_america_systems.xml @@ -17,7 +17,7 @@ - + COP source_temperature @@ -25,7 +25,7 @@ - + COP source_temperature @@ -33,7 +33,7 @@ - + COP source_temperature @@ -47,20 +47,20 @@ 6 - + 6 - + 6 - + 6 - - - + + +