urbanopt-reporting 0.3.0 → 0.3.5

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.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +44 -2
  3. data/docs/package-lock.json +3 -3
  4. data/docs/package.json +1 -1
  5. data/lib/measures/default_feature_reports/measure.rb +70 -15
  6. data/lib/measures/default_feature_reports/measure.xml +3 -3
  7. data/lib/measures/export_modelica_loads/LICENSE.md +27 -0
  8. data/lib/measures/export_modelica_loads/README.md +26 -0
  9. data/lib/measures/export_modelica_loads/README.md.erb +42 -0
  10. data/lib/measures/export_modelica_loads/docs/.gitkeep +0 -0
  11. data/lib/measures/export_modelica_loads/measure.rb +375 -0
  12. data/lib/measures/export_modelica_loads/measure.xml +92 -0
  13. data/lib/measures/export_modelica_loads/resources/report.html.in +13 -0
  14. data/lib/measures/export_time_series_modelica/LICENSE.md +1 -0
  15. data/lib/measures/export_time_series_modelica/README.md +59 -0
  16. data/lib/measures/export_time_series_modelica/README.md.erb +42 -0
  17. data/lib/measures/export_time_series_modelica/docs/.gitkeep +0 -0
  18. data/lib/measures/export_time_series_modelica/measure.rb +430 -0
  19. data/lib/measures/export_time_series_modelica/measure.xml +147 -0
  20. data/lib/measures/export_time_series_modelica/resources/os_lib_helper_methods.rb +399 -0
  21. data/lib/measures/export_time_series_modelica/resources/report.html.in +13 -0
  22. data/lib/urbanopt/reporting/default_reports/end_use.rb +39 -17
  23. data/lib/urbanopt/reporting/default_reports/feature_report.rb +62 -5
  24. data/lib/urbanopt/reporting/default_reports/reporting_period.rb +14 -2
  25. data/lib/urbanopt/reporting/default_reports/scenario_report.rb +10 -5
  26. data/lib/urbanopt/reporting/default_reports/schema/scenario_csv_columns.txt +1 -0
  27. data/lib/urbanopt/reporting/default_reports/schema/scenario_schema.json +27 -12
  28. data/lib/urbanopt/reporting/version.rb +1 -1
  29. data/urbanopt-reporting-gem.gemspec +1 -1
  30. 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>
@@ -38,7 +38,7 @@ module URBANopt
38
38
  # Enduse class all enduse energy consumption results.
39
39
  ##
40
40
  class EndUse
41
- attr_accessor :heating, :cooling, :interior_lighting, :exterior_lighting, :interior_equipment, :exterior_equipment,
41
+ attr_accessor :heating, :cooling, :interior_lighting, :exterior_lighting, :interior_equipment, :exterior_equipment, :electric_vehicles,
42
42
  :fans, :pumps, :heat_rejection, :humidification, :heat_recovery, :water_systems, :refrigeration, :generators # :nodoc:
43
43
 
44
44
  ##
@@ -59,6 +59,7 @@ module URBANopt
59
59
  @exterior_lighting = hash[:exterior_lighting]
60
60
  @interior_equipment = hash[:interior_equipment]
61
61
  @exterior_equipment = hash[:exterior_equipment]
62
+ @electric_vehicles = hash[:electric_vehicles]
62
63
  @fans = hash[:fans]
63
64
  @pumps = hash[:pumps]
64
65
  @heat_rejection = hash[:heat_rejection]
@@ -85,6 +86,7 @@ module URBANopt
85
86
  hash[:exterior_lighting] = nil
86
87
  hash[:interior_equipment] = nil
87
88
  hash[:exterior_equipment] = nil
89
+ hash[:electric_vehicles] = nil
88
90
  hash[:fans] = nil
89
91
  hash[:pumps] = nil
90
92
  hash[:heat_rejection] = nil
@@ -112,6 +114,7 @@ module URBANopt
112
114
  result[:exterior_lighting] = @exterior_lighting
113
115
  result[:interior_equipment] = @interior_equipment
114
116
  result[:exterior_equipment] = @exterior_equipment
117
+ result[:electric_vehicles] = @electric_vehicles
115
118
  result[:fans] = @fans
116
119
  result[:pumps] = @pumps
117
120
  result[:heat_rejection] = @heat_rejection
@@ -129,27 +132,46 @@ module URBANopt
129
132
  return result
130
133
  end
131
134
 
135
+ ##
136
+ # Adds up +existing_value+ and +new_values+ if not nill.
137
+ ##
138
+ # [parameter:]
139
+ # +existing_value+ - _Float_ - A value corresponding to a EndUse attribute.
140
+ ##
141
+ # +new_value+ - _Float_ - A value corresponding to a EndUse attribute.
142
+ ##
143
+ def add_values(existing_value, new_value)
144
+ if existing_value && new_value
145
+ existing_value += new_value
146
+ elsif new_value
147
+ existing_value = new_value
148
+ end
149
+ return existing_value
150
+ end
151
+
132
152
  ##
133
153
  # Aggregate values of each EndUse attribute.
134
154
  ##
135
155
  # [Parameters:]
136
- # +new_end_use+ - _EndUse_ - An object of EndUse class.
156
+ # +other+ - _EndUse_ - An object of EndUse class.
137
157
  ##
138
- def merge_end_use!(new_end_use)
139
- @heating += new_end_use.heating if new_end_use.heating
140
- @cooling += new_end_use.cooling if new_end_use.cooling
141
- @interior_lighting += new_end_use.interior_lighting if new_end_use.interior_lighting
142
- @exterior_lighting += new_end_use.exterior_lighting if new_end_use.exterior_lighting
143
- @interior_equipment += new_end_use.interior_equipment if new_end_use.interior_equipment
144
- @exterior_equipment += new_end_use.exterior_equipment if new_end_use.exterior_equipment
145
- @fans += new_end_use.fans if new_end_use.fans
146
- @pumps += new_end_use.pumps if new_end_use.pumps
147
- @heat_rejection += new_end_use.heat_rejection if new_end_use.heat_rejection
148
- @humidification += new_end_use.humidification if new_end_use.humidification
149
- @heat_recovery += new_end_use.heat_recovery if new_end_use.heat_recovery
150
- @water_systems += new_end_use.water_systems if new_end_use.water_systems
151
- @refrigeration += new_end_use.refrigeration if new_end_use.refrigeration
152
- @generators += new_end_use.generators if new_end_use.generators
158
+ def merge_end_use!(other)
159
+
160
+ @heating = add_values(@heating, other.heating)
161
+ @cooling = add_values(@cooling, other.cooling)
162
+ @interior_lighting = add_values(@interior_lighting, other.interior_lighting)
163
+ @exterior_lighting = add_values(@exterior_lighting, other.exterior_lighting)
164
+ @interior_equipment = add_values(@interior_equipment, other.interior_equipment)
165
+ @exterior_equipment = add_values(@exterior_equipment, other.exterior_equipment)
166
+ @electric_vehicles = add_values(@electric_vehicles, other.electric_vehicles)
167
+ @fans = add_values(@fans, other.fans)
168
+ @pumps = add_values(@pumps, other.pumps)
169
+ @heat_rejection = add_values(@heat_rejection, other.heat_rejection)
170
+ @humidification = add_values(@humidification, other.humidification)
171
+ @heat_recovery = add_values(@heat_recovery, other.heat_recovery)
172
+ @water_systems = add_values(@water_systems, other.water_systems)
173
+ @refrigeration = add_values(@refrigeration, other.refrigeration)
174
+ @generators = add_values(@generators, other.generators)
153
175
 
154
176
  return self
155
177
  end
@@ -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,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
@@ -147,7 +147,7 @@ module URBANopt
147
147
  ##
148
148
  # [parameters]:
149
149
  # +file_name+ - _String_ - Assign a name to the saved scenario results file without an extension
150
- def save(file_name = 'default_scenario_report')
150
+ def save(file_name = 'default_scenario_report', save_feature_reports = true)
151
151
  # reassign the initialize local variable @file_name to the file name input.
152
152
  @file_name = file_name
153
153
 
@@ -185,10 +185,15 @@ module URBANopt
185
185
  @timeseries_csv.path = File.join(@directory_name, file_name + '.csv')
186
186
  end
187
187
 
188
- # save the feature reports csv and json data
189
- # @feature_reports.each do |feature_report|
190
- # feature_report.save_feature_report()
191
- # end
188
+ if save_feature_reports
189
+ if file_name == 'default_scenario_report'
190
+ file_name = 'default_feature_report'
191
+ end
192
+ #save the feature reports csv and json data
193
+ @feature_reports.each do |feature_report|
194
+ feature_report.save file_name
195
+ end
196
+ end
192
197
 
193
198
  return true
194
199
  end
@@ -10,6 +10,7 @@ Heating:Electricity
10
10
  InteriorLights:Electricity
11
11
  ExteriorLights:Electricity
12
12
  InteriorEquipment:Electricity
13
+ ExteriorEquipment:Electricity
13
14
  Fans:Electricity
14
15
  Pumps:Electricity
15
16
  WaterSystems:Electricity
@@ -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
- "propane_kwh": {
316
+ "propane_kwh": {
305
317
  "description": "Sum of all propane end uses consumption (kWh)",
306
318
  "type": "number"
307
- },
308
- "fuel_oil_kwh": {
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
- "propane_kwh": {
383
- "$ref": "#/definitions/EndUse"
384
- },
385
- "fuel_oil_kwh": {
386
- "$ref": "#/definitions/EndUse"
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
  },
@@ -421,6 +433,9 @@
421
433
  "exterior_equipment": {
422
434
  "type": "number"
423
435
  },
436
+ "electric_vehicles": {
437
+ "type": "number"
438
+ },
424
439
  "fans": {
425
440
  "type": "number"
426
441
  },
@@ -536,8 +551,8 @@
536
551
  "enum": [
537
552
  "Electricity",
538
553
  "Natural Gas",
539
- "Propane",
540
- "Fuel Oil",
554
+ "Propane",
555
+ "Fuel Oil",
541
556
  "District Cooling",
542
557
  "District Heating",
543
558
  "Other Fuels",
@@ -30,6 +30,6 @@
30
30
 
31
31
  module URBANopt
32
32
  module Reporting
33
- VERSION = '0.3.0'.freeze
33
+ VERSION = '0.3.5'.freeze
34
34
  end
35
35
  end
@@ -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.3.1'
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.3.0
4
+ version: 0.3.5
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: 2020-12-02 00:00:00.000000000 Z
12
+ date: 2021-02-04 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.3.1
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.3.1
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