urbanopt-reporting 0.2.1 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +40 -1
- data/LICENSE.md +1 -1
- data/doc_templates/LICENSE.md +1 -1
- data/doc_templates/copyright_erb.txt +1 -1
- data/doc_templates/copyright_js.txt +1 -1
- data/doc_templates/copyright_ruby.txt +1 -1
- data/docs/package-lock.json +3 -3
- data/docs/package.json +1 -1
- data/lib/measures/default_feature_reports/LICENSE.md +1 -1
- data/lib/measures/default_feature_reports/measure.rb +193 -59
- data/lib/measures/default_feature_reports/measure.xml +11 -11
- data/lib/measures/export_modelica_loads/LICENSE.md +27 -0
- data/lib/measures/export_modelica_loads/README.md +26 -0
- data/lib/measures/export_modelica_loads/README.md.erb +42 -0
- data/lib/measures/export_modelica_loads/docs/.gitkeep +0 -0
- data/lib/measures/export_modelica_loads/measure.rb +373 -0
- data/lib/measures/export_modelica_loads/measure.xml +92 -0
- data/lib/measures/export_modelica_loads/resources/report.html.in +13 -0
- data/lib/measures/export_time_series_modelica/LICENSE.md +1 -0
- data/lib/measures/export_time_series_modelica/README.md +59 -0
- data/lib/measures/export_time_series_modelica/README.md.erb +42 -0
- data/lib/measures/export_time_series_modelica/docs/.gitkeep +0 -0
- data/lib/measures/export_time_series_modelica/measure.rb +429 -0
- data/lib/measures/export_time_series_modelica/measure.xml +147 -0
- data/lib/measures/export_time_series_modelica/resources/os_lib_helper_methods.rb +399 -0
- data/lib/measures/export_time_series_modelica/resources/report.html.in +13 -0
- data/lib/urbanopt/reporting/default_reports/end_uses.rb +23 -9
- data/lib/urbanopt/reporting/default_reports/feature_report.rb +62 -5
- data/lib/urbanopt/reporting/default_reports/reporting_period.rb +42 -22
- data/lib/urbanopt/reporting/default_reports/scenario_report.rb +7 -4
- data/lib/urbanopt/reporting/default_reports/schema/scenario_csv_columns.txt +15 -0
- data/lib/urbanopt/reporting/default_reports/schema/scenario_schema.json +33 -5
- data/lib/urbanopt/reporting/version.rb +1 -1
- data/urbanopt-reporting-gem.gemspec +1 -1
- metadata +19 -4
@@ -0,0 +1,13 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>ReportingMeasure</title>
|
6
|
+
<link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.2/css/bootstrap.min.css" rel="stylesheet">
|
7
|
+
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
|
8
|
+
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/d3/3.3.9/d3.min.js"></script>
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
<%= output %>
|
12
|
+
</body>
|
13
|
+
</html>
|
@@ -39,9 +39,9 @@ module URBANopt
|
|
39
39
|
# Enduses class inlclude results for each fuel type.
|
40
40
|
##
|
41
41
|
class EndUses
|
42
|
-
attr_accessor :electricity_kwh, :natural_gas_kwh, :
|
42
|
+
attr_accessor :electricity_kwh, :natural_gas_kwh, :propane_kwh, :fuel_oil_kwh, :other_fuels_kwh, :district_cooling_kwh, :district_heating_kwh, :water_qbft # :nodoc:
|
43
43
|
##
|
44
|
-
# EndUses class intialize end_uses(fuel type) attributes: +:electricity_kwh+ , +:natural_gas_kwh+ , +:
|
44
|
+
# EndUses class intialize end_uses(fuel type) attributes: +:electricity_kwh+ , +:natural_gas_kwh+ , +:propane_kwh+ , +:fuel_oil_kwh+ , +:other_fuels_kwh+ ,
|
45
45
|
# +:district_cooling_kwh+ , +:district_heating_kwh+ , +:water_qbft+
|
46
46
|
##
|
47
47
|
# [parameters:]
|
@@ -53,7 +53,9 @@ module URBANopt
|
|
53
53
|
|
54
54
|
@electricity_kwh = EndUse.new(hash[:electricity_kwh])
|
55
55
|
@natural_gas_kwh = EndUse.new(hash[:natural_gas_kwh])
|
56
|
-
@
|
56
|
+
@propane_kwh = EndUse.new(hash[:propane_kwh])
|
57
|
+
@fuel_oil_kwh = EndUse.new(hash[:fuel_oil_kwh])
|
58
|
+
@other_fuels_kwh = EndUse.new(hash[:other_fuels_kwh])
|
57
59
|
@district_cooling_kwh = EndUse.new(hash[:district_cooling_kwh])
|
58
60
|
@district_heating_kwh = EndUse.new(hash[:district_heating_kwh])
|
59
61
|
@water_qbft = EndUse.new(hash[:water_qbft])
|
@@ -72,7 +74,7 @@ module URBANopt
|
|
72
74
|
def to_hash
|
73
75
|
result = {}
|
74
76
|
|
75
|
-
electricity_kwh_hash = @electricity_kwh.to_hash if @electricity_kwh
|
77
|
+
electricity_kwh_hash = @electricity_kwh.to_hash if @electricity_kwh
|
76
78
|
electricity_kwh_hash.delete_if { |k, v| v.nil? }
|
77
79
|
result[:electricity_kwh] = electricity_kwh_hash if @electricity_kwh
|
78
80
|
|
@@ -80,9 +82,17 @@ module URBANopt
|
|
80
82
|
natural_gas_kwh_hash.delete_if { |k, v| v.nil? }
|
81
83
|
result[:natural_gas_kwh] = natural_gas_kwh_hash if @natural_gas_kwh
|
82
84
|
|
83
|
-
|
84
|
-
|
85
|
-
result[:
|
85
|
+
propane_kwh_hash = @propane_kwh.to_hash if @propane_kwh
|
86
|
+
propane_kwh_hash.delete_if { |k, v| v.nil? }
|
87
|
+
result[:propane_kwh] = propane_kwh_hash if @propane_kwh
|
88
|
+
|
89
|
+
fuel_oil_kwh_hash = @fuel_oil_kwh.to_hash if @fuel_oil_kwh
|
90
|
+
fuel_oil_kwh_hash.delete_if { |k, v| v.nil? }
|
91
|
+
result[:fuel_oil_kwh] = fuel_oil_kwh_hash if @fuel_oil_kwh
|
92
|
+
|
93
|
+
other_fuels_kwh_hash = @other_fuels_kwh.to_hash if @other_fuels_kwh
|
94
|
+
other_fuels_kwh_hash.delete_if { |k, v| v.nil? }
|
95
|
+
result[:other_fuels_kwh] = other_fuels_kwh_hash if @other_fuels_kwh
|
86
96
|
|
87
97
|
district_cooling_kwh_hash = @district_cooling_kwh.to_hash if @district_cooling_kwh
|
88
98
|
district_cooling_kwh_hash.delete_if { |k, v| v.nil? }
|
@@ -111,7 +121,9 @@ module URBANopt
|
|
111
121
|
hash = {}
|
112
122
|
hash[:electricity_kwh] = EndUse.new.to_hash
|
113
123
|
hash[:natural_gas_kwh] = EndUse.new.to_hash
|
114
|
-
hash[:
|
124
|
+
hash[:propane_kwh] = EndUse.new.to_hash
|
125
|
+
hash[:fuel_oil_kwh] = EndUse.new.to_hash
|
126
|
+
hash[:other_fuels_kwh] = EndUse.new.to_hash
|
115
127
|
hash[:district_cooling_kwh] = EndUse.new.to_hash
|
116
128
|
hash[:district_heating_kwh] = EndUse.new.to_hash
|
117
129
|
hash[:water_qbft] = EndUse.new.to_hash
|
@@ -129,7 +141,9 @@ module URBANopt
|
|
129
141
|
# modify the existing_period by summing up the results ; # sum results only if they exist
|
130
142
|
@electricity_kwh.merge_end_use!(new_end_uses.electricity_kwh)
|
131
143
|
@natural_gas_kwh.merge_end_use!(new_end_uses.natural_gas_kwh)
|
132
|
-
@
|
144
|
+
@propane_kwh.merge_end_use!(new_end_uses.propane_kwh)
|
145
|
+
@fuel_oil_kwh.merge_end_use!(new_end_uses.fuel_oil_kwh)
|
146
|
+
@other_fuels_kwh.merge_end_use!(new_end_uses.other_fuels_kwh)
|
133
147
|
@district_cooling_kwh.merge_end_use!(new_end_uses.district_cooling_kwh)
|
134
148
|
@district_heating_kwh.merge_end_use!(new_end_uses.district_heating_kwh)
|
135
149
|
return self
|
@@ -40,6 +40,7 @@ require_relative 'thermal_storage'
|
|
40
40
|
|
41
41
|
require 'json-schema'
|
42
42
|
require 'json'
|
43
|
+
require 'fileutils'
|
43
44
|
|
44
45
|
module URBANopt
|
45
46
|
module Reporting
|
@@ -223,6 +224,66 @@ module URBANopt
|
|
223
224
|
return result
|
224
225
|
end
|
225
226
|
|
227
|
+
##
|
228
|
+
# Saves the 'default_feature_report.json' and 'default_feature_report.csv' files
|
229
|
+
##
|
230
|
+
# [parameters]:
|
231
|
+
# +file_name+ - _String_ - Assign a name to the saved feature results file without an extension
|
232
|
+
def save(file_name = 'default_feature_report')
|
233
|
+
# reassign the initialize local variable @file_name to the file name input.
|
234
|
+
@file_name = file_name
|
235
|
+
|
236
|
+
# save the feature reports csv and json data
|
237
|
+
old_timeseries_path = nil
|
238
|
+
if !@timeseries_csv.path.nil?
|
239
|
+
old_timeseries_path = @timeseries_csv.path
|
240
|
+
end
|
241
|
+
|
242
|
+
# define the results_dir_path
|
243
|
+
results_dir_path = File.join(@directory_name, 'feature_reports')
|
244
|
+
# create feature reports directory
|
245
|
+
Dir.mkdir(results_dir_path) unless Dir.exist?(File.join(@directory_name, 'feature_reports'))
|
246
|
+
|
247
|
+
@timeseries_csv.path = File.join(@directory_name, 'feature_reports', file_name + '.csv')
|
248
|
+
FileUtils.mkdir_p File.dirname(@timeseries_csv.path)
|
249
|
+
@timeseries_csv.save_data
|
250
|
+
|
251
|
+
## save json rport
|
252
|
+
# feature_hash
|
253
|
+
feature_hash = to_hash
|
254
|
+
|
255
|
+
json_name_path = File.join(results_dir_path, file_name + '.json')
|
256
|
+
|
257
|
+
File.open(json_name_path, 'w') do |f|
|
258
|
+
f.puts JSON.pretty_generate(feature_hash)
|
259
|
+
# make sure data is written to the disk one way or the other
|
260
|
+
begin
|
261
|
+
f.fsync
|
262
|
+
rescue StandardError
|
263
|
+
f.flush
|
264
|
+
end
|
265
|
+
end
|
266
|
+
|
267
|
+
if !old_timeseries_path.nil?
|
268
|
+
@timeseries_csv.path = old_timeseries_path
|
269
|
+
else
|
270
|
+
@timeseries_csv.path = File.join(@directory_name, file_name + '.csv')
|
271
|
+
end
|
272
|
+
|
273
|
+
return true
|
274
|
+
end
|
275
|
+
|
276
|
+
##
|
277
|
+
# Calls the individual functions to save 'default_feature_report.json' and 'default_feature_report.csv'
|
278
|
+
# For backward compatibility and ease of use
|
279
|
+
##
|
280
|
+
# [parameters]:
|
281
|
+
# +file_name+ - _String_ - Assign a name to the saved feature report file without an extension
|
282
|
+
def save_feature_report(file_name = 'default_feature_report')
|
283
|
+
save_json_report(file_name)
|
284
|
+
save_csv_report(file_name)
|
285
|
+
end
|
286
|
+
|
226
287
|
##
|
227
288
|
# Saves the 'default_feature_report.json' file to the results directory
|
228
289
|
##
|
@@ -252,7 +313,6 @@ module URBANopt
|
|
252
313
|
f.flush
|
253
314
|
end
|
254
315
|
end
|
255
|
-
|
256
316
|
end
|
257
317
|
|
258
318
|
##
|
@@ -275,13 +335,10 @@ module URBANopt
|
|
275
335
|
# copy the CSV report to the new feature_reports folder
|
276
336
|
directory_folders.each do |f|
|
277
337
|
if f.include? '_default_feature_reports'
|
278
|
-
FileUtils.cp(File.join(f, 'default_feature_reports.csv'), File.join(results_dir_path, @file_name +'.csv'))
|
338
|
+
FileUtils.cp(File.join(f, 'default_feature_reports.csv'), File.join(results_dir_path, @file_name + '.csv'))
|
279
339
|
end
|
280
340
|
end
|
281
341
|
end
|
282
|
-
|
283
|
-
|
284
|
-
|
285
342
|
end
|
286
343
|
end
|
287
344
|
end
|
@@ -43,14 +43,14 @@ module URBANopt
|
|
43
43
|
# ReportingPeriod includes all the results of a specific reporting period.
|
44
44
|
##
|
45
45
|
class ReportingPeriod
|
46
|
-
attr_accessor :id, :name, :multiplier, :start_date, :end_date, :month, :day_of_month, :year, :total_site_energy_kwh, :total_source_energy_kwh,
|
47
|
-
:net_site_energy_kwh, :net_source_energy_kwh, :total_utility_cost_dollar, :net_utility_cost_dollar, :utility_costs_dollar, :electricity_kwh, :natural_gas_kwh, :
|
46
|
+
attr_accessor :id, :name, :multiplier, :start_date, :end_date, :month, :day_of_month, :year, :total_site_energy_kwh, :total_source_energy_kwh, :site_EUI_kwh_per_m2, :site_EUI_kbtu_per_ft2, :source_EUI_kwh_per_m2, :source_EUI_kbtu_per_ft2,
|
47
|
+
:net_site_energy_kwh, :net_source_energy_kwh, :total_utility_cost_dollar, :net_utility_cost_dollar, :utility_costs_dollar, :electricity_kwh, :natural_gas_kwh, :propane_kwh, :fuel_oil_kwh, :other_fuels_kwh, :district_cooling_kwh,
|
48
48
|
:district_heating_kwh, :water_qbft, :electricity_produced_kwh, :end_uses, :energy_production_kwh, :photovoltaic,
|
49
49
|
:fuel_type, :total_cost_dollar, :usage_cost_dollar, :demand_cost_dollar, :comfort_result, :time_setpoint_not_met_during_occupied_cooling,
|
50
50
|
:time_setpoint_not_met_during_occupied_heating, :time_setpoint_not_met_during_occupied_hours, :hours_out_of_comfort_bounds_PMV, :hours_out_of_comfort_bounds_PPD #:nodoc:
|
51
51
|
# ReportingPeriod class initializes the reporting period attributes:
|
52
|
-
# +:id+ , +:name+ , +:multiplier+ , +:start_date+ , +:end_date+ , +:month+ , +:day_of_month+ , +:year+ , +:total_site_energy_kwh+ , +:total_source_energy_kwh+ ,
|
53
|
-
# +:net_site_energy_kwh+ , +:net_source_energy_kwh+ , +:total_utility_cost_dollar , +:net_utility_cost_dollar+ , +:utility_costs_dollar+ , +:electricity_kwh+ , +:natural_gas_kwh+ , +:
|
52
|
+
# +:id+ , +:name+ , +:multiplier+ , +:start_date+ , +:end_date+ , +:month+ , +:day_of_month+ , +:year+ , +:total_site_energy_kwh+ , +:total_source_energy_kwh+ , +:site_EUI_kwh_per_m2+, +:site_EUI_kbtu_per_ft2+, +:source_EUI_kwh_per_m2+, +:source_EUI_kbtu_per_ft2+,
|
53
|
+
# +:net_site_energy_kwh+ , +:net_source_energy_kwh+ , +:total_utility_cost_dollar , +:net_utility_cost_dollar+ , +:utility_costs_dollar+ , +:electricity_kwh+ , +:natural_gas_kwh+ , +:propane_kwh+ , +:fuel_oil_kwh+ , +:other_fuels_kwh+ , +:district_cooling_kwh+ ,
|
54
54
|
# +:district_heating_kwh+ , +:water_qbft+ , +:electricity_produced_kwh+ , +:end_uses+ , +:energy_production_kwh+ , +:photovoltaic_kwh+ ,
|
55
55
|
# +:fuel_type+ , +:total_cost_dollar+ , +:usage_cost_dollar+ , +:demand_cost_dollar+ , +:comfort_result+ , +:time_setpoint_not_met_during_occupied_cooling+ ,
|
56
56
|
# +:time_setpoint_not_met_during_occupied_heating+ , +:time_setpoint_not_met_during_occupied_hours+
|
@@ -70,14 +70,20 @@ module URBANopt
|
|
70
70
|
|
71
71
|
@total_site_energy_kwh = hash[:total_site_energy_kwh]
|
72
72
|
@total_source_energy_kwh = hash[:total_source_energy_kwh]
|
73
|
-
@
|
74
|
-
@
|
75
|
-
@
|
76
|
-
@
|
77
|
-
@
|
78
|
-
@
|
79
|
-
@
|
80
|
-
@
|
73
|
+
@site_EUI_kwh_per_m2 = hash[:site_EUI_kwh_per_m2]
|
74
|
+
@site_EUI_kbtu_per_ft2 = hash[:site_EUI_kbtu_per_ft2]
|
75
|
+
@source_EUI_kwh_per_m2 = hash[:source_EUI_kwh_per_m2]
|
76
|
+
@source_EUI_kbtu_per_ft2 = hash[:source_EUI_kbtu_per_ft2]
|
77
|
+
@net_site_energy_kwh = hash[:net_site_energy_kwh]
|
78
|
+
@net_source_energy_kwh = hash[:net_source_energy_kwh]
|
79
|
+
@net_utility_cost_dollar = hash[:net_utility_cost_dollar]
|
80
|
+
@total_utility_cost_dollar = hash[:total_utility_cost_dollar]
|
81
|
+
@electricity_kwh = hash[:electricity_kwh]
|
82
|
+
@natural_gas_kwh = hash[:natural_gas_kwh]
|
83
|
+
@propane_kwh = hash[:propane_kwh]
|
84
|
+
@fuel_oil_kwh = hash[:fuel_oil_kwh]
|
85
|
+
@other_fuels_kwh = hash[:other_fuels_kwh]
|
86
|
+
@district_cooling_kwh = hash[:district_cooling_kwh]
|
81
87
|
@district_heating_kwh = hash[:district_heating_kwh]
|
82
88
|
@water_qbft = hash[:water_qbft]
|
83
89
|
@electricity_produced_kwh = hash[:electricity_produced_kwh]
|
@@ -108,14 +114,20 @@ module URBANopt
|
|
108
114
|
|
109
115
|
hash[:total_site_energy_kwh] = nil
|
110
116
|
hash[:total_source_energy_kwh] = nil
|
111
|
-
hash
|
112
|
-
hash
|
113
|
-
hash
|
114
|
-
hash
|
115
|
-
hash
|
116
|
-
hash
|
117
|
-
hash
|
118
|
-
hash
|
117
|
+
hash[:site_EUI_kwh_per_m2] = nil
|
118
|
+
hash[:site_EUI_kbtu_per_ft2] = nil
|
119
|
+
hash[:source_EUI_kwh_per_m2] = nil
|
120
|
+
hash[:source_EUI_kbtu_per_ft2] = nil
|
121
|
+
hash[:net_site_energy_kwh] = nil
|
122
|
+
hash[:net_source_energy_kwh] = nil
|
123
|
+
hash[:net_utility_cost_dollar] = nil
|
124
|
+
hash[:total_utility_cost_dollar] = nil
|
125
|
+
hash[:electricity_kwh] = nil
|
126
|
+
hash[:natural_gas_kwh] = nil
|
127
|
+
hash[:propane_kwh] = nil
|
128
|
+
hash[:fuel_oil_kwh] = nil
|
129
|
+
hash[:other_fuels_kwh] = nil
|
130
|
+
hash[:district_cooling_kwh] = nil
|
119
131
|
hash[:district_heating_kwh] = nil
|
120
132
|
|
121
133
|
hash[:electricity_produced_kwh] = nil
|
@@ -144,13 +156,19 @@ module URBANopt
|
|
144
156
|
result[:end_date] = @end_date.to_hash if @end_date
|
145
157
|
result[:total_site_energy_kwh] = @total_site_energy_kwh if @total_site_energy_kwh
|
146
158
|
result[:total_source_energy_kwh] = @total_source_energy_kwh if @total_source_energy_kwh
|
159
|
+
result[:site_EUI_kwh_per_m2] = @site_EUI_kwh_per_m2 if @site_EUI_kwh_per_m2
|
160
|
+
result[:site_EUI_kbtu_per_ft2] = @site_EUI_kbtu_per_ft2 if @site_EUI_kbtu_per_ft2
|
161
|
+
result[:source_EUI_kwh_per_m2] = @source_EUI_kwh_per_m2 if @source_EUI_kwh_per_m2
|
162
|
+
result[:source_EUI_kbtu_per_ft2] = @source_EUI_kbtu_per_ft2 if @source_EUI_kbtu_per_ft2
|
147
163
|
result[:net_site_energy_kwh] = @net_site_energy_kwh if @net_site_energy_kwh
|
148
164
|
result[:net_source_energy_kwh] = @net_source_energy_kwh if @net_source_energy_kwh
|
149
165
|
result[:net_utility_cost_dollar] = @net_utility_cost_dollar if @net_utility_cost_dollar
|
150
166
|
result[:total_utility_cost_dollar] = @total_utility_cost_dollar if @total_utility_cost_dollar
|
151
167
|
result[:electricity_kwh] = @electricity_kwh if @electricity_kwh
|
152
168
|
result[:natural_gas_kwh] = @natural_gas_kwh if @natural_gas_kwh
|
153
|
-
result[:
|
169
|
+
result[:propane_kwh] = @propane_kwh if @propane_kwh
|
170
|
+
result[:fuel_oil_kwh] = @fuel_oil_kwh if @fuel_oil_kwh
|
171
|
+
result[:other_fuels_kwh] = @other_fuels_kwh if @other_fuels_kwh
|
154
172
|
result[:district_cooling_kwh] = @district_cooling_kwh if @district_cooling_kwh
|
155
173
|
result[:district_heating_kwh] = @district_heating_kwh if @district_heating_kwh
|
156
174
|
result[:water_qbft] = @water_qbft if @water_qbft
|
@@ -218,7 +236,9 @@ module URBANopt
|
|
218
236
|
existing_period.total_utility_cost_dollar = add_values(existing_period.total_utility_cost_dollar, new_period.total_utility_cost_dollar)
|
219
237
|
existing_period.electricity_kwh = add_values(existing_period.electricity_kwh, new_period.electricity_kwh)
|
220
238
|
existing_period.natural_gas_kwh = add_values(existing_period.natural_gas_kwh, new_period.natural_gas_kwh)
|
221
|
-
existing_period.
|
239
|
+
existing_period.propane_kwh = add_values(existing_period.propane_kwh, new_period.propane_kwh)
|
240
|
+
existing_period.fuel_oil_kwh = add_values(existing_period.fuel_oil_kwh, new_period.fuel_oil_kwh)
|
241
|
+
existing_period.other_fuels_kwh = add_values(existing_period.other_fuels_kwh, new_period.other_fuels_kwh)
|
222
242
|
existing_period.district_cooling_kwh = add_values(existing_period.district_cooling_kwh, new_period.district_cooling_kwh)
|
223
243
|
existing_period.district_heating_kwh = add_values(existing_period.district_heating_kwh, new_period.district_heating_kwh)
|
224
244
|
existing_period.water_qbft = add_values(existing_period.water_qbft, new_period.water_qbft)
|
@@ -185,10 +185,13 @@ module URBANopt
|
|
185
185
|
@timeseries_csv.path = File.join(@directory_name, file_name + '.csv')
|
186
186
|
end
|
187
187
|
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
#
|
188
|
+
if file_name == 'default_scenario_report'
|
189
|
+
file_name = 'default_feature_report'
|
190
|
+
end
|
191
|
+
#save the feature reports csv and json data
|
192
|
+
@feature_reports.each do |feature_report|
|
193
|
+
feature_report.save file_name
|
194
|
+
end
|
192
195
|
|
193
196
|
return true
|
194
197
|
end
|
@@ -2,6 +2,9 @@ Datetime
|
|
2
2
|
Electricity:Facility
|
3
3
|
ElectricityProduced:Facility
|
4
4
|
Gas:Facility
|
5
|
+
Propane:Facility
|
6
|
+
FuelOil#2:Facility
|
7
|
+
OtherFuels:Facility
|
5
8
|
Cooling:Electricity
|
6
9
|
Heating:Electricity
|
7
10
|
InteriorLights:Electricity
|
@@ -15,6 +18,18 @@ HeatRejection:Gas
|
|
15
18
|
Heating:Gas
|
16
19
|
WaterSystems:Gas
|
17
20
|
InteriorEquipment:Gas
|
21
|
+
HeatRejection:Propane
|
22
|
+
Heating:Propane
|
23
|
+
WaterSystems:Propane
|
24
|
+
InteriorEquipment:Propane
|
25
|
+
HeatRejection:FuelOil#2
|
26
|
+
Heating:FuelOil#2
|
27
|
+
WaterSystems:FuelOil#2
|
28
|
+
InteriorEquipment:FuelOil#2
|
29
|
+
HeatRejection:OtherFuels
|
30
|
+
Heating:OtherFuels
|
31
|
+
WaterSystems:OtherFuels
|
32
|
+
InteriorEquipment:OtherFuels
|
18
33
|
DistrictCooling:Facility
|
19
34
|
DistrictHeating:Facility
|
20
35
|
District Cooling Chilled Water Rate
|
@@ -271,6 +271,18 @@
|
|
271
271
|
"description": "Total source energy used, does not include generation (kWh)",
|
272
272
|
"type": "number"
|
273
273
|
},
|
274
|
+
"site_EUI_kwh_per_m2": {
|
275
|
+
"type": "number"
|
276
|
+
},
|
277
|
+
"site_EUI_kBtu_per_ft2": {
|
278
|
+
"type": "number"
|
279
|
+
},
|
280
|
+
"source_EUI_kwh_per_m2": {
|
281
|
+
"type": "number"
|
282
|
+
},
|
283
|
+
"source_EUI_kBtu_per_ft2": {
|
284
|
+
"type": "number"
|
285
|
+
},
|
274
286
|
"net_site_energy_kwh": {
|
275
287
|
"description": "Net site energy (kWh)",
|
276
288
|
"type": "number"
|
@@ -301,8 +313,16 @@
|
|
301
313
|
"description": "Sum of all natural gas end uses consumption (kWh)",
|
302
314
|
"type": "number"
|
303
315
|
},
|
304
|
-
"
|
305
|
-
"description": "Sum of all
|
316
|
+
"propane_kwh": {
|
317
|
+
"description": "Sum of all propane end uses consumption (kWh)",
|
318
|
+
"type": "number"
|
319
|
+
},
|
320
|
+
"fuel_oil_kwh": {
|
321
|
+
"description": "Sum of all fuel oil #2 end uses consumption (kWh)",
|
322
|
+
"type": "number"
|
323
|
+
},
|
324
|
+
"other_fuels_kwh": {
|
325
|
+
"description": "Sum of all other (fuel oil #1, diesel, gasoline, coal, steam) fuel end uses consumption (kWh)",
|
306
326
|
"type": "number"
|
307
327
|
},
|
308
328
|
"district_cooling_kwh": {
|
@@ -371,7 +391,13 @@
|
|
371
391
|
"natural_gas_kwh": {
|
372
392
|
"$ref": "#/definitions/EndUse"
|
373
393
|
},
|
374
|
-
"
|
394
|
+
"propane_kwh": {
|
395
|
+
"$ref": "#/definitions/EndUse"
|
396
|
+
},
|
397
|
+
"fuel_oil_kwh": {
|
398
|
+
"$ref": "#/definitions/EndUse"
|
399
|
+
},
|
400
|
+
"other_fuels_kwh": {
|
375
401
|
"$ref": "#/definitions/EndUse"
|
376
402
|
},
|
377
403
|
"district_cooling_kwh": {
|
@@ -522,9 +548,11 @@
|
|
522
548
|
"enum": [
|
523
549
|
"Electricity",
|
524
550
|
"Natural Gas",
|
551
|
+
"Propane",
|
552
|
+
"Fuel Oil",
|
525
553
|
"District Cooling",
|
526
554
|
"District Heating",
|
527
|
-
"
|
555
|
+
"Other Fuels",
|
528
556
|
"Water"
|
529
557
|
]
|
530
558
|
},
|
@@ -873,4 +901,4 @@
|
|
873
901
|
}
|
874
902
|
}
|
875
903
|
}
|
876
|
-
}
|
904
|
+
}
|
@@ -29,5 +29,5 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_development_dependency 'rspec', '~> 3.7'
|
30
30
|
spec.add_runtime_dependency 'json-schema', '~> 2.8'
|
31
31
|
spec.add_runtime_dependency 'json_pure', '~> 2.3'
|
32
|
-
spec.add_runtime_dependency 'openstudio-extension', '~> 0.2
|
32
|
+
spec.add_runtime_dependency 'openstudio-extension', '~> 0.3.2'
|
33
33
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: urbanopt-reporting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rawad El Kontar
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-01-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -87,14 +87,14 @@ dependencies:
|
|
87
87
|
requirements:
|
88
88
|
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: 0.2
|
90
|
+
version: 0.3.2
|
91
91
|
type: :runtime
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
95
|
- - "~>"
|
96
96
|
- !ruby/object:Gem::Version
|
97
|
-
version: 0.2
|
97
|
+
version: 0.3.2
|
98
98
|
description: Library include scenario default reporting measure and scenario defaults
|
99
99
|
reports schema and classes
|
100
100
|
email:
|
@@ -144,6 +144,21 @@ files:
|
|
144
144
|
- lib/measures/default_feature_reports/README.md.erb
|
145
145
|
- lib/measures/default_feature_reports/measure.rb
|
146
146
|
- lib/measures/default_feature_reports/measure.xml
|
147
|
+
- lib/measures/export_modelica_loads/LICENSE.md
|
148
|
+
- lib/measures/export_modelica_loads/README.md
|
149
|
+
- lib/measures/export_modelica_loads/README.md.erb
|
150
|
+
- lib/measures/export_modelica_loads/docs/.gitkeep
|
151
|
+
- lib/measures/export_modelica_loads/measure.rb
|
152
|
+
- lib/measures/export_modelica_loads/measure.xml
|
153
|
+
- lib/measures/export_modelica_loads/resources/report.html.in
|
154
|
+
- lib/measures/export_time_series_modelica/LICENSE.md
|
155
|
+
- lib/measures/export_time_series_modelica/README.md
|
156
|
+
- lib/measures/export_time_series_modelica/README.md.erb
|
157
|
+
- lib/measures/export_time_series_modelica/docs/.gitkeep
|
158
|
+
- lib/measures/export_time_series_modelica/measure.rb
|
159
|
+
- lib/measures/export_time_series_modelica/measure.xml
|
160
|
+
- lib/measures/export_time_series_modelica/resources/os_lib_helper_methods.rb
|
161
|
+
- lib/measures/export_time_series_modelica/resources/report.html.in
|
147
162
|
- lib/urbanopt/reporting.rb
|
148
163
|
- lib/urbanopt/reporting/default_reports.rb
|
149
164
|
- lib/urbanopt/reporting/default_reports/construction_cost.rb
|