urbanopt-reporting 0.2.1 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|