openstudio-standards 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/data/standards/OpenStudio_Standards.xlsx +0 -0
  3. data/data/standards/OpenStudio_Standards_chillers.json +5 -5
  4. data/data/standards/OpenStudio_Standards_construction_sets.json +2 -2
  5. data/data/standards/OpenStudio_Standards_curve_cubics.json +12 -0
  6. data/data/standards/OpenStudio_Standards_heat_pumps.json +2126 -72
  7. data/data/standards/OpenStudio_Standards_heat_pumps_heating.json +766 -14
  8. data/data/standards/OpenStudio_Standards_heat_rejection.json +172 -0
  9. data/data/standards/OpenStudio_Standards_prototype_inputs.json +355 -267
  10. data/data/standards/OpenStudio_Standards_schedules.json +262 -10
  11. data/data/standards/OpenStudio_Standards_space_types.json +1466 -794
  12. data/data/standards/manage_OpenStudio_Standards.rb +19 -21
  13. data/data/weather/weather_info.csv +96 -0
  14. data/lib/openstudio-standards/btap/btap.rb +1 -1
  15. data/lib/openstudio-standards/btap/compliance.rb +135 -40
  16. data/lib/openstudio-standards/btap/envelope.rb +26 -5
  17. data/lib/openstudio-standards/btap/geometry.rb +11 -1
  18. data/lib/openstudio-standards/btap/hvac.rb +489 -56
  19. data/lib/openstudio-standards/btap/simmanager.rb +1 -1
  20. data/lib/openstudio-standards/hvac_sizing/HVACSizing.CoilHeatingDXMultiSpeed.rb +120 -0
  21. data/lib/openstudio-standards/hvac_sizing/Siz.CoilCoolingDXMultiSpeed.rb +151 -7
  22. data/lib/openstudio-standards/hvac_sizing/Siz.CoilHeatingGasMultiStage.rb +48 -7
  23. data/lib/openstudio-standards/hvac_sizing/Siz.Model.rb +14 -12
  24. data/lib/openstudio-standards/prototypes/Prototype.AirTerminalSingleDuctVAVReheat.rb +33 -7
  25. data/lib/openstudio-standards/prototypes/Prototype.Model.hvac.rb +123 -91
  26. data/lib/openstudio-standards/prototypes/Prototype.Model.rb +130 -45
  27. data/lib/openstudio-standards/prototypes/Prototype.Model.swh.rb +13 -7
  28. data/lib/openstudio-standards/prototypes/Prototype.full_service_restaurant.rb +332 -324
  29. data/lib/openstudio-standards/prototypes/Prototype.hospital.rb +401 -99
  30. data/lib/openstudio-standards/prototypes/Prototype.hvac_systems.rb +309 -222
  31. data/lib/openstudio-standards/prototypes/Prototype.large_hotel.rb +100 -80
  32. data/lib/openstudio-standards/prototypes/Prototype.large_office.rb +37 -22
  33. data/lib/openstudio-standards/prototypes/Prototype.medium_office.rb +68 -53
  34. data/lib/openstudio-standards/prototypes/Prototype.mid_rise_apartment.rb +109 -88
  35. data/lib/openstudio-standards/prototypes/Prototype.outpatient.rb +52 -4
  36. data/lib/openstudio-standards/prototypes/Prototype.primary_school.rb +230 -213
  37. data/lib/openstudio-standards/prototypes/Prototype.quick_service_restaurant.rb +225 -218
  38. data/lib/openstudio-standards/prototypes/Prototype.retail_standalone.rb +29 -17
  39. data/lib/openstudio-standards/prototypes/Prototype.retail_stripmall.rb +42 -32
  40. data/lib/openstudio-standards/prototypes/Prototype.secondary_school.rb +331 -314
  41. data/lib/openstudio-standards/prototypes/Prototype.small_hotel.rb +233 -219
  42. data/lib/openstudio-standards/prototypes/Prototype.small_office.rb +40 -32
  43. data/lib/openstudio-standards/prototypes/Prototype.warehouse.rb +19 -6
  44. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +576 -555
  45. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +3 -1
  46. data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +35 -17
  47. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +51 -23
  48. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +255 -0
  49. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +192 -0
  50. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +65 -0
  51. data/lib/openstudio-standards/standards/Standards.Fan.rb +37 -6
  52. data/lib/openstudio-standards/standards/Standards.Model.rb +28 -3
  53. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +3 -1
  54. data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +41 -15
  55. data/lib/openstudio-standards/version.rb +1 -1
  56. data/lib/openstudio-standards/weather/Weather.Model.rb +509 -5
  57. data/lib/openstudio-standards/weather/Weather.stat_file.rb +145 -5
  58. metadata +8 -3
  59. data/lib/openstudio-standards/btap/environment.rb +0 -718
@@ -5,8 +5,6 @@ require 'rubygems'
5
5
  require 'json'
6
6
  require 'rubyXL'
7
7
 
8
- ENV['SSL_CERT_FILE'] = Gem.loaded_specs['google-api-client'].full_gem_path+'/lib/cacerts.pem'
9
-
10
8
  class String
11
9
 
12
10
  def snake_case
@@ -18,7 +16,7 @@ end
18
16
  # Convert OpenStudio_Standards.xlsx to a series
19
17
  # of JSON files for easier consumption.
20
18
  class Hash
21
-
19
+
22
20
  def sort_by_key_updated(recursive = false, &block)
23
21
  self.keys.sort(&block).reduce({}) do |seed, key|
24
22
  seed[key] = self[key]
@@ -41,7 +39,7 @@ class Hash
41
39
  end
42
40
  end
43
41
  seed[key] = seed[key].sort_by { |hsh| [ hsh['template'], hsh['building_type'], hsh['climate_zone_set'], hsh['space_type'], hsh['exterior_walls'], hsh['exterior_roofs'], hsh['exterior_floors'] ] }
44
- # Replace 'zzzz' back to nil
42
+ # Replace 'zzzz' back to nil
45
43
  seed[key].each do |item|
46
44
  item.keys.each do |key2|
47
45
  if item[key2] == 'zzzz'
@@ -50,7 +48,7 @@ class Hash
50
48
  end
51
49
  end
52
50
  elsif frst.has_key?('name') # For all other tabs, names should be unique
53
- seed[key] = seed[key].sort_by { |hsh| hsh['name'] }
51
+ seed[key] = seed[key].sort_by { |hsh| hsh['name'] }
54
52
  else
55
53
  seed[key] = seed[key]
56
54
  end
@@ -58,7 +56,7 @@ class Hash
58
56
  seed
59
57
  end
60
58
  end
61
-
59
+
62
60
  end
63
61
 
64
62
  # Downloads the OpenStudio_Standards.xlsx
@@ -111,7 +109,7 @@ def download_google_spreadsheet
111
109
  # Authorized client instance
112
110
  # @param [Google::APIClient::Schema::Drive::V2::File]
113
111
  # Drive File instance
114
- # @return
112
+ # @return
115
113
  # File's content if successful, nil otherwise
116
114
  def download_xlsx_spreadsheet(client, google_spreadsheet, path)
117
115
  file_name = google_spreadsheet.title
@@ -137,7 +135,7 @@ def download_google_spreadsheet
137
135
 
138
136
  # Initialize the API
139
137
  client_secret_path = File.join(Dir.home, '.credentials',"client_secret.json")
140
-
138
+
141
139
  credentials_path = File.join(Dir.home, '.credentials',"openstudio-standards-google-drive.json")
142
140
  client = Google::APIClient.new(:application_name => 'openstudio-standards')
143
141
  client.authorization = authorize(credentials_path, client_secret_path)
@@ -200,21 +198,21 @@ def export_spreadsheet_to_json
200
198
  cols_to_skip << 'exhaust_per_area'
201
199
  cols_to_skip << 'exhaust_per_unit'
202
200
  cols_to_skip << 'exhaust_fan_power_per_area'
203
-
201
+
204
202
  # List of columns that are boolean
205
203
  # (rubyXL returns 0 or 1, will translate to true/false)
206
204
  bool_cols = []
207
- bool_cols << 'hx'
208
-
205
+ bool_cols << 'hx'
206
+
209
207
  # Open workbook
210
208
  workbook = RubyXL::Parser.parse(xlsx_path)
211
209
 
212
210
  # Loop through and export each tab to a separate JSON file
213
211
  workbook.worksheets.each do |worksheet|
214
212
  sheet_name = worksheet.sheet_name.snake_case
215
-
213
+
216
214
  standards_data = {}
217
-
215
+
218
216
  # Skip the specified worksheets
219
217
  if worksheets_to_skip.include?(sheet_name)
220
218
  puts "Skipping #{sheet_name}"
@@ -222,7 +220,7 @@ def export_spreadsheet_to_json
222
220
  else
223
221
  puts "Exporting #{sheet_name}"
224
222
  end
225
-
223
+
226
224
  # All spreadsheets must have headers in row 3
227
225
  # and data from roworksheet 4 onward.
228
226
  header_row = 2 # Base 0
@@ -248,7 +246,7 @@ def export_spreadsheet_to_json
248
246
  headers << header
249
247
  end
250
248
  puts "--found #{headers.size} columns"
251
-
249
+
252
250
  # Loop through all rows and export
253
251
  # data for the row to a hash.
254
252
  objs = []
@@ -349,11 +347,11 @@ def export_spreadsheet_to_json
349
347
  end
350
348
 
351
349
  end
352
-
350
+
353
351
  # Report how many objects were found
354
352
  puts "--found #{objs.size} rows"
355
-
356
- # Save this hash
353
+
354
+ # Save this hash
357
355
  standards_data[sheet_name] = objs
358
356
 
359
357
  # Sort the standard data so it can be diffed easily
@@ -363,9 +361,9 @@ def export_spreadsheet_to_json
363
361
  File.open("#{File.dirname(__FILE__)}/OpenStudio_Standards_#{sheet_name}.json", 'w:UTF-8') do |file|
364
362
  file << JSON::pretty_generate(sorted_standards_data)
365
363
  end
366
- puts "Successfully generated OpenStudio_Standards_#{sheet_name}.json"
367
-
368
-
364
+ puts "Successfully generated OpenStudio_Standards_#{sheet_name}.json"
365
+
366
+
369
367
  end
370
368
 
371
369
  end
@@ -0,0 +1,96 @@
1
+ file,location_name,energy_plus_location_name,country,state_province_region,city,hdd10,hdd18,cdd10,cdd18,latitude,longitude,elevation, deltaDB, climate_zone, cz_standard, summer_wet_months, winter_dry_months,autumn_months, spring_months, typical_summer_wet_week, typical_winter_dry_week, typical_autumn_week, typical_spring_week
2
+ CAN_AB_Calgary.718770_CWEC.epw, CAN-AB-Calgary Int'l,Calgary Int'l_AB_CAN,CAN, AB, Calgary Int'l, 2655.0, 5086.0,648.0,37.0,51.12, -114.02, 1084.0, 25.0 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-24, 2000-12-22, 2000-10-13, 2000-04-19
3
+ CAN_AB_Edmonton.711230_CWEC.epw, CAN-AB-Edmonton Stony Plain,Edmonton Stony Plain_AB_CAN,CAN, AB, Edmonton Stony Plain, 3281.0, 5755.0,591.0,23.0,53.53, -114.1, 723.0, 27.5 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-20, 2000-02-17, 2000-10-13, 2000-04-12
4
+ CAN_AB_Fort.McMurray.719320_CWEC.epw, CAN-AB-Fort McMurray,Fort McMurray_AB_CAN,CAN, AB, Fort McMurray, 3939.0, 6384.0,642.0,47.0,56.65, -111.22, 369.0, 33.5 ,7,90.1-2004 and 90.2-2004 Climate Zone,May:Jul, Nov:Jan,Aug:Oct, Feb:Apr, 2000-06-05, 2000-11-29, 2000-09-12, 2000-03-15
5
+ CAN_AB_Grande.Prairie.719400_CWEC.epw, CAN-AB-Grand Prairie,Grand Prairie_AB_CAN,CAN, AB, Grand Prairie, 3421.0, 5886.0,599.0,24.0,55.18, -118.88, 669.0, 28.9 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-17, 2000-02-17, 2000-10-13, 2000-04-05
6
+ CAN_AB_Lethbridge.712430_CWEC.epw, CAN-AB-Lethbridge,Lethbridge_AB_CAN,CAN, AB, Lethbridge, 2292.0, 4508.0,942.0,117.0,49.63, -112.8, 921.0, 26.5 ,6B,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-27, 2000-02-10, 2000-10-13, 2000-04-19
7
+ CAN_AB_Medicine.Hat.718720_CWEC.epw, CAN-AB-Medicine Hat,Medicine Hat_AB_CAN,CAN, AB, Medicine Hat, 2529.0, 4693.0,1047.0,168.0,50.02, -110.72, 716.0, 31.6 ,6B,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-07-08, 2000-02-05, 2000-12-17, 2000-04-29
8
+ CAN_BC_Abbotsford.711080_CWEC.epw, CAN-BC-Abbotsford,Abbotsford_BC_CAN,CAN, BC, Abbotsford, 855.0, 2963.0,1001.0,67.0,49.03, -122.37, 58.0, 14.3 ,5C,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-07-08, 2000-01-08, 2000-10-29, 2000-04-29
9
+ CAN_BC_Comox.718930_CWEC.epw, CAN-BC-Comox,Comox_BC_CAN,CAN, BC, Comox, 901.0, 3097.0,894.0,49.0,49.72, -124.9, 24.0, 15.200000000000001 ,5C,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-06, 2000-01-20, 2000-10-06, 2000-04-19
10
+ CAN_BC_Cranbrook.718800_CWEC.epw, CAN-BC-Cranbrook,Cranbrook_BC_CAN,CAN, BC, Cranbrook, 2294.0, 4579.0,873.0,117.0,49.6, -115.78, 940.0, 26.6 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-09-02, 2000-02-26, 2000-12-03, 2000-05-13
11
+ CAN_BC_Fort.St.John.719430_CWEC.epw, CAN-BC-Fort St John,Fort St John_BC_CAN,CAN, BC, Fort St John, 3386.0, 5878.0,571.0,23.0,56.23, -120.73, 695.0, 29.1 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-17, 2000-01-13, 2000-10-27, 2000-03-29
12
+ CAN_BC_Kamloops.718870_CWEC.epw, CAN-BC-Kamloops,Kamloops_BC_CAN,CAN, BC, Kamloops, 1585.0, 3567.0,1315.0,256.0,50.7, -120.45, 346.0, 25.6 ,5B,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-08-12, 2000-02-26, 2000-11-19, 2000-05-27
13
+ CAN_BC_Port.Hardy.711090_CWEC.epw, CAN-BC-Port Hardy,Port Hardy_BC_CAN,CAN, BC, Port Hardy, 976.0, 3581.0,437.0,0.0,50.68, -127.37, 22.0, 10.8 ,5C,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-08-19, 2000-03-12, 2000-12-03, 2000-05-13
14
+ CAN_BC_Prince.George.718960_CWEC.epw, CAN-BC-Prince George,Prince George_BC_CAN,CAN, BC, Prince George, 2618.0, 5142.0,538.0,19.0,53.88, -122.68, 691.0, 26.0 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-17, 2000-02-03, 2000-09-29, 2000-04-19
15
+ CAN_BC_Prince.Rupert.718980_CWEC.epw, CAN-BC-Prince Rupert,Prince Rupert_BC_CAN,CAN, BC, Prince Rupert, 1256.0, 3944.0,354.0,1.0,54.3, -130.43, 34.0, 13.5 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-07-22, 2000-01-01, 2000-12-03, 2000-05-06
16
+ CAN_BC_Sandspit.711010_CWEC.epw, CAN-BC-Sandspit,Sandspit_BC_CAN,CAN, BC, Sandspit, 996.0, 3562.0,477.0,2.0,53.25, -131.82, 6.0, 13.1 ,5C,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-07-22, 2000-02-05, 2000-12-17, 2000-05-13
17
+ CAN_BC_Smithers.719500_CWEC.epw, CAN-BC-Smithers,Smithers_BC_CAN,CAN, BC, Smithers, 2572.0, 5167.0,459.0,13.0,54.82, -127.18, 523.0, 24.200000000000003 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-17, 2000-01-06, 2000-10-27, 2000-04-12
18
+ CAN_BC_Summerland.717680_CWEC.epw, CAN-BC-Summerland,Summerland_BC_CAN,CAN, BC, Summerland, 1462.0, 3486.0,1272.0,254.0,49.57, -119.65, 479.0, 21.8 ,5A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-06, 2000-01-13, 2000-10-06, 2000-04-05
19
+ CAN_BC_Vancouver.718920_CWEC.epw, CAN-BC-Vancouver Int'l,Vancouver Int'l_BC_CAN,CAN, BC, Vancouver Int'l, 801.0, 2932.0,951.0,41.0,49.18, -123.17, 2.0, 13.900000000000002 ,5C,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-09-09, 2000-03-19, 2000-10-29, 2000-04-29
20
+ CAN_BC_Victoria.717990_CWEC.epw, CAN-BC-Victoria Int'l,Victoria Int'l_BC_CAN,CAN, BC, Victoria Int'l, 779.0, 3022.0,821.0,22.0,48.65, -123.43, 19.0, 12.3 ,5C,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-09-02, 2000-02-12, 2000-12-03, 2000-05-13
21
+ CAN_MB_Brandon.711400_CWEC.epw, CAN-MB-Brandon,Brandon_MB_CAN,CAN, MB, Brandon, 3672.0, 5963.0,860.0,109.0,49.92, -99.95, 409.0, 36.7 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-03, 2000-01-20, 2000-10-06, 2000-04-12
22
+ CAN_MB_Churchill.719130_CWEC.epw, CAN-MB-Churchill,Churchill_MB_CAN,CAN, MB, Churchill, 6257.0, 9075.0,237.0,15.0,58.75, -94.07, 29.0, 37.7 ,8,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-06, 2000-12-22, 2000-10-20, 2000-04-12
23
+ CAN_MB_The.Pas.718670_CWEC.epw, CAN-MB-The Pas,The Pas_MB_CAN,CAN, MB, The Pas, 4185.0, 6572.0,738.0,82.0,53.97, -101.1, 271.0, 37.9 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-15, 2000-12-08, 2000-10-27, 2000-04-12
24
+ CAN_MB_Winnipeg.718520_CWEC.epw, CAN-MB-Winnipeg Int'l,Winnipeg Int'l_MB_CAN,CAN, MB, Winnipeg Int'l, 3552.0, 5750.0,1011.0,168.0,49.9, -97.23, 239.0, 37.8 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-07-29, 2000-03-12, 2000-11-12, 2000-05-13
25
+ CAN_NB_Fredericton.717000_CWEC.epw, CAN-NB-Fredericton,Fredericton_NB_CAN,CAN, NB, Fredericton, 2497.0, 4692.0,979.0,132.0,45.87, -66.53, 20.0, 29.5 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-17, 2000-12-15, 2000-10-06, 2000-04-05
26
+ CAN_NB_Miramichi.717440_CWEC.epw, CAN-NB-Miramichi,Miramichi_NB_CAN,CAN, NB, Miramichi, 2579.0, 4772.0,1002.0,153.0,47.02, -65.45, 33.0, 29.6 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-17, 2000-02-17, 2000-10-06, 2000-04-19
27
+ CAN_NB_Saint.John.716090_CWEC.epw, CAN-NB-Saint John,Saint John_NB_CAN,CAN, NB, Saint John, 2419.0, 4771.0,719.0,29.0,45.32, -65.88, 109.0, 23.799999999999997 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-08-19, 2000-01-22, 2000-11-19, 2000-04-29
28
+ CAN_NF_Battle.Harbour.718170_CWEC.epw, CAN-NF-Battle Harbour,Battle Harbour_NF_CAN,CAN, NF, Battle Harbour, 3597.0, 6463.0,54.0,0.0,52.3, -55.83, 8.0, 21.6 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-06, 2000-02-03, 2000-10-13, 2000-04-12
29
+ CAN_NF_Gander.718030_CWEC.epw, CAN-NF-Gander Int'l,Gander Int'l_NF_CAN,CAN, NF, Gander Int'l, 2687.0, 5187.0,582.0,41.0,48.95, -54.57, 151.0, 22.6 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-20, 2000-02-10, 2000-10-13, 2000-04-26
30
+ CAN_NF_Goose.718160_CWEC.epw, CAN-NF-Goose,Goose_NF_CAN,CAN, NF, Goose, 4112.0, 6719.0,475.0,42.0,53.32, -60.37, 49.0, 33.0 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-03, 2000-01-27, 2000-09-29, 2000-04-12
31
+ CAN_NF_St.Johns.718010_CWEC.epw, CAN-NF-St John's,St John's_NF_CAN,CAN, NF, St John's, 2381.0, 4907.0,543.0,28.0,47.62, -52.73, 140.0, 20.5 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-15, 2000-02-17, 2000-10-20, 2000-05-03
32
+ CAN_NF_Stephenville.718150_CWEC.epw, CAN-NF-Stephenville,Stephenville_NF_CAN,CAN, NF, Stephenville, 2432.0, 4889.0,606.0,21.0,48.53, -58.55, 26.0, 23.099999999999998 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-08-26, 2000-03-19, 2000-11-05, 2000-05-27
33
+ CAN_NS_Greenwood.713970_CWEC.epw, CAN-NS-Greenwood,Greenwood_NS_CAN,CAN, NS, Greenwood, 2038.0, 4188.0,1030.0,139.0,44.98, -64.92, 28.0, 23.8 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-24, 2000-12-22, 2000-09-29, 2000-04-05
34
+ CAN_NS_Sable.Island.716000_CWEC.epw, CAN-NS-Sable Island,Sable Island_NS_CAN,CAN, NS, Sable Island, 1528.0, 3862.0,731.0,23.0,43.93, -60.02, 4.0, 18.299999999999997 ,5A,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-07-15, 2000-02-12, 2000-11-26, 2000-05-20
35
+ CAN_NS_Shearwater.716010_CWEC.epw, CAN-NS-Shearwater,Shearwater_NS_CAN,CAN, NS, Shearwater, 1989.0, 4237.0,858.0,64.0,44.63, -63.5, 51.0, 22.0 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-17, 2000-01-13, 2000-10-13, 2000-04-05
36
+ CAN_NS_Sydney.717070_CWEC.epw, CAN-NS-Sydney,Sydney_NS_CAN,CAN, NS, Sydney, 2284.0, 4627.0,774.0,75.0,46.17, -60.05, 62.0, 24.0 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-07-01, 2000-03-12, 2000-12-10, 2000-05-06
37
+ CAN_NS_Truro.713980_CWEC.epw, CAN-NS-Truro,Truro_NS_CAN,CAN, NS, Truro, 2358.0, 4536.0,778.0,36.0,45.37, -63.27, 40.0, 25.2 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-15, 2000-12-22, 2000-10-20, 2000-04-12
38
+ CAN_NT_Inuvik.719570_CWEC.epw, CAN-NT-Inuvik Ua,Inuvik Ua_NT_CAN,CAN, NT, Inuvik Ua, 6943.0, 9679.0,328.0,21.0,68.3, -133.48, 68.0, 40.6 ,8,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-17, 2000-12-15, 2000-10-13, 2000-04-12
39
+ CAN_NU_Resolute.719240_CWEC.epw, CAN-NU-Resolute,Resolute_NU_CAN,CAN, NU, Resolute, 9430.0, 12471.0,1.0,0.0,74.72, -94.98, 67.0, 35.900000000000006 ,8,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-20, 2000-01-20, 2000-10-13, 2000-03-22
40
+ CAN_ON_Kingston.716200_CWEC.epw, CAN-ON-Kingston,Kingston_ON_CAN,CAN, ON, Kingston, 2303.0, 4287.0,1124.0,188.0,44.22, -76.6, 93.0, 27.700000000000003 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-06, 2000-02-17, 2000-10-06, 2000-04-12
41
+ CAN_ON_London.716230_CWEC.epw, CAN-ON-London,London_ON_CAN,CAN, ON, London, 1983.0, 3984.0,1273.0,233.0,43.03, -81.15, 278.0, 27.9 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-24, 2000-12-22, 2000-10-13, 2000-03-22
42
+ CAN_ON_Mount.Forest.716310_CWEC.epw, CAN-ON-Mount Forest,Mount Forest_ON_CAN,CAN, ON, Mount Forest, 2383.0, 4555.0,1010.0,140.0,43.98, -80.75, 415.0, 27.7 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-22, 2000-12-15, 2000-10-06, 2000-04-05
43
+ CAN_ON_Muskoka.716300_CWEC.epw, CAN-ON-Muskoka,Muskoka_ON_CAN,CAN, ON, Muskoka, 2648.0, 4773.0,892.0,97.0,44.97, -79.3, 282.0, 29.3 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-22, 2000-12-15, 2000-10-13, 2000-04-19
44
+ CAN_ON_North.Bay.717310_CWEC.epw, CAN-ON-North Bay,North Bay_ON_CAN,CAN, ON, North Bay, 3007.0, 5243.0,926.0,118.0,46.35, -79.43, 371.0, 32.2 ,7,90.1-2004 and 90.2-2004 Climate Zone,May:Jul, Nov:Jan,Aug:Oct, Feb:Apr, 2000-07-03, 2000-12-06, 2000-09-05, 2000-02-15
45
+ CAN_ON_Ottawa.716280_CWEC.epw, CAN-ON-Ottawa Int'l,Ottawa Int'l_ON_CAN,CAN, ON, Ottawa Int'l, 2517.0, 4563.0,1233.0,236.0,45.32, -75.67, 114.0, 31.8 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-29, 2000-01-20, 2000-10-13, 2000-04-19
46
+ CAN_ON_Sault.Ste.Marie.712600_CWEC.epw, CAN-ON-Sault Ste Marie,Sault Ste Marie_ON_CAN,CAN, ON, Sault Ste Marie, 2703.0, 4994.0,841.0,91.0,46.48, -84.52, 192.0, 28.299999999999997 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-07-08, 2000-03-05, 2000-11-05, 2000-04-29
47
+ CAN_ON_Simcoe.715270_CWEC.epw, CAN-ON-Simcoe,Simcoe_ON_CAN,CAN, ON, Simcoe, 2117.0, 4066.0,1160.0,189.0,42.85, -80.27, 241.0, 26.400000000000002 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-17, 2000-12-15, 2000-10-13, 2000-04-26
48
+ CAN_ON_Thunder.Bay.717490_CWEC.epw, CAN-ON-Thunder Bay,Thunder Bay_ON_CAN,CAN, ON, Thunder Bay, 3256.0, 5633.0,733.0,69.0,48.37, -89.32, 199.0, 33.8 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-17, 2000-01-27, 2000-10-20, 2000-03-29
49
+ CAN_ON_Timmins.717390_CWEC.epw, CAN-ON-Timmins,Timmins_ON_CAN,CAN, ON, Timmins, 3704.0, 6099.0,730.0,84.0,48.57, -81.37, 295.0, 33.8 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-03, 2000-02-03, 2000-10-06, 2000-04-19
50
+ CAN_ON_Toronto.716240_CWEC.epw, CAN-ON-Toronto Int'l,Toronto Int'l_ON_CAN,CAN, ON, Toronto Int'l, 1954.0, 3956.0,1316.0,276.0,43.67, -79.63, 173.0, 26.6 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-08-19, 2000-02-12, 2000-10-22, 2000-05-06
51
+ CAN_ON_Trenton.716210_CWEC.epw, CAN-ON-Trenton,Trenton_ON_CAN,CAN, ON, Trenton, 2129.0, 4181.0,1194.0,204.0,44.12, -77.53, 86.0, 27.700000000000003 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-17, 2000-01-13, 2000-10-20, 2000-03-29
52
+ CAN_ON_Windsor.715380_CWEC.epw, CAN-ON-Windsor,Windsor_ON_CAN,CAN, ON, Windsor, 1644.0, 3482.0,1622.0,418.0,42.27, -82.97, 190.0, 27.1 ,5A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-27, 2000-02-17, 2000-10-13, 2000-03-22
53
+ CAN_PE_Charlottetown.717060_CWEC.epw, CAN-PE-Charlottetown CDA,Charlottetown CDA_PE_CAN,CAN, PE, Charlottetown CDA, 2438.0, 4703.0,873.0,94.0,46.28, -63.13, 54.0, 25.6 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-22, 2000-12-22, 2000-10-13, 2000-05-03
54
+ CAN_PQ_Bagotville.717270_CWEC.epw, CAN-PQ-Bagotville,Bagotville_PQ_CAN,CAN, PQ, Bagotville, 3424.0, 5758.0,803.0,95.0,48.33, -71.0, 159.0, 32.400000000000006 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-29, 2000-02-10, 2000-10-13, 2000-03-15
55
+ CAN_PQ_Baie.Comeau.711870_CWEC.epw, CAN-PQ-Baie Comeau,Baie Comeau_PQ_CAN,CAN, PQ, Baie Comeau, 3419.0, 6012.0,458.0,9.0,49.13, -68.2, 22.0, 29.8 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-17, 2000-02-10, 2000-10-06, 2000-04-26
56
+ CAN_PQ_Grindstone.Island_CWEC.epw, CAN-PQ-Grindstone Island,Grindstone Island_PQ_CAN,CAN, PQ, Grindstone Island, 2559.0, 4940.0,556.0,18.0,47.38, -61.87, 59.0, 23.8 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-08-19, 2000-02-26, 2000-10-22, 2000-05-20
57
+ CAN_PQ_Kuujjuarapik.719050_CWEC.epw, CAN-PQ-Kuujjuarapik,Kuujjuarapik_PQ_CAN,CAN, PQ, Kuujjuarapik, 5233.0, 8061.0,231.0,18.0,55.28, -77.77, 12.0, 32.0 ,8,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-17, 2000-12-22, 2000-10-20, 2000-03-29
58
+ CAN_PQ_Kuujuaq.719060_CWEC.epw, CAN-PQ-Kuujuaq,Kuujuaq_PQ_CAN,CAN, PQ, Kuujuaq, 5701.0, 8564.0,183.0,6.0,58.1, -68.42, 37.0, 31.8 ,8,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-10, 2000-02-03, 2000-10-13, 2000-04-12
59
+ CAN_PQ_La.Grande.Riviere.718270_CWEC.epw, CAN-PQ-La Grande Riviere,La Grande Riviere_PQ_CAN,CAN, PQ, La Grande Riviere, 4987.0, 7672.0,387.0,30.0,53.63, -77.7, 195.0, 35.2 ,8,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-06, 2000-01-06, 2000-10-27, 2000-04-26
60
+ CAN_PQ_Lake.Eon.714210_CWEC.epw, CAN-PQ-Lake Eon,Lake Eon_PQ_CAN,CAN, PQ, Lake Eon, 4563.0, 7255.0,383.0,32.0,51.87, -63.28, 561.0, 33.9 ,8,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-29, 2000-12-01, 2000-10-13, 2000-04-12
61
+ CAN_PQ_Mont.Joli.717180_CWEC.epw, CAN-PQ-Mont Joli,Mont Joli_PQ_CAN,CAN, PQ, Mont Joli, 3028.0, 5424.0,711.0,67.0,48.6, -68.22, 52.0, 30.8 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-06, 2000-02-17, 2000-10-06, 2000-04-26
62
+ CAN_PQ_Montreal.Intl.AP.716270_CWEC.epw, CAN-PQ-Montreal Int'l,Montreal Int'l_PQ_CAN,CAN, PQ, Montreal Int'l, 2409.0, 4428.0,1277.0,253.0,45.47, -73.75, 36.0, 30.2 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-08, 2000-02-17, 2000-10-13, 2000-04-12
63
+ CAN_PQ_Montreal.Jean.Brebeuf.716278_CWEC.epw, CAN-PQ-Montreal Jean Brebeuf,Montreal Jean Brebeuf_PQ_CAN,CAN, PQ, Montreal Jean Brebeuf, 2665.0, 4615.0,1179.0,209.0,45.5, -73.62, 133.0, 31.2 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-29, 2000-12-22, 2000-10-13, 2000-04-19
64
+ CAN_PQ_Montreal.Mirabel.716278_CWEC.epw, CAN-PQ-Montreal Mirabel,Montreal Mirabel_PQ_CAN,CAN, PQ, Montreal Mirabel, 2810.0, 4862.0,970.0,102.0,45.68, -74.03, 82.0, 33.4 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-03, 2000-02-03, 2000-10-20, 2000-04-12
65
+ CAN_PQ_Nitchequon.CAN270_CWEC.epw, CAN-PQ-Nitchequon,Nitchequon_PQ_CAN,CAN, PQ, Nitchequon, 5242.0, 7922.0,247.0,6.0,53.2, -70.9, 536.0, 35.8 ,8,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-24, 2000-01-13, 2000-10-20, 2000-03-22
66
+ CAN_PQ_Quebec.717140_CWEC.epw, CAN-PQ-Quebec City,Quebec City_PQ_CAN,CAN, PQ, Quebec City, 2891.0, 5094.0,970.0,132.0,46.8, -71.38, 73.0, 31.0 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-10, 2000-02-10, 2000-10-20, 2000-04-26
67
+ CAN_PQ_Riviere.du.Loup.717150_CWEC.epw, CAN-PQ-Riviere Du Loup,Riviere Du Loup_PQ_CAN,CAN, PQ, Riviere Du Loup, 3013.0, 5399.0,721.0,65.0,47.8, -69.55, 148.0, 30.1 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-29, 2000-12-22, 2000-10-20, 2000-04-19
68
+ CAN_PQ_Roberval.717280_CWEC.epw, CAN-PQ-Roberval,Roberval_PQ_CAN,CAN, PQ, Roberval, 3468.0, 5787.0,831.0,109.0,48.52, -72.27, 179.0, 35.6 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-10, 2000-02-10, 2000-10-06, 2000-04-19
69
+ CAN_PQ_Schefferville.718280_CWEC.epw, CAN-PQ-Schefferville,Schefferville_PQ_CAN,CAN, PQ, Schefferville, 5519.0, 8339.0,229.0,7.0,54.8, -66.82, 521.0, 34.6 ,8,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-08-19, 2000-01-01, 2000-11-12, 2000-05-13
70
+ CAN_PQ_Sept-Iles.718110_CWEC.epw, CAN-PQ-Sept-Iles,Sept-Iles_PQ_CAN,CAN, PQ, Sept-Iles, 3618.0, 6252.0,416.0,8.0,50.22, -66.27, 55.0, 30.9 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-08-26, 2000-01-08, 2000-12-03, 2000-05-13
71
+ CAN_PQ_Sherbrooke.716100_CWEC.epw, CAN-PQ-Sherbrooke,Sherbrooke_PQ_CAN,CAN, PQ, Sherbrooke, 2803.0, 5058.0,880.0,93.0,45.43, -71.68, 241.0, 28.2 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-17, 2000-02-03, 2000-10-27, 2000-05-03
72
+ CAN_PQ_St.Hubert.713710_CWEC.epw, CAN-PQ-St Hubert,St Hubert_PQ_CAN,CAN, PQ, St Hubert, 2497.0, 4564.0,1192.0,217.0,45.52, -73.42, 27.0, 31.2 ,6A,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-27, 2000-01-13, 2000-10-27, 2000-04-19
73
+ CAN_PQ_Ste.Agathe.des.Monts.717200_CWEC.epw, CAN-PQ-Ste Agathe Des Monts,Ste Agathe Des Monts_PQ_CAN,CAN, PQ, Ste Agathe Des Monts, 3147.0, 5501.0,763.0,76.0,46.05, -74.28, 395.0, 29.6 ,7,90.1-2004 and 90.2-2004 Climate Zone,May:Jul, Nov:Jan,Aug:Oct, Feb:Apr, 2000-05-29, 2000-11-29, 2000-09-05, 2000-03-29
74
+ CAN_PQ_Val.d.Or.717250_CWEC.epw, CAN-PQ-Val d'Or,Val d'Or_PQ_CAN,CAN, PQ, Val d'Or, 3700.0, 6091.0,734.0,85.0,48.07, -77.78, 337.0, 35.0 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-03, 2000-02-03, 2000-10-27, 2000-04-12
75
+ CAN_SK_Estevan.718620_CWEC.epw, CAN-SK-Estevan,Estevan_SK_CAN,CAN, SK, Estevan, 3228.0, 5452.0,970.0,151.0,49.22, -102.97, 581.0, 35.1 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-01, 2000-01-20, 2000-10-27, 2000-04-26
76
+ CAN_SK_North.Battleford.718760_CWEC.epw, CAN-SK-North Battleford,North Battleford_SK_CAN,CAN, SK, North Battleford, 3642.0, 5978.0,782.0,77.0,52.77, -108.25, 548.0, 35.400000000000006 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-08-05, 2000-01-15, 2000-12-24, 2000-05-27
77
+ CAN_SK_Regina.718630_CWEC.epw, CAN-SK-Regina,Regina_SK_CAN,CAN, SK, Regina, 3436.0, 5701.0,902.0,126.0,50.43, -104.67, 577.0, 35.4 ,7,90.1-2004 and 90.2-2004 Climate Zone,May:Jul, Nov:Jan,Aug:Oct, Feb:Apr, 2000-06-05, 2000-12-06, 2000-09-26, 2000-03-29
78
+ CAN_SK_Saskatoon.718660_CWEC.epw, CAN-SK-Saskatoon,Saskatoon_SK_CAN,CAN, SK, Saskatoon, 3558.0, 5861.0,844.0,105.0,52.17, -106.68, 504.0, 34.4 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-08, 2000-12-15, 2000-10-27, 2000-04-12
79
+ CAN_SK_Swift.Current.718700_CWEC.epw, CAN-SK-Swift Current,Swift Current_SK_CAN,CAN, SK, Swift Current, 2971.0, 5261.0,878.0,125.0,50.28, -107.68, 818.0, 30.799999999999997 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-13, 2000-02-17, 2000-10-06, 2000-04-19
80
+ CAN_YT_Whitehorse.719640_CWEC.epw, CAN-YT-Whitehorse,Whitehorse_YT_CAN,CAN, YT, Whitehorse, 4070.0, 6803.0,313.0,6.0,60.72, -135.07, 703.0, 34.5 ,7,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-22, 2000-02-10, 2000-10-06, 2000-04-12
81
+ SAU_Riyadh.404380_IWEC.epw, SAU---RIYADH,RIYADH_-_SAU,SAU, -, RIYADH, 6.0, 301.0,6009.0,3264.0,24.7, 46.8, 612.0, 22.4 ,1B,90.1-2004 and 90.2-2004 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-15, 2000-02-03, 2000-10-13, 2000-03-29
82
+ USA_AK_Fairbanks.Intl.AP.702610_TMY3.epw, USA-AK-Fairbanks Intl Arpt,Fairbanks Intl Arpt_AK_USA,USA, AK, Fairbanks Intl Arpt, 5020.0, 7516.0,587.0,39.0,64.82, -147.85, 133.0, 36.2 ,8,196-2006 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-22, 2000-01-27, 2000-10-13, 2000-04-12
83
+ USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3.epw, USA-AZ-Phoenix Sky Harbor Intl Ap,Phoenix Sky Harbor Intl Ap_AZ_USA,USA, AZ, Phoenix Sky Harbor Intl Ap, 17.0, 523.0,5067.0,2532.0,33.45, -111.98, 337.0, 23.900000000000002 ,1B,196-2006 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-27, 2000-12-01, 2000-10-20, 2000-05-03
84
+ USA_CA_San.Francisco.Intl.AP.724940_TMY3.epw, USA-CA-San Francisco Intl Ap,San Francisco Intl Ap_CA_USA,USA, CA, San Francisco Intl Ap, 65.0, 1504.0,1681.0,79.0,37.62, -122.4, 2.0, 7.1 ,3C,196-2006 Climate Zone,Aug:Oct, Feb:Apr,Nov:Jan, May:Jul, 2000-09-05, 2000-02-15, 2000-12-06, 2000-05-29
85
+ USA_FL_Miami.Intl.AP.722020_TMY3.epw, USA-FL-Miami Intl Ap,Miami Intl Ap_FL_USA,USA, FL, Miami Intl Ap, 1.0, 72.0,5447.0,2477.0,25.82, -80.3, 11.0, 8.700000000000003 ,1A,196-2006 Climate Zone,Apr:Nov, Dec:Mar,NA, NA, 2000-06-17, 2000-01-13, NA, NA
86
+ USA_ID_Boise.Air.Terminal.726810_TMY3.epw, USA-ID-Boise Air Terminal Uo,Boise Air Terminal Uo_ID_USA,USA, ID, Boise Air Terminal Uo, 1295.0, 3143.0,1687.0,494.0,43.62, -116.21, 701.0, 26.2 ,4B,196-2006 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-22, 2000-02-17, 2000-10-06, 2000-04-19
87
+ USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw, USA-IL-Chicago Ohare Intl Ap,Chicago Ohare Intl Ap_IL_USA,USA, IL, Chicago Ohare Intl Ap, 1685.0, 3506.0,1689.0,468.0,41.98, -87.92, 201.0, 28.700000000000003 ,5A,196-2006 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-24, 2000-12-22, 2000-10-27, 2000-04-26
88
+ USA_MD_Baltimore-Washington.Intl.AP.724060_TMY3.epw, USA-MD-Baltimore Blt Washngtn IntL,Baltimore Blt Washngtn IntL_MD_USA,USA, MD, Baltimore Blt Washngtn IntL, 959.0, 2537.0,2145.0,682.0,39.17, -76.68, 45.0, 25.8 ,4A,196-2006 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-22, 2000-02-10, 2000-10-06, 2000-04-26
89
+ USA_MN_Duluth.Intl.AP.727450_TMY3.epw, USA-MN-Duluth International Arpt,Duluth International Arpt_MN_USA,USA, MN, Duluth International Arpt, 2976.0, 5236.0,898.0,116.0,46.83, -92.22, 433.0, 30.8 ,7,196-2006 Climate Zone,May:Jul, Nov:Jan,Aug:Oct, Feb:Apr, 2000-06-12, 2000-12-06, 2000-09-19, 2000-02-08
90
+ USA_MT_Helena.Rgnl.AP.727720_TMY3.epw, USA-MT-Helena Regional Airport,Helena Regional Airport_MT_USA,USA, MT, Helena Regional Airport, 2137.0, 4266.0,1119.0,208.0,46.6, -111.97, 1167.0, 25.5 ,6B,196-2006 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-10, 2000-12-22, 2000-09-29, 2000-04-26
91
+ USA_NM_Albuquerque.Intl.AP.723650_TMY3.epw, USA-NM-Albuquerque Intl Arpt Isis,Albuquerque Intl Arpt Isis_NM_USA,USA, NM, Albuquerque Intl Arpt Isis, 762.0, 2261.0,2293.0,749.0,35.04, -106.62, 1619.0, 23.5 ,4B,196-2006 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-10, 2000-12-01, 2000-10-13, 2000-04-19
92
+ USA_OR_Salem-McNary.Field.726940_TMY3.epw, USA-OR-Salem Mcnary Field,Salem Mcnary Field_OR_USA,USA, OR, Salem Mcnary Field, 626.0, 2542.0,1289.0,162.0,44.9, -123.0, 60.0, 15.600000000000001 ,4A,196-2006 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-08-24, 2000-02-17, 2000-10-06, 2000-04-12
93
+ USA_TN_Memphis.Intl.AP.723340_TMY3.epw, USA-TN-Memphis International Ap,Memphis International Ap_TN_USA,USA, TN, Memphis International Ap, 499.0, 1631.0,3138.0,1230.0,35.07, -89.98, 81.0, 24.200000000000003 ,3A,196-2006 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-06-29, 2000-12-22, 2000-10-20, 2000-04-05
94
+ USA_TX_El.Paso.Intl.AP.722700_TMY3.epw, USA-TX-El Paso International Ap Ut,El Paso International Ap Ut_TX_USA,USA, TX, El Paso International Ap Ut, 288.0, 1370.0,3245.0,1286.0,31.77, -106.5, 1186.0, 21.099999999999998 ,3B,196-2006 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-20, 2000-01-06, 2000-10-13, 2000-04-12
95
+ USA_TX_Houston-Bush.Intercontinental.AP.722430_TMY3.epw, USA-TX-Houston Bush Intercontinental,Houston Bush Intercontinental_TX_USA,USA, TX, Houston Bush Intercontinental, 121.0, 786.0,4043.0,1667.0,30.0, -95.37, 29.0, 17.8 ,2A,196-2006 Climate Zone,Jul:Sep, Jan:Mar,Oct:Dec, Apr:Jun, 2000-07-22, 2000-03-12, 2000-11-26, 2000-05-13
96
+ USA_VT_Burlington.Intl.AP.726170_TMY3.epw, USA-VT-Burlington International Ap,Burlington International Ap_VT_USA,USA, VT, Burlington International Ap, 2129.0, 4114.0,1330.0,276.0,44.47, -73.15, 101.0, 28.3 ,5A,196-2006 Climate Zone,Jun:Aug, Dec:Feb,Sep:Nov, Mar:May, 2000-07-27, 2000-12-22, 2000-10-13, 2000-03-29
@@ -17,6 +17,7 @@
17
17
  # * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
18
  # **********************************************************************/
19
19
 
20
+
20
21
  require 'openstudio/energyplus/find_energyplus'
21
22
  require 'fileutils'
22
23
  require 'singleton'
@@ -27,7 +28,6 @@ require_relative 'geometry'
27
28
  require_relative 'compliance'
28
29
  require_relative 'analysis'
29
30
  require_relative 'simmanager'
30
- require_relative 'environment'
31
31
  require_relative 'mpc'
32
32
  require_relative 'envelope'
33
33
  require_relative 'spaceloads'
@@ -452,12 +452,20 @@ module BTAP
452
452
  #@author phylroy.lopez@nrcan.gc.ca
453
453
  #@param model [OpenStudio::model::Model] A model object
454
454
  #@param hdd [Float]
455
- def self.set_necb_envelope( model, hdd )
455
+ def self.set_necb_envelope( model, runner=nil)
456
456
 
457
+ BTAP::runner_register("Info","set_envelope_surfaces_to_necb!", runner)
458
+ if model.weatherFile.empty? or model.weatherFile.get.path.empty? or not File.exists?(model.weatherFile.get.path.get.to_s)
459
+
460
+ BTAP::runner_register("Error","Weather file is not defined. Please ensure the weather file is defined and exists.", runner)
461
+ return false
462
+ end
463
+ hdd = BTAP::Environment::WeatherFile.new(model.weatherFile.get.path.get).hdd18
464
+
457
465
  #interate Through all surfaces
458
466
  model.getSurfaces.each do |surface|
459
467
  #set fenestration to wall ratio.
460
- BTAP::Compliance::NECB2011::set_fwdr(surface,hdd)
468
+ BTAP::Compliance::NECB2011::set_necb_external_surface_conductance(surface,hdd,false,1.0)
461
469
 
462
470
  #dig into the subsurface and change them as well.
463
471
  model.getSubSurfaces.each do |subsurface|
@@ -569,12 +577,13 @@ module BTAP
569
577
  #@param runner [Object]
570
578
  #@param [Boolean] use_max
571
579
  def self.set_necb_fwdr(model,use_max = false, runner = nil)
572
- BTAP::runner_register("Info","set_necb_fwdr", runner)
580
+ BTAP::runner_register("Info","set_necb_fwdr", runner)
573
581
  if model.weatherFile.empty? or model.weatherFile.get.path.empty? or not File.exists?(model.weatherFile.get.path.get.to_s)
574
582
  BTAP::runner_register("Error","Weather file is not defined. Please ensure the weather file is defined and exists.", runner)
575
583
  return false
576
584
  end
577
585
  hdd = BTAP::Environment::WeatherFile.new(model.weatherFile.get.path.get).hdd18
586
+
578
587
  old_fwdr = BTAP::Geometry::get_fwdr(model)
579
588
  BTAP::runner_register("Info","old FWDR is #{old_fwdr}", runner)
580
589
  outdoor_surfaces = BTAP::Geometry::Surfaces::filter_by_boundary_condition(model.getSurfaces(), "Outdoors")
@@ -663,20 +672,22 @@ module BTAP
663
672
  #@return [String] surface as RSI
664
673
  def self.set_necb_external_surface_conductance(surface,hdd,is_radiant = false,scaling_factor = 1.0)
665
674
  conductance_value = 0
675
+ climate_zone_index = self.get_climate_zone_index(hdd)
676
+
666
677
  if surface.outsideBoundaryCondition.downcase == "outdoors"
667
678
 
668
679
  case surface.surfaceType.downcase
669
680
  when "wall"
670
- conductance_value = BTAP::Compliance::NECB2011::Data::Conductances::Wall[BTAP::Compliance::NECB2011::get_climate_zone_index(@hdd)] * scaling_factor
681
+ conductance_value = BTAP::Compliance::NECB2011::Data::Conductances::Wall[climate_zone_index] * scaling_factor
671
682
  when "floor"
672
- conductance_value = BTAP::Compliance::NECB2011::Data::Conductances::Floor[BTAP::Compliance::NECB2011::get_climate_zone_index(@hdd)] * scaling_factor
683
+ conductance_value = BTAP::Compliance::NECB2011::Data::Conductances::Floor[climate_zone_index] * scaling_factor
673
684
  when "roofceiling"
674
- conductance_value = BTAP::Compliance::NECB2011::Data::Conductances::Roof[BTAP::Compliance::NECB2011::get_climate_zone_index(@hdd)]
685
+ conductance_value = BTAP::Compliance::NECB2011::Data::Conductances::Roof[climate_zone_index]
675
686
  end
676
687
  if (is_radiant)
677
688
  conductance_value = conductance_value * 0.80
678
689
  end
679
- return surface.setRSI(1/conductance_value)
690
+ return BTAP::Geometry::Surfaces::set_surfaces_construction_conductance( [surface], conductance_value )
680
691
  end
681
692
 
682
693
 
@@ -1034,27 +1045,50 @@ module BTAP
1034
1045
 
1035
1046
 
1036
1047
  def self.set_wildcard_schedules_to_dominant_building_schedule(model, runner = nil)
1048
+
1049
+ new_sched_ruleset = OpenStudio::Model::DefaultScheduleSet.new(model) #initialize
1037
1050
  BTAP::runner_register("Info", "set_wildcard_schedules_to_dominant_building_schedule", runner)
1038
1051
  #Set wildcard schedules based on dominant schedule type in building.
1039
1052
  dominant_sched_type = BTAP::Compliance::NECB2011::determine_dominant_necb_schedule_type(model)
1053
+ #puts "dominant_sched_type = #{dominant_sched_type}"
1054
+ # find schedule set that corresponds to dominant schedule type
1055
+ model.getDefaultScheduleSets.each do |sched_ruleset|
1056
+ # just check people schedule
1057
+ # TO DO: should make this smarter: check all schedules
1058
+ people_sched = sched_ruleset.numberofPeopleSchedule
1059
+ people_sched_name = people_sched.get.name.to_s unless people_sched.empty?
1060
+
1061
+ search_string = "NECB-#{dominant_sched_type}"
1062
+
1063
+ if people_sched.empty? == false
1064
+ if people_sched_name.include? search_string
1065
+ new_sched_ruleset = sched_ruleset
1066
+ end
1067
+ end
1068
+ end
1069
+
1070
+ # replace the default schedule set for the space type with * to schedule ruleset with dominant schedule type
1071
+
1040
1072
  model.getSpaces.each do |space|
1041
1073
  #check to see if space space type has a "*" wildcard schedule.
1042
1074
  spacetype_name = space.spaceType.get.name.to_s unless space.spaceType.empty?
1043
- if determine_necb_schedule_type( space ).to_s == "*".to_s
1044
- new_sched = (spacetype_name + "-" + dominant_sched_type).to_s
1045
- optional_spacetype = model.getSpaceTypeByName(new_sched)
1075
+ if determine_necb_schedule_type( space ).to_s == "*".to_s
1076
+ new_sched = (spacetype_name).to_s
1077
+ optional_spacetype = model.getSpaceTypeByName(new_sched)
1046
1078
  if optional_spacetype.empty?
1047
1079
  BTAP::runner_register("Error", "Cannot find NECB spacetype #{new_sched}" , runner )
1048
1080
  else
1049
- BTAP::runner_register("Info","Setting wildcard space #{spacetype_name} to concrete spacetype #{new_sched}",runner)
1050
- space.setSpaceType(optional_spacetype.get)
1081
+ BTAP::runner_register("Info","Setting wildcard spacetype #{spacetype_name} default schedule set to #{new_sched_ruleset.name}",runner)
1082
+ optional_spacetype.get.setDefaultScheduleSet(new_sched_ruleset) #this works!
1051
1083
  end
1052
1084
  end
1053
- end
1085
+ end # end of do |space|
1086
+
1054
1087
  return true
1055
1088
  end
1056
1089
 
1057
1090
  def self.set_zones_thermostat_schedule_based_on_space_type_schedules(model,runner = nil)
1091
+ puts "in set_zones_thermostat_schedule_based_on_space_type_schedules"
1058
1092
  BTAP::runner_register("DEBUG","Start-set_zones_thermostat_schedule_based_on_space_type_schedules" , runner)
1059
1093
  model.getThermalZones.each do |zone|
1060
1094
  BTAP::runner_register("DEBUG","\tThermalZone:#{zone.name}" , runner)
@@ -1062,6 +1096,13 @@ module BTAP
1062
1096
  zone.spaces.each do |space|
1063
1097
  schedule_type = BTAP::Compliance::NECB2011::determine_necb_schedule_type( space ).to_s
1064
1098
  BTAP::runner_register("DEBUG","space name/type:#{space.name}/#{schedule_type}" , runner)
1099
+
1100
+ # if wildcard space type, need to get dominant schedule type
1101
+ if schedule_type = "*".to_s
1102
+ dominant_sched_type = BTAP::Compliance::NECB2011::determine_dominant_necb_schedule_type(model)
1103
+ schedule_type = dominant_sched_type
1104
+ end
1105
+
1065
1106
  array << schedule_type
1066
1107
  end
1067
1108
  array.uniq!
@@ -1070,19 +1111,40 @@ module BTAP
1070
1111
  return false
1071
1112
  end
1072
1113
 
1073
- if model.getThermostatSetpointDualSetpointByName("NECB-#{array[0]}").empty? == false
1074
- ds = model.getThermostatSetpointDualSetpointByName("NECB-#{array[0]}").get
1075
- zone.setThermostatSetpointDualSetpoint(ds)
1076
-
1077
- BTAP::runner_register("Info","Found DualSetpoint Schedule NECB-#{array[0]}",runner)
1078
- BTAP::runner_register("Info","ThermalZone #{zone.name} set to DualSetpoint Schedule NECB-#{array[0]}",runner)
1079
- BTAP::runner_register("DEBUG","END-set_zones_thermostat_schedule_based_on_space_type_schedules" , runner)
1114
+
1115
+ htg_search_string = "NECB-#{array[0]}-Thermostat Setpoint-Heating"
1116
+ clg_search_string = "NECB-#{array[0]}-Thermostat Setpoint-Cooling"
1117
+
1118
+ if model.getScheduleRulesetByName(htg_search_string).empty? == false
1119
+ htg_sched = model.getScheduleRulesetByName(htg_search_string).get
1080
1120
  else
1081
- BTAP::runner_register("ERROR","set_zones_thermostat_schedule NECB-#{array[0]} does not exist" , runner)
1082
- puts model.getThermostatSetpointDualSetpoints
1121
+ BTAP::runner_register("ERROR","heating_thermostat_setpoint_schedule NECB-#{array[0]} does not exist" , runner)
1083
1122
  return false
1084
1123
  end
1124
+
1125
+ if model.getScheduleRulesetByName(clg_search_string).empty? == false
1126
+ clg_sched = model.getScheduleRulesetByName(clg_search_string).get
1127
+ else
1128
+ BTAP::runner_register("ERROR","cooling_thermostat_setpoint_schedule NECB-#{array[0]} does not exist" , runner)
1129
+ return false
1130
+ end
1131
+
1132
+ name = "NECB-#{array[0]}-Thermostat Dual Setpoint Schedule"
1133
+
1134
+ # If dual setpoint already exists, use that one, else create one
1135
+ if model.getThermostatSetpointDualSetpointByName(name).empty? == false
1136
+ ds = model.getThermostatSetpointDualSetpointByName(name).get
1137
+ else
1138
+ ds = BTAP::Resources::Schedules::create_annual_thermostat_setpoint_dual_setpoint(model, name, htg_sched, clg_sched)
1139
+ end
1140
+
1141
+ thermostatClone = ds.clone.to_ThermostatSetpointDualSetpoint.get
1142
+ zone.setThermostatSetpointDualSetpoint(thermostatClone)
1143
+ BTAP::runner_register("Info","ThermalZone #{zone.name} set to DualSetpoint Schedule NECB-#{array[0]}",runner)
1144
+
1085
1145
  end
1146
+
1147
+ BTAP::runner_register("DEBUG","END-set_zones_thermostat_schedule_based_on_space_type_schedules" , runner)
1086
1148
  return true
1087
1149
  end
1088
1150
 
@@ -1229,13 +1291,17 @@ module BTAP
1229
1291
  def self.lookup_spacetype_info(type)
1230
1292
  BTAP::Compliance::NECB2011::Data::SpaceTypeData.each do |item|
1231
1293
  # The optional suffix allows for for defined "wildcard" spacetypes to pass through.
1232
- if type.strip =~ /NECB-#{item[0]}(\-[ABCDEFGHI])?/
1294
+ # space type names have changed - original commented out below (until i know it works)
1295
+ # if type.strip =~ /NECB 2011 - Space Function - #{item[0]}(\-[ABCDEFGHI])?/
1296
+ if type.strip =~ /Space Function #{item[0]}(\-[ABCDEFGHI])?/
1233
1297
  return item
1234
1298
  end
1235
1299
 
1236
1300
  end
1237
1301
  BTAP::Compliance::NECB2011::Data::BuildingTypeData.each do |item|
1238
- if type.strip =~ /NECB-#{item[0]}(\-[ABCDEFGHI])?/
1302
+ # space type names have changed - original commented out below (until i know it works)
1303
+ # if type.strip =~ /NECB 2011 - Space Function - #{item[0]}(\-[ABCDEFGHI])?/
1304
+ if type.strip =~ /Space Function #{item[0]}(\-[ABCDEFGHI])?/
1239
1305
  return item
1240
1306
  end
1241
1307
  end
@@ -1262,14 +1328,23 @@ module BTAP
1262
1328
  #iterate through spaces in building.
1263
1329
  model.getSpaces.each do |space|
1264
1330
  raise ("Space #{space.name} does not have a spacetype defined!") if space.spaceType.empty?
1331
+
1265
1332
  spacetype_name = space.spaceType.get.name
1266
- #iterate throught the NECB spacetypes
1333
+
1334
+
1335
+ #iterate through the NECB spacetypes
1267
1336
  found_space_type = false
1268
- BTAP::Compliance::NECB2011::Data::SpaceTypeData.each do |spacetype|
1269
-
1270
- #puts "compare #{spacetype_name.to_s} == #{("NECB-" + spacetype[0]).to_s}"
1271
- if (spacetype_name.to_s == ("NECB-" + spacetype[0]).to_s )
1337
+ BTAP::Compliance::NECB2011::Data::SpaceTypeData.each do |spacetype|
1338
+
1339
+ # puts "compare #{spacetype_name.to_s} == #{("Space Function " + spacetype[0]).to_s}"
1340
+
1341
+ # i think spacetype names have changed, remove NECB 2011 -
1342
+ #if (spacetype_name.to_s == ("NECB 2011 - Space Function - " + spacetype[0]).to_s )
1343
+ # s[ spacetype[2] ] = s[ spacetype[2] ] + space.floorArea() if "*" != spacetype[2]
1344
+
1345
+ if (spacetype_name.to_s == ("Space Function " + spacetype[0]).to_s )
1272
1346
  s[ spacetype[2] ] = s[ spacetype[2] ] + space.floorArea() if "*" != spacetype[2]
1347
+
1273
1348
  #puts "Found #{space.spaceType.get.name} schedule #{spacetype[2]} match with floor area of #{space.floorArea()}"
1274
1349
  found_space_type = true
1275
1350
  elsif spacetype_name.to_s =~ /NECB-#{spacetype[0].to_s}(\-[ABCDEFGHI])?/
@@ -1294,11 +1369,16 @@ module BTAP
1294
1369
  BTAP::Compliance::NECB2011::Data::SpaceTypeData.each do |spacetype|
1295
1370
  spacetype_name = space.spaceType.get.name unless space.spaceType.empty?
1296
1371
  #If it is a regular space type.
1297
- if spacetype_name.to_s == ("NECB-" + spacetype[0]).to_s
1372
+
1373
+ # space type names have changed - original commented out below
1374
+ # if spacetype_name.to_s == ("NECB 2011 - Space Function - " + spacetype[0]).to_s
1375
+ if spacetype_name.to_s == ("Space Function " + spacetype[0]).to_s
1298
1376
  return spacetype[2]
1299
1377
  end
1300
1378
  #if it is a wildcard space type the schedule is in the name ensure that
1301
- if spacetype_name.to_s =~ /#{"NECB-" + spacetype[0]}-(\S)$/i
1379
+ # space type names have changed - original commented out below
1380
+ # if spacetype_name.to_s =~ /#{"NECB 2011 - Space Function - " + spacetype[0]}-(\S)$/i
1381
+ if spacetype_name.to_s =~ /#{"Space Function " + spacetype[0]}-(\S)$/i
1302
1382
  return $1
1303
1383
  end
1304
1384
  end
@@ -1378,8 +1458,13 @@ module BTAP
1378
1458
  return false
1379
1459
  end
1380
1460
 
1381
- unless ["Electric", "Gas", "DX"].include?(heating_coil_types_sys3)
1382
- BTAP::runner_register("ERROR","heating_coil_types_sys4and6 = #{heating_coil_types_sys4and6}",runner)
1461
+ unless ["Electric", "Gas", "DX"].include?(heating_coil_types_sys4)
1462
+ BTAP::runner_register("ERROR","heating_coil_types_sys4 = #{heating_coil_types_sys4}",runner)
1463
+ return false
1464
+ end
1465
+
1466
+ unless ["Hot Water", "Electric"].include?(heating_coil_types_sys6)
1467
+ BTAP::runner_register("ERROR","heating_coil_types_sys6 = #{heating_coil_types_sys6}",runner)
1383
1468
  return false
1384
1469
  end
1385
1470
 
@@ -1567,7 +1652,11 @@ module BTAP
1567
1652
  end
1568
1653
 
1569
1654
  #default it to ideal air system.
1570
- thermal_zone.setUseIdealAirLoads(true)
1655
+ #thermal_zone_ideal_loads = OpenStudio::Model::ZoneHVACIdealLoadsAirSystem.new(model)
1656
+ #thermal_zone_ideal_loads.addToThermalZone(thermal_zone)
1657
+
1658
+ # thermal_zone.setUseIdealAirLoads(true) - this uses HVACTemplateObject
1659
+
1571
1660
  #store zone in
1572
1661
  system_zone_array[system_number] << thermal_zone
1573
1662
 
@@ -1582,30 +1671,36 @@ module BTAP
1582
1671
  unless use_ideal_air_loads == true
1583
1672
 
1584
1673
 
1585
- puts boiler_fueltype
1586
-
1674
+ puts "boiler_fueltype = #{boiler_fueltype}"
1675
+
1587
1676
  system_zone_array.each_with_index do |zones,system_index|
1588
1677
  #skip if no thermal zones for this system.
1589
1678
  next if zones.size == 0
1590
1679
  puts "Zone Names for System #{system_index}"
1680
+ puts "system_index = #{system_index}"
1591
1681
  case system_index
1682
+ when 0
1683
+ zones.each do |thermal_zone|
1684
+ thermal_zone_ideal_loads = OpenStudio::Model::ZoneHVACIdealLoadsAirSystem.new(model)
1685
+ thermal_zone_ideal_loads.addToThermalZone(thermal_zone)
1686
+ end
1592
1687
  when 1
1593
- BTAP::Resources::HVAC::HVACTemplates::NECB2011::assign_zones_sys1(model, zones, boiler_fueltype, mau_type, mau_heating_coil_type, baseboard_type)
1688
+ BTAP::Resources::HVAC::HVACTemplates::NECB2011::assign_zones_sys1(model, zones, boiler_fueltype, mau_type, mau_heating_coil_type, baseboard_type)
1594
1689
  when 2
1595
1690
  BTAP::Resources::HVAC::HVACTemplates::NECB2011::assign_zones_sys2(model, zones, boiler_fueltype, chiller_type, mua_cooling_type)
1596
1691
  when 3
1597
1692
  BTAP::Resources::HVAC::HVACTemplates::NECB2011::assign_zones_sys3(model, zones, boiler_fueltype, heating_coil_types_sys3, baseboard_type)
1598
1693
  when 4
1599
- BTAP::Resources::HVAC::HVACTemplates::NECB2011::assign_zones_sys4(model, zones, boiler_fueltype, heating_coil_types_sys4and6, baseboard_type)
1694
+ BTAP::Resources::HVAC::HVACTemplates::NECB2011::assign_zones_sys4(model, zones, boiler_fueltype, heating_coil_types_sys4, baseboard_type)
1600
1695
  when 5
1601
1696
  BTAP::Resources::HVAC::HVACTemplates::NECB2011::assign_zones_sys5(model, zones, boiler_fueltype, chiller_type, mua_cooling_type)
1602
1697
  when 6
1603
- BTAP::Resources::HVAC::HVACTemplates::NECB2011::assign_zones_sys6(model, zones, boiler_fueltype, heating_coil_types_sys6, baseboard_type, chiller_type, fan_type)
1698
+ BTAP::Resources::HVAC::HVACTemplates::NECB2011::assign_zones_sys6(model, zones, boiler_fueltype, heating_coil_types_sys6, baseboard_type, chiller_type, fan_type)
1604
1699
  when 7
1605
1700
  BTAP::Resources::HVAC::HVACTemplates::NECB2011::assign_zones_sys2(model, zones, boiler_fueltype, chiller_type, mua_cooling_type)
1606
1701
  end
1607
1702
  end
1608
- end
1703
+ end
1609
1704
  end
1610
1705
  end
1611
1706
  end #Compliance