openstudio-standards 0.6.3 → 0.7.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/data/standards/OpenStudio_Standards-ashrae_90_1.xlsx +0 -0
  3. data/data/standards/manage_OpenStudio_Standards.rb +2 -49
  4. data/data/standards/openstudio_standards_duplicates_log.csv +1 -7962
  5. data/data/standards/test_performance_expected_dd_results.csv +2005 -97
  6. data/lib/openstudio-standards/create_typical/space_type_ratios.rb +47 -57
  7. data/lib/openstudio-standards/geometry/create.rb +1 -1
  8. data/lib/openstudio-standards/geometry/create_bar.rb +6 -3
  9. data/lib/openstudio-standards/geometry/create_shape.rb +1 -1
  10. data/lib/openstudio-standards/geometry/group.rb +1 -1
  11. data/lib/openstudio-standards/geometry/information.rb +1 -1
  12. data/lib/openstudio-standards/geometry/modify.rb +53 -1
  13. data/lib/openstudio-standards/infiltration/nist_infiltration.rb +1 -1
  14. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +11 -11
  15. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +11 -11
  16. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.hvac_systems.rb +2 -2
  17. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperTallBuilding.rb +44 -47
  18. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.TallBuilding.rb +43 -48
  19. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +1 -1
  20. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +44 -24
  21. data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +24 -24
  22. data/lib/openstudio-standards/schedules/parametric.rb +1 -1
  23. data/lib/openstudio-standards/service_water_heating/create_piping_losses.rb +152 -0
  24. data/lib/openstudio-standards/service_water_heating/create_water_heater.rb +544 -0
  25. data/lib/openstudio-standards/service_water_heating/create_water_heating_loop.rb +303 -0
  26. data/lib/openstudio-standards/service_water_heating/create_water_use.rb +95 -0
  27. data/lib/openstudio-standards/space/space.rb +1 -1
  28. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +65 -70
  29. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +12 -14
  30. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +16 -5
  31. data/lib/openstudio-standards/standards/Standards.Model.rb +2 -2
  32. data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +10 -2
  33. data/lib/openstudio-standards/{prototypes/common/objects/Prototype.Model.swh.rb → standards/Standards.ServiceWaterHeating.rb} +209 -139
  34. data/lib/openstudio-standards/standards/Standards.Surface.rb +1 -1
  35. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +4 -8
  36. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Model.rb +2 -2
  37. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_properties.json +22251 -12963
  38. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_sets.json +91 -91
  39. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_properties.json +8981 -5228
  40. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_properties.json +8935 -5182
  41. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_properties.json +7281 -5391
  42. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_sets.json +91 -91
  43. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.construction_properties.json +9005 -15215
  44. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.construction_sets.json +136 -136
  45. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +1 -1
  46. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.construction_properties.json +8717 -17168
  47. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.construction_sets.json +136 -136
  48. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.constructions.json +1941 -651
  49. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.construction_properties.json +135 -135
  50. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.construction_properties.json +135 -135
  51. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.construction_properties.json +36 -36
  52. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.construction_properties.json +36 -36
  53. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +377 -99
  54. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +2 -2
  55. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +3 -3
  56. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.construction_properties.json +6889 -4044
  57. data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/data/ashrae_90_1_prm_2019.prm_constructions.json +108 -108
  58. data/lib/openstudio-standards/standards/cbes/cbes_pre_1978/data/cbes_pre_1978.construction_properties.json +16 -16
  59. data/lib/openstudio-standards/standards/cbes/cbes_t24_1978/data/cbes_t24_1978.construction_properties.json +16 -16
  60. data/lib/openstudio-standards/standards/cbes/cbes_t24_1992/data/cbes_t24_1992.construction_properties.json +16 -16
  61. data/lib/openstudio-standards/standards/cbes/cbes_t24_2001/data/cbes_t24_2001.construction_properties.json +16 -16
  62. data/lib/openstudio-standards/standards/cbes/cbes_t24_2005/data/cbes_t24_2005.construction_properties.json +16 -16
  63. data/lib/openstudio-standards/standards/cbes/cbes_t24_2008/data/cbes_t24_2008.construction_properties.json +16 -16
  64. data/lib/openstudio-standards/standards/cbes/data/cbes.constructions.json +142 -142
  65. data/lib/openstudio-standards/standards/deer/data/deer.constructions.json +5 -1551
  66. data/lib/openstudio-standards/standards/deer/data/deer.materials.json +40 -0
  67. data/lib/openstudio-standards/standards/deer/deer_1985/data/deer_1985.motors.json +88 -8
  68. data/lib/openstudio-standards/standards/deer/deer_1996/data/deer_1996.motors.json +88 -8
  69. data/lib/openstudio-standards/standards/deer/deer_2003/data/deer_2003.motors.json +88 -8
  70. data/lib/openstudio-standards/standards/deer/deer_2007/data/deer_2007.motors.json +88 -8
  71. data/lib/openstudio-standards/standards/deer/deer_2011/data/deer_2011.motors.json +88 -8
  72. data/lib/openstudio-standards/standards/deer/deer_2014/data/deer_2014.motors.json +88 -8
  73. data/lib/openstudio-standards/standards/deer/deer_2015/data/deer_2015.motors.json +88 -8
  74. data/lib/openstudio-standards/standards/deer/deer_2017/data/deer_2017.motors.json +88 -8
  75. data/lib/openstudio-standards/standards/deer/deer_2020/data/deer_2020.motors.json +88 -8
  76. data/lib/openstudio-standards/standards/deer/deer_2025/data/deer_2025.motors.json +88 -8
  77. data/lib/openstudio-standards/standards/deer/deer_2030/data/deer_2030.motors.json +88 -8
  78. data/lib/openstudio-standards/standards/deer/deer_2035/data/deer_2035.motors.json +88 -8
  79. data/lib/openstudio-standards/standards/deer/deer_2040/data/deer_2040.motors.json +88 -8
  80. data/lib/openstudio-standards/standards/deer/deer_2045/data/deer_2045.motors.json +88 -8
  81. data/lib/openstudio-standards/standards/deer/deer_2050/data/deer_2050.motors.json +88 -8
  82. data/lib/openstudio-standards/standards/deer/deer_2055/data/deer_2055.motors.json +88 -8
  83. data/lib/openstudio-standards/standards/deer/deer_2060/data/deer_2060.motors.json +88 -8
  84. data/lib/openstudio-standards/standards/deer/deer_2065/data/deer_2065.motors.json +88 -8
  85. data/lib/openstudio-standards/standards/deer/deer_2070/data/deer_2070.motors.json +88 -8
  86. data/lib/openstudio-standards/standards/deer/deer_2075/data/deer_2075.motors.json +88 -8
  87. data/lib/openstudio-standards/standards/deer/deer_pre_1975/data/deer_pre_1975.motors.json +88 -8
  88. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +17 -0
  89. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +2 -1
  90. data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +4 -4
  91. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +61 -88
  92. data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +3 -2
  93. data/lib/openstudio-standards/standards/necb/NECB2011/data/boiler_fuel_type_sets.json +54 -0
  94. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/LEEPMidriseApartment.osm +1 -1
  95. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/LEEPMultiTower.osm +1 -1
  96. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/LEEPPointTower.osm +1 -1
  97. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/LEEPTownHouse.osm +1 -1
  98. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/NorthernEducation.osm +4 -4
  99. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/NorthernHealthCare.osm +4 -4
  100. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +32 -24
  101. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +89 -15
  102. data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/necb_qaqc.rb +5 -1
  103. data/lib/openstudio-standards/standards/necb/NECB2011/service_water_heating.rb +22 -65
  104. data/lib/openstudio-standards/standards/necb/NECB2011/system_fuels.rb +19 -0
  105. data/lib/openstudio-standards/standards/necb/common/btap_data.rb +56 -2
  106. data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +3 -1
  107. data/lib/openstudio-standards/standards/necb/common/construction_defaults.osm +2 -2
  108. data/lib/openstudio-standards/standards/necb/docs/air_system_names_method.md +127 -0
  109. data/lib/openstudio-standards/thermal_zone/thermal_zone.rb +1 -1
  110. data/lib/openstudio-standards/utilities/template_measure/resources/BTAPMeasureHelper.rb +1 -1
  111. data/lib/openstudio-standards/version.rb +1 -1
  112. data/lib/openstudio-standards/weather/information.rb +61 -5
  113. data/lib/openstudio-standards/weather/modify.rb +1 -1
  114. data/lib/openstudio-standards.rb +5 -3
  115. metadata +12 -63
  116. data/data/standards/OpenStudio_Standards-deer.xlsx +0 -0
  117. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +0 -1100
  118. data/lib/openstudio-standards/service_water_heating/component.rb +0 -189
@@ -0,0 +1,127 @@
1
+ The systax used for air system names in BTAP is:
2
+
3
+ **sys_abbr|oa|shr>?|sc>?|sh>?|ssf?|zh>?|zc>?|srf>?**
4
+
5
+ # Field "sys_abbr"
6
+
7
+ ## Description
8
+ System type abbrevation
9
+ ## Values
10
+ "sys_1", "sys_2", ..., "sys_6" for NECB
11
+
12
+ # Field "oa"
13
+ ## Description
14
+ Indicates whether there is return air in the supply air
15
+ ## Values
16
+ 1. "doas": dedicated-outdoor air system
17
+ 2. "mixed": system with return air in supply air
18
+
19
+ # Field "shr>?"
20
+ ## Description
21
+ Type of heat recovery
22
+ ## Values
23
+ 1. "none": no heat recovery
24
+ 2. "erv": energy recovery device (sensible+latent)
25
+
26
+ # Field "sc>?"
27
+ ## Description
28
+ System cooling equipment
29
+ ## Values
30
+ 1. "none": no cooling equipment
31
+ 2. "c-chw": coil-chilled-water
32
+ 3. "dx": direct-expansion
33
+ 4. "ccashp": cold-climate air-source heat pump
34
+ 5. "ashp": air-source heat pump
35
+
36
+ # Field "sh>?"
37
+ ## Description
38
+ Primary and backup heating equipment
39
+ ## Values
40
+ 1. "none": no heating equipment
41
+ 2. "c-e": coil-electric
42
+ 3. "c-hw": coil-hot-water
43
+ 4. "c-g": coil-gas
44
+ 5. "ccashp": cold-climate air-source heat pump
45
+ 6. "ccashp>c-e": cold-climate air-source heat pump with electric coil backup
46
+ 7. "ccashp>c-g": cold-climate air-source heat pump with natural gas coil backup
47
+ 8. "ccashp>c-hw": cold-climate air-source heat pump with hot-water coil backup"
48
+ 9. "ashp": air-source heat pump
49
+ 10. "ashp>c-e": air-source heat pump with electric coil backup
50
+ 11. "ashp>c-g": air-source heat pump with natural gas coil backup
51
+ 12. "ashp>c-hw": air-source heat pump with hot-water coil backup"
52
+
53
+ # Field "ssf>?"
54
+ ## Description
55
+ System supply fan
56
+ ## Values
57
+ 1. "cv": constant-volume
58
+ 2. "vv": variable-volume
59
+
60
+ # Field "zh>?"
61
+ ## Description
62
+ Zone heating equipment
63
+ ## Values
64
+ 1. "none": no zone heating
65
+ 2. "b-e": baseboard electric
66
+ 3. "b-hw": baseboard hot-water
67
+ 4. "tpfc": two-pipe fan coil
68
+ 5. "fpfc": four-pipe fan coil
69
+ 6. "pthp": packaged-terminal heat pump
70
+ 7. "pthp>c-e": packaged-terminal heat pump with electric coil backup
71
+ 8. "pthp>c-g": packaged-terminal heat pump with natural gas coil backup
72
+ 9. "pthp>c-hw": packaged-terminal heat pump with hot-water coil backup
73
+ 10. "vrf": variable-refrigerant flow
74
+ 11. "vrf>c-e": variable-refrigerant flow with electric coil backup
75
+ 12. "vrf>c-hw": variable-refrigerant flow with hot-water coil backup
76
+
77
+ # Field "zc>?"
78
+ # Desciption
79
+ Zone cooling equipment
80
+ ## Values
81
+ 1. "none": no zone cooling
82
+ 2. "tpfc": two-pipe fan coil
83
+ 3. "fpfc": four-pipe fan coil
84
+ 4. "ptac": packaged-terminal air-conditioner
85
+ 5. "pthp": packaged-terminal heat-pump
86
+ 6. "vrf": variable-refrigerant flow
87
+
88
+ # Field "srf>?"
89
+ ## Description
90
+ System return fan
91
+ ## Values
92
+ 1. "cv": constant-volume
93
+ 2. "vv": variable-volume
94
+
95
+ # Examples of System Names
96
+
97
+ sys_1|doas|shr>erv|sc>dx|sh>c-e|ssf>cv|zh>b-e|zc>ptac|srf>none
98
+ sys_1|doas|shr>erv|sc>dx|sh>c-e|ssf>cv|zh>b-hw|zc>ptac|srf>none
99
+ sys_1|doas|shr>erv|sc>dx|sh>c-hw|ssf>cv|zh>b-e|zc>ptac|srf>none
100
+ sys1|doas|shr>erv|sc>dx|sh>c-hw|ssf>cv|zh>b-hw|zc>ptac|srf>none
101
+ sys1|doas|shr>erv|sc>ashp|sh>ashp>c-e|ssf>cv|zh>b-e|zc>ptac|srf>none
102
+
103
+ sys_1|doas|shr>erv|sc>dx|sh>c-g|ssf>cv|zh>tpfc|zc>fpfc|srf>none
104
+ sys_1|doas|shr>erv|sc>c-chw|sh>c-g|ssf>cv|zh>tpfc|zc>fpfc|srf>none
105
+ sys_1|doas|shr>erv|sc>ashp|sh>ashp>c-e|ssf>cv|zh>tpfc|zc>fpfc|srf>none
106
+
107
+ sys_3|mixed|shr>erv|sc>dx|sh>c-e|ssf>cv|zc>none|zh>b-e|srf>none
108
+ sys_3|mixed|shr>erv|sc>dx|sh>c-e|ssf>cv|zc>none|zh>b-hw|srf>none
109
+ sys_3|mixed|shr>erv|sc>dx|sh>c-hw|ssf>cv|zc>none|zh>b-e|srf>none
110
+ sys_3|mixed|shr>erv|sc>dx|sh>c-hw|ssf>cv|zc>none|zh>b-hw|srf>none
111
+ sys_3|mixed|shr>erv|sc>ashp|sh>ashp>c-e|ssf>cv|zc>none|zh>b-e|srf>none
112
+
113
+ sys_4|mixed|shr>erv|sc>dx|sh>c-e|ssf>cv|zc>none|zh>b-e|srf>none
114
+ sys_4|mixed|shr>erv|sc>dx|sh>c-e|ssf>cv|zc>none|zh>b-hw|srf>none
115
+ sys_4|mixed|shr>erv|sc>dx|sh>c-g|ssf>cv|zc>none|zh>b-e|srf>none
116
+ sys_4|mixed|shr>erv|sc>dx|sh>c-g|ssf>cv|zc>none|zh>b-hw|srf>none
117
+ sys_4|mixed|shr>erv|sc>ashp|sh>ashp>c-e|ssf>cv|zc>none|zh>b-e|srf>none
118
+
119
+ sys_5|doas|shr>erv|sc>dx|sh>c-g|ssf>cv|zc>tpfc|zh>tpfc|srf>none
120
+ sys_5|doas|shr>erv|sc>c-chw|sh>c-g|ssf>cv|zc>tpfc|zh>tpfc|srf>none
121
+ sys_5|doas|shr>erv|sc>ashp|sh>ashp>c-e|ssf>cv|zc>tpfc|zh>tpfc|srf>none
122
+
123
+ sys_6|mixed|shr>erv|sc>c-chw|sh>c-e|ssf>vv|zc>none|zh>b-e|srf>vv
124
+ sys_6|mixed|shr>erv|sc>c-chw|sh>c-e|ssf>vv|zc>none|zh>b-hw|srf>vv
125
+ sys_6|mixed|shr>erv|sc>c-chw|sh>c-hw|ssf>vv|zc>none|zh>b-e|srf>vv
126
+ sys_6|mixed|shr>erv|sc>c-chw|sh>c-hw|ssf>vv|zc>none|zh>b-hw|srf>vv
127
+ sys_6|mixed|shr>erv|sc>ashp|sh>ashp>c-e|ssf>vv|zc>none|zh>b-hw|srf>vv
@@ -1,5 +1,5 @@
1
- # Methods to obtain information about model spaces
2
1
  module OpenstudioStandards
2
+ # The ThermalZone module provides methods get information about model thermal zones
3
3
  module ThermalZone
4
4
  # Determine if the thermal zone is a plenum based on whether a majority of the spaces in the zone are plenums or not.
5
5
  #
@@ -297,7 +297,7 @@ module BTAPMeasureTestHelper
297
297
 
298
298
  # helper method to create necb archetype as a starting point for testing.
299
299
  def create_necb_protype_model(building_type, climate_zone, epw_file, template)
300
- osm_directory = "#{Dir.pwd}/output/#{building_type}-#{template}-#{climate_zone}-#{epw_file}"
300
+ osm_directory = "#{__dir__}/output/#{building_type}-#{template}-#{climate_zone}-#{epw_file}"
301
301
  FileUtils.mkdir_p(osm_directory)
302
302
 
303
303
  # Set building location from epw file
@@ -13,5 +13,5 @@ module OpenstudioStandards
13
13
  end
14
14
  return 'git-not-found-on-this-system'
15
15
  end
16
- VERSION = '0.6.3'.freeze
16
+ VERSION = '0.7.0.rc1'.freeze
17
17
  end
@@ -170,7 +170,7 @@ module OpenstudioStandards
170
170
  full_epw_path = OpenStudio::OptionalPath.new(epw_path.get)
171
171
  else
172
172
  # If this is an always-run Measure, need to check a different path
173
- alt_weath_path = File.expand_path(File.join(Dir.pwd, '../../resources'))
173
+ alt_weath_path = File.expand_path(File.join(__dir__, '../../resources'))
174
174
  alt_epw_path = File.expand_path(File.join(alt_weath_path, epw_path.get.to_s))
175
175
  if File.exist?(alt_epw_path)
176
176
  full_epw_path = OpenStudio::OptionalPath.new(OpenStudio::Path.new(alt_epw_path))
@@ -202,7 +202,7 @@ module OpenstudioStandards
202
202
  stat_string = load_resource_relative("../../../data/weather/#{weather_file_name.gsub('.epw', '.stat')}")
203
203
 
204
204
  # extract to local weather dir
205
- weather_dir = File.expand_path(File.join(Dir.pwd, 'extracted_files/weather/'))
205
+ weather_dir = File.expand_path(File.join(__dir__, 'extracted_files/weather/'))
206
206
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.Weather.information', "Extracting weather files from OpenStudio CLI to #{weather_dir}")
207
207
  FileUtils.mkdir_p(weather_dir)
208
208
 
@@ -453,10 +453,66 @@ module OpenstudioStandards
453
453
  # @param base_humidity_ratio [Double] base humidity ratio, default is 0.010
454
454
  # @return [Double] dehumdification degree days
455
455
  def self.epw_file_get_dehumidification_degree_days(epw_file, base_humidity_ratio: 0.010)
456
- db_temps_c = epw_file.getTimeSeries('Dry Bulb Temperature').get.values
456
+ # Workaround for case when the weather file contains the February from a leap year but that February only has 28
457
+ # days of data.
458
+ has_leap_day = false
459
+
460
+ # Find the first day in February
461
+ feb_index = epw_file.data.find_index { |entry| entry.date.monthOfYear.value == 2 }
462
+
463
+ # Find the year for February
464
+ feb_year = epw_file.data[feb_index].year
465
+ # Determine if February's year is a leap year
466
+ leap_year = false
467
+ if (feb_year % 100) > 0
468
+ leap_year = true if (feb_year % 4) == 0
469
+ else
470
+ leap_year = true if (feb_year % 400) == 0
471
+ end
472
+ # If the February is from a leap year determine if it contains a leap day
473
+ if leap_year
474
+
475
+ day = epw_file.data[feb_index].date.dayOfMonth
476
+ inc = 0
477
+
478
+ while epw_file.data[feb_index].date.dayOfMonth == day
479
+ feb_index += 1
480
+ inc += 1
481
+ end
482
+
483
+ has_leap_day = epw_file.data[feb_index + (inc * 28)].date.dayOfMonth == 29
484
+ end
485
+
486
+ # If the February is from a leap year and there is no leap day then do not use the faulty OpenStudio Epw
487
+ # .getTimeSeries method. Otherwise, use the method.
488
+ if has_leap_day || !leap_year
489
+ db_temps_c = epw_file.getTimeSeries('Dry Bulb Temperature').get.values
490
+ rh_values = epw_file.getTimeSeries('Relative Humidity').get.values
491
+ atm_p_values = epw_file.getTimeSeries('Atmospheric Station Pressure').get.values
492
+ else
493
+ # Access the data directly instead of using the OpenStudio API to avoid the faulty OpenStudioEpw
494
+ # .getTimeSeries method.
495
+
496
+ # Open the weather file
497
+ regex_csv = /[^,]+/
498
+ regex_num = /[0-9]/
499
+ f = File.open(epw_file.path.to_s, 'r')
500
+ i = 0
501
+
502
+ # Skip the header
503
+ i += 1 until f.readline[0] =~ regex_num
504
+
505
+ # Get all of the hourly weather data
506
+ lines = IO.readlines(f)[i..-1]
507
+
508
+ # Get hourly weather data for a specific column
509
+ db_temps_c = lines.map { |line| Float(line.scan(regex_csv)[6]) }
510
+ rh_values = lines.map { |line| Float(line.scan(regex_csv)[8]) }
511
+ atm_p_values = lines.map { |line| Float(line.scan(regex_csv)[9]) }
512
+ end
513
+
457
514
  db_temps_k = db_temps_c.map { |v| v + 273.15 }
458
- rh_values = epw_file.getTimeSeries('Relative Humidity').get.values
459
- atm_p_values = epw_file.getTimeSeries('Atmospheric Station Pressure').get.values
515
+
460
516
 
461
517
  # coefficients for the calculation of pws (Reference: ASHRAE Handbook - Fundamentals > CHAPTER 1. PSYCHROMETRICS)
462
518
  c1 = -5.6745359E+03
@@ -147,7 +147,7 @@ module OpenstudioStandards
147
147
  full_epw_path = epw_path.get.to_s
148
148
  else
149
149
  # If this is an always-run Measure, need to check a different path
150
- alt_weath_path = File.expand_path(File.join(Dir.pwd, '../../resources'))
150
+ alt_weath_path = File.expand_path(File.join(__dir__, '../../resources'))
151
151
  alt_epw_path = File.expand_path(File.join(alt_weath_path, epw_path.get.to_s))
152
152
  if File.exist?(alt_epw_path)
153
153
  full_epw_path = alt_epw_path
@@ -36,7 +36,10 @@ module OpenstudioStandards
36
36
  require_relative 'openstudio-standards/schedules/parametric'
37
37
 
38
38
  # ServiceWaterHeating Module
39
- require_relative 'openstudio-standards/service_water_heating/component'
39
+ require_relative 'openstudio-standards/service_water_heating/create_piping_losses'
40
+ require_relative 'openstudio-standards/service_water_heating/create_water_heater'
41
+ require_relative 'openstudio-standards/service_water_heating/create_water_heating_loop'
42
+ require_relative 'openstudio-standards/service_water_heating/create_water_use'
40
43
 
41
44
  # Space Module
42
45
  require_relative 'openstudio-standards/space/space'
@@ -269,6 +272,7 @@ module OpenstudioStandards
269
272
  require_relative "#{stds}/Standards.PumpConstantSpeed"
270
273
  require_relative "#{stds}/Standards.PumpVariableSpeed"
271
274
  require_relative "#{stds}/Standards.ScheduleRuleset"
275
+ require_relative "#{stds}/Standards.ServiceWaterHeating"
272
276
  require_relative "#{stds}/Standards.Space"
273
277
  require_relative "#{stds}/Standards.SpaceType"
274
278
  require_relative "#{stds}/Standards.SubSurface"
@@ -515,11 +519,9 @@ module OpenstudioStandards
515
519
  require_relative "#{proto}/common/objects/Prototype.Model.exterior_lights"
516
520
  require_relative "#{proto}/common/objects/Prototype.Model.hvac"
517
521
  require_relative "#{proto}/common/objects/Prototype.Model"
518
- require_relative "#{proto}/common/objects/Prototype.Model.swh"
519
522
  require_relative "#{proto}/common/objects/Prototype.Pump"
520
523
  require_relative "#{proto}/common/objects/Prototype.PumpVariableSpeed"
521
524
  require_relative "#{proto}/common/objects/Prototype.refrigeration"
522
- require_relative "#{proto}/common/objects/Prototype.ServiceWaterHeating"
523
525
  require_relative "#{proto}/common/objects/Prototype.SizingSystem"
524
526
  require_relative "#{proto}/common/objects/Prototype.utilities"
525
527
  # 90.1-2004
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstudio-standards
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.7.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Adams
@@ -39,7 +39,7 @@ authors:
39
39
  autorequire:
40
40
  bindir: bin
41
41
  cert_chain: []
42
- date: 2024-09-04 00:00:00.000000000 Z
42
+ date: 2024-10-28 00:00:00.000000000 Z
43
43
  dependencies:
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: bundler
@@ -83,20 +83,6 @@ dependencies:
83
83
  - - "~>"
84
84
  - !ruby/object:Gem::Version
85
85
  version: 3.7.0
86
- - !ruby/object:Gem::Dependency
87
- name: aes
88
- requirement: !ruby/object:Gem::Requirement
89
- requirements:
90
- - - '='
91
- - !ruby/object:Gem::Version
92
- version: 0.5.0
93
- type: :development
94
- prerelease: false
95
- version_requirements: !ruby/object:Gem::Requirement
96
- requirements:
97
- - - '='
98
- - !ruby/object:Gem::Version
99
- version: 0.5.0
100
86
  - !ruby/object:Gem::Dependency
101
87
  name: codecov
102
88
  requirement: !ruby/object:Gem::Requirement
@@ -111,20 +97,6 @@ dependencies:
111
97
  - - ">="
112
98
  - !ruby/object:Gem::Version
113
99
  version: '0'
114
- - !ruby/object:Gem::Dependency
115
- name: google_drive
116
- requirement: !ruby/object:Gem::Requirement
117
- requirements:
118
- - - ">="
119
- - !ruby/object:Gem::Version
120
- version: '0'
121
- type: :development
122
- prerelease: false
123
- version_requirements: !ruby/object:Gem::Requirement
124
- requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- version: '0'
128
100
  - !ruby/object:Gem::Dependency
129
101
  name: minitest
130
102
  requirement: !ruby/object:Gem::Requirement
@@ -209,34 +181,6 @@ dependencies:
209
181
  - - "~>"
210
182
  - !ruby/object:Gem::Version
211
183
  version: '13.0'
212
- - !ruby/object:Gem::Dependency
213
- name: rest-client
214
- requirement: !ruby/object:Gem::Requirement
215
- requirements:
216
- - - "~>"
217
- - !ruby/object:Gem::Version
218
- version: 2.0.2
219
- type: :development
220
- prerelease: false
221
- version_requirements: !ruby/object:Gem::Requirement
222
- requirements:
223
- - - "~>"
224
- - !ruby/object:Gem::Version
225
- version: 2.0.2
226
- - !ruby/object:Gem::Dependency
227
- name: roo
228
- requirement: !ruby/object:Gem::Requirement
229
- requirements:
230
- - - '='
231
- - !ruby/object:Gem::Version
232
- version: 2.7.1
233
- type: :development
234
- prerelease: false
235
- version_requirements: !ruby/object:Gem::Requirement
236
- requirements:
237
- - - '='
238
- - !ruby/object:Gem::Version
239
- version: 2.7.1
240
184
  - !ruby/object:Gem::Dependency
241
185
  name: rubocop
242
186
  requirement: !ruby/object:Gem::Requirement
@@ -654,7 +598,7 @@ files:
654
598
  - data/geometry/DOERefWarehouse.json
655
599
  - data/geometry/DOERefWarehouse.osm
656
600
  - data/inventory/thermal_bridging.csv
657
- - data/standards/OpenStudio_Standards-deer.xlsx
601
+ - data/standards/OpenStudio_Standards-ashrae_90_1.xlsx
658
602
  - data/standards/exclude_list.csv
659
603
  - data/standards/export_OpenStudio_libraries.rb
660
604
  - data/standards/manage_OpenStudio_Standards.rb
@@ -1047,11 +991,9 @@ files:
1047
991
  - lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb
1048
992
  - lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb
1049
993
  - lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb
1050
- - lib/openstudio-standards/prototypes/common/objects/Prototype.Model.swh.rb
1051
994
  - lib/openstudio-standards/prototypes/common/objects/Prototype.Model.transformers.rb
1052
995
  - lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb
1053
996
  - lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb
1054
- - lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb
1055
997
  - lib/openstudio-standards/prototypes/common/objects/Prototype.SizingSystem.rb
1056
998
  - lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb
1057
999
  - lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb
@@ -1075,7 +1017,10 @@ files:
1075
1017
  - lib/openstudio-standards/schedules/information.rb
1076
1018
  - lib/openstudio-standards/schedules/modify.rb
1077
1019
  - lib/openstudio-standards/schedules/parametric.rb
1078
- - lib/openstudio-standards/service_water_heating/component.rb
1020
+ - lib/openstudio-standards/service_water_heating/create_piping_losses.rb
1021
+ - lib/openstudio-standards/service_water_heating/create_water_heater.rb
1022
+ - lib/openstudio-standards/service_water_heating/create_water_heating_loop.rb
1023
+ - lib/openstudio-standards/service_water_heating/create_water_use.rb
1079
1024
  - lib/openstudio-standards/space/space.rb
1080
1025
  - lib/openstudio-standards/sql_file/energy_use.rb
1081
1026
  - lib/openstudio-standards/sql_file/fenestration.rb
@@ -1116,6 +1061,7 @@ files:
1116
1061
  - lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb
1117
1062
  - lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb
1118
1063
  - lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb
1064
+ - lib/openstudio-standards/standards/Standards.ServiceWaterHeating.rb
1119
1065
  - lib/openstudio-standards/standards/Standards.Space.rb
1120
1066
  - lib/openstudio-standards/standards/Standards.SpaceType.rb
1121
1067
  - lib/openstudio-standards/standards/Standards.SubSurface.rb
@@ -2330,6 +2276,7 @@ files:
2330
2276
  - lib/openstudio-standards/standards/necb/NECB2011/autozone.rb
2331
2277
  - lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb
2332
2278
  - lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb
2279
+ - lib/openstudio-standards/standards/necb/NECB2011/data/boiler_fuel_type_sets.json
2333
2280
  - lib/openstudio-standards/standards/necb/NECB2011/data/boilers.json
2334
2281
  - lib/openstudio-standards/standards/necb/NECB2011/data/chiller_types.json
2335
2282
  - lib/openstudio-standards/standards/necb/NECB2011/data/chillers.json
@@ -2457,6 +2404,7 @@ files:
2457
2404
  - lib/openstudio-standards/standards/necb/common/necb_reference_runs.csv
2458
2405
  - lib/openstudio-standards/standards/necb/common/phius.md
2459
2406
  - lib/openstudio-standards/standards/necb/common/space_type_upgrade_map.json
2407
+ - lib/openstudio-standards/standards/necb/docs/air_system_names_method.md
2460
2408
  - lib/openstudio-standards/standards/oeesc/oeesc.rb
2461
2409
  - lib/openstudio-standards/standards/oeesc/oeesc_2014/oeesc_2014.rb
2462
2410
  - lib/openstudio-standards/standards/standard.rb
@@ -2483,7 +2431,8 @@ files:
2483
2431
  homepage: http://openstudio.net
2484
2432
  licenses:
2485
2433
  - Modified BSD License
2486
- metadata: {}
2434
+ metadata:
2435
+ documentation_uri: https://gemdocs.org/gems/openstudio-standards
2487
2436
  post_install_message:
2488
2437
  rdoc_options: []
2489
2438
  require_paths: