openstudio-common-measures 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -1
- data/README.md +7 -2
- data/doc_templates/copyright_erb.txt +1 -1
- data/lib/measures/AddCostPerFloorAreaUnusedToLights/measure.xml +2 -8
- data/lib/measures/AddCostToSupplySideHVACComponentByAirLoop/measure.xml +9 -3
- data/lib/measures/AddSimplePvToShadingSurfacesByType/measure.xml +2 -2
- data/lib/measures/RemoveUnusedDefaultProfiles/measure.xml +2 -2
- data/lib/measures/ReportModelChanges/measure.xml +2 -2
- data/lib/measures/SetCOPforSingleSpeedDXCoolingUnits/measure.xml +4 -4
- data/lib/measures/SetCOPforTwoSpeedDXCoolingUnits/measure.xml +4 -4
- data/lib/measures/SetGasBurnerEfficiency/measure.xml +4 -4
- data/lib/measures/ShiftScheduleProfileTime/measure.xml +4 -4
- data/lib/measures/SwapLightsDefinition/measure.xml +3 -5
- data/lib/measures/add_ems_emissions_reporting/measure.rb +236 -29
- data/lib/measures/add_ems_emissions_reporting/measure.xml +362 -10
- data/lib/measures/add_ev_load/measure.rb +51 -8
- data/lib/measures/add_ev_load/measure.xml +23 -5
- data/lib/measures/envelope_and_internal_load_breakdown/measure.xml +3 -3
- data/lib/measures/envelope_and_internal_load_breakdown/resources/report.html.erb +5 -1
- data/lib/measures/example_report/measure.xml +3 -3
- data/lib/measures/example_report/resources/report.html.erb +5 -1
- data/lib/measures/generic_qaqc/README.md +19 -4
- data/lib/measures/generic_qaqc/README.md.erb +7 -1
- data/lib/measures/generic_qaqc/docs/generic_qaqc_detailed.jpg +0 -0
- data/lib/measures/generic_qaqc/docs/generic_qaqc_summary.jpg +0 -0
- data/lib/measures/generic_qaqc/measure.rb +34 -29
- data/lib/measures/generic_qaqc/measure.xml +181 -82
- data/lib/measures/generic_qaqc/resources/check_cond_zns.rb +3 -1
- data/lib/measures/generic_qaqc/resources/check_domestic_hot_water.rb +13 -8
- data/lib/measures/generic_qaqc/resources/check_envelope_conductance.rb +330 -231
- data/lib/measures/generic_qaqc/resources/check_eui_by_end_use.rb +59 -20
- data/lib/measures/generic_qaqc/resources/check_eui_reasonableness.rb +58 -20
- data/lib/measures/generic_qaqc/resources/check_internal_loads.rb +57 -56
- data/lib/measures/generic_qaqc/resources/check_mech_sys_capacity.rb +4 -1
- data/lib/measures/generic_qaqc/resources/check_mech_sys_efficiency.rb +27 -22
- data/lib/measures/generic_qaqc/resources/check_mech_sys_part_load_eff.rb +4 -1
- data/lib/measures/generic_qaqc/resources/check_mech_sys_type.rb +3 -3
- data/lib/measures/generic_qaqc/resources/check_schedules.rb +65 -101
- data/lib/measures/generic_qaqc/resources/check_simultaneous_heating_and_cooling.rb +3 -1
- data/lib/measures/generic_qaqc/resources/check_supply_air_and_thermostat_temp_difference.rb +3 -1
- data/lib/measures/generic_qaqc/resources/os_lib_reporting_qaqc.rb +49 -15
- data/lib/measures/generic_qaqc/resources/report.html.erb +5 -1
- data/lib/measures/hvac_psychrometric_chart/measure.xml +3 -3
- data/lib/measures/hvac_psychrometric_chart/resources/report.html.erb +5 -1
- data/lib/measures/openstudio_results/measure.xml +3 -3
- data/lib/measures/openstudio_results/resources/report.html.erb +5 -1
- data/lib/measures/set_run_period/measure.xml +2 -2
- data/lib/measures/view_data/measure.xml +4 -4
- data/lib/measures/view_data/resources/report.html.in +189 -19
- data/lib/measures/view_data/resources/va3c.rb +1 -0
- data/lib/measures/view_model/measure.xml +9 -9
- data/lib/measures/view_model/resources/report.html.in +189 -19
- data/lib/measures/view_model/resources/va3c.rb +1 -0
- data/lib/openstudio/common_measures/version.rb +1 -1
- data/openstudio-common-measures.gemspec +1 -1
- metadata +7 -5
@@ -59,50 +59,152 @@ class AddEMSEmissionsReporting < OpenStudio::Measure::ModelMeasure
|
|
59
59
|
args = OpenStudio::Measure::OSArgumentVector.new
|
60
60
|
|
61
61
|
# future subregion
|
62
|
-
|
62
|
+
future_subregion_chs = OpenStudio::StringVector.new
|
63
|
+
future_subregion_chs << 'AZNMc'
|
64
|
+
future_subregion_chs << 'CAMXc'
|
65
|
+
future_subregion_chs << 'ERCTc'
|
66
|
+
future_subregion_chs << 'FRCCc'
|
67
|
+
future_subregion_chs << 'MROEc'
|
68
|
+
future_subregion_chs << 'MROWc'
|
69
|
+
future_subregion_chs << 'NEWEc'
|
70
|
+
future_subregion_chs << 'NWPPc'
|
71
|
+
future_subregion_chs << 'NYSTc'
|
72
|
+
future_subregion_chs << 'RFCEc'
|
73
|
+
future_subregion_chs << 'RFCMc'
|
74
|
+
future_subregion_chs << 'RFCWc'
|
75
|
+
future_subregion_chs << 'RMPAc'
|
76
|
+
future_subregion_chs << 'SPNOc'
|
77
|
+
future_subregion_chs << 'SPSOc'
|
78
|
+
future_subregion_chs << 'SRMVc'
|
79
|
+
future_subregion_chs << 'SRMWc'
|
80
|
+
future_subregion_chs << 'SRSOc'
|
81
|
+
future_subregion_chs << 'SRTVc'
|
82
|
+
future_subregion_chs << 'SRVCc'
|
83
|
+
|
84
|
+
future_subregion = OpenStudio::Measure::OSArgument.makeChoiceArgument('future_subregion', future_subregion_chs, true)
|
63
85
|
future_subregion.setDisplayName('Future subregion')
|
64
86
|
future_subregion.setDescription('Future subregion. Options are: AZNMc, CAMXc, ERCTc, FRCCc, MROEc, MROWc, NEWEc, NWPPc, NYSTc, RFCEc, RFCMc, RFCWc, RMPAc, SPNOc, SPSOc, SRMVc, SRMWc, SRSOc, SRTVc, and SRVCc')
|
65
87
|
future_subregion.setDefaultValue('RMPAc')
|
66
88
|
args << future_subregion
|
67
89
|
|
68
90
|
# historical hourly subregion
|
69
|
-
|
91
|
+
hourly_historical_subregion_chs = OpenStudio::StringVector.new
|
92
|
+
hourly_historical_subregion_chs << 'California'
|
93
|
+
hourly_historical_subregion_chs << 'Carolinas'
|
94
|
+
hourly_historical_subregion_chs << 'Central'
|
95
|
+
hourly_historical_subregion_chs << 'Florida'
|
96
|
+
hourly_historical_subregion_chs << 'Mid-Atlantic'
|
97
|
+
hourly_historical_subregion_chs << 'Midwest'
|
98
|
+
hourly_historical_subregion_chs << 'New England'
|
99
|
+
hourly_historical_subregion_chs << 'New York'
|
100
|
+
hourly_historical_subregion_chs << 'Northwest'
|
101
|
+
hourly_historical_subregion_chs << 'Rocky Mountains'
|
102
|
+
hourly_historical_subregion_chs << 'Southeast'
|
103
|
+
hourly_historical_subregion_chs << 'Southwest'
|
104
|
+
hourly_historical_subregion_chs << 'Tennessee'
|
105
|
+
hourly_historical_subregion_chs << 'Texas'
|
106
|
+
|
107
|
+
hourly_historical_subregion = OpenStudio::Measure::OSArgument.makeChoiceArgument('hourly_historical_subregion', hourly_historical_subregion_chs, true)
|
70
108
|
hourly_historical_subregion.setDisplayName('Historical hourly subregion')
|
71
109
|
hourly_historical_subregion.setDescription('Historical hourly subregion. Options are: California, Carolinas, Central, Florida, Mid-Atlantic, Midwest, New England, New York, Northwest, Rocky Mountains, Southeast, Southwest, Tennessee, and Texas')
|
72
110
|
hourly_historical_subregion.setDefaultValue('Rocky Mountains')
|
73
111
|
args << hourly_historical_subregion
|
74
112
|
|
75
113
|
# historical annual subregion
|
76
|
-
|
114
|
+
annual_historical_subregion_chs = OpenStudio::StringVector.new
|
115
|
+
annual_historical_subregion_chs << 'AKGD'
|
116
|
+
annual_historical_subregion_chs << 'AKMS'
|
117
|
+
annual_historical_subregion_chs << 'AZNM'
|
118
|
+
annual_historical_subregion_chs << 'CAMX'
|
119
|
+
annual_historical_subregion_chs << 'ERCT'
|
120
|
+
annual_historical_subregion_chs << 'FRCC'
|
121
|
+
annual_historical_subregion_chs << 'HIMS'
|
122
|
+
annual_historical_subregion_chs << 'HIOA'
|
123
|
+
annual_historical_subregion_chs << 'MROE'
|
124
|
+
annual_historical_subregion_chs << 'MROW'
|
125
|
+
annual_historical_subregion_chs << 'NEWE'
|
126
|
+
annual_historical_subregion_chs << 'NWPP'
|
127
|
+
annual_historical_subregion_chs << 'NYCW'
|
128
|
+
annual_historical_subregion_chs << 'NYLI'
|
129
|
+
annual_historical_subregion_chs << 'NYUP'
|
130
|
+
annual_historical_subregion_chs << 'RFCE'
|
131
|
+
annual_historical_subregion_chs << 'RFCM'
|
132
|
+
annual_historical_subregion_chs << 'RFCW'
|
133
|
+
annual_historical_subregion_chs << 'RMPA'
|
134
|
+
annual_historical_subregion_chs << 'SPNO'
|
135
|
+
annual_historical_subregion_chs << 'SPSO'
|
136
|
+
annual_historical_subregion_chs << 'SRMV'
|
137
|
+
annual_historical_subregion_chs << 'SRMW'
|
138
|
+
annual_historical_subregion_chs << 'SRSO'
|
139
|
+
annual_historical_subregion_chs << 'SRTV'
|
140
|
+
annual_historical_subregion_chs << 'SRVC'
|
141
|
+
|
142
|
+
annual_historical_subregion = OpenStudio::Measure::OSArgument.makeChoiceArgument('annual_historical_subregion', annual_historical_subregion_chs, true)
|
77
143
|
annual_historical_subregion.setDisplayName('Historical annual subregion')
|
78
144
|
annual_historical_subregion.setDescription('Historical annual subregion. Options are: AKGD, AKMS, AZNM, CAMX, ERCT, FRCC, HIMS, HIOA, MROE, MROW, NEWE, NWPP, NYCW, NYLI, NYUP, RFCE, RFCM, RFCW, RMPA, SPNO, SPSO, SRMV, SRMW, SRSO, SRTV, and SRVC')
|
79
145
|
annual_historical_subregion.setDefaultValue('RMPA')
|
80
146
|
args << annual_historical_subregion
|
81
147
|
|
82
148
|
# future year
|
83
|
-
|
149
|
+
future_year_chs = OpenStudio::StringVector.new
|
150
|
+
future_year_chs << '2020'
|
151
|
+
future_year_chs << '2022'
|
152
|
+
future_year_chs << '2024'
|
153
|
+
future_year_chs << '2026'
|
154
|
+
future_year_chs << '2028'
|
155
|
+
future_year_chs << '2030'
|
156
|
+
future_year_chs << '2032'
|
157
|
+
future_year_chs << '2034'
|
158
|
+
future_year_chs << '2036'
|
159
|
+
future_year_chs << '2038'
|
160
|
+
future_year_chs << '2040'
|
161
|
+
future_year_chs << '2042'
|
162
|
+
future_year_chs << '2044'
|
163
|
+
future_year_chs << '2046'
|
164
|
+
future_year_chs << '2048'
|
165
|
+
future_year_chs << '2050'
|
166
|
+
|
167
|
+
|
168
|
+
future_year = OpenStudio::Measure::OSArgument.makeChoiceArgument('future_year', future_year_chs, true)
|
84
169
|
future_year.setDisplayName('Future Year')
|
85
170
|
future_year.setDescription('Future Year. Options are: 2020 to 2050 in two year increments')
|
86
|
-
future_year.setDefaultValue(2020)
|
171
|
+
future_year.setDefaultValue('2020')
|
87
172
|
args << future_year
|
88
173
|
|
89
174
|
# hourly historical year
|
90
|
-
|
175
|
+
hourly_historical_year_chs = OpenStudio::StringVector.new
|
176
|
+
hourly_historical_year_chs << '2019'
|
177
|
+
|
178
|
+
hourly_historical_year = OpenStudio::Measure::OSArgument.makeChoiceArgument('hourly_historical_year', hourly_historical_year_chs, true)
|
91
179
|
hourly_historical_year.setDisplayName('Hourly Historical Year')
|
92
180
|
hourly_historical_year.setDescription('Hourly Historical Year. Options are: 2019.')
|
93
|
-
hourly_historical_year.setDefaultValue(2019)
|
181
|
+
hourly_historical_year.setDefaultValue('2019')
|
94
182
|
args << hourly_historical_year
|
95
183
|
|
96
184
|
# annual historical year
|
97
|
-
|
185
|
+
annual_historical_year_chs = OpenStudio::StringVector.new
|
186
|
+
annual_historical_year_chs << '2007'
|
187
|
+
annual_historical_year_chs << '2009'
|
188
|
+
annual_historical_year_chs << '2010'
|
189
|
+
annual_historical_year_chs << '2012'
|
190
|
+
annual_historical_year_chs << '2014'
|
191
|
+
annual_historical_year_chs << '2016'
|
192
|
+
annual_historical_year_chs << '2018'
|
193
|
+
annual_historical_year_chs << '2019'
|
194
|
+
|
195
|
+
annual_historical_year = OpenStudio::Measure::OSArgument.makeChoiceArgument('annual_historical_year', annual_historical_year_chs, true)
|
196
|
+
|
197
|
+
#puts "annual_historical_year = #{annual_historical_year}"
|
198
|
+
|
98
199
|
annual_historical_year.setDisplayName('Annual Historical Year')
|
99
200
|
annual_historical_year.setDescription('Annual Historical Year. Options are: 2007, 2009, 2010, 2012, 2014, 2016, 2018, and 2019.')
|
100
|
-
annual_historical_year.setDefaultValue(2019)
|
201
|
+
annual_historical_year.setDefaultValue('2019')
|
101
202
|
args << annual_historical_year
|
102
203
|
|
103
204
|
return args
|
104
205
|
end
|
105
206
|
|
207
|
+
|
106
208
|
# define what happens when the measure is run
|
107
209
|
def run(model, runner, usr_args)
|
108
210
|
super(model, runner, usr_args)
|
@@ -114,9 +216,43 @@ class AddEMSEmissionsReporting < OpenStudio::Measure::ModelMeasure
|
|
114
216
|
future_subregion = runner.getStringArgumentValue('future_subregion', usr_args)
|
115
217
|
hourly_historical_subregion = runner.getStringArgumentValue('hourly_historical_subregion', usr_args)
|
116
218
|
annual_historical_subregion = runner.getStringArgumentValue('annual_historical_subregion', usr_args)
|
117
|
-
future_year = runner.
|
118
|
-
hourly_historical_year = runner.
|
119
|
-
annual_historical_year = runner.
|
219
|
+
future_year = runner.getStringArgumentValue('future_year', usr_args).to_i
|
220
|
+
hourly_historical_year = runner.getStringArgumentValue('hourly_historical_year', usr_args).to_i
|
221
|
+
annual_historical_year = runner.getStringArgumentValue('annual_historical_year', usr_args).to_i
|
222
|
+
|
223
|
+
# log errors if users select arguments not supported by the measure
|
224
|
+
arguments(model).each do |argument|
|
225
|
+
|
226
|
+
case argument.name
|
227
|
+
|
228
|
+
when 'future_subregion'
|
229
|
+
if !argument.choiceValues.include? future_subregion
|
230
|
+
runner.registerError("#{future_subregion} is not a valid option. Please select from of the following future_subregion options #{argument.choiceValues}")
|
231
|
+
end
|
232
|
+
when 'hourly_historical_subregion'
|
233
|
+
if !argument.choiceValues.include? hourly_historical_subregion
|
234
|
+
runner.registerError("#{hourly_historical_subregion} is not a valid option. Please select from of the following hourly_historical_subregion options #{argument.choiceValues}")
|
235
|
+
end
|
236
|
+
when 'annual_historical_subregion'
|
237
|
+
if !argument.choiceValues.include? annual_historical_subregion
|
238
|
+
runner.registerError("#{annual_historical_subregion} is not a valid option. Please select from of the following annual_historical_subregion options #{argument.choiceValues}")
|
239
|
+
end
|
240
|
+
when 'future_year'
|
241
|
+
if !argument.choiceValues.include? future_year.to_s
|
242
|
+
runner.registerError("#{future_year} is not a valid option. Please select from of the following future_year options #{argument.choiceValues}")
|
243
|
+
end
|
244
|
+
when 'hourly_historical_year'
|
245
|
+
if !argument.choiceValues.include? hourly_historical_year.to_s
|
246
|
+
runner.registerError("#{hourly_historical_year} is not a valid option. Please select from of the following hourly_historical_year options #{argument.choiceValues}")
|
247
|
+
end
|
248
|
+
when 'annual_historical_year'
|
249
|
+
if !argument.choiceValues.include? annual_historical_year.to_s
|
250
|
+
runner.registerError("#{annual_historical_year} is not a valid option. Please select from of the following annual_historical_year options #{argument.choiceValues}")
|
251
|
+
end
|
252
|
+
|
253
|
+
end
|
254
|
+
|
255
|
+
end
|
120
256
|
|
121
257
|
fut_hr_path = "#{__dir__}/resources/future_hourly_co2e_#{future_year}.csv"
|
122
258
|
his_hr_path = "#{__dir__}/resources/historical_hourly_co2e_#{hourly_historical_year}.csv"
|
@@ -193,11 +329,23 @@ class AddEMSEmissionsReporting < OpenStudio::Measure::ModelMeasure
|
|
193
329
|
his_yr_data.each {|r| ems_prgm.addLine("SET his_yr_val = #{r[annual_historical_subregion]}") if r[0].to_i == annual_historical_year}
|
194
330
|
ems_prgm.addLine('SET elec = Ele_Sen')
|
195
331
|
ems_prgm.addLine('SET conv = 1000000 * 60 * 60') # J to MWh (1000000J/MJ * 60hr/min * 60 min/sec)
|
196
|
-
ems_prgm.addLine('SET
|
197
|
-
ems_prgm.addLine('SET
|
198
|
-
ems_prgm.addLine('SET
|
199
|
-
ems_prgm.addLine('SET
|
200
|
-
|
332
|
+
ems_prgm.addLine('SET conv_kg_mt = 0.001') # kg to metric ton
|
333
|
+
ems_prgm.addLine('SET fut_hr = (fut_hr_val * elec / conv) * conv_kg_mt')
|
334
|
+
ems_prgm.addLine('SET his_hr = (his_hr_val * elec / conv) * conv_kg_mt')
|
335
|
+
ems_prgm.addLine('SET fut_yr = (fut_yr_val * elec / conv) * conv_kg_mt')
|
336
|
+
ems_prgm.addLine('SET his_yr = (his_yr_val * elec / conv) * conv_kg_mt')
|
337
|
+
|
338
|
+
|
339
|
+
#### add emissions intensity metric
|
340
|
+
# get building from model
|
341
|
+
building = model.getBuilding
|
342
|
+
floor_area = building.floorArea * 10.764 #change from m2 to ft2
|
343
|
+
#add metric
|
344
|
+
ems_prgm.addLine("SET fut_hr_intensity = fut_hr * 1000 / #{floor_area}") # unit: kg/ft2 - changed mt to kg
|
345
|
+
ems_prgm.addLine("SET his_hr_intensity = his_hr * 1000 / #{floor_area}") # unit: kg/ft2 - changed mt to kg
|
346
|
+
ems_prgm.addLine("SET fut_yr_intensity = fut_yr * 1000 / #{floor_area}") # unit: kg/ft2 - changed mt to kg
|
347
|
+
ems_prgm.addLine("SET his_yr_intensity = his_yr * 1000 / #{floor_area}") # unit: kg/ft2 - changed mt to kg
|
348
|
+
|
201
349
|
# add EMS program calling manager
|
202
350
|
mgr_prgm = OpenStudio::Model::EnergyManagementSystemProgramCallingManager.new(model)
|
203
351
|
mgr_prgm.setName('Emissions Calc Prgm')
|
@@ -206,60 +354,119 @@ class AddEMSEmissionsReporting < OpenStudio::Measure::ModelMeasure
|
|
206
354
|
|
207
355
|
# add future hourly EMS output variable
|
208
356
|
ems_var1 = OpenStudio::Model::EnergyManagementSystemOutputVariable.new(model, 'fut_hr')
|
209
|
-
ems_var1.setName(
|
357
|
+
ems_var1.setName('Future_Hourly_Emissions_Var')
|
210
358
|
ems_var1.setEMSVariableName('fut_hr')
|
211
359
|
ems_var1.setTypeOfDataInVariable('Summed')
|
212
360
|
ems_var1.setUpdateFrequency('SystemTimestep')
|
213
361
|
ems_var1.setEMSProgramOrSubroutineName(ems_prgm)
|
214
|
-
ems_var1.setUnits('
|
362
|
+
ems_var1.setUnits('mt')
|
215
363
|
|
216
364
|
# add historical hourly EMS output variable
|
217
365
|
ems_var2 = OpenStudio::Model::EnergyManagementSystemOutputVariable.new(model, 'his_hr')
|
218
|
-
ems_var2.setName(
|
366
|
+
ems_var2.setName('Historical_Hourly_Emissions_Var')
|
219
367
|
ems_var2.setEMSVariableName('his_hr')
|
220
368
|
ems_var2.setTypeOfDataInVariable('Summed')
|
221
369
|
ems_var2.setUpdateFrequency('SystemTimestep')
|
222
370
|
ems_var2.setEMSProgramOrSubroutineName(ems_prgm)
|
223
|
-
ems_var2.setUnits('
|
371
|
+
ems_var2.setUnits('mt')
|
224
372
|
|
225
373
|
# add future annual EMS output variable
|
226
374
|
ems_var3 = OpenStudio::Model::EnergyManagementSystemOutputVariable.new(model, 'fut_yr')
|
227
|
-
ems_var3.setName(
|
375
|
+
ems_var3.setName('Future_Annual_Emissions_Var')
|
228
376
|
ems_var3.setEMSVariableName('fut_yr')
|
229
377
|
ems_var3.setTypeOfDataInVariable('Summed')
|
230
378
|
ems_var3.setUpdateFrequency('SystemTimestep')
|
231
379
|
ems_var3.setEMSProgramOrSubroutineName(ems_prgm)
|
232
|
-
ems_var3.setUnits('
|
380
|
+
ems_var3.setUnits('mt')
|
233
381
|
|
234
382
|
# add historical annual EMS output variable
|
235
383
|
ems_var4 = OpenStudio::Model::EnergyManagementSystemOutputVariable.new(model, 'his_yr')
|
236
|
-
ems_var4.setName(
|
384
|
+
ems_var4.setName('Historical_Annual_Emissions_Var')
|
237
385
|
ems_var4.setEMSVariableName('his_yr')
|
238
386
|
ems_var4.setTypeOfDataInVariable('Summed')
|
239
387
|
ems_var4.setUpdateFrequency('SystemTimestep')
|
240
388
|
ems_var4.setEMSProgramOrSubroutineName(ems_prgm)
|
241
|
-
ems_var4.setUnits('
|
389
|
+
ems_var4.setUnits('mt')
|
390
|
+
|
391
|
+
|
392
|
+
##### add emissions intensity
|
393
|
+
# add future hourly EMS output variable
|
394
|
+
ems_var5 = OpenStudio::Model::EnergyManagementSystemOutputVariable.new(model, 'fut_hr_intensity')
|
395
|
+
ems_var5.setName('Future_Hourly_Emissions_Intensity_Var')
|
396
|
+
ems_var5.setEMSVariableName('fut_hr_intensity')
|
397
|
+
ems_var5.setTypeOfDataInVariable('Summed')
|
398
|
+
ems_var5.setUpdateFrequency('SystemTimestep')
|
399
|
+
ems_var5.setEMSProgramOrSubroutineName(ems_prgm)
|
400
|
+
ems_var5.setUnits('kg/ft2')
|
401
|
+
|
402
|
+
# add historical hourly EMS output variable
|
403
|
+
ems_var6 = OpenStudio::Model::EnergyManagementSystemOutputVariable.new(model, 'his_hr_intensity')
|
404
|
+
ems_var6.setName('Historical_Hourly_Emissions_Intensity_Var')
|
405
|
+
ems_var6.setEMSVariableName('his_hr_intensity')
|
406
|
+
ems_var6.setTypeOfDataInVariable('Summed')
|
407
|
+
ems_var6.setUpdateFrequency('SystemTimestep')
|
408
|
+
ems_var6.setEMSProgramOrSubroutineName(ems_prgm)
|
409
|
+
ems_var6.setUnits('kg/ft2')
|
410
|
+
|
411
|
+
# add future annual EMS output variable
|
412
|
+
ems_var7 = OpenStudio::Model::EnergyManagementSystemOutputVariable.new(model, 'fut_yr_intensity')
|
413
|
+
ems_var7.setName('Future_Annual_Emissions_Intensity_Var')
|
414
|
+
ems_var7.setEMSVariableName('fut_yr_intensity')
|
415
|
+
ems_var7.setTypeOfDataInVariable('Summed')
|
416
|
+
ems_var7.setUpdateFrequency('SystemTimestep')
|
417
|
+
ems_var7.setEMSProgramOrSubroutineName(ems_prgm)
|
418
|
+
ems_var7.setUnits('kg/ft2')
|
419
|
+
|
420
|
+
# add historical annual EMS output variable
|
421
|
+
ems_var8 = OpenStudio::Model::EnergyManagementSystemOutputVariable.new(model, 'his_yr_intensity')
|
422
|
+
ems_var8.setName('Historical_Annual_Emissions_Intensity_Var')
|
423
|
+
ems_var8.setEMSVariableName('his_yr_intensity')
|
424
|
+
ems_var8.setTypeOfDataInVariable('Summed')
|
425
|
+
ems_var8.setUpdateFrequency('SystemTimestep')
|
426
|
+
ems_var8.setEMSProgramOrSubroutineName(ems_prgm)
|
427
|
+
ems_var8.setUnits('kg/ft2')
|
242
428
|
|
243
429
|
# add future hourly reporting output variable
|
244
|
-
out_var1 = OpenStudio::Model::OutputVariable.new(
|
430
|
+
out_var1 = OpenStudio::Model::OutputVariable.new('Future_Hourly_Emissions_Var', model)
|
245
431
|
out_var1.setKeyValue('EMS')
|
246
432
|
out_var1.setReportingFrequency('hourly')
|
247
433
|
|
248
434
|
# add historical hourly reporting output variable
|
249
|
-
out_var2 = OpenStudio::Model::OutputVariable.new(
|
435
|
+
out_var2 = OpenStudio::Model::OutputVariable.new('Historical_Hourly_Emissions_Var', model)
|
250
436
|
out_var2.setKeyValue('EMS')
|
251
437
|
out_var2.setReportingFrequency('hourly')
|
252
438
|
|
253
439
|
# add future annual reporting output variable
|
254
|
-
out_var3 = OpenStudio::Model::OutputVariable.new(
|
440
|
+
out_var3 = OpenStudio::Model::OutputVariable.new('Future_Annual_Emissions_Var', model)
|
255
441
|
out_var3.setKeyValue('EMS')
|
256
442
|
out_var3.setReportingFrequency('hourly')
|
257
443
|
|
258
444
|
# add historical annual reporting output variable
|
259
|
-
out_var4 = OpenStudio::Model::OutputVariable.new(
|
445
|
+
out_var4 = OpenStudio::Model::OutputVariable.new('Historical_Annual_Emissions_Var', model)
|
260
446
|
out_var4.setKeyValue('EMS')
|
261
447
|
out_var4.setReportingFrequency('hourly')
|
262
448
|
|
449
|
+
# add future hourly intensity reporting output variable
|
450
|
+
out_var5 = OpenStudio::Model::OutputVariable.new('Future_Hourly_Emissions_Intensity_Var', model)
|
451
|
+
out_var5.setKeyValue('EMS')
|
452
|
+
out_var5.setReportingFrequency('hourly')
|
453
|
+
|
454
|
+
# add historical hourly intensity reporting output variable
|
455
|
+
out_var6 = OpenStudio::Model::OutputVariable.new('Historical_Hourly_Emissions_Intensity_Var', model)
|
456
|
+
out_var6.setKeyValue('EMS')
|
457
|
+
out_var6.setReportingFrequency('hourly')
|
458
|
+
|
459
|
+
# add future annual intensity reporting output variable
|
460
|
+
out_var7 = OpenStudio::Model::OutputVariable.new('Future_Annual_Emissions_Intensity_Var', model)
|
461
|
+
out_var7.setKeyValue('EMS')
|
462
|
+
out_var7.setReportingFrequency('hourly')
|
463
|
+
|
464
|
+
# add historical annual intensity reporting output variable
|
465
|
+
out_var8 = OpenStudio::Model::OutputVariable.new('Historical_Annual_Emissions_Intensity_Var', model)
|
466
|
+
out_var8.setKeyValue('EMS')
|
467
|
+
out_var8.setReportingFrequency('hourly')
|
468
|
+
|
469
|
+
|
263
470
|
return true
|
264
471
|
end
|
265
472
|
end
|