urbanopt-scenario 0.6.2 → 0.8.0

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.
data/docs/package.json CHANGED
@@ -23,10 +23,10 @@
23
23
  "is-svg": ">=4.3.1",
24
24
  "js-yaml": "^3.14.0",
25
25
  "minimist": ">=1.2.3",
26
- "node-forge": ">=0.10.0",
26
+ "node-forge": ">=1.3.0",
27
27
  "postcss": "^8.2.15",
28
28
  "serialize-javascript": "^5.0.1",
29
- "set-value": "^3.0.2",
29
+ "set-value": "^4.0.1",
30
30
  "ssri": ">=8.0.1",
31
31
  "vuepress": "^1.8.2",
32
32
  "yargs-parser": "^20.2.1"
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -71,6 +71,9 @@ module URBANopt
71
71
  # initialize feature_reports data
72
72
  @feature_reports_data = {}
73
73
 
74
+ # initialize opendss json results
75
+ @opendss_json_results = {}
76
+
74
77
  # initialize logger
75
78
  @@logger ||= URBANopt::Reporting::DefaultReports.logger
76
79
  end
@@ -85,6 +88,12 @@ module URBANopt
85
88
  @opendss_data[feature_report.id] = opendss_csv
86
89
  end
87
90
 
91
+ # load Model.json results (if exists)
92
+ opendss_json_filename = File.join(@opendss_results_dir, 'json_files', 'Model.json')
93
+ if File.exist?(opendss_json_filename)
94
+ @opendss_json_results = JSON.parse(File.read(opendss_json_filename))
95
+ end
96
+
88
97
  ## load transformers data
89
98
 
90
99
  # transformers results directory path
@@ -140,11 +149,46 @@ module URBANopt
140
149
  return output
141
150
  end
142
151
 
152
+ # computer transformer results
153
+ def compute_transformer_results
154
+ # using values from opendss Model.json
155
+ results = {}
156
+ # retrieve all transformers
157
+ trsfmrs = @opendss_json_results['model'].select { |d| d['class'] == 'PowerTransformer' }
158
+ trsfmrs.each do |item|
159
+ t = { 'nominal_capacity': nil, 'reactance_resistance_ratio': nil }
160
+ name = item['name']['value']
161
+
162
+ # nominal capacity in kVA (Model.json stores it in VA)
163
+ # TODO: assuming that all windings would have the same rated power, so grabbing first one
164
+ begin
165
+ t['nominal_capacity'] = item['windings']['value'][0]['rated_power']['value'] / 1000
166
+ rescue StandardError
167
+ end
168
+
169
+ # reactance to resistance ratio:
170
+ begin
171
+ # TODO: grabbing the first one for now. Handle when there are multiple reactances and winding resistances
172
+ reactance = item['reactances']['value'][0]['value']
173
+ resistance = item['windings']['value'][0]['resistance']['value']
174
+
175
+ t['reactance_resistance_ratio'] = reactance / resistance
176
+ rescue StandardError
177
+ end
178
+
179
+ results[name] = t
180
+ end
181
+
182
+ return results
183
+ end
184
+
143
185
  # add feature reports for transformers
144
186
  def save_transformers_reports
187
+ t_res = compute_transformer_results
188
+
145
189
  @opendss_data.each_key do |k|
146
190
  if k.include? 'Transformer'
147
-
191
+ t_key = k.sub('Transformer.', '')
148
192
  # create transformer directory
149
193
  transformer_dir = File.join(@scenario_report.directory_name, k)
150
194
  FileUtils.mkdir_p(File.join(transformer_dir, 'feature_reports'))
@@ -153,6 +197,13 @@ module URBANopt
153
197
  # store under voltages and over voltages
154
198
  under_voltage_hrs = 0
155
199
  over_voltage_hrs = 0
200
+ nominal_capacity = nil
201
+ r_r_ratio = nil
202
+ begin
203
+ nominal_capacity = t_res[t_key]['nominal_capacity']
204
+ r_r_ratio = t_res[t_key]['reactance_resistance_ratio']
205
+ rescue StandardError
206
+ end
156
207
 
157
208
  transformer_csv = CSV.generate do |csv|
158
209
  @opendss_data[k].each_with_index do |row, i|
@@ -178,9 +229,11 @@ module URBANopt
178
229
  timesteps_per_hour: @scenario_report.timesteps_per_hour,
179
230
  simulation_status: 'complete')
180
231
 
181
- # assign results to transfomrer report
232
+ # assign results to transformer report
182
233
  transformer_report.power_distribution.over_voltage_hours = over_voltage_hrs
183
234
  transformer_report.power_distribution.under_voltage_hours = under_voltage_hrs
235
+ transformer_report.power_distribution.nominal_capacity = nominal_capacity
236
+ transformer_report.power_distribution.reactance_resistance_ratio = r_r_ratio
184
237
 
185
238
  ## save transformer JSON file
186
239
  # transformer_hash
@@ -226,6 +279,9 @@ module URBANopt
226
279
  def add_summary_results(feature_report)
227
280
  under_voltage_hrs = 0
228
281
  over_voltage_hrs = 0
282
+ kw = nil
283
+ kvar = nil
284
+ nominal_voltage = nil
229
285
 
230
286
  id = feature_report.id
231
287
  @opendss_data[id].each_with_index do |row, i|
@@ -242,13 +298,107 @@ module URBANopt
242
298
  end
243
299
  end
244
300
 
301
+ # also add additional keys for OpenDSS Loads
302
+ loads = @opendss_json_results['model'].select { |d| d['class'] == 'Load' }
303
+ if loads
304
+ bld_load = loads.select { |d| d['name']['value'] == id }
305
+ if bld_load
306
+ if bld_load.is_a?(Array)
307
+ bld_load = bld_load[0]
308
+ end
309
+ kw = 0
310
+ kvar = 0
311
+ # nominal_voltage (V)
312
+ nominal_voltage = bld_load['nominal_voltage']['value']
313
+ if nominal_voltage < 300
314
+ nominal_voltage *= Math.sqrt(3)
315
+ end
316
+ nominal_voltage = nominal_voltage
317
+
318
+ # max_power_kw
319
+ # max_reactive_power_kvar
320
+ pls = bld_load['phase_loads']['value']
321
+ pls.each do |pl|
322
+ kw += pl['p']['value']
323
+ kvar += pl['q']['value']
324
+ end
325
+
326
+ kw /= 1000
327
+ kvar /= 1000
328
+ else
329
+ @@logger.info("No load matching id #{id} found in OpenDSS Model.json results")
330
+ end
331
+ else
332
+ @@logger.info('No loads information found in OpenDSS Model.json results file')
333
+ end
245
334
  # assign results to feature report
246
335
  feature_report.power_distribution.over_voltage_hours = over_voltage_hrs
247
336
  feature_report.power_distribution.under_voltage_hours = under_voltage_hrs
337
+ feature_report.power_distribution.nominal_voltage = nominal_voltage
338
+ feature_report.power_distribution.max_power_kw = kw
339
+ feature_report.power_distribution.max_reactive_power_kvar = kvar
248
340
 
249
341
  return feature_report
250
342
  end
251
343
 
344
+ ##
345
+ # save opendss scenario fields
346
+ ##
347
+ def save_opendss_scenario
348
+ @scenario_report.scenario_power_distribution = URBANopt::Reporting::DefaultReports::ScenarioPowerDistribution.new
349
+
350
+ ## SUBSTATION
351
+ subs = []
352
+ feeders = @opendss_json_results['model'].select { |d| d['class'] == 'Feeder_metadata' }
353
+
354
+ feeders.each do |item|
355
+ # nominal_voltage - RMS voltage low side (V)
356
+ substation = { nominal_voltage: item['nominal_voltage']['value'] }
357
+ subs.append(substation)
358
+ end
359
+ @scenario_report.scenario_power_distribution.substations = subs
360
+
361
+ ## LINES
362
+ # retrieve all lines
363
+ dist_lines = []
364
+ lines = @opendss_json_results['model'].select { |d| d['class'] == 'Line' }
365
+ lines.each do |item|
366
+ line = {}
367
+ # length (m)
368
+ line['length'] = item['length']['value']
369
+
370
+ # max ampacity: iterate through N-1 wires and add up ampacity
371
+ amps = 0
372
+ num_wires = item['wires']['value'].length
373
+ (0..(num_wires - 1)).each do |i|
374
+ amps += item['wires']['value'][i]['ampacity']['value']
375
+ end
376
+ line['ampacity'] = amps
377
+
378
+ # commercial line type
379
+ line['commercial_line_type'] = []
380
+ item['wires']['value'].each do |wire|
381
+ line['commercial_line_type'].append(wire['nameclass']['value'])
382
+ end
383
+ dist_lines.append(line)
384
+ end
385
+ @scenario_report.scenario_power_distribution.distribution_lines = dist_lines
386
+
387
+ # CAPACITORS
388
+ caps = []
389
+ capacitors = @opendss_json_results['model'].select { |d| d['class'] == 'Capacitors' }
390
+ capacitors.each do |item|
391
+ cap = 0
392
+ item['phase_capacitors']['value'].each do |pc|
393
+ if pc['var']['value']
394
+ cap += pc['var']['value']
395
+ end
396
+ end
397
+ caps.append({ nominal_capacity: cap })
398
+ end
399
+ @scenario_report.scenario_power_distribution.capacitors = caps
400
+ end
401
+
252
402
  ##
253
403
  # run opendss post_processor
254
404
  ##
@@ -266,7 +416,7 @@ module URBANopt
266
416
  id = feature_report.id
267
417
  updated_feature_csv = merge_data(@feature_reports_data[id], @opendss_data[id])
268
418
 
269
- # save fetaure reports
419
+ # save feature reports
270
420
  feature_report.save_json_report('default_feature_report_opendss')
271
421
 
272
422
  # resave updated csv report
@@ -276,6 +426,9 @@ module URBANopt
276
426
  # add transformer reports
277
427
  save_transformers_reports
278
428
 
429
+ # save additional global opendss fields
430
+ save_opendss_scenario
431
+
279
432
  # save the updated scenario reports
280
433
  # set save_feature_reports to false since only the scenario reports should be saved now
281
434
  @scenario_report.save(file_name = 'scenario_report_opendss', save_feature_reports = false)
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -47,18 +47,19 @@ module URBANopt
47
47
  class ResultVisualization
48
48
  def self.create_visualization(run_dir, feature = true, feature_names = false)
49
49
  @all_results = []
50
-
50
+ name = nil
51
51
  run_dir.each do |folder|
52
52
  # create visualization for scenarios
53
53
  case feature
54
54
  when false
55
- name = folder.split('/')[-1]
56
- csv_dir = File.join(folder, 'default_scenario_report.csv')
55
+ name = folder.split('/')[-2]
56
+ csv_dir = folder
57
+
57
58
  # create visualization for features
58
59
  when true
59
60
  index = run_dir.index(folder)
60
- name = "#{folder.split('/')[-1]}-#{feature_names[index]}"
61
- csv_dir = File.join(folder, 'feature_reports/default_feature_report.csv')
61
+ name = "#{folder.split('/')[-3]}-#{feature_names[index]}"
62
+ csv_dir = folder
62
63
  end
63
64
 
64
65
  if File.exist?(csv_dir)
@@ -205,38 +206,45 @@ module URBANopt
205
206
  annual_values[headers_unitless[j]] = annual_sum
206
207
  end
207
208
 
208
- @results = {}
209
- @results['name'] = name
210
- @results['monthly_values'] = {}
211
- @results['annual_values'] = {}
209
+ results = {}
210
+ results['name'] = name
211
+ results['monthly_values'] = {}
212
+ results['annual_values'] = {}
212
213
 
213
214
  if @jan_next_year_index.nil? || @feb_index.nil? || @mar_index.nil? || @apr_index.nil? || @may_index.nil? || @jun_index.nil? || @jul_index.nil? || @aug_index.nil? || @sep_index.nil? || @oct_index.nil? || @nov_index.nil? || @dec_index.nil?
214
- @results['complete_simulation'] = false
215
+ results['complete_simulation'] = false
215
216
  puts "#{name} did not contain an annual simulation…visualizations will not render for it."
216
217
  else
217
- @results['complete_simulation'] = true
218
+ results['complete_simulation'] = true
218
219
  end
219
220
 
220
221
  monthly_totals&.each do |key, value|
221
222
  unless key == 'Datetime'
222
- @results['monthly_values'][key] = value
223
+ results['monthly_values'][key] = value
223
224
  end
224
225
  end
225
226
 
226
227
  annual_values&.each do |key, value|
227
228
  unless key == 'Datetime'
228
- @results['annual_values'][key] = value
229
+ results['annual_values'][key] = value
229
230
  end
230
231
  end
231
232
 
232
233
  end
233
234
 
234
- unless @results.nil?
235
- @all_results << @results
235
+ unless results.nil?
236
+ @all_results << results
236
237
  end
237
238
  end
239
+
238
240
  # create json with required data stored in a variable
239
- results_path = File.join(run_dir[0], '../scenarioData.js')
241
+ if feature == false
242
+ # In case of scenario visualization store result at top of the run folder
243
+ results_path = File.expand_path('../../scenarioData.js', run_dir[0])
244
+ else
245
+ # In case of feature visualization store result at top of scenario folder folder
246
+ results_path = File.expand_path('../../../scenarioData.js', run_dir[0])
247
+ end
240
248
  File.open(results_path, 'w') do |file|
241
249
  file << "var scenarioData = #{JSON.pretty_generate(@all_results)};"
242
250
  end
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -174,9 +174,6 @@ module URBANopt
174
174
  # depends on the feature file
175
175
  dependencies << scenario.feature_file.path
176
176
 
177
- # depends on the csv file
178
- dependencies << scenario.csv_file
179
-
180
177
  # depends on the mapper classes
181
178
  Dir.glob(File.join(scenario.mapper_files_dir, '*')).each do |f|
182
179
  dependencies << f
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -40,6 +40,6 @@
40
40
 
41
41
  module URBANopt
42
42
  module Scenario
43
- VERSION = '0.6.2'.freeze
43
+ VERSION = '0.8.0'.freeze
44
44
  end
45
45
  end
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright (c) 2019-2021, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt™, Copyright (c) 2019-2022, Alliance for Sustainable Energy, LLC, and other
3
3
  # contributors. All rights reserved.
4
4
 
5
5
  # Redistribution and use in source and binary forms, with or without modification,
@@ -25,14 +25,14 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.add_development_dependency 'bundler', '~> 2.1'
27
27
  spec.add_development_dependency 'rake', '~> 13.0'
28
- spec.add_development_dependency 'rspec', '~> 3.7'
28
+ spec.add_development_dependency 'rspec', '~> 3.9'
29
29
 
30
30
  spec.add_runtime_dependency 'json_pure', '~> 2.3'
31
31
  spec.add_runtime_dependency 'json-schema', '~> 2.8'
32
32
 
33
33
  spec.add_runtime_dependency 'sqlite3', '1.4.2'
34
- spec.add_runtime_dependency 'urbanopt-core', '~> 0.6.1'
35
- spec.add_runtime_dependency 'urbanopt-reporting', '~> 0.4.1'
34
+ spec.add_runtime_dependency 'urbanopt-core', '~> 0.8.0'
35
+ spec.add_runtime_dependency 'urbanopt-reporting', '~> 0.6.0'
36
36
 
37
37
  # no longer need the below
38
38
  # need to include all measure gems listed in mappers in project gemfiles
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: urbanopt-scenario
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rawad El Kontar
8
8
  - Dan Macumber
9
- autorequire:
9
+ autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2021-07-01 00:00:00.000000000 Z
12
+ date: 2022-05-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -45,14 +45,14 @@ dependencies:
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '3.7'
48
+ version: '3.9'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '3.7'
55
+ version: '3.9'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: json_pure
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -101,28 +101,28 @@ dependencies:
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: 0.6.1
104
+ version: 0.8.0
105
105
  type: :runtime
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: 0.6.1
111
+ version: 0.8.0
112
112
  - !ruby/object:Gem::Dependency
113
113
  name: urbanopt-reporting
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: 0.4.1
118
+ version: 0.6.0
119
119
  type: :runtime
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - "~>"
124
124
  - !ruby/object:Gem::Version
125
- version: 0.4.1
125
+ version: 0.6.0
126
126
  description: Library to export data point OSW files from URBANopt Scenario CSV
127
127
  email:
128
128
  - rawad.elkontar@nrel.gov
@@ -146,6 +146,11 @@ files:
146
146
  - README.md
147
147
  - Rakefile
148
148
  - deploy_docs.sh
149
+ - doc_templates/LICENSE.md
150
+ - doc_templates/README.md.erb
151
+ - doc_templates/copyright_erb.txt
152
+ - doc_templates/copyright_js.txt
153
+ - doc_templates/copyright_ruby.txt
149
154
  - docs/.gitignore
150
155
  - docs/.vuepress/components/InnerJsonSchema.vue
151
156
  - docs/.vuepress/components/JsonSchema.vue
@@ -182,7 +187,7 @@ homepage: https://github.com/urbanopt
182
187
  licenses:
183
188
  - Nonstandard
184
189
  metadata: {}
185
- post_install_message:
190
+ post_install_message:
186
191
  rdoc_options: []
187
192
  require_paths:
188
193
  - lib
@@ -198,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
198
203
  version: '0'
199
204
  requirements: []
200
205
  rubygems_version: 3.1.4
201
- signing_key:
206
+ signing_key:
202
207
  specification_version: 4
203
208
  summary: Library to export data point OSW files from URBANopt Scenario CSV
204
209
  test_files: []