openstudio-standards 0.2.12 → 0.2.13.rc3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (492) hide show
  1. checksums.yaml +4 -4
  2. data/data/geometry/ASHRAE90120162019HighriseApartment.json +1042 -0
  3. data/data/geometry/ASHRAE90120162019Hospital.json +199 -0
  4. data/data/geometry/ASHRAE90120162019LargeHotel.json +73 -0
  5. data/data/geometry/ASHRAE90120162019LargeOffice.json +109 -0
  6. data/data/geometry/ASHRAE90120162019SecondarySchool.json +205 -0
  7. data/data/geometry/ASHRAECourthouse.json +112 -0
  8. data/data/geometry/ASHRAECourthouse.osm +26470 -0
  9. data/data/geometry/ASHRAELargeHotel.osm +11 -1
  10. data/data/geometry/ASHRAELargeOffice.json +4 -0
  11. data/data/standards/OpenStudio_Standards-ashrae_90_1(space_types).xlsx +0 -0
  12. data/data/standards/OpenStudio_Standards-ashrae_90_1-ALL-comstock(space_types).xlsx +0 -0
  13. data/data/standards/OpenStudio_Standards-ashrae_90_1.xlsx +0 -0
  14. data/data/standards/exclude_list.csv +19 -0
  15. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.boilers.json +49 -0
  16. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.chillers.json +293 -0
  17. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_properties.json +25426 -0
  18. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_sets.json +1600 -0
  19. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +564 -0
  20. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.elevators.json +349 -0
  21. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ext_ltg.json +164 -0
  22. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ground_temperatures.json +10663 -0
  23. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps.json +508 -0
  24. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +156 -0
  25. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_rejection.json +44 -0
  26. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.motors.json +184 -0
  27. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.prototype_inputs.json +3094 -0
  28. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ref_cases.json +829 -0
  29. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.ref_lnup.json +562 -0
  30. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_compressors.json +52 -0
  31. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_condenser.json +220 -0
  32. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_system.json +156 -0
  33. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.refrigeration_walkins.json +1316 -0
  34. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +21446 -0
  35. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.unitary_acs.json +554 -0
  36. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_heaters.json +68 -0
  37. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_source_heat_pumps.json +28 -0
  38. data/data/standards/export/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.water_source_heat_pumps_heating.json +12 -0
  39. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.boilers.json +49 -0
  40. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.chillers.json +293 -0
  41. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_properties.json +12487 -0
  42. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_sets.json +1600 -0
  43. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +564 -0
  44. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.elevators.json +349 -0
  45. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ext_ltg.json +164 -0
  46. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ground_temperatures.json +10663 -0
  47. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps.json +466 -0
  48. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +137 -0
  49. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_rejection.json +44 -0
  50. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.motors.json +184 -0
  51. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.prototype_inputs.json +3094 -0
  52. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ref_cases.json +829 -0
  53. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.ref_lnup.json +562 -0
  54. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_compressors.json +52 -0
  55. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_condenser.json +220 -0
  56. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_system.json +156 -0
  57. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.refrigeration_walkins.json +1316 -0
  58. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +21380 -0
  59. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.unitary_acs.json +554 -0
  60. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_heaters.json +68 -0
  61. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_source_heat_pumps.json +28 -0
  62. data/data/standards/export/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.water_source_heat_pumps_heating.json +12 -0
  63. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.boilers.json +49 -0
  64. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.chillers.json +395 -0
  65. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_properties.json +12487 -0
  66. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_sets.json +1600 -0
  67. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.economizers.json +592 -0
  68. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.elevators.json +349 -0
  69. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +550 -0
  70. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ext_ltg.json +164 -0
  71. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ground_temperatures.json +10663 -0
  72. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps.json +466 -0
  73. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +137 -0
  74. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_rejection.json +44 -0
  75. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.motors.json +238 -0
  76. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.prototype_inputs.json +3094 -0
  77. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ref_cases.json +829 -0
  78. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.ref_lnup.json +562 -0
  79. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_compressors.json +52 -0
  80. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_condenser.json +220 -0
  81. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_system.json +156 -0
  82. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.refrigeration_walkins.json +1316 -0
  83. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +21548 -0
  84. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.unitary_acs.json +554 -0
  85. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_heaters.json +68 -0
  86. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_source_heat_pumps.json +28 -0
  87. data/data/standards/export/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.water_source_heat_pumps_heating.json +12 -0
  88. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.boilers.json +64 -0
  89. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.chillers.json +871 -0
  90. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_properties.json +12487 -0
  91. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_sets.json +1600 -0
  92. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.economizers.json +592 -0
  93. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.elevators.json +349 -0
  94. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +1096 -0
  95. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ext_ltg.json +164 -0
  96. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ground_temperatures.json +10663 -0
  97. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps.json +886 -0
  98. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +194 -0
  99. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_rejection.json +44 -0
  100. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.motors.json +247 -0
  101. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.prototype_inputs.json +3094 -0
  102. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ref_cases.json +829 -0
  103. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.ref_lnup.json +562 -0
  104. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_compressors.json +52 -0
  105. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_condenser.json +220 -0
  106. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_system.json +156 -0
  107. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.refrigeration_walkins.json +1316 -0
  108. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +22079 -0
  109. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.unitary_acs.json +994 -0
  110. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_heaters.json +68 -0
  111. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps.json +28 -0
  112. data/data/standards/export/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps_heating.json +12 -0
  113. data/data/standards/manage_OpenStudio_Standards.rb +87 -37
  114. data/data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1-ALL-comstockspace_types.csv +236 -0
  115. data/data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1.csv +622 -0
  116. data/data/standards/metadata_units_OpenStudio_Standards-ashrae_90_1space_types.csv +191 -0
  117. data/data/standards/openstudio_standards_duplicates_log.csv +16 -25
  118. data/data/standards/test_performance_expected_dd_results.csv +1934 -1134
  119. data/lib/openstudio-standards.rb +68 -17
  120. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PumpVariableSpeed.rb +28 -0
  121. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.FanVariableVolume.rb +0 -1
  122. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.PumpVariableSpeed.rb +28 -0
  123. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Model.rb +53 -2
  124. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.PumpVariableSpeed.rb +29 -0
  125. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.Model.rb +157 -2
  126. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.PumpVariableSpeed.rb +29 -0
  127. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +24 -0
  128. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanConstantVolume.rb +32 -0
  129. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanOnOff.rb +33 -0
  130. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanVariableVolume.rb +32 -0
  131. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.elevators.rb +25 -0
  132. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +366 -0
  133. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.PumpVariableSpeed.rb +144 -0
  134. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.hvac_systems.rb +11 -0
  135. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +24 -0
  136. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanConstantVolume.rb +32 -0
  137. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanOnOff.rb +33 -0
  138. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanVariableVolume.rb +32 -0
  139. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.elevators.rb +25 -0
  140. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +367 -0
  141. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.PumpVariableSpeed.rb +144 -0
  142. data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.hvac_systems.rb +11 -0
  143. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.AirTerminalSingleDuctVAVReheat.rb +0 -1
  144. data/lib/openstudio-standards/prototypes/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.AirTerminalSingleDuctVAVReheat.rb +0 -1
  145. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.HeatExchangerAirToAirSensibleAndLatent.rb +1 -1
  146. data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.Model.rb +1 -1
  147. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.HeatExchangerAirToAirSensibleAndLatent.rb +1 -1
  148. data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +1 -1
  149. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.College.rb +3 -3
  150. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Courthouse.rb +74 -0
  151. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.FullServiceRestaurant.rb +46 -30
  152. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +15 -7
  153. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +26 -15
  154. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Laboratory.rb +8 -11
  155. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterHighITE.rb +54 -60
  156. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeDataCenterLowITE.rb +56 -60
  157. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +38 -12
  158. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +218 -134
  159. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOfficeDetailed.rb +6 -2
  160. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +222 -133
  161. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOfficeDetailed.rb +60 -62
  162. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MidriseApartment.rb +25 -15
  163. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +34 -22
  164. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +31 -7
  165. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.QuickServiceRestaurant.rb +43 -28
  166. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStandalone.rb +48 -38
  167. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.RetailStripmall.rb +9 -5
  168. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +567 -344
  169. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterHighITE.rb +13 -19
  170. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallDataCenterLowITE.rb +13 -17
  171. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallHotel.rb +9 -5
  172. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOffice.rb +79 -51
  173. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +60 -60
  174. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperMarket.rb +2 -4
  175. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SuperTallBuilding.rb +133 -120
  176. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.TallBuilding.rb +124 -112
  177. data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Warehouse.rb +138 -66
  178. data/lib/openstudio-standards/prototypes/common/do_not_edit_metaclasses.rb +7275 -199
  179. data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +35 -35
  180. data/lib/openstudio-standards/prototypes/common/objects/Prototype.BoilerHotWater.rb +2 -2
  181. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +2 -2
  182. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb +3 -3
  183. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +1 -1
  184. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWater.rb +2 -2
  185. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +2 -2
  186. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +1 -1
  187. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingElectric.rb +2 -2
  188. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWater.rb +2 -2
  189. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +2 -2
  190. data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoolingTower.rb +1 -1
  191. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +4 -3
  192. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +7 -8
  193. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +7 -8
  194. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +13 -14
  195. data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +7 -5
  196. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.elevators.rb +2 -0
  197. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.exterior_lights.rb +0 -1
  198. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +25 -14
  199. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +474 -89
  200. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.swh.rb +35 -33
  201. data/lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb +3 -0
  202. data/lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb +72 -0
  203. data/lib/openstudio-standards/prototypes/common/objects/Prototype.ServiceWaterHeating.rb +120 -120
  204. data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +103 -125
  205. data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +9 -3
  206. data/lib/openstudio-standards/prototypes/common/objects/Prototype.refrigeration.rb +11 -5
  207. data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +26 -14
  208. data/lib/openstudio-standards/prototypes/common/prototype_metaprogramming.rb +270 -247
  209. data/lib/openstudio-standards/prototypes/deer/deer.Model.rb +1 -1
  210. data/lib/openstudio-standards/refs/references.rb +5 -2
  211. data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +41 -28
  212. data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +0 -1
  213. data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +0 -1
  214. data/lib/openstudio-standards/standards/Standards.BuildingStory.rb +1 -0
  215. data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +2 -4
  216. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +8 -10
  217. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +4 -5
  218. data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +0 -1
  219. data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +1 -1
  220. data/lib/openstudio-standards/standards/Standards.CoilDX.rb +12 -9
  221. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +2 -1
  222. data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +3 -1
  223. data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +0 -3
  224. data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +4 -7
  225. data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +1 -3
  226. data/lib/openstudio-standards/standards/Standards.Construction.rb +124 -118
  227. data/lib/openstudio-standards/standards/Standards.CoolingTower.rb +0 -1
  228. data/lib/openstudio-standards/standards/Standards.CoolingTowerSingleSpeed.rb +0 -1
  229. data/lib/openstudio-standards/standards/Standards.CoolingTowerTwoSpeed.rb +0 -1
  230. data/lib/openstudio-standards/standards/Standards.CoolingTowerVariableSpeed.rb +0 -1
  231. data/lib/openstudio-standards/standards/Standards.Fan.rb +0 -1
  232. data/lib/openstudio-standards/standards/Standards.FanConstantVolume.rb +0 -1
  233. data/lib/openstudio-standards/standards/Standards.FanOnOff.rb +0 -1
  234. data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +2 -4
  235. data/lib/openstudio-standards/standards/Standards.FanZoneExhaust.rb +0 -1
  236. data/lib/openstudio-standards/standards/Standards.FluidCooler.rb +10 -3
  237. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsConstantSpeed.rb +0 -1
  238. data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +0 -1
  239. data/lib/openstudio-standards/standards/Standards.Model.rb +282 -253
  240. data/lib/openstudio-standards/standards/Standards.PlanarSurface.rb +2 -0
  241. data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +11 -9
  242. data/lib/openstudio-standards/standards/Standards.Pump.rb +0 -1
  243. data/lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb +0 -1
  244. data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +0 -1
  245. data/lib/openstudio-standards/standards/Standards.ScheduleCompact.rb +0 -1
  246. data/lib/openstudio-standards/standards/Standards.ScheduleConstant.rb +0 -1
  247. data/lib/openstudio-standards/standards/Standards.ScheduleRuleset.rb +103 -121
  248. data/lib/openstudio-standards/standards/Standards.Space.rb +42 -35
  249. data/lib/openstudio-standards/standards/Standards.SpaceType.rb +9 -17
  250. data/lib/openstudio-standards/standards/Standards.SubSurface.rb +25 -27
  251. data/lib/openstudio-standards/standards/Standards.Surface.rb +97 -52
  252. data/lib/openstudio-standards/standards/Standards.ThermalZone.rb +39 -21
  253. data/lib/openstudio-standards/standards/Standards.WaterHeaterMixed.rb +6 -7
  254. data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +15 -10
  255. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1.Standards.FanVariableVolume.rb +0 -1
  256. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.AirLoopHVAC.rb +10 -2
  257. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.Model.rb +2 -2
  258. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/ashrae_90_1.schedules.json +63 -99
  259. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/comstock_ashrae_90_1_2004/data/comstock_ashrae_90_1_2004.ext_ltg.json +7 -7
  260. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.construction_properties.json +2420 -0
  261. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.economizers.json +32 -0
  262. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_rejection.json +9 -0
  263. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.prototype_inputs.json +68 -38
  264. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +105 -40
  265. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.AirLoopHVAC.rb +5 -1
  266. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/ashrae_90_1.schedules.json +63 -99
  267. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.ext_ltg.json +7 -7
  268. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.construction_properties.json +1460 -0
  269. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.economizers.json +32 -0
  270. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_rejection.json +9 -0
  271. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.prototype_inputs.json +68 -38
  272. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +104 -17
  273. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirLoopHVAC.rb +25 -13
  274. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.Space.rb +1 -1
  275. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/ashrae_90_1.schedules.json +63 -99
  276. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.ext_ltg.json +7 -7
  277. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.construction_properties.json +1460 -0
  278. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.economizers.json +64 -0
  279. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.energy_recovery.json +52 -0
  280. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_rejection.json +9 -0
  281. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.prototype_inputs.json +68 -38
  282. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +112 -25
  283. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirLoopHVAC.rb +21 -7
  284. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.WaterHeaterMixed.rb +1 -1
  285. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/ashrae_90_1.schedules.json +63 -99
  286. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.ext_ltg.json +7 -7
  287. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.boilers.json +1 -1
  288. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.chillers.json +2 -2
  289. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.construction_properties.json +1460 -0
  290. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.economizers.json +64 -0
  291. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.energy_recovery.json +104 -0
  292. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_rejection.json +9 -0
  293. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.prototype_inputs.json +70 -40
  294. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +172 -55
  295. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_heaters.json +4 -4
  296. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.water_source_heat_pumps_heating.json +1 -1
  297. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirLoopHVAC.rb +456 -0
  298. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +24 -0
  299. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTower.rb +19 -0
  300. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerSingleSpeed.rb +5 -0
  301. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerTwoSpeed.rb +5 -0
  302. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.CoolingTowerVariableSpeed.rb +16 -0
  303. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.FanVariableVolume.rb +37 -0
  304. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Space.rb +189 -0
  305. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ThermalZone.rb +57 -0
  306. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.ZoneHVACComponent.rb +22 -0
  307. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.rb +16 -0
  308. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.boilers.json +68 -0
  309. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.chillers.json +490 -0
  310. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.construction_properties.json +21244 -0
  311. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.construction_sets.json +2111 -0
  312. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.economizers.json +676 -0
  313. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.elevators.json +372 -0
  314. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.energy_recovery.json +1096 -0
  315. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ext_ltg.json +169 -0
  316. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps.json +532 -0
  317. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps_heating.json +164 -0
  318. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_rejection.json +49 -0
  319. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.motors.json +274 -0
  320. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.prototype_inputs.json +3094 -0
  321. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ref_cases.json +854 -0
  322. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.ref_lnup.json +562 -0
  323. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_compressors.json +58 -0
  324. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_condenser.json +238 -0
  325. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_system.json +12 -0
  326. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.refrigeration_walkins.json +1316 -0
  327. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +23067 -0
  328. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.unitary_acs.json +648 -0
  329. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.water_heaters.json +72 -0
  330. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.water_source_heat_pumps.json +31 -0
  331. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.water_source_heat_pumps_heating.json +13 -0
  332. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +456 -0
  333. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +24 -0
  334. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTower.rb +19 -0
  335. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerSingleSpeed.rb +5 -0
  336. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerTwoSpeed.rb +5 -0
  337. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoolingTowerVariableSpeed.rb +16 -0
  338. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.FanVariableVolume.rb +37 -0
  339. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Space.rb +189 -0
  340. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ThermalZone.rb +57 -0
  341. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.ZoneHVACComponent.rb +22 -0
  342. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.rb +16 -0
  343. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.boilers.json +68 -0
  344. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.chillers.json +490 -0
  345. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.construction_properties.json +21244 -0
  346. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.construction_sets.json +2111 -0
  347. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.economizers.json +676 -0
  348. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.elevators.json +372 -0
  349. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.energy_recovery.json +1096 -0
  350. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ext_ltg.json +169 -0
  351. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps.json +664 -0
  352. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps_heating.json +204 -0
  353. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_rejection.json +49 -0
  354. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.motors.json +274 -0
  355. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.prototype_inputs.json +3094 -0
  356. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ref_cases.json +854 -0
  357. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.ref_lnup.json +562 -0
  358. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_compressors.json +58 -0
  359. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_condenser.json +238 -0
  360. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_system.json +12 -0
  361. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.refrigeration_walkins.json +1316 -0
  362. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +23067 -0
  363. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.unitary_acs.json +671 -0
  364. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.water_heaters.json +72 -0
  365. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.water_source_heat_pumps.json +31 -0
  366. data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.water_source_heat_pumps_heating.json +13 -0
  367. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.constructions.json +1662 -332
  368. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.materials.json +5049 -289
  369. data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.schedules.json +1743 -161
  370. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/ashrae_90_1.schedules.json +63 -99
  371. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.ext_ltg.json +11 -11
  372. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.heat_rejection.json +9 -0
  373. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.prototype_inputs.json +8 -8
  374. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +9 -9
  375. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/doe_ref_1980_2004.Model.rb +4 -4
  376. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/ashrae_90_1.schedules.json +63 -99
  377. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.ext_ltg.json +10 -10
  378. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.heat_rejection.json +9 -0
  379. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.prototype_inputs.json +7 -7
  380. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +9 -9
  381. data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/doe_ref_pre_1980.Model.rb +4 -4
  382. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/data/nrel_zne_ready_2017.heat_rejection.json +9 -0
  383. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirLoopHVAC.rb +0 -1
  384. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.Model.rb +4 -4
  385. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +1 -1
  386. data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.ZoneHVACComponent.rb +1 -1
  387. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.heat_rejection.json +9 -0
  388. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/data/ze_aedg_multifamily.water_heaters.json +2 -2
  389. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirLoopHVAC.rb +3 -6
  390. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.Model.rb +4 -4
  391. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +1 -1
  392. data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.ZoneHVACComponent.rb +1 -1
  393. data/lib/openstudio-standards/standards/cbes/cbes.Model.rb +1 -3
  394. data/lib/openstudio-standards/standards/cbes/cbes.rb +1 -1
  395. data/lib/openstudio-standards/standards/deer/deer.AirLoopHVAC.rb +8 -13
  396. data/lib/openstudio-standards/standards/deer/deer.Model.rb +2 -2
  397. data/lib/openstudio-standards/standards/deer/deer.PlanarSurface.rb +2 -0
  398. data/lib/openstudio-standards/standards/deer/deer.Space.rb +1 -1
  399. data/lib/openstudio-standards/standards/deer/deer_2011/deer_2011.rb +0 -1
  400. data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.Space.rb +0 -1
  401. data/lib/openstudio-standards/standards/deer/deer_2014/deer_2014.rb +0 -1
  402. data/lib/openstudio-standards/standards/deer/deer_2015/deer_2015.Space.rb +0 -1
  403. data/lib/openstudio-standards/standards/deer/deer_2017/deer_2017.Space.rb +0 -1
  404. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.AirLoopHVAC.rb +1 -1
  405. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.FanVariableVolume.rb +1 -1
  406. data/lib/openstudio-standards/standards/deer/deer_2020/deer_2020.Space.rb +0 -1
  407. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.AirLoopHVAC.rb +1 -1
  408. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.FanVariableVolume.rb +1 -1
  409. data/lib/openstudio-standards/standards/deer/deer_2025/deer_2025.Space.rb +0 -1
  410. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.AirLoopHVAC.rb +1 -1
  411. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.FanVariableVolume.rb +1 -1
  412. data/lib/openstudio-standards/standards/deer/deer_2030/deer_2030.Space.rb +0 -1
  413. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.AirLoopHVAC.rb +1 -1
  414. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.FanVariableVolume.rb +1 -1
  415. data/lib/openstudio-standards/standards/deer/deer_2035/deer_2035.Space.rb +0 -1
  416. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.AirLoopHVAC.rb +1 -1
  417. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.FanVariableVolume.rb +1 -1
  418. data/lib/openstudio-standards/standards/deer/deer_2040/deer_2040.Space.rb +0 -1
  419. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.AirLoopHVAC.rb +1 -1
  420. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.FanVariableVolume.rb +1 -1
  421. data/lib/openstudio-standards/standards/deer/deer_2045/deer_2045.Space.rb +0 -1
  422. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.AirLoopHVAC.rb +1 -1
  423. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.FanVariableVolume.rb +1 -1
  424. data/lib/openstudio-standards/standards/deer/deer_2050/deer_2050.Space.rb +0 -1
  425. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.AirLoopHVAC.rb +1 -1
  426. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.FanVariableVolume.rb +1 -1
  427. data/lib/openstudio-standards/standards/deer/deer_2055/deer_2055.Space.rb +0 -1
  428. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.AirLoopHVAC.rb +1 -1
  429. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.FanVariableVolume.rb +1 -1
  430. data/lib/openstudio-standards/standards/deer/deer_2060/deer_2060.Space.rb +0 -1
  431. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.AirLoopHVAC.rb +1 -1
  432. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.FanVariableVolume.rb +1 -1
  433. data/lib/openstudio-standards/standards/deer/deer_2065/deer_2065.Space.rb +0 -1
  434. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.AirLoopHVAC.rb +1 -1
  435. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.FanVariableVolume.rb +1 -1
  436. data/lib/openstudio-standards/standards/deer/deer_2070/deer_2070.Space.rb +0 -1
  437. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.AirLoopHVAC.rb +1 -1
  438. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.FanVariableVolume.rb +1 -1
  439. data/lib/openstudio-standards/standards/deer/deer_2075/deer_2075.Space.rb +0 -1
  440. data/lib/openstudio-standards/standards/icc_iecc/icc_iecc_2015/icc_iecc_2015.rb +0 -1
  441. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +28 -7
  442. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_3_and_8_single_speed.rb +16 -2
  443. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_4.rb +15 -0
  444. data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_6.rb +14 -0
  445. data/lib/openstudio-standards/standards/necb/ECMS/data/erv.json +11 -7
  446. data/lib/openstudio-standards/standards/necb/ECMS/data/pv.json +112 -0
  447. data/lib/openstudio-standards/standards/necb/ECMS/data/unitary_acs.json +50 -0
  448. data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +21 -8
  449. data/lib/openstudio-standards/standards/necb/ECMS/erv.rb +17 -6
  450. data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +142 -6
  451. data/lib/openstudio-standards/standards/necb/ECMS/nv.rb +189 -0
  452. data/lib/openstudio-standards/standards/necb/ECMS/pv_ground.rb +104 -0
  453. data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +19 -13
  454. data/lib/openstudio-standards/standards/necb/NECB2011/data/erv.json +1 -1
  455. data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/LowriseApartment.osm +39278 -0
  456. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +17 -1
  457. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_2_and_5.rb +15 -0
  458. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +14 -2
  459. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +13 -0
  460. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +12 -0
  461. data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +154 -12
  462. data/lib/openstudio-standards/standards/necb/NECB2011/lighting.rb +21 -3
  463. data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +140 -21
  464. data/lib/openstudio-standards/standards/necb/NECB2011/nv.md +74 -0
  465. data/lib/openstudio-standards/standards/necb/NECB2011/pv_ground.md +44 -0
  466. data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/necb_qaqc.rb +2 -2
  467. data/lib/openstudio-standards/standards/necb/NECB2011/qaqc/qaqc_resources/neb_end_use_prices.csv +39 -84
  468. data/lib/openstudio-standards/standards/oeesc/oeesc_2014/oeesc_2014.rb +0 -1
  469. data/lib/openstudio-standards/standards/standard.rb +6 -5
  470. data/lib/openstudio-standards/utilities/Add_template_field_to_json.rb +3 -3
  471. data/lib/openstudio-standards/utilities/convert_surfaces_to_adiabatic_necb_8426.rb +54 -54
  472. data/lib/openstudio-standards/utilities/generate_prototype_database.rb +2 -2
  473. data/lib/openstudio-standards/utilities/generate_space_types.rb +3 -3
  474. data/lib/openstudio-standards/utilities/logging.rb +7 -7
  475. data/lib/openstudio-standards/utilities/necb_to_epw_map.rb +14 -14
  476. data/lib/openstudio-standards/utilities/os_sim_extract.rb +25 -25
  477. data/lib/openstudio-standards/utilities/rename_surfaces.rb +10 -13
  478. data/lib/openstudio-standards/utilities/round_surf_coords.rb +18 -20
  479. data/lib/openstudio-standards/utilities/sched_create.rb +39 -41
  480. data/lib/openstudio-standards/utilities/set_mult_to_adiabatic.rb +31 -31
  481. data/lib/openstudio-standards/utilities/simulation.rb +5 -3
  482. data/lib/openstudio-standards/utilities/speacetype_map_converter.rb +10 -11
  483. data/lib/openstudio-standards/utilities/sqlfile.rb +6 -8
  484. data/lib/openstudio-standards/utilities/template_measure/measure.rb +108 -0
  485. data/lib/openstudio-standards/utilities/template_measure/measure.xml +162 -0
  486. data/lib/openstudio-standards/utilities/template_measure/resources/BTAPMeasureHelper.rb +448 -0
  487. data/lib/openstudio-standards/utilities/template_measure/tests/test.rb +160 -0
  488. data/lib/openstudio-standards/utilities/weatherData1_xlsx_to_json.rb +23 -26
  489. data/lib/openstudio-standards/version.rb +1 -1
  490. data/lib/openstudio-standards/weather/Weather.Model.rb +74 -80
  491. data/lib/openstudio-standards/weather/Weather.stat_file.rb +17 -17
  492. metadata +217 -2
@@ -0,0 +1,74 @@
1
+ # Natural Ventilation Measure
2
+ This measure adds natural ventilation (NV) to a building model.
3
+
4
+ ## Description
5
+ The workflow of this measure is as follows:
6
+ * Ask for users' inputs for below arguments:
7
+ * nv_type: whether to add NV to a building model or not
8
+ * nv_opening_fraction: what is the opening fraction of windows (this value is used to calculate the opening area of windows for NV)
9
+ * nv_Tout_min: As per E+ I/O Reference, "minimum outdoor temperature is the outdoor temperature (in Celsius) below which ventilation is shut off. This lower temperature limit is intended to avoid overcooling a space, which could result in a heating load."
10
+ * nv_Delta_Tin_Tout: As per E+ I/O Reference, "Delta temperature is the temperature difference (in Celsius) between the indoor and outdoor air dry-bulb temperatures below which ventilation is shutoff."
11
+ * Loop through **ZoneHVACEquipmentLists**.
12
+ * Get which thermal zone is served by each of the "ZoneHVACEquipmentLists" objects.
13
+ * Get heating/cooling setpoint temperature schedules for the thermal zone from the osm file.
14
+ * Create an adjustment of heating/cooling setpoint temperature schedules.
15
+ (Note that these schedules are used in the "ZoneVentilation:DesignFlowRate" and "ZoneVentilation:WindandStackOpenArea" objects)
16
+ * Loop through spaces in the thermal zone.
17
+ * Gather outdoor air flow rate per person and per floor area of the space from the osm file.
18
+ (Note that these values are used in the "ZoneVentilation:DesignFlowRate" objects)
19
+ * Find how many external windows each space has.
20
+ * Loop through external windows of the space.
21
+ * Add **ZoneVentilation:DesignFlowRate** objects to each space if has at least one external window.
22
+ * The number of "ZoneVentilation:DesignFlowRate" is twice the number of external windows the space has.
23
+ This is because for each external window, two "ZoneVentilation:DesignFlowRate" objects are added: (1) for air flow rate per person, and (2) for air flow rate per floor area.
24
+ * Add one **ZoneVentilation:WindandStackOpenArea** objects to each space if has at least one external window.
25
+ * The number of "ZoneVentilation:WindandStackOpenArea" equals the number of external windows the space has.
26
+ * Add "ZoneVentilation:DesignFlowRate" and "ZoneVentilation:WindandStackOpenArea" objects to the "ZoneHVAC:EquipmentList" object of the thermal zone.
27
+ * Loop through **AirLoopHVACs**.
28
+ * Add **AvailabilityManagerHybridVentilation** to each air loop.
29
+
30
+ ## Approach
31
+ This measure has some assumptions/limitations, as follows:
32
+ * It models NV using a simplified airflow method (rather than airflow network).
33
+ * It assumes that all floors are sealed, and mid points of windows are on neutral pressure level (NPL) of each floor
34
+ to avoid complexity of finding the NPL of a building.
35
+ Hence, this measure excludes stack-driven NV.
36
+ * It uses a built-in object called **AvailabilityManager:HybridVentilation** in EnergyPlus to avoid simultaneous NV and HVAC system operation.
37
+ * Note that **Ventilation Control Mode Schedule Name** was set by default.
38
+ Hence, the integer value in the schedule is set to 1 (i.e. temperature control).
39
+ * Note that users' input for nv_Tout_min is used for the fields of "Minimum Outdoor Temperature".
40
+ * As per E+ I/O Reference, "Minimum Outdoor Temperature is the outdoor temperature (in Celsius) below which hybrid ventilation is shut off when the ventilation control mode = 1 (Temperature). This lower temperature limit is intended to avoid overcooling a space, which could result in a heating load."
41
+ * Note that the "Maximum Outdoor Temperature" has been set to 30C. (there is no temperature schedule unlike the ZoneVentilation:DesignFlowRate and ZoneVentilation:WindandStackOpenArea objects)
42
+ * As per E+ I/O Reference, "Maximum Outdoor Temperature is the outdoor temperature (in Celsius) above which hybrid ventilation is shut off when the ventilation control mode = 1 (Temperature). This upper temperature limit is intended to avoid overheating a space, which could result in a cooling load."
43
+ * It considers the Fanger thermal comfort model (rather than the ASHRAE 55's adaptive thermal comfort model).
44
+ In other words, this measure sets min/max indoor air temperature as fixed values (on the basis of heating/cooling setpoint temperature) regardless of outdoor conditions.
45
+ * It uses heating/cooling setpoint schedules +/- 2C as the min/max indoor air temperature for controlling NV.
46
+ * Note that min/max indoor air temperature are the fields defined under the objects of **ZoneVentilation:DesignFlowRate** and **ZoneVentilation:WindandStackOpenArea**.
47
+ * As per E+ I/O Reference, "Minimum indoor temperature is the indoor temperature (in Celsius) below which ventilation is shutoff. This lower temperature limit is intended to avoid overcooling a space and thus result in a heating load."
48
+ * As per E+ I/O Reference, "Maximum indoor temperature is the indoor temperature (in Celsius) above which ventilation is shutoff. This upper temperature limit is intended to avoid overheating a space and thus result in a cooling load."
49
+ * It uses the required outdoor airflow rate per person and floor area for each space as the airflow rate when there is NV in the space.
50
+ * As a space may have multiple windows, to avoid outdoor airflow rate more than what is required for a space, the required outdoor airflow rate per person and floor area for the space are divided by the number of windows.
51
+ * Note that this measure uses the E+'s defaults for the coefficients of A,B,C,D (i.e. 1,0,0,0) in Equation 1.41 in E+ I/O Reference.
52
+ These default values gives a constant air flow regardless of the wind speed and the difference between the indoor and outdoor temperature.
53
+ * It adds NV to any space with external windows (window types of either 'OperableWindow' or 'FixedWindow').
54
+ * It uses same opening fraction for all windows of spaces. So, depending on a window area, the opening area of the window is calculated.
55
+
56
+ ## Testing Plan
57
+ * Tests were run to ensure cooling loads reduce depending on the inputs for min outdoor air temperature, Delta T between indoor and outdoor, and windows opening fraction.
58
+ * Timestep-based results for NECB2011 Full Service Restaurant in Vancouver were checked to see if NV and HVAC were not working simultaneously, and if NV was working properly regarding using setpoints for NV.
59
+ The timestep-based results' excel file has been attached to the task (see https://github.com/canmet-energy/btap_tasks/issues/310).
60
+ * A unit test and expected results file were developed.
61
+ * The output variable that can be used to check whether NV and HVAC system is working at each timestep is **Availability Manager Hybrid Ventilation Control Status []**.
62
+ It returns three values: 0 (no hybrid ventilation control), 1 (NV is allowed), and 2 (NV is not allowed).
63
+
64
+ ## Files Added/Modified
65
+ * Files have been modified:
66
+ * **necb_2011.rb**
67
+ * Files have been added:
68
+ * **nv.rb**
69
+ * **test_nv.rb**
70
+ * **nv.md**
71
+ * **nv_expected_results.rb**
72
+
73
+ ## Reference
74
+ * E+ I/O Reference (2020), EnergyPlus Vesion 9.3.0 Documentation: Input Output Reference.
@@ -0,0 +1,44 @@
1
+ # Ground-Mounted PV Measure
2
+ This measure is to add ground-mounted PV to a model.
3
+ Renewable energy should be the last item added to a model.
4
+
5
+ ## Description
6
+ * The users' inputs for the measure are PV module type, and total area and azimuth and tilt angles of PV panels.
7
+ * A json file has been created that includes a variety of PV modules options.
8
+ * It has been assumed that PV panel's size is 5 ft x 2 ft as it seems to fit the racking system used for ground mounts as per Mike Lubun's comment.
9
+ * Default PV panels' tilt angle has been set as the latitude of the location.
10
+ * Default PV panels' azimuth angle has been set as south-facing arrays.
11
+ * Default PV module type has been set as "HES-160-36PV 26.6 x 58.3 x 1.38" as assuming a typical panel is 5 ft x 2 ft,
12
+ the closest standard type PV panel in the costing spreadsheet would be the 160W HES based on Mike Lubun's comment.
13
+ * Only one PVWatts generator is created using the measure for simplification,
14
+ however exact number of PVWatts generators (and inverters) are calculated for costing as per Mike Lubun's comment.
15
+
16
+ ## Approach
17
+ * A new file in https://github.com/NREL/openstudio-standards/tree/nrcan/lib/openstudio-standards/standards/necb/ECMS folder called pv_ground.rb has been created.
18
+ * A method called apply_pv_ground has been added to the ECMS class. This is where the PV method logic has been writen.
19
+ * Since the PV modules has many options (i.e. type and capacity) a library in json format has been created in https://github.com/NREL/openstudio-standards/blob/nrcan/lib/openstudio-standards/standards/necb/ECMS/data.
20
+ These properties align with the costing spreadsheet.
21
+ * The apply_pv_ground method has been added to the end of the 'apply_systems_and_efficiencies' method in necb2011.rb.
22
+ * The inputs have been set to 'nil' for the do nothing option, similar to what is done in the erv measure.
23
+ * The required arguments have been threaded up to the 'model_create_prototype_model' method in necb_2011.rb.
24
+
25
+ ## Testing Plan
26
+ * The tests were run in OpenStudio to ensure electricity is being generated and scales with changes in the PV panels area.
27
+ * In OpenStudio, it has been checked that net site/source energy is less than total site/source energy due to the installation of PV panels.
28
+ * Another output variable that can be checked in OpenStudio at different timesteps is **Inverter AC Output Electric Power [W]**.
29
+ * A unit test has been developed.
30
+ ##### Notes:
31
+ * "Total site energy is the "gross" energy consumed by the building site and Net Site Energy is the final energy consumed by the building site after accounting for any on-site energy generation (photovoltaics, generators, etc.)."
32
+ (Ref: https://unmethours.com/question/25416/what-is-the-difference-between-site-energy-and-source-energy/)
33
+ * "Total Source Energy (="represents the total amount of raw fuel that is required to operate the building.
34
+ It incorporates all transmission, delivery, and production losses" Source: EPA). In contrast, the Net Source Energy is the energy that you get after the losses of delivery and transportation."
35
+ (Ref: https://unmethours.com/question/19090/what-is-the-difference-between-total-source-energy-and-net-source-energy/)
36
+ ## Files Added/Modified
37
+ * Files have been modified:
38
+ * **necb_2011.rb**
39
+ * **btap_pre1980.rb**
40
+ * Files have been added:
41
+ * **pv_ground.rb**
42
+ * **pv.json**
43
+ * **test_pv_ground.rb**
44
+ * **pv_ground.md**
@@ -251,7 +251,7 @@ class NECB2011
251
251
  qaqc[:building][:standards_number_of_above_ground_stories] = nil
252
252
  qaqc[:building][:standards_number_of_above_ground_stories] = model.building.get.standardsNumberOfAboveGroundStories.get unless model.building.get.standardsNumberOfAboveGroundStories().empty?
253
253
  qaqc[:building][:standards_number_of_living_units] = nil
254
- qaqc[:building][:standards_number_of_living_units] = model.building.get.standardsNumberOfLivingUnits ().get unless model.building.get.standardsNumberOfLivingUnits().empty?
254
+ qaqc[:building][:standards_number_of_living_units] = model.building.get.standardsNumberOfLivingUnits().get unless model.building.get.standardsNumberOfLivingUnits().empty?
255
255
  qaqc[:building][:nominal_floor_to_ceiling_height] = nil
256
256
  qaqc[:building][:nominal_floor_to_ceiling_height] = model.building.get.nominalFloortoCeilingHeight.get unless model.building.get.nominalFloortoCeilingHeight().empty?
257
257
  qaqc[:building][:nominal_floor_to_floor_height] = nil
@@ -299,7 +299,7 @@ class NECB2011
299
299
  qaqc[:economics][:total_neb_cost_per_m2] = 0.0
300
300
  neb_eplus_fuel_map.each do |neb_fuel, ep_fuel|
301
301
  row = look_up_csv_data(neb_prices_csv_file_name, {0 => building_type, 1 => province, 2 => neb_fuel})
302
- neb_fuel_cost = row['2018']
302
+ neb_fuel_cost = row['2020']
303
303
  fuel_consumption_gj = 0.0
304
304
  if neb_fuel == 'Electricity' || neb_fuel == 'Natural Gas'
305
305
  if model.sqlFile().get().execAndReturnFirstDouble("SELECT Value FROM tabulardatawithstrings WHERE ReportName='EnergyMeters' AND ReportForString='Entire Facility' AND
@@ -1,85 +1,40 @@
1
1
  building_type,province,fuel_type,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040
2
- Commercial,Alberta,Electricity,18.89,21.89,25.88,32.75,23.18,21.65,22.73,28.05,29.45,22.97,17.9,18.46,18.99,19.58,20.17,20.76,21.82,22.91,24.03,25.24,26.5,27.03,27.59,28.12,28.68,29.27,29.86,30.45,31.07,31.69,32.3,32.95,33.63,34.28,34.98,35.69
3
- Commercial,Alberta,Natural Gas,9.54,8.76,7.97,8.74,5.85,4.98,4.57,3.03,2.82,3.66,2.18,2.48,2.83,2.95,3.05,3.13,3.21,3.28,3.33,3.36,3.39,3.42,3.45,3.48,3.51,3.54,3.57,3.6,3.63,3.66,3.69,3.72,3.75,3.78,3.81,3.84
4
- Commercial,Alberta,Oil,19.01,21.26,23.74,28.76,19.62,24.27,27.01,28.4,25.41,27.48,22.1,24.01,24.63,25.12,25.36,25.78,26.18,26.49,26.77,27.02,27.28,27.54,27.8,28.07,28.34,28.62,28.77,28.92,29.07,29.23,29.39,29.55,29.71,29.87,30.03,30.19
5
- Commercial,British Columbia,Electricity,13.15,13.38,14.19,14.42,14.46,17.09,17,19.34,18.91,20.24,21.05,21.47,21.79,22.02,22.05,22.09,22.15,22.19,22.22,22.28,22.32,22.36,22.41,22.45,22.49,22.55,22.58,22.64,22.68,22.72,22.77,22.81,22.87,22.91,22.94,23
6
- Commercial,British Columbia,Natural Gas,11.79,13.23,13.34,12.75,13.47,14.89,14.22,13.33,12.53,11.93,11.49,11.75,12.06,12.14,12.2,12.23,12.27,12.29,12.3,12.29,12.29,12.28,12.28,12.29,12.29,12.3,12.3,12.31,12.31,12.31,12.32,12.32,12.33,12.34,12.34,12.35
7
- Commercial,British Columbia,Oil,22.3,23.54,25.42,31.48,22.19,28.11,33.01,34.05,34.41,35.63,30.46,29.85,30.41,30.84,31.03,31.38,31.71,31.97,32.19,32.39,32.6,32.82,33.04,33.27,33.51,33.75,33.86,33.98,34.1,34.22,34.34,34.46,34.59,34.72,34.85,34.98
8
- Commercial,Canada,Electricity,21.27,21.11,22.16,23.17,21,23.67,24.52,25.88,25.41,25.74,25.42,25.87,26.19,26.57,26.99,27.34,27.56,27.78,28.02,28.26,28.52,28.67,28.82,28.99,29.15,29.32,29.44,29.56,29.69,29.82,29.95,30.09,30.23,30.37,30.52,30.67
9
- Commercial,Canada,Natural Gas,10.64,11.86,10.81,11.25,9.56,9.47,8.5,7.52,7.13,7.16,5.91,6.23,6.59,6.74,6.86,6.97,7.04,7.09,7.13,7.15,7.17,7.19,7.22,7.24,7.27,7.3,7.34,7.37,7.4,7.43,7.46,7.48,7.51,7.54,7.57,7.6
10
- Commercial,Canada,Oil,18.65,20.59,22.58,28.18,19.16,23.98,28.26,29.06,27.2,29.14,23.43,24.15,24.8,25.33,25.61,26.07,26.47,26.78,27.06,27.31,27.56,27.82,28.09,28.36,28.64,28.91,29.07,29.22,29.38,29.54,29.7,29.86,30.02,30.19,30.35,30.51
11
- Commercial,Manitoba,Electricity,12.66,12.94,13.55,13.13,13.41,15.03,15.46,15.35,15.07,15.19,15.48,15.78,15.94,16.09,16.26,16.42,16.44,16.45,16.47,16.48,16.5,16.52,16.53,16.55,16.58,16.59,16.61,16.62,16.64,16.65,16.67,16.68,16.7,16.71,16.74,16.76
12
- Commercial,Manitoba,Natural Gas,9.81,10.79,10.19,10.36,9.3,8.59,7.68,6.06,5.77,6.39,4.91,5.21,5.56,5.68,5.78,5.86,5.94,6,6.06,6.09,6.12,6.15,6.18,6.21,6.24,6.27,6.3,6.33,6.36,6.39,6.42,6.45,6.48,6.51,6.54,6.57
13
- Commercial,Manitoba,Oil,18.78,20.18,22.66,28.21,19.06,23.65,28.84,28.63,28.23,30,23.76,22.73,23.35,23.84,24.09,24.5,24.9,25.22,25.49,25.75,26,26.27,26.53,26.8,27.07,27.35,27.49,27.65,27.8,27.95,28.11,28.27,28.43,28.6,28.76,28.92
14
- Commercial,New Brunswick,Electricity,23.86,24.8,26.85,27.9,27.43,29.62,30.8,29.99,28.72,28.75,28.78,28.81,28.84,28.87,28.9,28.93,28.95,28.98,29.01,29.04,29.07,29.1,29.13,29.16,29.18,29.21,29.24,29.27,29.3,29.33,29.36,29.38,29.41,29.44,29.47,29.5
15
- Commercial,New Brunswick,Natural Gas,12.34,14.6,7.12,9.32,6.92,12.7,14.77,10.05,8.85,9.43,7.95,8.25,8.6,8.72,8.82,8.9,8.98,9.05,9.1,9.13,9.16,9.19,9.22,9.25,9.28,9.31,9.34,9.37,9.4,9.43,9.46,9.49,9.52,9.55,9.58,9.61
16
- Commercial,New Brunswick,Oil,19.59,20.82,22.66,28.43,18.65,23.46,28.77,29.73,27.95,29.74,23.59,22.77,23.39,23.88,24.12,24.54,24.94,25.25,25.53,25.78,26.04,26.3,26.56,26.83,27.1,27.38,27.53,27.68,27.83,27.99,28.14,28.31,28.47,28.63,28.79,28.95
17
- Commercial,Newfoundland and Labrador,Electricity,19.34,20.61,22.2,21.16,21.74,22.23,23.09,24.72,25.69,25.95,26.46,27,27.54,31.11,31.11,31.11,30.8,30.49,30.19,29.88,29.59,29.29,29,28.72,28.41,28.13,27.85,27.59,27.31,27.03,26.77,26.49,26.23,25.97,25.72,25.46
18
- Commercial,Newfoundland and Labrador,Natural Gas,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
19
- Commercial,Newfoundland and Labrador,Oil,18.51,20.85,22.14,27.02,17.52,22.5,28.37,28.7,25.39,27.46,22.09,18.95,19.57,20.06,20.3,20.72,21.12,21.43,21.71,21.96,22.22,22.48,22.74,23.01,23.28,23.56,23.71,23.86,24.01,24.17,24.32,24.48,24.65,24.81,24.97,25.13
20
- Commercial,Northwest Territories,Electricity,64.85,65.5,66.16,66.83,67.51,68.19,68.88,69.57,56.28,56.45,56.61,56.78,56.95,57.12,57.29,57.46,57.63,57.8,57.96,58.13,58.36,58.53,58.7,58.87,59.03,59.2,59.37,59.6,59.77,59.93,60.1,60.27,60.5,60.67,60.83,61
21
- Commercial,Northwest Territories,Natural Gas,11.79,13.23,13.28,11.92,12.08,12.85,11.64,10.3,19.44,27.39,25.91,26.22,26.57,26.69,26.79,26.87,26.95,27.01,27.06,27.09,27.12,27.15,27.18,27.21,27.24,27.27,27.3,27.33,27.36,27.39,27.43,27.46,27.49,27.52,27.55,27.58
22
- Commercial,Northwest Territories,Oil,20.58,22.43,26.18,32.57,22.09,26.59,33.31,32.97,31.27,32.7,25.55,26.79,27.41,27.9,28.14,28.56,28.96,29.27,29.55,29.8,30.06,30.32,30.58,30.85,31.12,31.4,31.55,31.7,31.85,32.01,32.17,32.33,32.49,32.65,32.81,32.97
23
- Commercial,Nova Scotia,Electricity,22.94,25.48,26.6,25.77,26.89,29.21,31.51,32.75,32.54,32.87,32.22,32.25,32.28,32.32,32.35,32.38,32.41,32.45,32.48,32.51,32.54,32.58,32.61,32.64,32.67,32.71,32.74,32.77,32.8,32.84,32.87,32.9,32.93,32.97,33,33.03
24
- Commercial,Nova Scotia,Natural Gas,12.34,14.6,11.67,15.39,12.53,13.19,11.5,9.71,16.88,17.77,16.29,16.59,16.94,17.06,17.16,17.24,17.32,17.38,17.43,17.46,17.49,17.52,17.55,17.58,17.62,17.65,17.68,17.71,17.74,17.77,17.8,17.83,17.86,17.89,17.92,17.95
25
- Commercial,Nova Scotia,Oil,19.7,21.62,21.23,26.26,17.52,21.43,26.99,27.6,26.93,28.84,23,22.51,23.13,23.62,23.86,24.28,24.68,24.99,25.27,25.53,25.78,26.04,26.31,26.57,26.85,27.12,27.27,27.42,27.58,27.73,27.89,28.05,28.21,28.37,28.53,28.7
26
- Commercial,Nunavut,Electricity,64.85,65.5,66.16,66.83,67.51,68.19,68.88,69.57,56.28,56.45,56.61,56.78,56.95,57.12,57.29,57.46,57.63,57.8,57.96,58.13,58.36,58.53,58.7,58.87,59.03,59.2,59.37,59.6,59.77,59.93,60.1,60.27,60.5,60.67,60.83,61
27
- Commercial,Nunavut,Natural Gas,11.79,13.23,13.28,11.92,12.08,12.85,11.64,10.3,19.44,18.28,16.8,17.1,17.45,17.57,17.67,17.75,17.83,17.89,17.94,17.97,18,18.03,18.07,18.1,18.13,18.16,18.19,18.22,18.25,18.28,18.31,18.34,18.37,18.4,18.43,18.46
28
- Commercial,Nunavut,Oil,20.58,22.43,26.18,32.57,22.09,26.59,33.31,32.97,31.27,32.7,25.55,26.79,27.41,27.9,28.14,28.56,28.96,29.27,29.55,29.8,30.06,30.32,30.58,30.85,31.12,31.4,31.55,31.7,31.85,32.01,32.17,32.33,32.49,32.65,32.81,32.97
29
- Commercial,Ontario,Electricity,27.5,24.87,24.82,25.82,23.65,28.4,29.44,31.22,30.2,32.62,33.28,33.95,34.61,35.31,36,36.73,36.91,37.09,37.3,37.48,37.66,37.84,38.03,38.24,38.42,38.6,38.66,38.69,38.72,38.78,38.81,38.84,38.87,38.93,38.96,38.99
30
- Commercial,Ontario,Natural Gas,11.44,13.78,12.14,11.9,9.92,9.99,8.32,7.21,7.31,7.31,5.83,6.13,6.49,6.61,6.71,6.79,6.87,6.93,6.98,7.01,7.04,7.07,7.1,7.13,7.16,7.19,7.22,7.25,7.28,7.31,7.34,7.37,7.4,7.43,7.46,7.49
31
- Commercial,Ontario,Oil,18.37,20.22,22.13,27.84,19.33,24.47,31.3,31.37,30.41,31.94,25.05,24.64,25.26,25.75,25.99,26.41,26.81,27.12,27.4,27.65,27.91,28.17,28.43,28.7,28.97,29.25,29.4,29.55,29.7,29.86,30.02,30.18,30.34,30.5,30.66,30.82
32
- Commercial,Prince Edward Island,Electricity,29,29.21,33.17,35.9,40.34,40.41,35.57,34.64,33.67,34.34,35.02,35.05,35.08,35.15,35.18,35.22,35.25,35.28,35.32,35.35,35.39,35.42,35.45,35.49,35.52,35.55,35.59,35.62,35.66,35.69,35.72,35.76,35.82,35.86,35.89,35.92
33
- Commercial,Prince Edward Island,Natural Gas,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
34
- Commercial,Prince Edward Island,Oil,18.69,20.51,21.56,27.18,18.22,22.8,29.03,29.7,26.8,28.72,22.92,20.01,20.63,21.12,21.36,21.78,22.18,22.49,22.77,23.02,23.28,23.54,23.8,24.07,24.34,24.62,24.77,24.92,25.07,25.23,25.39,25.55,25.71,25.87,26.03,26.19
35
- Commercial,Quebec,Electricity,16.99,18.44,20.14,19.14,18.55,20.12,20.26,19.64,19.31,19.89,20.16,20.54,20.56,20.58,20.6,20.64,20.66,20.68,20.7,20.72,20.74,20.75,20.77,20.79,20.81,20.83,20.85,20.87,20.91,20.93,20.95,20.97,20.99,21.01,21.02,21.04
36
- Commercial,Quebec,Natural Gas,12.34,14.6,11.67,15.39,12.53,13.19,11.5,11.8,10.85,10.52,10.47,11.09,11.76,12.2,12.62,13.02,13.1,13.15,13.2,13.23,13.26,13.29,13.32,13.34,13.37,13.4,13.43,13.46,13.49,13.51,13.54,13.57,13.6,13.63,13.66,13.68
37
- Commercial,Quebec,Oil,16.58,18.21,19.57,26.61,16.87,21.24,27.28,28.09,26.82,28.74,24.98,23.36,24.44,25.38,26.07,26.94,27.34,27.65,27.92,28.18,28.43,28.69,28.95,29.21,29.48,29.75,29.9,30.05,30.2,30.35,30.51,30.66,30.82,30.98,31.14,31.3
38
- Commercial,Saskatchewan,Electricity,19.84,21.29,22.59,21.89,20.89,26.21,28.03,24.8,24.93,25.8,26.58,27.37,27.65,27.92,28.2,28.5,28.77,29.07,29.34,29.64,29.94,30.24,30.54,30.84,31.16,31.46,31.79,32.11,32.41,32.73,33.08,33.41,33.73,34.08,34.4,34.75
39
- Commercial,Saskatchewan,Natural Gas,7.09,7.83,8.48,8.72,7.83,6.48,7.03,7.44,6.49,5.6,4.12,4.42,4.78,4.9,5,5.08,5.16,5.22,5.27,5.3,5.33,5.36,5.39,5.42,5.45,5.48,5.51,5.54,5.57,5.6,5.63,5.66,5.69,5.72,5.75,5.78
40
- Commercial,Saskatchewan,Oil,19.01,21.26,23.74,28.76,19.62,24.27,27.01,28.4,25.41,27.48,22.1,24.01,24.63,25.12,25.36,25.78,26.18,26.49,26.77,27.02,27.28,27.54,27.8,28.07,28.34,28.62,28.77,28.92,29.07,29.23,29.39,29.55,29.71,29.87,30.03,30.19
41
- Commercial,Yukon,Electricity,20.07,16.72,17.74,18.03,18.07,21.36,21.25,24.18,23.64,23.71,23.78,23.86,23.93,24,24.07,24.14,24.21,24.28,24.35,24.42,24.52,24.59,24.66,24.73,24.8,24.87,24.94,25.04,25.11,25.18,25.25,25.32,25.42,25.49,25.56,25.63
42
- Commercial,Yukon,Natural Gas,11.79,13.23,13.28,11.92,12.08,12.85,11.64,10.3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
43
- Commercial,Yukon,Oil,22.38,24.87,27.79,33.37,24,29.12,35.49,36.1,34.01,35.14,27.17,27.3,27.92,28.41,28.66,29.07,29.47,29.79,30.06,30.32,30.57,30.84,31.1,31.37,31.64,31.92,32.06,32.22,32.37,32.52,32.68,32.84,33,33.17,33.33,33.49
44
- Residential,Alberta,Electricity,25.02,29.6,34.15,38.07,30.3,29.15,32.06,38.48,42.33,33.02,25.74,26.54,27.3,28.15,29,29.84,31.37,32.93,34.54,36.28,38.1,38.86,39.66,40.43,41.23,42.08,42.92,43.77,44.66,45.55,46.44,47.37,48.34,49.27,50.29,51.31
45
- Residential,Alberta,Natural Gas,11.22,11.03,10.12,10.39,7.24,7.64,7.4,6.18,6.16,6.8,5.25,5.56,5.94,6.06,6.17,6.25,6.34,6.4,6.45,6.49,6.52,6.55,6.58,6.61,6.64,6.68,6.71,6.74,6.77,6.8,6.83,6.87,6.9,6.93,6.96,6.99
46
- Residential,Alberta,Oil,20.34,22.64,25.17,30.2,20.6,25.48,28.36,29.82,26.68,28.86,23.2,25.21,25.86,26.37,26.63,27.07,27.49,27.81,28.11,28.37,28.64,28.92,29.19,29.47,29.76,30.05,30.21,30.37,30.53,30.69,30.85,31.02,31.19,31.36,31.53,31.7
47
- Residential,British Columbia,Electricity,18.5,18.56,19.61,19.76,19.26,23.49,24.13,26.86,24.88,26.62,27.69,28.24,28.66,28.96,29.01,29.06,29.14,29.19,29.24,29.31,29.36,29.41,29.49,29.54,29.59,29.66,29.71,29.78,29.83,29.88,29.96,30.01,30.08,30.13,30.18,30.26
48
- Residential,British Columbia,Natural Gas,13.54,14.69,15.04,15.77,14.98,17.41,17.3,16.73,14.9,13.95,13.48,13.76,14.09,14.17,14.23,14.27,14.3,14.32,14.33,14.32,14.32,14.32,14.32,14.32,14.33,14.33,14.34,14.34,14.35,14.35,14.36,14.36,14.37,14.37,14.38,14.39
49
- Residential,British Columbia,Oil,23.86,25.07,26.94,33.01,23.24,30.35,36.72,37.84,36.57,37.27,31.89,31.24,31.82,32.27,32.47,32.84,33.19,33.46,33.69,33.9,34.12,34.35,34.59,34.82,35.08,35.33,35.45,35.57,35.69,35.82,35.95,36.08,36.21,36.35,36.48,36.62
50
- Residential,Canada,Electricity,24.08,25.9,27.25,26.62,24.93,27.59,28.99,29.76,28.29,28.85,28.8,29.35,29.69,30.14,30.43,30.72,30.88,31.05,31.23,31.42,31.62,31.73,31.85,31.97,32.1,32.23,32.33,32.42,32.53,32.64,32.74,32.85,32.97,33.09,33.21,33.33
51
- Residential,Canada,Natural Gas,13.99,15.4,14.17,14.04,12.03,12,11.27,10.43,9.82,9.63,8.18,8.52,8.91,9.05,9.17,9.26,9.34,9.4,9.45,9.48,9.5,9.53,9.56,9.59,9.62,9.65,9.68,9.71,9.74,9.77,9.8,9.83,9.86,9.89,9.92,9.95
52
- Residential,Canada,Oil,21.18,23.13,24.55,31.07,20.77,26.1,32.9,33.6,32.32,34.31,27.8,26.77,27.57,28.23,28.6,29.16,29.59,29.92,30.22,30.48,30.74,31.02,31.29,31.57,31.86,32.14,32.29,32.43,32.58,32.73,32.88,33.04,33.19,33.35,33.5,33.66
53
- Residential,Manitoba,Electricity,19.21,18.25,18.99,18.23,18.75,20.66,21.53,21.4,20.96,21.13,21.52,21.94,22.17,22.38,22.61,22.84,22.87,22.89,22.91,22.93,22.95,22.97,22.99,23.01,23.05,23.08,23.1,23.12,23.14,23.16,23.18,23.2,23.22,23.24,23.28,23.31
54
- Residential,Manitoba,Natural Gas,12.97,14.72,14.26,13.78,12.7,11.54,11.27,9.68,8.96,9.31,7.75,8.07,8.44,8.57,8.68,8.76,8.85,8.91,8.96,9,9.03,9.06,9.09,9.12,9.15,9.19,9.22,9.25,9.28,9.31,9.35,9.38,9.41,9.44,9.47,9.51
55
- Residential,Manitoba,Oil,22.12,23.64,26.35,32.31,22.03,27.23,33.05,32.79,32.46,34.54,27.41,26.24,26.93,27.48,27.74,28.2,28.64,28.99,29.29,29.57,29.85,30.14,30.43,30.72,31.03,31.33,31.49,31.66,31.83,32,32.17,32.34,32.52,32.7,32.87,33.05
56
- Residential,New Brunswick,Electricity,29.65,31.57,34.76,35.06,33.9,36.61,37.47,36.49,34.94,34.98,35.01,35.05,35.08,35.12,35.15,35.19,35.22,35.26,35.29,35.33,35.36,35.4,35.43,35.47,35.5,35.54,35.57,35.61,35.64,35.68,35.71,35.75,35.78,35.82,35.85,35.89
57
- Residential,New Brunswick,Natural Gas,17.16,19.2,10.18,11.87,10.8,15.73,17,17.48,17.03,13.24,11.57,11.91,12.31,12.44,12.56,12.65,12.74,12.81,12.86,12.9,12.93,12.97,13,13.03,13.07,13.1,13.14,13.17,13.2,13.24,13.27,13.31,13.34,13.38,13.41,13.44
58
- Residential,New Brunswick,Oil,22.52,23.84,25.83,32.12,21.08,26.51,32.51,33.6,31.58,33.61,26.66,25.73,26.43,26.98,27.26,27.73,28.18,28.53,28.85,29.13,29.42,29.72,30.01,30.32,30.63,30.94,31.11,31.28,31.45,31.63,31.8,31.99,32.17,32.35,32.53,32.71
59
- Residential,Newfoundland and Labrador,Electricity,28.31,30.76,32.8,31.77,32.04,33.69,34.84,36.42,37.1,37.47,38.21,38.99,39.77,44.93,44.93,44.93,44.48,44.04,43.59,43.15,42.74,42.29,41.89,41.48,41.03,40.62,40.22,39.85,39.44,39.03,38.66,38.25,37.88,37.51,37.14,36.77
60
- Residential,Newfoundland and Labrador,Natural Gas,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
61
- Residential,Newfoundland and Labrador,Oil,21.29,23.87,25.24,30.54,19.8,25.43,32.06,32.43,28.69,31.03,24.96,21.41,22.11,22.66,22.94,23.41,23.86,24.21,24.53,24.82,25.1,25.4,25.7,26,26.31,26.62,26.79,26.96,27.13,27.31,27.49,27.67,27.85,28.03,28.21,28.4
62
- Residential,Northwest Territories,Electricity,64.85,65.5,66.16,66.83,67.51,68.19,68.88,69.57,65.55,65.75,65.94,66.14,66.34,66.53,66.73,66.93,67.12,67.32,67.52,67.71,67.98,68.17,68.37,68.57,68.76,68.96,69.16,69.42,69.61,69.81,70.01,70.2,70.47,70.66,70.86,71.06
63
- Residential,Northwest Territories,Natural Gas,13.54,14.69,14.99,14.93,13.55,14.81,13.67,12.68,22.02,30.25,28.7,29.02,29.39,29.51,29.62,29.7,29.79,29.85,29.9,29.94,29.97,30,30.03,30.06,30.09,30.13,30.16,30.19,30.22,30.25,30.28,30.32,30.35,30.38,30.41,30.44
64
- Residential,Northwest Territories,Oil,22.02,23.88,27.75,34.2,23.19,27.92,34.98,34.62,32.83,34.33,26.83,28.13,28.78,29.29,29.55,29.99,30.41,30.73,31.03,31.29,31.56,31.84,32.11,32.39,32.68,32.97,33.13,33.29,33.45,33.61,33.77,33.94,34.11,34.28,34.45,34.62
65
- Residential,Nova Scotia,Electricity,31.01,34.91,37.27,35.79,37.45,41.01,43.94,47.15,46.48,46.95,46.02,46.06,46.11,46.16,46.2,46.25,46.29,46.34,46.39,46.43,46.48,46.53,46.57,46.62,46.67,46.71,46.76,46.81,46.85,46.9,46.95,46.99,47.04,47.09,47.13,47.18
66
- Residential,Nova Scotia,Natural Gas,17.16,19.2,17.98,18.38,17,18.23,17.4,46.01,26.6,26.31,24.6,24.95,25.36,25.5,25.61,25.71,25.8,25.87,25.93,25.96,26,26.03,26.06,26.1,26.13,26.17,26.2,26.24,26.27,26.31,26.34,26.38,26.41,26.45,26.48,26.52
67
- Residential,Nova Scotia,Oil,22.65,24.75,24.2,29.67,19.8,24.54,31.04,31.74,30.97,33.16,26.45,25.89,26.6,27.17,27.44,27.92,28.38,28.74,29.06,29.35,29.65,29.95,30.25,30.56,30.87,31.19,31.36,31.54,31.71,31.89,32.07,32.26,32.44,32.63,32.81,33
68
- Residential,Nunavut,Electricity,64.85,65.5,66.16,66.83,67.51,68.19,68.88,69.57,65.55,65.75,65.94,66.14,66.34,66.53,66.73,66.93,67.12,67.32,67.52,67.71,67.98,68.17,68.37,68.57,68.76,68.96,69.16,69.42,69.61,69.81,70.01,70.2,70.47,70.66,70.86,71.06
69
- Residential,Nunavut,Natural Gas,13.54,14.69,14.99,14.93,13.55,14.81,13.67,12.68,11.59,11.1,9.55,9.87,10.24,10.36,10.47,10.55,10.64,10.7,10.76,10.79,10.82,10.85,10.88,10.91,10.95,10.98,11.01,11.04,11.07,11.1,11.14,11.17,11.2,11.23,11.26,11.3
70
- Residential,Nunavut,Oil,22.02,23.88,27.75,34.2,23.19,27.92,34.98,34.62,32.83,34.33,26.83,28.13,28.78,29.29,29.55,29.99,30.41,30.73,31.03,31.29,31.56,31.84,32.11,32.39,32.68,32.97,33.13,33.29,33.45,33.61,33.77,33.94,34.11,34.28,34.45,34.62
71
- Residential,Ontario,Electricity,30.72,33.9,35.96,33.61,33.19,36.49,40.54,41.57,36.83,39.77,40.58,41.4,42.21,43.05,43.9,44.78,45,45.23,45.48,45.7,45.93,46.15,46.37,46.62,46.85,47.07,47.14,47.18,47.21,47.29,47.32,47.36,47.4,47.47,47.51,47.55
72
- Residential,Ontario,Natural Gas,15.27,17.65,15.89,15.33,13.3,12.85,11.41,10.8,10.23,9.86,8.18,8.52,8.92,9.06,9.17,9.26,9.36,9.42,9.48,9.51,9.55,9.58,9.62,9.65,9.69,9.72,9.75,9.79,9.82,9.86,9.89,9.92,9.96,9.99,10.03,10.06
73
- Residential,Ontario,Oil,21.13,23.15,25.23,31.45,21.84,27.65,35.37,35.45,34.37,36.09,28.31,27.84,28.54,29.1,29.37,29.84,30.29,30.65,30.96,31.25,31.54,31.83,32.13,32.43,32.74,33.05,33.22,33.39,33.57,33.74,33.92,34.1,34.28,34.47,34.65,34.83
74
- Residential,Prince Edward Island,Electricity,34.54,35.19,39.46,41.92,46.71,47.12,42.74,41.62,43.47,44.34,45.21,45.25,45.3,45.38,45.43,45.47,45.51,45.56,45.6,45.65,45.69,45.73,45.78,45.82,45.86,45.91,45.95,45.99,46.04,46.08,46.12,46.17,46.25,46.3,46.34,46.38
75
- Residential,Prince Edward Island,Natural Gas,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
76
- Residential,Prince Edward Island,Oil,20,21.84,22.85,28.54,19.13,23.94,30.48,31.18,29.94,32.74,26.13,22.81,23.52,24.08,24.35,24.83,25.28,25.64,25.96,26.24,26.54,26.83,27.13,27.44,27.75,28.07,28.23,28.41,28.58,28.76,28.94,29.12,29.31,29.49,29.67,29.86
77
- Residential,Quebec,Electricity,19.18,20.53,21.8,20.72,19.95,21.58,21.8,21.23,20.66,21.28,21.57,21.99,22.01,22.03,22.05,22.09,22.11,22.13,22.15,22.17,22.19,22.21,22.23,22.25,22.28,22.3,22.32,22.34,22.38,22.4,22.42,22.44,22.46,22.48,22.5,22.52
78
- Residential,Quebec,Natural Gas,17.14,19.18,17.96,18.36,16.98,17.97,17.23,16.44,15.45,15.46,15.4,16.12,16.89,17.39,17.88,18.34,18.43,18.49,18.55,18.58,18.61,18.65,18.68,18.71,18.74,18.78,18.81,18.84,18.87,18.91,18.94,18.97,19,19.04,19.07,19.1
79
- Residential,Quebec,Oil,20.31,22.14,23.61,31.31,20.26,25.29,32.41,33.61,32.1,34.2,29.73,27.86,29.07,30.14,30.92,31.9,32.33,32.67,32.97,33.24,33.52,33.8,34.09,34.38,34.68,34.98,35.14,35.3,35.46,35.63,35.79,35.97,36.14,36.31,36.48,36.66
80
- Residential,Saskatchewan,Electricity,30.01,32.1,33.69,32.35,30.88,40.2,42.56,37.68,37.84,39.17,40.34,41.55,41.97,42.38,42.8,43.25,43.67,44.12,44.54,44.99,45.45,45.9,46.36,46.81,47.3,47.76,48.25,48.74,49.19,49.69,50.22,50.71,51.2,51.73,52.22,52.75
81
- Residential,Saskatchewan,Natural Gas,11.88,12.61,12.12,11.55,12.08,10.7,10.18,9.68,8.57,7.61,5.98,6.31,6.7,6.83,6.94,7.03,7.12,7.19,7.24,7.27,7.31,7.34,7.37,7.41,7.44,7.47,7.51,7.54,7.57,7.61,7.64,7.67,7.71,7.74,7.77,7.81
82
- Residential,Saskatchewan,Oil,21.67,24.06,26.36,31.64,21.58,26.7,29.71,31.24,27.95,30.23,24.31,26.41,27.09,27.63,27.9,28.35,28.8,29.14,29.44,29.72,30.01,30.29,30.58,30.88,31.18,31.48,31.64,31.81,31.98,32.15,32.32,32.5,32.68,32.86,33.03,33.21
83
- Residential,Yukon,Electricity,23.13,23.21,24.52,24.69,24.08,28.41,28.28,31.48,30.59,30.68,30.78,30.87,30.96,31.05,31.14,31.24,31.33,31.42,31.51,31.6,31.73,31.82,31.91,32,32.09,32.18,32.28,32.4,32.49,32.58,32.67,32.77,32.89,32.98,33.07,33.16
84
- Residential,Yukon,Natural Gas,13.54,14.69,14.99,14.93,13.55,14.81,13.67,12.68,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
85
- Residential,Yukon,Oil,23.94,26.48,29.46,35.04,25.2,30.58,37.27,37.9,35.71,36.89,28.53,28.67,29.32,29.84,30.09,30.53,30.95,31.28,31.57,31.83,32.1,32.38,32.65,32.93,33.22,33.51,33.67,33.83,33.99,34.15,34.32,34.48,34.65,34.82,34.99,35.16
2
+ Commercial,Alberta,Electricity,24.54,27.07,30.02,37.34,28.34,23.85,27.21,30.08,47.62,26.06,20.91,21.9,21.97,22.03,21.9,20.8,22.16,23.51,23.95,24.39,25.34,25.42,25.49,25.37,25.54,25.72,25.99,26.12,26.16,26.37,26.53,26.67,26.88,27.04,27.22,27.44,27.61,27.74,27.92,28.07,28.25,28.43,28.56,28.74,28.91,29.09
3
+ Commercial,Alberta,Natural Gas,10.7,8.78,8.08,9.01,5.67,4.82,4.37,2.82,2.93,4.12,2.62,2.1,3.23,3.51,2.34,3.6,4.16,4.73,4.77,4.81,4.84,4.91,5,5.1,5.16,5.24,5.21,5.19,5.16,5.14,5.13,5.12,5.13,5.14,5.15,5.16,5.15,5.12,5.1,5.08,5.05,5.02,4.99,4.96,4.93,4.91
4
+ Commercial,Alberta,Oil,23.36,24.5,25.91,31.14,22.8,25.4,27.14,28.95,26.59,32.01,24.11,21.94,25.14,29.54,27.79,23.4,25.17,28.17,30.11,30.9,31.68,32.56,32.4,32.29,32.08,31.9,31.74,31.58,31.41,31.26,31.11,30.98,30.91,30.83,30.77,30.69,30.62,30.52,30.43,30.35,30.23,30.12,30.01,29.9,29.79,29.69
5
+ Commercial,British Columbia,Electricity,19.52,18.87,18.76,18.85,20.26,20.84,19.17,22.09,23.35,24.78,26.42,27.34,27.74,28.03,28.16,28.3,26.03,27.98,26.69,26.93,27.33,28.12,29.02,29.24,29.72,30.25,30.73,31.07,31.47,31.86,32.26,32.66,33.05,33.45,33.84,34.24,34.44,34.65,34.85,35.05,35.52,35.68,35.66,35.78,35.95,36.15
6
+ Commercial,British Columbia,Natural Gas,12.77,13.35,12.05,12.45,13.12,13.2,11.99,11.21,11.33,12.22,11.59,9.22,10.9,10.75,11.09,11.31,11.83,11.9,12,12.09,12.27,12.57,12.88,13.28,13.65,14.12,14.48,14.43,14.38,14.34,14.3,14.27,14.26,14.25,14.25,14.24,14.21,14.16,14.12,14.08,14.03,13.99,13.94,13.89,13.85,13.81
7
+ Commercial,British Columbia,Oil,26.99,26.74,27.34,33.71,25.79,29.2,32.9,34.46,35.7,36.74,30.98,28.68,32.85,37.39,35.83,29.92,31.43,33.57,35.48,36.25,37,37.86,37.67,37.52,37.28,37.06,36.87,36.68,36.47,36.29,36.12,35.97,35.86,35.76,35.68,35.58,35.48,35.35,35.24,35.13,35,34.86,34.73,34.6,34.47,34.35
8
+ Commercial,Manitoba,Electricity,18.57,17.83,17.51,16.68,18.27,18.45,18.21,18.35,18.48,18.91,19.64,20.27,20.48,20.68,20.89,21.61,21.65,21.7,21.89,21.93,22.18,22.4,22.65,22.66,22.86,23.76,23.95,24.14,24.36,24.6,24.78,24.91,25.26,25.43,25.61,25.81,25.9,26.08,26.5,26.7,27,27.44,27.57,28.03,28.36,28.65
9
+ Commercial,Manitoba,Natural Gas,11.37,10.47,8.57,9.07,7.94,6.62,5.62,4.26,4.64,5.51,4.93,6.28,6.59,6.03,6.93,7.68,8.23,8.78,8.82,8.86,8.9,8.97,9.06,9.16,9.23,9.3,9.28,9.26,9.23,9.21,9.2,9.19,9.2,9.21,9.23,9.24,9.23,9.2,9.18,9.16,9.13,9.1,9.07,9.04,9.02,8.99
10
+ Commercial,Manitoba,Oil,23.11,23.31,24.77,30.59,22.18,24.79,29.01,29.22,29.58,30.78,23.55,20.98,22.98,27.44,27.01,21.32,22.66,25.22,27.23,28.1,28.95,29.9,29.79,29.72,29.57,29.45,29.34,29.23,29.11,29.01,28.91,28.82,28.78,28.73,28.71,28.67,28.63,28.56,28.5,28.45,28.37,28.29,28.21,28.13,28.06,27.99
11
+ Commercial,New Brunswick,Electricity,33.33,32.98,33.49,34.21,36.07,35.09,35,34.58,34,34.02,35,35.29,35.33,35.36,36.25,36.93,37.67,38.33,39,39.59,40.18,40.79,41.4,41.86,42.31,42.77,43.23,43.69,44.15,44.61,45.07,45.53,45.99,46.44,46.9,47.36,47.82,48.28,48.74,49.2,49.66,50.12,50.57,51.03,51.49,51.95
12
+ Commercial,New Brunswick,Natural Gas,12.54,12.75,7.59,9.8,7.9,11.54,12.11,9.24,8.47,9.44,9.88,9.97,9.66,9.22,10.46,11.17,11.69,12.22,12.26,12.31,12.35,12.43,12.52,12.62,12.69,12.77,12.75,12.73,12.71,12.69,12.68,12.67,12.69,12.7,12.72,12.73,12.72,12.7,12.68,12.66,12.63,12.61,12.58,12.55,12.53,12.51
13
+ Commercial,New Brunswick,Oil,24.13,24.07,24.8,30.86,21.72,24.6,28.95,30.36,29.29,30.69,25.21,21.7,23.74,27.47,28.57,23.46,25.22,28.22,30.16,30.95,31.73,31.85,32.02,32.11,32.07,31.95,31.79,31.64,31.46,31.31,31.17,31.04,30.96,30.89,30.83,30.75,30.68,30.58,30.49,30.4,30.29,30.18,30.07,29.96,29.85,29.75
14
+ Commercial,Newfoundland and Labrador,Electricity,27.03,27.42,27.68,25.96,28.61,26.34,26.25,28.53,30.44,28.32,29.27,26.81,27.35,27.35,27.48,29.24,30.84,32.77,33.39,33.87,34.38,34.87,35.45,35.83,36.38,36.82,37.09,37.37,37.61,37.87,38.1,38.3,38.58,38.77,39.01,39.45,39.67,40.4,40.7,40.9,41.14,41.54,41.59,41.94,42.05,42.36
15
+ Commercial,Newfoundland and Labrador,Natural Gas,12.54,12.75,7.59,9.8,7.9,11.54,12.11,9.24,8.47,9.44,9.88,9.97,9.66,9.57,10.01,10.11,10.12,10.16,10.34,10.51,10.68,10.87,11.07,11.28,11.47,11.67,11.76,11.86,11.9,11.91,11.92,11.93,11.96,11.98,12.02,12.05,12.05,12.04,12.03,12.03,12.02,12.01,11.99,11.98,11.97,11.96
16
+ Commercial,Newfoundland and Labrador,Oil,22.81,24.11,24.23,29.34,20.4,23.6,28.54,29.3,26.61,26.41,20.47,18.72,21.14,25.07,26.1,20.99,22.16,24.81,27.33,28.47,29.58,30.79,30.71,30.68,30.56,30.47,30.39,30.32,30.22,30.15,30.07,30.01,30,29.98,29.98,29.97,29.95,29.91,29.88,29.84,29.78,29.72,29.66,29.6,29.54,29.49
17
+ Commercial,Northwest Territories,Electricity,28.51,28.22,28.06,28.19,30.29,32.22,30.67,35.34,35.5,37.05,39.5,40.88,41,41.12,41.24,41.36,41.48,41.6,41.73,41.85,42.01,42.13,42.25,42.38,42.5,42.62,42.74,42.9,43.02,43.14,43.27,43.39,43.55,43.67,43.79,43.91,44.04,44.16,44.28,44.4,44.52,44.64,44.76,44.89,45.01,45.13
18
+ Commercial,Northwest Territories,Natural Gas,13.58,14.21,13.76,12.8,13.41,13.34,11.34,10.05,9.79,10.52,9.82,6.29,7.85,7.37,8.84,9.69,10.31,10.94,10.97,10.99,11.02,11.09,11.16,11.26,11.31,11.38,11.35,11.32,11.28,11.25,11.23,11.22,11.22,11.23,11.24,11.25,11.22,11.19,11.17,11.14,11.1,11.07,11.04,11,10.97,10.94
19
+ Commercial,Northwest Territories,Oil,25.34,25.91,28.63,35.34,25.71,27.87,33.5,33.65,32.76,35.17,27.34,24.05,26.55,30.66,29.48,23.28,24.24,26.43,28.5,29.43,30.35,31.34,31.28,31.25,31.15,31.08,31.02,30.95,30.88,30.81,30.75,30.7,30.69,30.68,30.68,30.66,30.65,30.61,30.59,30.56,30.51,30.46,30.41,30.36,30.31,30.27
20
+ Commercial,Nova Scotia,Electricity,29.64,33.86,33.16,31.61,35.38,34.62,36.44,38.46,39.21,39.67,40.02,39.17,39.21,39.25,39.3,39.77,40.25,40.73,42.22,43.43,44.47,45.33,45.63,45.7,45.99,46.14,46.29,46.44,46.48,46.52,46.56,46.6,46.63,46.67,46.71,46.75,46.79,46.82,46.86,46.9,46.94,46.98,47.01,47.05,47.09,47.13
21
+ Commercial,Nova Scotia,Natural Gas,17.24,17.48,15.3,14.81,12.85,11.34,9.96,8.94,13.98,15.95,17.29,15.2,11.11,12.4,12.53,12.56,12.57,12.58,12.73,12.87,13.02,13.18,13.35,13.52,13.68,13.84,13.9,13.96,14,14.03,14.06,14.1,14.14,14.19,14.24,14.29,14.31,14.31,14.33,14.34,14.35,14.35,14.36,14.36,14.37,14.38
22
+ Commercial,Nova Scotia,Oil,24.27,27.25,25.22,30.68,21.96,24.5,29.74,30.86,30.92,33.3,26.56,23.1,24.49,27.26,26.43,20.23,21.19,23.37,25.44,26.38,27.29,28.29,28.22,28.2,28.1,28.02,27.96,27.9,27.82,27.76,27.7,27.65,27.64,27.62,27.62,27.61,27.6,27.56,27.53,27.51,27.46,27.41,27.36,27.31,27.26,27.22
23
+ Commercial,Nunavut,Electricity,28.51,28.22,28.06,28.19,30.29,32.22,30.67,35.34,35.5,37.05,39.5,40.88,41,41.12,41.22,42.58,43.98,44.59,45.21,45.82,47.85,50.3,50.3,50.3,50.3,50.3,50.3,50.3,50.3,50.3,50.32,50.03,49.89,49.88,49.8,49.83,49.77,49.69,49.6,49.51,49.46,49.38,49.22,49.12,49.03,48.96
24
+ Commercial,Nunavut,Natural Gas,12.9,13.48,12.18,11.71,11.68,11.38,9.7,8.41,8.37,9.19,8.29,5.7,7.47,7.11,8.36,9.07,9.59,10.13,10.14,10.15,10.16,10.21,10.26,10.33,10.36,10.41,10.38,10.35,10.32,10.29,10.27,10.25,10.25,10.25,10.26,10.26,10.24,10.21,10.19,10.16,10.13,10.1,10.07,10.04,10.01,9.99
25
+ Commercial,Nunavut,Oil,25.35,25.93,28.65,35.36,25.72,27.88,33.52,33.66,32.78,35.19,27.36,24.06,26.57,30.68,29.49,23.29,24.25,26.44,28.51,29.44,30.36,31.35,31.29,31.26,31.16,31.09,31.03,30.96,30.89,30.83,30.76,30.71,30.7,30.69,30.69,30.68,30.66,30.62,30.6,30.57,30.52,30.48,30.42,30.37,30.32,30.29
26
+ Commercial,Ontario,Electricity,36.46,30.78,28.81,29.43,28.9,31.26,33.48,36.01,35.78,37.92,31.1,42.93,43.77,44.65,44.55,44.5,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45,44.45
27
+ Commercial,Ontario,Natural Gas,12.02,13.34,11.66,12.08,9.64,9.52,7.78,6.81,7.22,8.03,8.04,6.21,8.85,7.25,7.32,8.72,9.27,9.82,9.86,9.9,9.94,10.01,10.1,10.2,10.27,10.34,10.32,10.3,10.27,10.25,10.24,10.23,10.24,10.25,10.27,10.28,10.27,10.24,10.22,10.2,10.17,10.14,10.11,10.08,10.05,10.03
28
+ Commercial,Ontario,Oil,22.6,23.34,24.18,30.17,22.48,25.64,31.46,31.99,31.84,32.72,27.71,24.39,29.6,31.86,30.87,26.66,28.4,31.37,33.31,34.11,34.89,35.78,35.62,35.51,35.3,35.13,34.97,34.82,34.65,34.5,34.36,34.23,34.16,34.08,34.02,33.95,33.88,33.78,33.69,33.61,33.5,33.39,33.28,33.17,33.06,32.97
29
+ Commercial,Prince Edward Island,Electricity,37.67,36.13,38.45,40.94,49.34,44.5,37.57,37.12,40.26,40.88,42.86,43.8,43.84,43.92,44.67,44.67,45.03,45.04,45.05,45.17,45.28,45.39,45.51,45.62,45.73,45.85,45.96,46.08,46.19,46.31,46.38,46.45,46.52,46.59,46.66,46.73,46.8,46.87,46.94,47.01,47.08,47.15,47.22,47.29,47.36,47.43
30
+ Commercial,Prince Edward Island,Natural Gas,13.47,13.71,8.16,10.55,8.5,12.42,13.03,9.95,8.4,9.35,7.44,9.97,9.66,9.22,10.01,10.46,10.79,11.13,11.2,11.28,11.36,11.46,11.57,11.7,11.79,11.9,11.9,11.9,11.9,11.91,11.92,11.93,11.96,11.98,12.02,12.05,12.05,12.04,12.03,12.03,12.02,12.01,11.99,11.98,11.97,11.96
31
+ Commercial,Prince Edward Island,Oil,23.02,23.71,23.59,29.51,21.21,23.91,29.21,30.32,28.09,30.06,23.38,20.18,21.29,25.24,26.27,21.17,22.93,25.93,27.86,28.66,29.44,30.32,30.16,30.05,29.84,29.66,29.5,29.34,29.17,29.02,28.88,28.75,28.67,28.59,28.53,28.46,28.39,28.28,28.2,28.11,27.99,27.88,27.77,27.66,27.55,27.46
32
+ Commercial,Quebec,Electricity,23.64,24.49,23.96,23.47,24.38,23.84,23.2,23.06,23.28,23.69,24.55,24.52,24.55,24.57,24.66,24.75,24.52,24.29,24.44,24.51,24.71,24.93,25.19,25.19,25.34,25.54,25.8,26.01,26.27,26.64,27.07,27.45,27.84,28.11,28.42,29.13,29.52,29.79,30.54,30.83,31.13,31.43,31.73,32.04,32.34,32.65
33
+ Commercial,Quebec,Natural Gas,13.79,15.62,11.79,16.88,13.49,13.01,10.56,11.79,10.35,10.78,11.45,12.27,13.01,12.57,12.78,12.94,13.35,13.69,14.14,14.56,15.05,15.45,15.52,15.61,15.66,15.72,15.68,15.65,15.61,15.58,15.55,15.53,15.53,15.53,15.54,15.54,15.51,15.48,15.45,15.41,15.37,15.34,15.3,15.26,15.22,15.19
34
+ Commercial,Quebec,Oil,20.38,21.02,21.38,28.86,19.62,22.26,27.42,28.66,28.1,28.53,24.7,21.35,24.46,29.1,27.91,21.95,23.35,25.88,28.28,29.51,30.38,31.04,31.39,31.26,31.03,30.83,30.65,30.47,30.29,30.12,29.96,29.82,29.73,29.63,29.56,29.47,29.39,29.27,29.17,29.07,28.95,28.82,28.7,28.58,28.45,28.35
35
+ Commercial,Saskatchewan,Electricity,29.04,30.72,30.05,28.65,29.33,30.1,30.88,30.51,31.48,32.89,34.16,34.57,34.91,35.26,36.44,36.99,37.54,38.1,38.68,39.26,39.85,39.63,39.84,39.94,39.93,39.74,40.03,40.21,40.32,40.46,40.6,40.62,40.67,40.65,40.7,40.85,40.92,40.97,41.05,41.14,41.23,41.35,41.42,41.56,41.67,41.81
36
+ Commercial,Saskatchewan,Natural Gas,6.98,8.21,7.84,8.08,6.74,5.11,5.06,4.32,4.64,5.16,4.92,5.65,4.65,4.82,6.09,6.81,7.34,7.88,7.93,7.97,8.01,8.09,8.18,8.28,8.35,8.42,8.4,8.38,8.36,8.34,8.33,8.32,8.33,8.35,8.36,8.38,8.36,8.34,8.32,8.3,8.27,8.24,8.22,8.19,8.16,8.14
37
+ Commercial,Saskatchewan,Oil,23.33,24.47,25.86,31.1,22.78,25.37,27.12,28.92,26.57,31.99,24.08,21.94,23.18,26.66,28.45,23.32,25.06,28.04,29.98,30.77,31.56,32.44,32.29,32.18,31.97,31.79,31.63,31.48,31.31,31.16,31.02,30.89,30.82,30.74,30.68,30.61,30.54,30.44,30.35,30.27,30.15,30.04,29.93,29.82,29.72,29.63
38
+ Commercial,Yukon,Electricity,24.05,23.81,23.68,23.78,25.56,27.19,25.87,29.82,29.95,31.26,33.33,34.49,34.59,34.69,34.83,35.62,35.8,35.84,35.87,36.3,36.78,37.26,37.54,37.7,37.98,38.01,38.04,38.42,38.68,38.94,39.23,39.76,40.11,40.28,40.55,40.86,41.15,41.37,41.71,42,42.33,42.71,42.96,43.33,43.68,43.97
39
+ Commercial,Yukon,Natural Gas,12.9,13.48,12.18,11.71,11.68,11.38,9.7,8.41,8.37,9.19,8.29,5.7,7.47,7.11,8.36,9.07,9.59,10.13,10.14,10.15,10.16,10.21,10.26,10.33,10.36,10.41,10.38,10.35,10.32,10.29,10.27,10.25,10.25,10.25,10.26,10.26,10.24,10.21,10.19,10.16,10.13,10.1,10.07,10.04,10.01,9.99
40
+ Commercial,Yukon,Oil,27.57,28.75,30.41,36.23,27.94,30.54,35.71,36.85,35.65,35.77,28.91,24.98,26.91,31.77,31.47,25.27,26.23,28.41,30.48,31.42,32.33,33.33,33.26,33.24,33.14,33.06,33,32.94,32.86,32.8,32.74,32.69,32.68,32.66,32.66,32.65,32.64,32.6,32.58,32.55,32.5,32.45,32.4,32.35,32.3,32.26
@@ -15,5 +15,4 @@ class OEESC2014 < OEESC
15
15
  def load_standards_database(data_directories = [])
16
16
  super([__dir__] + data_directories)
17
17
  end
18
-
19
18
  end
@@ -27,13 +27,15 @@ class Standard
27
27
  #
28
28
  # @param name [String] the name of the Standard to build.
29
29
  # valid choices are: DOE Pre-1980, DOE 1980-2004, 90.1-2004,
30
- # 90.1-2007, 90.1-2010, 90.1-2013, NREL ZNE Ready 2017, NECB2011
30
+ # 90.1-2007, 90.1-2010, 90.1-2013, 90.1-2016, 90.1-2019,
31
+ # NREL ZNE Ready 2017, NECB2011
31
32
  # @example Create a new Standard object by name
32
33
  # standard = Standard.build('NECB2011')
33
34
  def self.build(name)
34
35
  if STANDARDS_LIST[name].nil?
35
36
  raise "ERROR: Did not find a class called '#{name}' to create in #{JSON.pretty_generate(STANDARDS_LIST)}"
36
37
  end
38
+
37
39
  OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.standard', "Using OpenStudio Standards version #{OpenstudioStandards::VERSION} with template #{name}.")
38
40
  return STANDARDS_LIST[name].new
39
41
  end
@@ -73,7 +75,6 @@ class Standard
73
75
  return lookup_name
74
76
  end
75
77
 
76
-
77
78
  # Loads the openstudio standards dataset for this standard.
78
79
  # For standards subclassed from other standards, the lowest-level
79
80
  # data will override data supplied at a higher level.
@@ -101,7 +102,7 @@ class Standard
101
102
  data.each_pair do |key, objs|
102
103
  # Override the template in inherited files to match the instantiated template
103
104
  objs.each do |obj|
104
- if obj.has_key?('template')
105
+ if obj.key?('template')
105
106
  obj['template'] = template
106
107
  end
107
108
  end
@@ -115,13 +116,13 @@ class Standard
115
116
  end
116
117
  else
117
118
  OpenStudio.logFree(OpenStudio::Debug, 'openstudio.standards.standard', "Loading JSON files from #{data_dir}")
118
- files = Dir.glob("#{data_dir}/data/*.json").select {|e| File.file? e}
119
+ files = Dir.glob("#{data_dir}/data/*.json").select { |e| File.file? e }
119
120
  files.each do |file|
120
121
  data = JSON.parse(File.read(file))
121
122
  data.each_pair do |key, objs|
122
123
  # Override the template in inherited files to match the instantiated template
123
124
  objs.each do |obj|
124
- if obj.has_key?('template')
125
+ if obj.key?('template')
125
126
  obj['template'] = template
126
127
  end
127
128
  end
@@ -9,7 +9,7 @@ class Add_template_field_to_json
9
9
  # Name of file you want this script to produce:
10
10
  out_json_file = './necb_hvac_system_selection_type_mod.json'
11
11
  # What template version do you want to add:
12
- template_version = {"template" => "NECB2011"}
12
+ template_version = { 'template' => 'NECB2011' }
13
13
  # Open the json file and put the data in data_tables:
14
14
  file = File.read(in_json_file)
15
15
  data_tables = JSON.parse(file)
@@ -18,5 +18,5 @@ class Add_template_field_to_json
18
18
  data_tables['tables'][0]['table'][index] = template_version.merge(data_table)
19
19
  end
20
20
  # Save the modified hash to a the file and location defined in out_json_file
21
- File.open(out_json_file,"w") { |each_file| each_file.write(JSON.pretty_generate(data_tables)) }
22
- end
21
+ File.open(out_json_file, 'w') { |each_file| each_file.write(JSON.pretty_generate(data_tables)) }
22
+ end
@@ -2,7 +2,7 @@ require_relative 'minitest_helper'
2
2
  require_relative 'create_doe_prototype_helper'
3
3
  require 'json'
4
4
 
5
- $LOAD_PATH.unshift File.expand_path('../../../../openstudio-standards/lib', __FILE__)
5
+ $LOAD_PATH.unshift File.expand_path('../../../openstudio-standards/lib', __dir__)
6
6
  def run_dir(test_name)
7
7
  # always generate test output in specially named 'output' directory so result files are not made part of the measure
8
8
  "#{File.dirname(__FILE__)}/output/#{test_name}"
@@ -40,30 +40,29 @@ def calculate_max_delta_t(adj_DaySchedule, cur_DaySchedule)
40
40
  # elsif (cur_DaySchedule.nil? and cur_DaySchedule.nil?)
41
41
  # return nil
42
42
  # end
43
- if (cur_DaySchedule.nil? or adj_DaySchedule.nil?)
44
- raise ("cur_DaySchedule or adj_DaySchedule is nil")
43
+ if cur_DaySchedule.nil? || adj_DaySchedule.nil?
44
+ raise 'cur_DaySchedule or adj_DaySchedule is nil'
45
45
  return nil
46
46
  end
47
-
47
+
48
48
  0.upto(23) do |hour|
49
- time = OpenStudio::Time.new(0,hour,0,0)
49
+ time = OpenStudio::Time.new(0, hour, 0, 0)
50
50
  difference = (cur_DaySchedule.getValue(time) - adj_DaySchedule.getValue(time)).abs
51
51
  max = difference if difference > max
52
52
  end
53
53
  return max
54
-
55
54
  end
56
55
 
57
- #returns -999 if current surface does not have heating OR cooling schedule
58
- #returns -997 if all adjacent surfaces does not have BOTH heating AND cooling
59
- #returns nil if the surface does not have adjacent surface
56
+ # returns -999 if current surface does not have heating OR cooling schedule
57
+ # returns -997 if all adjacent surfaces does not have BOTH heating AND cooling
58
+ # returns nil if the surface does not have adjacent surface
60
59
  def get_schedule_max_delta_t(model, surface)
61
- #find spaces that share that surface.
62
- #load the schedules for every day type of the year. for both spaces. If the space is does not have a heating schedule..assume the temperature is the -10C always for now.
63
- #iterate through every hour. and determine delta T
64
- # Store the max delta T.
60
+ # find spaces that share that surface.
61
+ # load the schedules for every day type of the year. for both spaces. If the space is does not have a heating schedule..assume the temperature is the -10C always for now.
62
+ # iterate through every hour. and determine delta T
63
+ # Store the max delta T.
65
64
  # end iteration
66
- #return max deltaT
65
+ # return max deltaT
67
66
  cur_space = nil
68
67
  delta_t = -998
69
68
  adjacent_surface_found = false
@@ -74,52 +73,54 @@ def get_schedule_max_delta_t(model, surface)
74
73
  end
75
74
  end
76
75
  if cur_space.nil?
77
- raise ("Surface: [#{surface.name}] does not belong to any space")
76
+ raise "Surface: [#{surface.name}] does not belong to any space"
78
77
  end
78
+
79
79
  model.getSpaces.each do |space|
80
80
  if space == surface.space.get
81
81
  next
82
82
  end
83
- surf = BTAP::Geometry::Surfaces::get_surfaces_from_spaces([space])
83
+
84
+ surf = BTAP::Geometry::Surfaces.get_surfaces_from_spaces([space])
84
85
  surf.each do |surf|
85
86
  unless surf.adjacentSurface.empty?
86
87
  adj_surface = surf.adjacentSurface.get
87
88
  if adj_surface == surface
88
89
  adjacent_surface_found = true
89
- unless space.thermalZone().empty?
90
- adj_surface_thermal_zone = space.thermalZone().get
91
- cur_surface_thermal_zone = cur_space.thermalZone().get
90
+ unless space.thermalZone.empty?
91
+ adj_surface_thermal_zone = space.thermalZone.get
92
+ cur_surface_thermal_zone = cur_space.thermalZone.get
92
93
  unless adj_surface_thermal_zone.thermostatSetpointDualSetpoint.empty?
93
94
  adj_thermostat = adj_surface_thermal_zone.thermostatSetpointDualSetpoint.get
94
95
  cur_thermostat = cur_surface_thermal_zone.thermostatSetpointDualSetpoint.get
95
- #if current surface does not have a thermostat schedule, then it will return -999 instead of nil because nil is reserved for surfaces without adjacent surface
96
- if (cur_thermostat.getHeatingSchedule().empty? or cur_thermostat.getCoolingSchedule().empty?)
96
+ # if current surface does not have a thermostat schedule, then it will return -999 instead of nil because nil is reserved for surfaces without adjacent surface
97
+ if cur_thermostat.getHeatingSchedule.empty? || cur_thermostat.getCoolingSchedule.empty?
97
98
  return -999
98
99
  end
99
- #after this point current surface should have BOTH heating and cooling schedule
100
- #if adjacent surface does not have a heating OR cooling schedule it will be skipped
101
- if (adj_thermostat.getHeatingSchedule().empty? or adj_thermostat.getCoolingSchedule().empty?)
100
+ # after this point current surface should have BOTH heating and cooling schedule
101
+ # if adjacent surface does not have a heating OR cooling schedule it will be skipped
102
+ if adj_thermostat.getHeatingSchedule.empty? || adj_thermostat.getCoolingSchedule.empty?
102
103
  next
103
104
  else
104
105
  atleast_one_adjacent_surface_has_schedule = true
105
106
  end
106
-
107
- startDate = OpenStudio::Date.new(OpenStudio::MonthOfYear.new(1), 1,2009)
108
- endDate = OpenStudio::Date.new(OpenStudio::MonthOfYear.new(1), 7,2009)
109
-
110
- adj_surface_heating_day_schedule_array = adj_thermostat.getHeatingSchedule().get.to_ScheduleRuleset.get.getDaySchedules(startDate,endDate) unless adj_thermostat.getHeatingSchedule().empty?
111
- adj_surface_cooling_day_schedule_array = adj_thermostat.getCoolingSchedule().get.to_ScheduleRuleset.get.getDaySchedules(startDate,endDate) unless adj_thermostat.getCoolingSchedule().empty?
112
- cur_surface_heating_day_schedule_array = cur_thermostat.getHeatingSchedule().get.to_ScheduleRuleset.get.getDaySchedules(startDate,endDate) unless cur_thermostat.getHeatingSchedule().empty?
113
- cur_surface_cooling_day_schedule_array = cur_thermostat.getCoolingSchedule().get.to_ScheduleRuleset.get.getDaySchedules(startDate,endDate) unless cur_thermostat.getCoolingSchedule().empty?
107
+
108
+ startDate = OpenStudio::Date.new(OpenStudio::MonthOfYear.new(1), 1, 2009)
109
+ endDate = OpenStudio::Date.new(OpenStudio::MonthOfYear.new(1), 7, 2009)
110
+
111
+ adj_surface_heating_day_schedule_array = adj_thermostat.getHeatingSchedule.get.to_ScheduleRuleset.get.getDaySchedules(startDate, endDate) unless adj_thermostat.getHeatingSchedule.empty?
112
+ adj_surface_cooling_day_schedule_array = adj_thermostat.getCoolingSchedule.get.to_ScheduleRuleset.get.getDaySchedules(startDate, endDate) unless adj_thermostat.getCoolingSchedule.empty?
113
+ cur_surface_heating_day_schedule_array = cur_thermostat.getHeatingSchedule.get.to_ScheduleRuleset.get.getDaySchedules(startDate, endDate) unless cur_thermostat.getHeatingSchedule.empty?
114
+ cur_surface_cooling_day_schedule_array = cur_thermostat.getCoolingSchedule.get.to_ScheduleRuleset.get.getDaySchedules(startDate, endDate) unless cur_thermostat.getCoolingSchedule.empty?
114
115
  delta_t = -998
115
- heating_delta_t = []
116
+ heating_delta_t = []
116
117
  cooling_delta_t = []
117
- 1.upto(7) { |i|
118
- puts "mee mee mee"
119
- puts calculate_max_delta_t(adj_surface_heating_day_schedule_array[i-1],cur_surface_heating_day_schedule_array[i-1])
120
- heating_delta_t << calculate_max_delta_t(adj_surface_heating_day_schedule_array[i-1],cur_surface_heating_day_schedule_array[i-1])
121
- cooling_delta_t << calculate_max_delta_t(adj_surface_cooling_day_schedule_array[i-1],cur_surface_cooling_day_schedule_array[i-1])
122
- }
118
+ 1.upto(7) do |i|
119
+ puts 'mee mee mee'
120
+ puts calculate_max_delta_t(adj_surface_heating_day_schedule_array[i - 1], cur_surface_heating_day_schedule_array[i - 1])
121
+ heating_delta_t << calculate_max_delta_t(adj_surface_heating_day_schedule_array[i - 1], cur_surface_heating_day_schedule_array[i - 1])
122
+ cooling_delta_t << calculate_max_delta_t(adj_surface_cooling_day_schedule_array[i - 1], cur_surface_cooling_day_schedule_array[i - 1])
123
+ end
123
124
  delta_t = [heating_delta_t.max, cooling_delta_t.max].max
124
125
  puts "delta_t: #{delta_t}"
125
126
  end
@@ -128,7 +129,7 @@ def get_schedule_max_delta_t(model, surface)
128
129
  end
129
130
  end
130
131
  end
131
- #adjacent_surface_found ? (atleast_one_adjacent_surface_has_schedule ? (return delta_t) : (return -997)) : (return nil)
132
+ # adjacent_surface_found ? (atleast_one_adjacent_surface_has_schedule ? (return delta_t) : (return -997)) : (return nil)
132
133
  if adjacent_surface_found
133
134
  if atleast_one_adjacent_surface_has_schedule
134
135
  return delta_t
@@ -139,7 +140,7 @@ def get_schedule_max_delta_t(model, surface)
139
140
  return nil
140
141
  end
141
142
  end
142
- #LargeOffice
143
+ # LargeOffice
143
144
  class TestNECBSurfaces8426Custom < CreateDOEPrototypeBuildingTest
144
145
  building_types = [
145
146
  'LargeOffice',
@@ -149,10 +150,10 @@ class TestNECBSurfaces8426Custom < CreateDOEPrototypeBuildingTest
149
150
  'PrimarySchool'
150
151
  ]
151
152
 
152
- templates = [ 'NECB 2011']
153
+ templates = ['NECB 2011']
153
154
  climate_zones = ['NECB HDD Method']
154
155
  epw_files = [
155
- # 'CAN_BC_Vancouver.718920_CWEC.epw',# CZ 5 - Gas HDD = 3019
156
+ # 'CAN_BC_Vancouver.718920_CWEC.epw',# CZ 5 - Gas HDD = 3019
156
157
  # 'CAN_ON_Toronto.716240_CWEC.epw', #CZ 6 - Gas HDD = 4088
157
158
  # 'CAN_PQ_Sherbrooke.716100_CWEC.epw', #CZ 7a - Electric HDD = 5068
158
159
  # 'CAN_YT_Whitehorse.719640_CWEC.epw', #CZ 7b - FuelOil1 HDD = 6946
@@ -166,39 +167,38 @@ class TestNECBSurfaces8426Custom < CreateDOEPrototypeBuildingTest
166
167
  unless File.exist?(run_dir(test_name))
167
168
  FileUtils.mkdir_p(run_dir(test_name))
168
169
  end
169
- #assert(File.exist?(run_dir(test_name)))
170
+ # assert(File.exist?(run_dir(test_name)))
170
171
 
171
172
  if File.exist?(report_path(test_name))
172
173
  FileUtils.rm(report_path(test_name))
173
174
  end
174
175
 
175
- #assert(File.exist?(model_in_path))
176
+ # assert(File.exist?(model_in_path))
176
177
 
177
178
  if File.exist?(model_out_path(test_name))
178
179
  FileUtils.rm(model_out_path(test_name))
179
180
  end
180
181
  output_folder = "#{File.dirname(__FILE__)}/output/#{test_name}"
181
182
  model = OpenStudio::Model::Model.new
182
- model.create_prototype_building(building,'NECB 2011','NECB HDD Method',weather,output_folder)
183
+ model.create_prototype_building(building, 'NECB 2011', 'NECB HDD Method', weather, output_folder)
183
184
  BTAP::Environment::WeatherFile.new(weather).set_weather_file(model)
184
185
  model.getSpaces.each do |space|
185
- #puts space.name
186
+ # puts space.name
186
187
  hash[:"Space: #{space.name}"] = {}
187
188
  hash[:"Space: #{space.name}"][:"With Adjacent Surface"] = {}
188
189
  hash[:"Space: #{space.name}"][:"No Adjacent surface"] = []
189
- surfaces = BTAP::Geometry::Surfaces::get_surfaces_from_spaces([space])
190
+ surfaces = BTAP::Geometry::Surfaces.get_surfaces_from_spaces([space])
190
191
  surfaces.each do |surface|
191
192
  max_delta_t = get_schedule_max_delta_t(model, surface)
192
- unless max_delta_t.nil?
193
- hash[:"Space: #{space.name}"][:"With Adjacent Surface"][:"#{surface.name}"] = max_delta_t
194
- else
193
+ if max_delta_t.nil?
195
194
  hash[:"Space: #{space.name}"][:"No Adjacent surface"] << surface.name
195
+ else
196
+ hash[:"Space: #{space.name}"][:"With Adjacent Surface"][:"#{surface.name}"] = max_delta_t
196
197
  end
197
198
  end
198
199
  end
199
- #model.save(model_out_path(test_name), true)
200
- File.open("#{output_folder}/max_delta_t.json", 'w') {|f| f.write(JSON.pretty_generate(hash)) }
200
+ # model.save(model_out_path(test_name), true)
201
+ File.open("#{output_folder}/max_delta_t.json", 'w') { |f| f.write(JSON.pretty_generate(hash)) }
201
202
  end
202
203
  end
203
-
204
204
  end