urbanopt-reporting 0.3.2 → 0.3.3
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 +10 -0
- data/lib/measures/default_feature_reports/measure.rb +41 -4
- 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 +367 -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 +433 -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/feature_report.rb +48 -0
- data/lib/urbanopt/reporting/default_reports/reporting_period.rb +14 -2
- data/lib/urbanopt/reporting/default_reports/scenario_report.rb +7 -4
- data/lib/urbanopt/reporting/default_reports/schema/scenario_schema.json +25 -13
- data/lib/urbanopt/reporting/version.rb +1 -1
- metadata +17 -2
@@ -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>
|
@@ -223,6 +223,54 @@ module URBANopt
|
|
223
223
|
return result
|
224
224
|
end
|
225
225
|
|
226
|
+
##
|
227
|
+
# Saves the 'default_feature_report.json' and 'default_feature_report.csv' files
|
228
|
+
##
|
229
|
+
# [parameters]:
|
230
|
+
# +file_name+ - _String_ - Assign a name to the saved feature results file without an extension
|
231
|
+
def save(file_name = 'default_feature_report')
|
232
|
+
# reassign the initialize local variable @file_name to the file name input.
|
233
|
+
@file_name = file_name
|
234
|
+
|
235
|
+
# save the feature reports csv and json data
|
236
|
+
old_timeseries_path = nil
|
237
|
+
if !@timeseries_csv.path.nil?
|
238
|
+
old_timeseries_path = @timeseries_csv.path
|
239
|
+
end
|
240
|
+
|
241
|
+
# define the results_dir_path
|
242
|
+
results_dir_path = File.join(@directory_name, 'feature_reports')
|
243
|
+
# create feature reports directory
|
244
|
+
Dir.mkdir(results_dir_path) unless Dir.exist?(File.join(@directory_name, 'feature_reports'))
|
245
|
+
|
246
|
+
@timeseries_csv.path = File.join(@directory_name, 'feature_reports', file_name + '.csv')
|
247
|
+
@timeseries_csv.save_data
|
248
|
+
|
249
|
+
## save json rport
|
250
|
+
# feature_hash
|
251
|
+
feature_hash = to_hash
|
252
|
+
|
253
|
+
json_name_path = File.join(results_dir_path, file_name + '.json')
|
254
|
+
|
255
|
+
File.open(json_name_path, 'w') do |f|
|
256
|
+
f.puts JSON.pretty_generate(feature_hash)
|
257
|
+
# make sure data is written to the disk one way or the other
|
258
|
+
begin
|
259
|
+
f.fsync
|
260
|
+
rescue StandardError
|
261
|
+
f.flush
|
262
|
+
end
|
263
|
+
end
|
264
|
+
|
265
|
+
if !old_timeseries_path.nil?
|
266
|
+
@timeseries_csv.path = old_timeseries_path
|
267
|
+
else
|
268
|
+
@timeseries_csv.path = File.join(@directory_name, file_name + '.csv')
|
269
|
+
end
|
270
|
+
|
271
|
+
return true
|
272
|
+
end
|
273
|
+
|
226
274
|
##
|
227
275
|
# Calls the individual functions to save 'default_feature_report.json' and 'default_feature_report.csv'
|
228
276
|
# For backward compatibility and ease of use
|
@@ -43,13 +43,13 @@ 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,
|
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
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+ ,
|
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
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+ ,
|
@@ -70,6 +70,10 @@ 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
|
+
@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]
|
73
77
|
@net_site_energy_kwh = hash[:net_site_energy_kwh]
|
74
78
|
@net_source_energy_kwh = hash[:net_source_energy_kwh]
|
75
79
|
@net_utility_cost_dollar = hash[:net_utility_cost_dollar]
|
@@ -110,6 +114,10 @@ module URBANopt
|
|
110
114
|
|
111
115
|
hash[:total_site_energy_kwh] = nil
|
112
116
|
hash[:total_source_energy_kwh] = nil
|
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
|
113
121
|
hash[:net_site_energy_kwh] = nil
|
114
122
|
hash[:net_source_energy_kwh] = nil
|
115
123
|
hash[:net_utility_cost_dollar] = nil
|
@@ -148,6 +156,10 @@ module URBANopt
|
|
148
156
|
result[:end_date] = @end_date.to_hash if @end_date
|
149
157
|
result[:total_site_energy_kwh] = @total_site_energy_kwh if @total_site_energy_kwh
|
150
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
|
151
163
|
result[:net_site_energy_kwh] = @net_site_energy_kwh if @net_site_energy_kwh
|
152
164
|
result[:net_source_energy_kwh] = @net_source_energy_kwh if @net_source_energy_kwh
|
153
165
|
result[:net_utility_cost_dollar] = @net_utility_cost_dollar if @net_utility_cost_dollar
|
@@ -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
|
@@ -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,14 +313,14 @@
|
|
301
313
|
"description": "Sum of all natural gas end uses consumption (kWh)",
|
302
314
|
"type": "number"
|
303
315
|
},
|
304
|
-
|
316
|
+
"propane_kwh": {
|
305
317
|
"description": "Sum of all propane end uses consumption (kWh)",
|
306
318
|
"type": "number"
|
307
|
-
|
308
|
-
|
319
|
+
},
|
320
|
+
"fuel_oil_kwh": {
|
309
321
|
"description": "Sum of all fuel oil #2 end uses consumption (kWh)",
|
310
322
|
"type": "number"
|
311
|
-
|
323
|
+
},
|
312
324
|
"other_fuels_kwh": {
|
313
325
|
"description": "Sum of all other (fuel oil #1, diesel, gasoline, coal, steam) fuel end uses consumption (kWh)",
|
314
326
|
"type": "number"
|
@@ -379,12 +391,12 @@
|
|
379
391
|
"natural_gas_kwh": {
|
380
392
|
"$ref": "#/definitions/EndUse"
|
381
393
|
},
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
394
|
+
"propane_kwh": {
|
395
|
+
"$ref": "#/definitions/EndUse"
|
396
|
+
},
|
397
|
+
"fuel_oil_kwh": {
|
398
|
+
"$ref": "#/definitions/EndUse"
|
399
|
+
},
|
388
400
|
"other_fuels_kwh": {
|
389
401
|
"$ref": "#/definitions/EndUse"
|
390
402
|
},
|
@@ -536,8 +548,8 @@
|
|
536
548
|
"enum": [
|
537
549
|
"Electricity",
|
538
550
|
"Natural Gas",
|
539
|
-
|
540
|
-
|
551
|
+
"Propane",
|
552
|
+
"Fuel Oil",
|
541
553
|
"District Cooling",
|
542
554
|
"District Heating",
|
543
555
|
"Other Fuels",
|
@@ -889,4 +901,4 @@
|
|
889
901
|
}
|
890
902
|
}
|
891
903
|
}
|
892
|
-
}
|
904
|
+
}
|
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.3.
|
4
|
+
version: 0.3.3
|
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-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -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
|