diff --git a/hub/catalog_factories/construction/eilat_catalog.py b/hub/catalog_factories/construction/eilat_catalog.py index 43f889c2..8868f3e1 100644 --- a/hub/catalog_factories/construction/eilat_catalog.py +++ b/hub/catalog_factories/construction/eilat_catalog.py @@ -22,6 +22,7 @@ class EilatCatalog(Catalog): """ Eilat catalog class """ + def __init__(self, path): _path_archetypes = Path(path / 'eilat_archetypes.json').resolve() _path_constructions = (path / 'eilat_constructions.json').resolve() @@ -121,8 +122,10 @@ class EilatCatalog(Catalog): construction_period = archetype['period_of_construction'] average_storey_height = archetype['average_storey_height'] extra_loses_due_to_thermal_bridges = archetype['extra_loses_due_thermal_bridges'] - infiltration_rate_for_ventilation_system_off = archetype['infiltration_rate_for_ventilation_system_off'] / cte.HOUR_TO_SECONDS - infiltration_rate_for_ventilation_system_on = archetype['infiltration_rate_for_ventilation_system_on'] / cte.HOUR_TO_SECONDS + infiltration_rate_for_ventilation_system_off = archetype[ + 'infiltration_rate_for_ventilation_system_off'] / cte.HOUR_TO_SECONDS + infiltration_rate_for_ventilation_system_on = archetype[ + 'infiltration_rate_for_ventilation_system_on'] / cte.HOUR_TO_SECONDS archetype_constructions = [] for archetype_construction in archetype['constructions']: @@ -160,7 +163,9 @@ class EilatCatalog(Catalog): extra_loses_due_to_thermal_bridges, None, infiltration_rate_for_ventilation_system_off, - infiltration_rate_for_ventilation_system_on)) + infiltration_rate_for_ventilation_system_on, + 0, + 0)) return _catalog_archetypes def names(self, category=None): diff --git a/hub/catalog_factories/construction/nrel_catalog.py b/hub/catalog_factories/construction/nrel_catalog.py index da31fd9f..6236a420 100644 --- a/hub/catalog_factories/construction/nrel_catalog.py +++ b/hub/catalog_factories/construction/nrel_catalog.py @@ -162,7 +162,9 @@ class NrelCatalog(Catalog): extra_loses_due_to_thermal_bridges, indirect_heated_ratio, infiltration_rate_for_ventilation_system_off, - infiltration_rate_for_ventilation_system_on)) + infiltration_rate_for_ventilation_system_on, + 0, + 0)) return _catalog_archetypes def names(self, category=None): diff --git a/hub/imports/results/ep_multiple_buildings.py b/hub/imports/results/ep_multiple_buildings.py index bd9a2dd3..71d62763 100644 --- a/hub/imports/results/ep_multiple_buildings.py +++ b/hub/imports/results/ep_multiple_buildings.py @@ -24,7 +24,7 @@ class EnergyPlusMultipleBuildings: csv_output = list(csv.DictReader(csv_file)) for building in self._city.buildings: - building_name = building.name + building_name = building.name.upper() buildings_energy_demands[f'Building {building_name} Heating Demand (J)'] = [ float( row[f"{building_name} IDEAL LOADS AIR SYSTEM:Zone Ideal Loads Supply Air Total Heating Energy [J](Hourly)"]) @@ -36,7 +36,7 @@ class EnergyPlusMultipleBuildings: for row in csv_output ] buildings_energy_demands[f'Building {building_name} DHW Demand (W)'] = [ - float(row[f"DHW {building.name}:Water Use Equipment Heating Rate [W](Hourly)"]) + float(row[f"DHW {building_name}:Water Use Equipment Heating Rate [W](Hourly)"]) for row in csv_output ] buildings_energy_demands[f'Building {building_name} Appliances (W)'] = [ @@ -58,14 +58,15 @@ class EnergyPlusMultipleBuildings: if energy_plus_output_file_path.is_file(): building_energy_demands = self._building_energy_demands(energy_plus_output_file_path) for building in self._city.buildings: - building.heating_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Heating Demand (J)'] - building.cooling_demand[cte.HOUR] = building_energy_demands[f'Building {building.name} Cooling Demand (J)'] + building_name = building.name.upper() + building.heating_demand[cte.HOUR] = building_energy_demands[f'Building {building_name} Heating Demand (J)'] + building.cooling_demand[cte.HOUR] = building_energy_demands[f'Building {building_name} Cooling Demand (J)'] building.domestic_hot_water_heat_demand[cte.HOUR] = \ - [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} DHW Demand (W)']] + [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building_name} DHW Demand (W)']] building.appliances_electrical_demand[cte.HOUR] = \ - [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} Appliances (W)']] + [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building_name} Appliances (W)']] building.lighting_electrical_demand[cte.HOUR] = \ - [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building.name} Lighting (W)']] + [x * cte.WATTS_HOUR_TO_JULES for x in building_energy_demands[f'Building {building_name} Lighting (W)']] building.heating_demand[cte.MONTH] = MonthlyValues.get_total_month(building.heating_demand[cte.HOUR]) building.cooling_demand[cte.MONTH] = MonthlyValues.get_total_month(building.cooling_demand[cte.HOUR]) building.domestic_hot_water_heat_demand[cte.MONTH] = ( diff --git a/setup.py b/setup.py index 7c2df9ca..8af11db8 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ with pathlib.Path('requirements.txt').open() as r: for requirement in r.readlines() ] -install_requires.append('setuptools') +install_requires.append('setuptools, build') main_ns = {} version = convert_path('hub/version.py') diff --git a/texttest b/texttest deleted file mode 100644 index b5147f2b..00000000 --- a/texttest +++ /dev/null @@ -1,142 +0,0 @@ -ZoneControl:Thermostat, - Room_180_7ad8616b Thermostat, !- Name - Room_180_7ad8616b, !- Zone or ZoneList Name - Room_180_7ad8616b Thermostat Schedule, !- Control Type Schedule Name - ThermostatSetpoint:DualSetpoint, !- Control 1 Object Type - LargeOffice Building_Setpoint 26, !- Control 1 Name - , !- Control 2 Object Type - , !- Control 2 Name - , !- Control 3 Object Type - , !- Control 3 Name - , !- Control 4 Object Type - , !- Control 4 Name - 0; !- Temperature Difference Between Cutout And Setpoint {deltaC} - -Schedule:Compact, - Room_180_7ad8616b Thermostat Schedule, !- Name - Room_180_7ad8616b Thermostat Schedule Type Limits, !- Schedule Type Limits Name - Through: 12/31, !- Field 1 - For: AllDays, !- Field 2 - Until: 24:00, !- Field 3 - 4; !- Field 4 - -ScheduleTypeLimits, - Room_180_7ad8616b Thermostat Schedule Type Limits, !- Name - 0, !- Lower Limit Value {BasedOnField A3} - 4, !- Upper Limit Value {BasedOnField A3} - DISCRETE; !- Numeric Type - -ThermostatSetpoint:DualSetpoint, - LargeOffice Building_Setpoint 26, !- Name - LargeOffice Building_Setpoint_HtgSetp Schedule, !- Heating Setpoint Temperature Schedule Name - LargeOffice Building_Setpoint_ClgSetp Schedule; !- Cooling Setpoint Temperature Schedule Name - -ZoneHVAC:EquipmentConnections, - Room_180_7ad8616b, !- Zone Name - Room_180_7ad8616b Equipment List, !- Zone Conditioning Equipment List Name - Room_180_7ad8616b Inlet Node List, !- Zone Air Inlet Node or NodeList Name - , !- Zone Air Exhaust Node or NodeList Name - Node 27, !- Zone Air Node Name - Room_180_7ad8616b Return Node List; !- Zone Return Air Node or NodeList Name - -NodeList, - Room_180_7ad8616b Inlet Node List, !- Name - Node 305; !- Node Name 1 - -NodeList, - Room_180_7ad8616b Return Node List, !- Name - Node 308; !- Node Name 1 - -ZoneHVAC:Baseboard:Convective:Electric, - Elec Baseboard 1, !- Name - Always On Discrete hvac_library, !- Availability Schedule Name - , !- Heating Design Capacity Method - Autosize, !- Heating Design Capacity {W} - , !- Heating Design Capacity Per Floor Area {W/m2} - , !- Fraction of Autosized Heating Design Capacity - 1; !- Efficiency - -AirTerminal:SingleDuct:ConstantVolume:NoReheat, - Diffuser 21, !- Name - Always On Discrete hvac_library, !- Availability Schedule Name - Node 307, !- Air Inlet Node Name - Node 305, !- Air Outlet Node Name - AutoSize; !- Maximum Air Flow Rate {m3/s} - -ZoneHVAC:AirDistributionUnit, - ADU Diffuser 21, !- Name - Node 305, !- Air Distribution Unit Outlet Node Name - AirTerminal:SingleDuct:ConstantVolume:NoReheat, !- Air Terminal Object Type - Diffuser 21; !- Air Terminal Name - -ZoneHVAC:EquipmentList, - Room_180_7ad8616b Equipment List, !- Name - SequentialLoad, !- Load Distribution Scheme - ZoneHVAC:Baseboard:Convective:Electric, !- Zone Equipment Object Type 1 - Elec Baseboard 1, !- Zone Equipment Name 1 - 1, !- Zone Equipment Cooling Sequence 1 - 1, !- Zone Equipment Heating or No-Load Sequence 1 - , !- Zone Equipment Sequential Cooling Fraction Schedule Name 1 - , !- Zone Equipment Sequential Heating Fraction Schedule Name 1 - ZoneHVAC:AirDistributionUnit, !- Zone Equipment Object Type 2 - ADU Diffuser 21, !- Zone Equipment Name 2 - 2, !- Zone Equipment Cooling Sequence 2 - 2, !- Zone Equipment Heating or No-Load Sequence 2 - , !- Zone Equipment Sequential Cooling Fraction Schedule Name 2 - ; !- Zone Equipment Sequential Heating Fraction Schedule Name 2 - -Sizing:Zone, - Room_180_7ad8616b, !- Zone or ZoneList Name - SupplyAirTemperature, !- Zone Cooling Design Supply Air Temperature Input Method - 14, !- Zone Cooling Design Supply Air Temperature {C} - 11.11, !- Zone Cooling Design Supply Air Temperature Difference {deltaC} - SupplyAirTemperature, !- Zone Heating Design Supply Air Temperature Input Method - 40, !- Zone Heating Design Supply Air Temperature {C} - 11.11, !- Zone Heating Design Supply Air Temperature Difference {deltaC} - 0.0085, !- Zone Cooling Design Supply Air Humidity Ratio {kgWater/kgDryAir} - 0.008, !- Zone Heating Design Supply Air Humidity Ratio {kgWater/kgDryAir} - Room_180_7ad8616b DSOA Space List, !- Design Specification Outdoor Air Object Name - , !- Zone Heating Sizing Factor - , !- Zone Cooling Sizing Factor - DesignDay, !- Cooling Design Air Flow Method - 0, !- Cooling Design Air Flow Rate {m3/s} - 0.000762, !- Cooling Minimum Air Flow per Zone Floor Area {m3/s-m2} - 0, !- Cooling Minimum Air Flow {m3/s} - 0, !- Cooling Minimum Air Flow Fraction - DesignDay, !- Heating Design Air Flow Method - 0, !- Heating Design Air Flow Rate {m3/s} - 0.002032, !- Heating Maximum Air Flow per Zone Floor Area {m3/s-m2} - 0.1415762, !- Heating Maximum Air Flow {m3/s} - 0.3, !- Heating Maximum Air Flow Fraction - , !- Design Specification Zone Air Distribution Object Name - No, !- Account for Dedicated Outdoor Air System - , !- Dedicated Outdoor Air System Control Strategy - , !- Dedicated Outdoor Air Low Setpoint Temperature for Design {C} - , !- Dedicated Outdoor Air High Setpoint Temperature for Design {C} - Sensible Load Only No Latent Load, !- Zone Load Sizing Method - HumidityRatioDifference, !- Zone Latent Cooling Design Supply Air Humidity Ratio Input Method - , !- Zone Dehumidification Design Supply Air Humidity Ratio {kgWater/kgDryAir} - 0.005, !- Zone Cooling Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir} - HumidityRatioDifference, !- Zone Latent Heating Design Supply Air Humidity Ratio Input Method - , !- Zone Humidification Design Supply Air Humidity Ratio {kgWater/kgDryAir} - 0.005; !- Zone Humidification Design Supply Air Humidity Ratio Difference {kgWater/kgDryAir} - -DesignSpecification:OutdoorAir:SpaceList, - Room_180_7ad8616b DSOA Space List, !- Name - Room_180_7ad8616b_Space, !- Space Name 1 - MidriseApartment Apartment Ventilation; !- Space Design Specification Outdoor Air Object Name 1 - -Zone, - Room_181_3a411b5d, !- Name - , !- Direction of Relative North {deg} - 0, !- X Origin {m} - 0, !- Y Origin {m} - 0, !- Z Origin {m} - , !- Type - 1, !- Multiplier - 4, !- Ceiling Height {m} - 291.62935408288, !- Volume {m3} - , !- Floor Area {m2} - , !- Zone Inside Convection Algorithm - , !- Zone Outside Convection Algorithm - Yes; !- Part of Total Floor Area \ No newline at end of file