openstudio-standards 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/data/standards/OpenStudio_Standards.xlsx +0 -0
  3. data/data/standards/OpenStudio_Standards_boilers.json +62 -4
  4. data/data/standards/OpenStudio_Standards_chillers.json +778 -68
  5. data/data/standards/OpenStudio_Standards_construction_sets.json +52 -93
  6. data/data/standards/OpenStudio_Standards_curve_biquadratics.json +36 -36
  7. data/data/standards/OpenStudio_Standards_curve_quadratics.json +3 -3
  8. data/data/standards/OpenStudio_Standards_heat_pumps.json +840 -0
  9. data/data/standards/OpenStudio_Standards_heat_pumps_heating.json +352 -0
  10. data/data/standards/OpenStudio_Standards_heat_rejection.json +48 -0
  11. data/data/standards/OpenStudio_Standards_motors.json +270 -0
  12. data/data/standards/OpenStudio_Standards_space_types.json +10390 -2824
  13. data/data/standards/OpenStudio_Standards_unitary_acs.json +794 -18
  14. data/data/weather/USA_CO_Boulder-Broomfield-Jefferson.County.AP.724699_TMY3.ddy +538 -0
  15. data/data/weather/USA_CO_Boulder-Broomfield-Jefferson.County.AP.724699_TMY3.epw +8768 -0
  16. data/data/weather/USA_CO_Boulder-Broomfield-Jefferson.County.AP.724699_TMY3.stat +493 -0
  17. data/data/weather/USA_CO_Denver.Intl.AP.725650_TMY3.ddy +536 -0
  18. data/data/weather/USA_CO_Denver.Intl.AP.725650_TMY3.epw +8768 -0
  19. data/data/weather/USA_CO_Denver.Intl.AP.725650_TMY3.stat +554 -0
  20. data/data/weather/USA_CO_Fort.Collins.AWOS.724769_TMY3.ddy +536 -0
  21. data/data/weather/USA_CO_Fort.Collins.AWOS.724769_TMY3.epw +8768 -0
  22. data/data/weather/USA_CO_Fort.Collins.AWOS.724769_TMY3.stat +554 -0
  23. data/data/weather/envelope_info.csv +6 -0
  24. data/lib/openstudio-standards.rb +10 -11
  25. data/lib/openstudio-standards/btap/compliance.rb +251 -969
  26. data/lib/openstudio-standards/btap/envelope.rb +1 -1
  27. data/lib/openstudio-standards/btap/fileio.rb +37 -5
  28. data/lib/openstudio-standards/btap/geometry.rb +27 -17
  29. data/lib/openstudio-standards/btap/hvac.rb +80 -27
  30. data/lib/openstudio-standards/hvac_sizing/{HVACSizing.CoilHeatingDXMultiSpeed.rb → Siz.CoilHeatingDXMultiSpeed.rb} +0 -0
  31. data/lib/openstudio-standards/hvac_sizing/Siz.ControllerOutdoorAir.rb +30 -4
  32. data/lib/openstudio-standards/hvac_sizing/Siz.CoolingTowerTwoSpeed.rb +61 -5
  33. data/lib/openstudio-standards/hvac_sizing/Siz.CoolingTowerVariableSpeed.rb +37 -7
  34. data/lib/openstudio-standards/hvac_sizing/Siz.DistrictCooling.rb +27 -0
  35. data/lib/openstudio-standards/hvac_sizing/Siz.DistrictHeating.rb +27 -0
  36. data/lib/openstudio-standards/hvac_sizing/Siz.HeaderedPumpsConstantSpeed.rb +55 -0
  37. data/lib/openstudio-standards/hvac_sizing/Siz.HeaderedPumpsVariableSpeed.rb +55 -0
  38. data/lib/openstudio-standards/hvac_sizing/Siz.HeatingCoolingFuels.rb +51 -9
  39. data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +99 -17
  40. data/lib/openstudio-standards/hvac_sizing/Siz.PumpConstantSpeed.rb +1 -1
  41. data/lib/openstudio-standards/hvac_sizing/Siz.ThermalZone.rb +29 -6
  42. data/lib/openstudio-standards/hvac_sizing/Siz.WaterHeaterMixed.rb +16 -0
  43. data/lib/openstudio-standards/prototypes/Prototype.AirTerminalSingleDuctVAVReheat.rb +43 -48
  44. data/lib/openstudio-standards/prototypes/Prototype.ControllerWaterCoil.rb +5 -9
  45. data/lib/openstudio-standards/prototypes/Prototype.Fan.rb +68 -0
  46. data/lib/openstudio-standards/prototypes/Prototype.FanConstantVolume.rb +39 -43
  47. data/lib/openstudio-standards/prototypes/Prototype.FanOnOff.rb +49 -51
  48. data/lib/openstudio-standards/prototypes/Prototype.FanVariableVolume.rb +55 -61
  49. data/lib/openstudio-standards/prototypes/Prototype.FanZoneExhaust.rb +8 -10
  50. data/lib/openstudio-standards/prototypes/Prototype.HeatExchangerAirToAirSensibleAndLatent.rb +15 -20
  51. data/lib/openstudio-standards/prototypes/Prototype.Model.hvac.rb +330 -322
  52. data/lib/openstudio-standards/prototypes/Prototype.Model.rb +501 -446
  53. data/lib/openstudio-standards/prototypes/Prototype.Model.swh.rb +221 -230
  54. data/lib/openstudio-standards/prototypes/Prototype.add_objects.rb +0 -2
  55. data/lib/openstudio-standards/prototypes/Prototype.full_service_restaurant.rb +130 -137
  56. data/lib/openstudio-standards/prototypes/Prototype.high_rise_apartment.rb +374 -291
  57. data/lib/openstudio-standards/prototypes/Prototype.hospital.rb +146 -193
  58. data/lib/openstudio-standards/prototypes/Prototype.hvac_systems.rb +1315 -1113
  59. data/lib/openstudio-standards/prototypes/Prototype.large_hotel.rb +65 -88
  60. data/lib/openstudio-standards/prototypes/Prototype.large_office.rb +101 -156
  61. data/lib/openstudio-standards/prototypes/Prototype.medium_office.rb +46 -96
  62. data/lib/openstudio-standards/prototypes/Prototype.mid_rise_apartment.rb +113 -123
  63. data/lib/openstudio-standards/prototypes/Prototype.outpatient.rb +356 -345
  64. data/lib/openstudio-standards/prototypes/Prototype.primary_school.rb +48 -103
  65. data/lib/openstudio-standards/prototypes/Prototype.quick_service_restaurant.rb +115 -123
  66. data/lib/openstudio-standards/prototypes/Prototype.retail_standalone.rb +30 -39
  67. data/lib/openstudio-standards/prototypes/Prototype.retail_stripmall.rb +32 -45
  68. data/lib/openstudio-standards/prototypes/Prototype.secondary_school.rb +98 -258
  69. data/lib/openstudio-standards/prototypes/Prototype.small_hotel.rb +429 -474
  70. data/lib/openstudio-standards/prototypes/Prototype.small_office.rb +28 -36
  71. data/lib/openstudio-standards/prototypes/Prototype.strip_model.rb +7 -7
  72. data/lib/openstudio-standards/prototypes/Prototype.utilities.rb +172 -146
  73. data/lib/openstudio-standards/prototypes/Prototype.warehouse.rb +46 -53
  74. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +885 -707
  75. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctParallelPIUReheat.rb +48 -57
  76. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +24 -31
  77. data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +80 -93
  78. data/lib/openstudio-standards/standards/Standards.BuildingStory.rb +69 -0
  79. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +60 -72
  80. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +104 -108
  81. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +190 -198
  82. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +134 -146
  83. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +56 -60
  84. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +151 -161
  85. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +30 -34
  86. data/lib/openstudio-standards/standards/Standards.Construction.rb +116 -132
  87. data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +138 -0
  88. data/lib/openstudio-standards/standards/Standards.CoolingTowerSingleSpeed.rb +11 -0
  89. data/lib/openstudio-standards/standards/Standards.CoolingTowerTwoSpeed.rb +11 -0
  90. data/lib/openstudio-standards/standards/Standards.CoolingTowerVariableSpeed.rb +16 -0
  91. data/lib/openstudio-standards/standards/Standards.Fan.rb +190 -236
  92. data/lib/openstudio-standards/standards/Standards.FanConstantVolume.rb +0 -2
  93. data/lib/openstudio-standards/standards/Standards.FanOnOff.rb +0 -2
  94. data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +168 -14
  95. data/lib/openstudio-standards/standards/Standards.FanZoneExhaust.rb +0 -2
  96. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsConstantSpeed.rb +33 -0
  97. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +83 -0
  98. data/lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb +22 -0
  99. data/lib/openstudio-standards/standards/Standards.Model.rb +2385 -1622
  100. data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +83 -35
  101. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +805 -395
  102. data/lib/openstudio-standards/standards/Standards.Pump.rb +139 -119
  103. data/lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb +0 -2
  104. data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +16 -15
  105. data/lib/openstudio-standards/standards/Standards.ScheduleCompact.rb +35 -0
  106. data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +7 -13
  107. data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +144 -59
  108. data/lib/openstudio-standards/standards/Standards.Space.rb +1509 -1326
  109. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +254 -262
  110. data/lib/openstudio-standards/standards/Standards.SubSurface.rb +105 -105
  111. data/lib/openstudio-standards/standards/Standards.Surface.rb +27 -31
  112. data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +882 -157
  113. data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +179 -69
  114. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +75 -0
  115. data/lib/openstudio-standards/utilities/logging.rb +31 -38
  116. data/lib/openstudio-standards/utilities/simulation.rb +118 -82
  117. data/lib/openstudio-standards/version.rb +1 -1
  118. data/lib/openstudio-standards/weather/Weather.Model.rb +382 -390
  119. data/lib/openstudio-standards/weather/Weather.stat_file.rb +159 -78
  120. metadata +59 -6
@@ -40,10 +40,10 @@ module EnergyPlus
40
40
  attr_accessor :standard
41
41
  attr_accessor :summer_wet_months
42
42
  attr_accessor :winter_dry_months
43
- attr_accessor :autumn_months
44
- attr_accessor :spring_months
45
- attr_accessor :typical_summer_wet_week
46
- attr_accessor :typical_winter_dry_week
43
+ attr_accessor :autumn_months
44
+ attr_accessor :spring_months
45
+ attr_accessor :typical_summer_wet_week
46
+ attr_accessor :typical_winter_dry_week
47
47
  attr_accessor :typical_autumn_week
48
48
  attr_accessor :typical_spring_week
49
49
 
@@ -76,10 +76,10 @@ module EnergyPlus
76
76
  @data = []
77
77
  init
78
78
  end
79
-
80
- #Output for debugging stat routines.
81
- def output()
82
- line = String.new
79
+
80
+ # Output for debugging stat routines.
81
+ def output
82
+ line = ''
83
83
  line << "#{@path} , "
84
84
  line << "#{@lat} ,"
85
85
  line << "#{@lon} ,"
@@ -94,11 +94,10 @@ module EnergyPlus
94
94
  line << "#{@heating_design_info} ,"
95
95
  line << "#{@cooling_design_info} ,"
96
96
  line << "#{@extremes_design_info} ,"
97
- line << "#{@climate_zone} ,"
98
- line << "#{@standard} ,"
97
+ line << "#{@climate_zone} ,"
98
+ line << "#{@standard} ,"
99
99
  line << "#{@valid} ,"
100
100
  end
101
-
102
101
 
103
102
  def valid?
104
103
  return @valid
@@ -106,10 +105,10 @@ module EnergyPlus
106
105
 
107
106
  # the mean of the mean monthly dry bulbs
108
107
  def mean_dry_bulb
109
- if not @monthly_dry_bulb.empty? then
108
+ if !@monthly_dry_bulb.empty?
110
109
  sum = 0
111
110
  @monthly_dry_bulb.each { |db| sum += db }
112
- mean = sum/@monthly_dry_bulb.size
111
+ mean = sum / @monthly_dry_bulb.size
113
112
  else
114
113
  mean = ''
115
114
  end
@@ -119,11 +118,11 @@ module EnergyPlus
119
118
 
120
119
  # max - min of the mean monthly dry bulbs
121
120
  def delta_dry_bulb
122
- if not @monthly_dry_bulb.empty? then
123
- delta_t = @monthly_dry_bulb.max-@monthly_dry_bulb.min
124
- else
125
- delta_t = ''
126
- end
121
+ delta_t = if !@monthly_dry_bulb.empty?
122
+ @monthly_dry_bulb.max - @monthly_dry_bulb.min
123
+ else
124
+ ''
125
+ end
127
126
 
128
127
  delta_t
129
128
  end
@@ -136,27 +135,25 @@ module EnergyPlus
136
135
  File.open(@path) do |f|
137
136
  text = f.read.force_encoding('iso-8859-1')
138
137
  parse(text)
139
-
140
138
  end
141
139
  end
142
140
  end
143
141
 
144
142
  def parse(text)
145
-
146
143
  # get lat, lon, gmt
147
144
  regex = /\{(N|S)\s*([0-9]*).\s*([0-9]*)'\}\s*\{(E|W)\s*([0-9]*).\s*([0-9]*)'\}\s*\{GMT\s*(.*)\s*Hours\}/
148
145
  match_data = text.match(regex)
149
146
  if match_data.nil?
150
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't find lat/lon/gmt")
147
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't find lat/lon/gmt")
151
148
  return
152
149
  else
153
150
 
154
- @lat = match_data[2].to_f + (match_data[3].to_f)/60.0
151
+ @lat = match_data[2].to_f + match_data[3].to_f / 60.0
155
152
  if match_data[1] == 'S'
156
153
  @lat = -@lat
157
154
  end
158
155
 
159
- @lon = match_data[5].to_f + (match_data[6].to_f)/60.0
156
+ @lon = match_data[5].to_f + match_data[6].to_f / 60.0
160
157
  if match_data[4] == 'W'
161
158
  @lon = -@lon
162
159
  end
@@ -168,7 +165,7 @@ module EnergyPlus
168
165
  regex = /Elevation --\s*(.*)m (above|below) sea level/
169
166
  match_data = text.match(regex)
170
167
  if match_data.nil?
171
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't find elevation")
168
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't find elevation")
172
169
  return
173
170
  else
174
171
  @elevation = match_data[1].to_f
@@ -177,53 +174,51 @@ module EnergyPlus
177
174
  end
178
175
  end
179
176
 
180
-
181
177
  # get heating and cooling degree days
182
- cdd10Regex = /-\s*(.*) annual \((standard|wthr file)\) cooling degree-days \(10.C baseline\)/
183
- match_data = text.match(cdd10Regex)
178
+ cdd_10_regex = /-\s*(.*) annual \((standard|wthr file)\) cooling degree-days \(10.C baseline\)/
179
+ match_data = text.match(cdd_10_regex)
184
180
  if match_data.nil?
185
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't find CDD 10")
181
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't find CDD 10")
186
182
  return
187
183
 
188
184
  else
189
185
  @cdd10 = match_data[1].to_f
190
186
  end
191
187
 
192
- hdd10Regex = /-\s*(.*) annual \((standard|wthr file)\) heating degree-days \(10.C baseline\)/
193
- match_data = text.match(hdd10Regex)
188
+ hdd_10_regex = /-\s*(.*) annual \((standard|wthr file)\) heating degree-days \(10.C baseline\)/
189
+ match_data = text.match(hdd_10_regex)
194
190
 
195
191
  if match_data.nil?
196
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't find HDD 10")
192
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't find HDD 10")
197
193
  return
198
194
  else
199
195
  @hdd10 = match_data[1].to_f
200
196
  end
201
197
 
202
- cdd18Regex = /-\s*(.*) annual \((standard|wthr file)\) cooling degree-days \(18.*C baseline\)/
203
- match_data = text.match(cdd18Regex)
198
+ cdd_18_regex = /-\s*(.*) annual \((standard|wthr file)\) cooling degree-days \(18.*C baseline\)/
199
+ match_data = text.match(cdd_18_regex)
204
200
  if match_data.nil?
205
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't find CDD 18")
201
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't find CDD 18")
206
202
  return
207
203
  else
208
204
  @cdd18 = match_data[1].to_f
209
205
  end
210
206
 
211
- hdd18Regex = /-\s*(.*) annual \((standard|wthr file)\) heating degree-days \(18.*C baseline\)/
212
- match_data = text.match(hdd18Regex)
207
+ hdd_18_regex = /-\s*(.*) annual \((standard|wthr file)\) heating degree-days \(18.*C baseline\)/
208
+ match_data = text.match(hdd_18_regex)
213
209
 
214
210
  if match_data.nil?
215
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't find HDD 18")
211
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't find HDD 18")
216
212
  return
217
213
  else
218
214
  @hdd18 = match_data[1].to_f
219
215
  end
220
216
 
221
-
222
- #use regex to get the temperatures
217
+ # use regex to get the temperatures
223
218
  regex = /Daily Avg(.*)\n/
224
219
  match_data = text.match(regex)
225
220
  if match_data.nil?
226
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't find outdoor air temps")
221
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't find outdoor air temps")
227
222
  return
228
223
  else
229
224
  # first match is outdoor air temps
@@ -231,101 +226,187 @@ module EnergyPlus
231
226
 
232
227
  # have to be 12 months
233
228
  if monthly_temps.size != 12
234
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't find outdoor air temps")
229
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't find outdoor air temps")
235
230
  return
236
231
  end
237
232
 
238
233
  # insert as numbers
239
234
  monthly_temps.each { |temp| @monthly_dry_bulb << temp.to_f }
235
+
236
+ # Allow non Ascii comment because this is the
237
+ # actual content of the .stat file.
238
+ # rubocop:disable AsciiComments
239
+ # Design Stat ColdestMonth DB996 DB990 DP996 HR_DP996 DB_DP996 DP990 HR_DP990 DB_DP990 WS004c DB_WS004c WS010c DB_WS010c WS_DB996 WD_DB996
240
+ # Units {} {�C} {�C} {�C} {} {�C} {�C} {} {�C} {m/s} {�C} {m/s} {�C} {m/s} {deg}
241
+ # Heating 12 -7 -4 -13.9 1.1 -5 -9.6 1.7 -2.9 14.2 5.9 11.9 6.8 2.9 100
242
+ # rubocop:enable AsciiComments
243
+ # use regex to get the temperatures
244
+ regex = /\s*Heating(\s*\d+.*)\n/
245
+ match_data = text.match(regex)
246
+ if match_data.nil?
247
+ puts "Can't find heating design information"
248
+ else
249
+ # first match is outdoor air temps
250
+
251
+ heating_design_info_raw = match_data[1].strip.split(/\s+/)
252
+
253
+ # have to be 14 data points
254
+ if heating_design_info_raw.size != 15
255
+ puts "Can't find cooling design info, found #{heating_design_info_raw.size}"
256
+ end
257
+
258
+ # insert as numbers
259
+ heating_design_info_raw.each do |value|
260
+ @heating_design_info << value.to_f
261
+ end
262
+ # puts @heating_design_info
263
+ end
264
+
265
+ regex = /\s*Cooling(\s*\d+.*)\n/
266
+ match_data = text.match(regex)
267
+ if match_data.nil?
268
+ puts "Can't find cooling design information"
269
+ else
270
+ # first match is outdoor air temps
271
+
272
+ design_info_raw = match_data[1].strip.split(/\s+/)
273
+
274
+ # have to be 14 data points
275
+ if design_info_raw.size != 32
276
+ puts "Can't find cooling design info, found #{design_info_raw.size} "
277
+ end
278
+
279
+ # insert as numbers
280
+ design_info_raw.each do |value|
281
+ @cooling_design_info << value
282
+ end
283
+ # puts @cooling_design_info
284
+ end
285
+
286
+ regex = /\s*Extremes\s*(.*)\n/
287
+ match_data = text.match(regex)
288
+ if match_data.nil?
289
+ puts "Can't find extremes design information"
290
+ else
291
+ # first match is outdoor air temps
292
+
293
+ design_info_raw = match_data[1].strip.split(/\s+/)
294
+
295
+ # have to be 14 data points
296
+ if design_info_raw.size != 16
297
+ # puts "Can't find extremes design info"
298
+ end
299
+
300
+ # insert as numbers
301
+ design_info_raw.each do |value|
302
+ @extremes_design_info << value
303
+ end
304
+ # puts @extremes_design_info
305
+ end
306
+
307
+ # use regex to get the temperatures
308
+ regex = /Daily Avg(.*)\n/
309
+ match_data = text.match(regex)
310
+ if match_data.nil?
311
+ puts "Can't find outdoor air temps"
312
+ else
313
+ # first match is outdoor air temps
314
+ monthly_temps = match_data[1].strip.split(/\s+/)
315
+
316
+ # have to be 12 months
317
+ if monthly_temps.size != 12
318
+ puts "Can't find outdoor air temps"
319
+ end
320
+
321
+ # insert as numbers
322
+ monthly_temps.each { |temp| @monthly_dry_bulb << temp.to_f }
323
+ # puts "#{@monthly_dry_bulb}"
324
+ end
325
+
326
+ # now we are valid
327
+ @valid = true
328
+
240
329
  end
241
-
242
- #Get 2004 Climate zone.
330
+
331
+ # Get 2004 Climate zone.
243
332
  # - Climate type "3B" (ASHRAE Standard 196-2006 Climate Zone)**
244
333
  # - Climate type "6A" (ASHRAE Standards 90.1-2004 and 90.2-2004 Climate Zone)**
245
- #use regex to get the temperatures
334
+ # use regex to get the temperatures
246
335
  regex = /Climate type \"(.*?)\" \(ASHRAE Standards?(.*)\)\*\*/
247
336
  match_data = text.match(regex)
248
337
  if match_data.nil?
249
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't find Climate zone 2004")
250
- @climate_zone = "NA"
338
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't find Climate zone 2004")
339
+ @climate_zone = 'NA'
251
340
  else
252
341
  @climate_zone = match_data[1].to_s.strip
253
342
  @standard = match_data[2].to_s.strip
254
343
  end
255
344
 
256
-
257
-
258
- # Seasons as define by file (Summer, Autumn, Spring Winter...or Wet and Dry )
345
+ # Seasons as define by file (Summer, Autumn, Spring Winter...or Wet and Dry )
259
346
  match_data = text.match(/(Summer is |Wet Period=)(.*)/)
260
347
  if match_data.nil?
261
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't Summer / Wet months")
348
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't Summer / Wet months")
262
349
  else
263
350
  @summer_wet_months = match_data[2].to_s.strip
264
351
  end
265
-
352
+
266
353
  match_data = text.match(/(Winter is |Dry Period=)(.*)/)
267
354
  if match_data.nil?
268
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't Winter / Dry months")
355
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't Winter / Dry months")
269
356
  else
270
357
  @winter_dry_months = match_data[2].to_s.strip
271
358
  end
272
-
359
+
273
360
  match_data = text.match(/Autumn is (.*)/)
274
361
  if match_data.nil?
275
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't Summer months")
276
- @autumn_months = "NA"
362
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't Summer months")
363
+ @autumn_months = 'NA'
277
364
  else
278
365
  @autumn_months = match_data[1].to_s.strip
279
366
  end
280
-
367
+
281
368
  match_data = text.match(/Spring is (.*)/)
282
369
  if match_data.nil?
283
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't Summer months")
284
- @spring_months = "NA"
370
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't Summer months")
371
+ @spring_months = 'NA'
285
372
  else
286
373
  @spring_months = match_data[1].to_s.strip
287
374
  end
288
-
289
-
290
-
291
-
375
+
292
376
  regex = /Typical Week Period selected:(.*?)C/
293
377
  match_data = text.scan(regex)
294
378
  if match_data.nil?
295
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't find Typical weather weeks")
379
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't find Typical weather weeks")
296
380
  else
297
- @typical_summer_wet_week = Date.parse("#{match_data[0][0].split(":")[0]} 2000")
298
- @typical_winter_dry_week = Date.parse("#{match_data[1][0].split(":")[0]} 2000")
381
+ @typical_summer_wet_week = Date.parse("#{match_data[0][0].split(':')[0]} 2000")
382
+ @typical_winter_dry_week = Date.parse("#{match_data[1][0].split(':')[0]} 2000")
299
383
  if match_data[2].nil?
300
- @typical_autumn_week = "NA"
301
- @typical_spring_week = "NA"
384
+ @typical_autumn_week = 'NA'
385
+ @typical_spring_week = 'NA'
302
386
  else
303
- @typical_autumn_week = Date.parse("#{match_data[2][0].split(":")[0]} 2000")
304
- @typical_spring_week = Date.parse("#{match_data[3][0].split(":")[0]} 2000")
387
+ @typical_autumn_week = Date.parse("#{match_data[2][0].split(':')[0]} 2000")
388
+ @typical_spring_week = Date.parse("#{match_data[3][0].split(':')[0]} 2000")
305
389
  end
306
390
  end
307
-
391
+
308
392
  regex = /Extreme Hot Week Period selected:(.*?)C/
309
393
  match_data = text.match(regex)
310
394
  if match_data.nil?
311
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't find Extreme hot weather week")
395
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't find Extreme hot weather week")
312
396
  else
313
- @extreme_hot_week = Date.parse("#{match_data[1].split(":")[0]}")
397
+ @extreme_hot_week = Date.parse((match_data[1].split(':')[0]).to_s)
314
398
  end
315
399
 
316
400
  regex = /Extreme Cold Week Period selected:(.*?)C/
317
401
  match_data = text.match(regex)
318
402
  if match_data.nil?
319
- OpenStudio::logFree(OpenStudio::Warn, "openstudio.Weather.stat_file", "Can't find Extreme hot weather week")
403
+ OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Weather.stat_file', "Can't find Extreme hot weather week")
320
404
  else
321
- @extreme_cold_week = Date.parse("#{match_data[1].split(":")[0]}")
405
+ @extreme_cold_week = Date.parse((match_data[1].split(':')[0]).to_s)
322
406
  end
323
-
324
-
325
407
 
326
408
  # now we are valid
327
409
  @valid = true
328
410
  end
329
-
330
411
  end
331
- end
412
+ end
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.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Parker
@@ -17,10 +17,11 @@ authors:
17
17
  - Matt Leach
18
18
  - Matt Steen
19
19
  - Eric Ringold
20
+ - Daniel Macumber
20
21
  autorequire:
21
22
  bindir: bin
22
23
  cert_chain: []
23
- date: 2016-06-28 00:00:00.000000000 Z
24
+ date: 2016-09-21 00:00:00.000000000 Z
24
25
  dependencies:
25
26
  - !ruby/object:Gem::Dependency
26
27
  name: bundler
@@ -70,14 +71,28 @@ dependencies:
70
71
  requirements:
71
72
  - - ~>
72
73
  - !ruby/object:Gem::Version
73
- version: '0.26'
74
+ version: '0.42'
74
75
  type: :development
75
76
  prerelease: false
76
77
  version_requirements: !ruby/object:Gem::Requirement
77
78
  requirements:
78
79
  - - ~>
79
80
  - !ruby/object:Gem::Version
80
- version: '0.26'
81
+ version: '0.42'
82
+ - !ruby/object:Gem::Dependency
83
+ name: rubocop-checkstyle_formatter
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ version: 0.1.1
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ~>
94
+ - !ruby/object:Gem::Version
95
+ version: 0.1.1
81
96
  - !ruby/object:Gem::Dependency
82
97
  name: minitest-reporters
83
98
  requirement: !ruby/object:Gem::Requirement
@@ -106,6 +121,20 @@ dependencies:
106
121
  - - '='
107
122
  - !ruby/object:Gem::Version
108
123
  version: 3.3.8
124
+ - !ruby/object:Gem::Dependency
125
+ name: activesupport
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - '='
129
+ - !ruby/object:Gem::Version
130
+ version: 4.2.5
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - '='
136
+ - !ruby/object:Gem::Version
137
+ version: 4.2.5
109
138
  - !ruby/object:Gem::Dependency
110
139
  name: google-api-client
111
140
  requirement: !ruby/object:Gem::Requirement
@@ -163,7 +192,6 @@ files:
163
192
  - lib/openstudio-standards/btap/utilities.rb
164
193
  - lib/openstudio-standards/btap/vintagizer.rb
165
194
  - lib/openstudio-standards/btap/visualization.rb
166
- - lib/openstudio-standards/hvac_sizing/HVACSizing.CoilHeatingDXMultiSpeed.rb
167
195
  - lib/openstudio-standards/hvac_sizing/Siz.AirConditionerVariableRefrigerantFlow.rb
168
196
  - lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVAC.rb
169
197
  - lib/openstudio-standards/hvac_sizing/Siz.AirLoopHVACUnitaryHeatCoolVAVChngByp.rb
@@ -189,6 +217,7 @@ files:
189
217
  - lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingWater.rb
190
218
  - lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingWaterToAirHeatPumpEquationFit.rb
191
219
  - lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingDesuperheater.rb
220
+ - lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingDXMultiSpeed.rb
192
221
  - lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingDXSingleSpeed.rb
193
222
  - lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingDXVariableRefrigerantFlow.rb
194
223
  - lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingElectric.rb
@@ -202,12 +231,16 @@ files:
202
231
  - lib/openstudio-standards/hvac_sizing/Siz.CoolingTowerSingleSpeed.rb
203
232
  - lib/openstudio-standards/hvac_sizing/Siz.CoolingTowerTwoSpeed.rb
204
233
  - lib/openstudio-standards/hvac_sizing/Siz.CoolingTowerVariableSpeed.rb
234
+ - lib/openstudio-standards/hvac_sizing/Siz.DistrictCooling.rb
235
+ - lib/openstudio-standards/hvac_sizing/Siz.DistrictHeating.rb
205
236
  - lib/openstudio-standards/hvac_sizing/Siz.EvaporativeCoolerDirectResearchSpecial.rb
206
237
  - lib/openstudio-standards/hvac_sizing/Siz.EvaporativeCoolerIndirectResearchSpecial.rb
207
238
  - lib/openstudio-standards/hvac_sizing/Siz.EvaporativeFluidCoolerSingleSpeed.rb
208
239
  - lib/openstudio-standards/hvac_sizing/Siz.FanConstantVolume.rb
209
240
  - lib/openstudio-standards/hvac_sizing/Siz.FanOnOff.rb
210
241
  - lib/openstudio-standards/hvac_sizing/Siz.FanVariableVolume.rb
242
+ - lib/openstudio-standards/hvac_sizing/Siz.HeaderedPumpsConstantSpeed.rb
243
+ - lib/openstudio-standards/hvac_sizing/Siz.HeaderedPumpsVariableSpeed.rb
211
244
  - lib/openstudio-standards/hvac_sizing/Siz.HeatExchangerAirToAirSensibleAndLatent.rb
212
245
  - lib/openstudio-standards/hvac_sizing/Siz.HeatExchangerFluidToFluid.rb
213
246
  - lib/openstudio-standards/hvac_sizing/Siz.HeatingCoolingFuels.rb
@@ -218,6 +251,7 @@ files:
218
251
  - lib/openstudio-standards/hvac_sizing/Siz.PumpVariableSpeed.rb
219
252
  - lib/openstudio-standards/hvac_sizing/Siz.SizingSystem.rb
220
253
  - lib/openstudio-standards/hvac_sizing/Siz.ThermalZone.rb
254
+ - lib/openstudio-standards/hvac_sizing/Siz.WaterHeaterMixed.rb
221
255
  - lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACBaseboardConvectiveElectric.rb
222
256
  - lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACBaseboardConvectiveWater.rb
223
257
  - lib/openstudio-standards/hvac_sizing/Siz.ZoneHVACFourPipeFanCoil.rb
@@ -234,6 +268,7 @@ files:
234
268
  - lib/openstudio-standards/prototypes/Prototype.add_objects.rb
235
269
  - lib/openstudio-standards/prototypes/Prototype.AirTerminalSingleDuctVAVReheat.rb
236
270
  - lib/openstudio-standards/prototypes/Prototype.ControllerWaterCoil.rb
271
+ - lib/openstudio-standards/prototypes/Prototype.Fan.rb
237
272
  - lib/openstudio-standards/prototypes/Prototype.FanConstantVolume.rb
238
273
  - lib/openstudio-standards/prototypes/Prototype.FanOnOff.rb
239
274
  - lib/openstudio-standards/prototypes/Prototype.FanVariableVolume.rb
@@ -274,17 +309,25 @@ files:
274
309
  - lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb
275
310
  - lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb
276
311
  - lib/openstudio-standards/standards/Standards.Construction.rb
312
+ - lib/openstudio-standards/standards/Standards.CoolingTower.rb
313
+ - lib/openstudio-standards/standards/Standards.CoolingTowerSingleSpeed.rb
314
+ - lib/openstudio-standards/standards/Standards.CoolingTowerTwoSpeed.rb
315
+ - lib/openstudio-standards/standards/Standards.CoolingTowerVariableSpeed.rb
277
316
  - lib/openstudio-standards/standards/Standards.Fan.rb
278
317
  - lib/openstudio-standards/standards/Standards.FanConstantVolume.rb
279
318
  - lib/openstudio-standards/standards/Standards.FanOnOff.rb
280
319
  - lib/openstudio-standards/standards/Standards.FanVariableVolume.rb
281
320
  - lib/openstudio-standards/standards/Standards.FanZoneExhaust.rb
321
+ - lib/openstudio-standards/standards/Standards.HeaderedPumpsConstantSpeed.rb
322
+ - lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb
323
+ - lib/openstudio-standards/standards/Standards.HeatExchangerSensLat.rb
282
324
  - lib/openstudio-standards/standards/Standards.Model.rb
283
325
  - lib/openstudio-standards/standards/Standards.PlanarSurface.rb
284
326
  - lib/openstudio-standards/standards/Standards.PlantLoop.rb
285
327
  - lib/openstudio-standards/standards/Standards.Pump.rb
286
328
  - lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb
287
329
  - lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb
330
+ - lib/openstudio-standards/standards/Standards.ScheduleCompact.rb
288
331
  - lib/openstudio-standards/standards/Standards.ScheduleConstant.rb
289
332
  - lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb
290
333
  - lib/openstudio-standards/standards/Standards.Space.rb
@@ -293,6 +336,7 @@ files:
293
336
  - lib/openstudio-standards/standards/Standards.Surface.rb
294
337
  - lib/openstudio-standards/standards/Standards.ThermalZone.rb
295
338
  - lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb
339
+ - lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb
296
340
  - lib/openstudio-standards/utilities/hash.rb
297
341
  - lib/openstudio-standards/utilities/logging.rb
298
342
  - lib/openstudio-standards/utilities/simulation.rb
@@ -600,6 +644,7 @@ files:
600
644
  - data/weather/CAN_YT_Whitehorse.719640_CWEC.ddy
601
645
  - data/weather/CAN_YT_Whitehorse.719640_CWEC.epw
602
646
  - data/weather/CAN_YT_Whitehorse.719640_CWEC.stat
647
+ - data/weather/envelope_info.csv
603
648
  - data/weather/necb_climate_index.csv
604
649
  - data/weather/SAU_Riyadh.404380_IWEC.ddy
605
650
  - data/weather/SAU_Riyadh.404380_IWEC.epw
@@ -613,6 +658,15 @@ files:
613
658
  - data/weather/USA_CA_San.Francisco.Intl.AP.724940_TMY3.ddy
614
659
  - data/weather/USA_CA_San.Francisco.Intl.AP.724940_TMY3.epw
615
660
  - data/weather/USA_CA_San.Francisco.Intl.AP.724940_TMY3.stat
661
+ - data/weather/USA_CO_Boulder-Broomfield-Jefferson.County.AP.724699_TMY3.ddy
662
+ - data/weather/USA_CO_Boulder-Broomfield-Jefferson.County.AP.724699_TMY3.epw
663
+ - data/weather/USA_CO_Boulder-Broomfield-Jefferson.County.AP.724699_TMY3.stat
664
+ - data/weather/USA_CO_Denver.Intl.AP.725650_TMY3.ddy
665
+ - data/weather/USA_CO_Denver.Intl.AP.725650_TMY3.epw
666
+ - data/weather/USA_CO_Denver.Intl.AP.725650_TMY3.stat
667
+ - data/weather/USA_CO_Fort.Collins.AWOS.724769_TMY3.ddy
668
+ - data/weather/USA_CO_Fort.Collins.AWOS.724769_TMY3.epw
669
+ - data/weather/USA_CO_Fort.Collins.AWOS.724769_TMY3.stat
616
670
  - data/weather/USA_FL_Miami.Intl.AP.722020_TMY3.ddy
617
671
  - data/weather/USA_FL_Miami.Intl.AP.722020_TMY3.epw
618
672
  - data/weather/USA_FL_Miami.Intl.AP.722020_TMY3.stat
@@ -676,4 +730,3 @@ specification_version: 4
676
730
  summary: Creates DOE Prototype building models and transforms proposed OpenStudio
677
731
  models to baseline OpenStudio models.
678
732
  test_files: []
679
- has_rdoc: