urbanopt-scenario 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CONTRIBUTING.md +58 -0
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
  5. data/.github/pull_request_template.md +23 -0
  6. data/.gitignore +1 -0
  7. data/CHANGELOG.md +16 -2
  8. data/Gemfile +1 -0
  9. data/LICENSE.md +1 -1
  10. data/doc_templates/LICENSE.md +1 -1
  11. data/doc_templates/copyright_erb.txt +1 -1
  12. data/doc_templates/copyright_js.txt +1 -1
  13. data/doc_templates/copyright_ruby.txt +1 -1
  14. data/docs/package-lock.json +142 -116
  15. data/docs/package.json +5 -1
  16. data/lib/change_log.rb +147 -0
  17. data/lib/measures/default_feature_reports/measure.rb +16 -5
  18. data/lib/measures/default_feature_reports/tests/default_feature_reports_test.rb +1 -1
  19. data/lib/urbanopt-scenario.rb +1 -1
  20. data/lib/urbanopt/scenario.rb +1 -1
  21. data/lib/urbanopt/scenario/default_reports.rb +1 -1
  22. data/lib/urbanopt/scenario/default_reports/construction_cost.rb +1 -1
  23. data/lib/urbanopt/scenario/default_reports/date.rb +1 -1
  24. data/lib/urbanopt/scenario/default_reports/distributed_generation.rb +187 -0
  25. data/lib/urbanopt/scenario/default_reports/end_use.rb +1 -1
  26. data/lib/urbanopt/scenario/default_reports/end_uses.rb +1 -1
  27. data/lib/urbanopt/scenario/default_reports/feature_report.rb +8 -2
  28. data/lib/urbanopt/scenario/default_reports/generator.rb +92 -0
  29. data/lib/urbanopt/scenario/default_reports/location.rb +2 -2
  30. data/lib/urbanopt/scenario/default_reports/logger.rb +1 -1
  31. data/lib/urbanopt/scenario/default_reports/program.rb +2 -2
  32. data/lib/urbanopt/scenario/default_reports/reporting_period.rb +2 -2
  33. data/lib/urbanopt/scenario/default_reports/scenario_report.rb +36 -12
  34. data/lib/urbanopt/scenario/default_reports/schema/README.md +16 -15
  35. data/lib/urbanopt/scenario/default_reports/schema/scenario_schema.json +88 -0
  36. data/lib/urbanopt/scenario/default_reports/solar_pv.rb +92 -0
  37. data/lib/urbanopt/scenario/default_reports/storage.rb +105 -0
  38. data/lib/urbanopt/scenario/default_reports/timeseries_csv.rb +32 -5
  39. data/lib/urbanopt/scenario/default_reports/validator.rb +2 -2
  40. data/lib/urbanopt/scenario/default_reports/wind.rb +92 -0
  41. data/lib/urbanopt/scenario/extension.rb +1 -1
  42. data/lib/urbanopt/scenario/logger.rb +1 -1
  43. data/lib/urbanopt/scenario/scenario_base.rb +1 -1
  44. data/lib/urbanopt/scenario/scenario_csv.rb +1 -1
  45. data/lib/urbanopt/scenario/scenario_datapoint_base.rb +1 -1
  46. data/lib/urbanopt/scenario/scenario_post_processor_base.rb +1 -1
  47. data/lib/urbanopt/scenario/scenario_post_processor_default.rb +7 -6
  48. data/lib/urbanopt/scenario/scenario_runner_base.rb +1 -1
  49. data/lib/urbanopt/scenario/scenario_runner_osw.rb +1 -1
  50. data/lib/urbanopt/scenario/simulation_dir_base.rb +1 -1
  51. data/lib/urbanopt/scenario/simulation_dir_osw.rb +1 -1
  52. data/lib/urbanopt/scenario/simulation_mapper_base.rb +1 -1
  53. data/lib/urbanopt/scenario/version.rb +2 -2
  54. data/urbanopt-scenario-gem.gemspec +2 -0
  55. metadata +26 -2
@@ -0,0 +1,105 @@
1
+ # *********************************************************************************
2
+ # URBANopt, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
3
+ # contributors. All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without modification,
6
+ # are permitted provided that the following conditions are met:
7
+ #
8
+ # Redistributions of source code must retain the above copyright notice, this list
9
+ # of conditions and the following disclaimer.
10
+ #
11
+ # Redistributions in binary form must reproduce the above copyright notice, this
12
+ # list of conditions and the following disclaimer in the documentation and/or other
13
+ # materials provided with the distribution.
14
+ #
15
+ # Neither the name of the copyright holder nor the names of its contributors may be
16
+ # used to endorse or promote products derived from this software without specific
17
+ # prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20
+ # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22
+ # IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23
+ # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24
+ # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
+ # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26
+ # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
27
+ # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
28
+ # OF THE POSSIBILITY OF SUCH DAMAGE.
29
+ # *********************************************************************************
30
+
31
+ require 'json'
32
+ require 'json-schema'
33
+
34
+ module URBANopt
35
+ module Scenario
36
+ module DefaultReports
37
+ ##
38
+ # Onsite storage system attributes
39
+ ##
40
+ class Storage
41
+ ##
42
+ # _Float_ - power capacity in kilowatts
43
+ #
44
+ attr_accessor :size_kw
45
+
46
+ ##
47
+ # _Float_ - storage capacity in kilowatt-hours
48
+ #
49
+ attr_accessor :size_kwh
50
+
51
+ ##
52
+ # Initialize Storage attributes from a hash. Storage attributes currently are limited to power and storage capacity.
53
+ ##
54
+ # [parameters:]
55
+ #
56
+ # * +hash+ - _Hash_ - A hash containting +:size_kw+ and +:size_kwh+ key/value pair which represents the power and storage capacity in kilowatts (kW) and kilowatt-hours respectively.
57
+ #
58
+ def initialize(hash = {})
59
+ hash.delete_if { |k, v| v.nil? }
60
+
61
+ @size_kw = hash[:size_kw]
62
+ @size_kwh = hash[:size_kwh]
63
+
64
+ # initialize class variables @@validator and @@schema
65
+ @@validator ||= Validator.new
66
+ @@schema ||= @@validator.schema
67
+
68
+ # initialize @@logger
69
+ @@logger ||= URBANopt::Scenario::DefaultReports.logger
70
+ end
71
+
72
+ ##
73
+ # Convert to a Hash equivalent for JSON serialization
74
+ ##
75
+ def to_hash
76
+ result = {}
77
+
78
+ result[:size_kw] = @size_kw if @size_kw
79
+ result[:size_kwh] = @size_kwh if @size_kwh
80
+
81
+ return result
82
+ end
83
+
84
+ ##
85
+ # Merge Storage systems
86
+ ##
87
+ def self.add_storage(existing_storage, new_storage)
88
+ if existing_storage.size_kw.nil?
89
+ existing_storage.size_kw = new_storage.size_kw
90
+ else
91
+ existing_storage.size_kw = (existing_storage.size_kw || 0) + (new_storage.size_kw || 0)
92
+ end
93
+
94
+ if existing_storage.size_kw.nil?
95
+ existing_storage.size_kwh = new_storage.size_kwh
96
+ else
97
+ existing_storage.size_kwh = (existing_storage.size_kwh || 0) + (new_storage.size_kwh || 0)
98
+ end
99
+
100
+ return existing_storage
101
+ end
102
+ end
103
+ end
104
+ end
105
+ end
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt, Copyright (c) 2019, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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,
@@ -115,6 +115,28 @@ module URBANopt
115
115
  return result
116
116
  end
117
117
 
118
+ ##
119
+ # Reloads data from the CSV file.
120
+ ##
121
+ def reload_data(new_data)
122
+ @mutex.synchronize do
123
+ @data = {}
124
+ @column_names = []
125
+ new_data.each do |row|
126
+ if @column_names.empty?
127
+ @column_names = row
128
+ @column_names.each do |column_name|
129
+ @data[column_name] = []
130
+ end
131
+ else
132
+ row.each_with_index do |value, i|
133
+ @data[@column_names[i]] << value.to_f
134
+ end
135
+ end
136
+ end
137
+ end
138
+ end
139
+
118
140
  ##
119
141
  # Loads data from the CSV file.
120
142
  ##
@@ -156,10 +178,13 @@ module URBANopt
156
178
  # [parameters:]
157
179
  # +path+ - _String_ - The path of the scenario report CSV (default_scenario_report.csv).
158
180
  ##
159
- def save_data(path)
181
+ def save_data(path = nil)
182
+ if path.nil?
183
+ path = @path
184
+ end
160
185
  File.open(path, 'w') do |f|
161
186
  f.puts @column_names.join(',')
162
- n = @data[@column_names[0]].size
187
+ n = @data[@column_names[0]].size - 1
163
188
 
164
189
  (0..n).each do |i|
165
190
  line = []
@@ -188,8 +213,6 @@ module URBANopt
188
213
  # +other+ - _TimeseriesCSV_ - An object of TimeseriesCSV class.
189
214
  ##
190
215
  def add_timeseries_csv(other)
191
- @path = other.path
192
-
193
216
  # initialize first_report_datetime with the incoming first_report_datetime if its nil.
194
217
  if @first_report_datetime.nil?
195
218
  @first_report_datetime = other.first_report_datetime
@@ -205,6 +228,10 @@ module URBANopt
205
228
 
206
229
  # merge the column data
207
230
  other.column_names.each do |column_name|
231
+ if !@column_names.include? column_name
232
+ @column_names.push column_name
233
+ end
234
+
208
235
  new_values = other.get_data(column_name)
209
236
 
210
237
  if @data.nil?
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt, Copyright (c) 2019, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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,
@@ -36,7 +36,7 @@ module URBANopt
36
36
  class Validator
37
37
  @@schema = nil
38
38
 
39
- # initialize the root directory
39
+ # Initialize the root directory
40
40
  def initialize
41
41
  super
42
42
 
@@ -0,0 +1,92 @@
1
+ # *********************************************************************************
2
+ # URBANopt, Copyright (c) 2019-2020, Alliance for Sustainable Energy, LLC, and other
3
+ # contributors. All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without modification,
6
+ # are permitted provided that the following conditions are met:
7
+ #
8
+ # Redistributions of source code must retain the above copyright notice, this list
9
+ # of conditions and the following disclaimer.
10
+ #
11
+ # Redistributions in binary form must reproduce the above copyright notice, this
12
+ # list of conditions and the following disclaimer in the documentation and/or other
13
+ # materials provided with the distribution.
14
+ #
15
+ # Neither the name of the copyright holder nor the names of its contributors may be
16
+ # used to endorse or promote products derived from this software without specific
17
+ # prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20
+ # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22
+ # IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23
+ # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24
+ # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
+ # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26
+ # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
27
+ # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
28
+ # OF THE POSSIBILITY OF SUCH DAMAGE.
29
+ # *********************************************************************************
30
+
31
+ require 'json'
32
+ require 'json-schema'
33
+
34
+ module URBANopt
35
+ module Scenario
36
+ module DefaultReports
37
+ ##
38
+ # Onsite wind system attributes
39
+ ##
40
+ class Wind
41
+ ##
42
+ # _Float_ - power capacity in kilowatts
43
+ #
44
+ attr_accessor :size_kw
45
+
46
+ ##
47
+ # Initialize Wind attributes from a hash. Wind attributes currently are limited to power capacity.
48
+ ##
49
+ # [parameters:]
50
+ #
51
+ # * +hash+ - _Hash_ - A hash containting a +:size_kw+ key/value pair which represents the nameplate capacity in kilowatts (kW)
52
+ #
53
+ def initialize(hash = {})
54
+ hash.delete_if { |k, v| v.nil? }
55
+
56
+ @size_kw = hash[:size_kw]
57
+
58
+ # initialize class variables @@validator and @@schema
59
+ @@validator ||= Validator.new
60
+ @@schema ||= @@validator.schema
61
+
62
+ # initialize @@logger
63
+ @@logger ||= URBANopt::Scenario::DefaultReports.logger
64
+ end
65
+
66
+ ##
67
+ # Convert to a Hash equivalent for JSON serialization
68
+ ##
69
+ def to_hash
70
+ result = {}
71
+
72
+ result[:size_kw] = @size_kw if @size_kw
73
+
74
+ return result
75
+ end
76
+
77
+ ##
78
+ # Merge Wind systems
79
+ ##
80
+ def self.add_wind(existing_wind, new_wind)
81
+ if existing_wind.size_kw.nil? && new_wind.size_kw.nil?
82
+ existing_wind.size_kw = nil
83
+ else
84
+ existing_wind.size_kw = (existing_wind.size_kw || 0) + (new_wind.size_kw || 0)
85
+ end
86
+
87
+ return existing_wind
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt, Copyright (c) 2019, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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,
@@ -46,10 +46,9 @@ module URBANopt
46
46
  # +scenario_base+ - _ScenarioBase_ - An object of ScenarioBase class.
47
47
  def initialize(scenario_base)
48
48
  super(scenario_base)
49
- @scenario_result = URBANopt::Scenario::DefaultReports::ScenarioReport.new
50
- @scenario_result.id = scenario_base.name
51
- @scenario_result.name = scenario_base.name
52
- @scenario_result.directory_name = scenario_base.run_dir
49
+
50
+ initialization_hash = { directory_name: scenario_base.run_dir, name: scenario_base.name, id: scenario_base.name }
51
+ @scenario_result = URBANopt::Scenario::DefaultReports::ScenarioReport.new(initialization_hash)
53
52
 
54
53
  @@logger ||= URBANopt::Scenario::DefaultReports.logger
55
54
  end
@@ -87,7 +86,9 @@ module URBANopt
87
86
  ##
88
87
  # Save scenario result
89
88
  ##
90
- def save
89
+ # [parameters:]
90
+ # +file_name+ - _String_ - Assign a name to the saved scenario results file
91
+ def save(file_name = 'default_scenario_report')
91
92
  @scenario_result.save
92
93
 
93
94
  return @scenario_result
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt, Copyright (c) 2019, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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, Alliance for Sustainable Energy, LLC, and other
2
+ # URBANopt, Copyright (c) 2019-2020, 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,
@@ -30,6 +30,6 @@
30
30
 
31
31
  module URBANopt
32
32
  module Scenario
33
- VERSION = '0.1.0'.freeze
33
+ VERSION = '0.1.1'.freeze
34
34
  end
35
35
  end
@@ -31,6 +31,8 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency 'openstudio-model-articulation', '~> 0.1.0'
32
32
  spec.add_dependency 'urbanopt-core', '~> 0.1.0'
33
33
 
34
+ spec.add_dependency 'github_api'
35
+
34
36
  # lock the version of these dependencies due to using older version of Ruby.
35
37
  spec.add_dependency 'public_suffix', '3.1.1'
36
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: urbanopt-scenario
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Macumber
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-30 00:00:00.000000000 Z
11
+ date: 2020-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 0.1.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: github_api
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: public_suffix
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -129,6 +143,10 @@ executables: []
129
143
  extensions: []
130
144
  extra_rdoc_files: []
131
145
  files:
146
+ - ".github/CONTRIBUTING.md"
147
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
148
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
149
+ - ".github/pull_request_template.md"
132
150
  - ".gitignore"
133
151
  - ".rdoc_options"
134
152
  - ".rspec"
@@ -160,6 +178,7 @@ files:
160
178
  - docs/package-lock.json
161
179
  - docs/package.json
162
180
  - docs/schemas/scenario-schema.md
181
+ - lib/change_log.rb
163
182
  - lib/measures/.rubocop.yml
164
183
  - lib/measures/default_feature_reports/LICENSE.md
165
184
  - lib/measures/default_feature_reports/README.md
@@ -174,9 +193,11 @@ files:
174
193
  - lib/urbanopt/scenario/default_reports.rb
175
194
  - lib/urbanopt/scenario/default_reports/construction_cost.rb
176
195
  - lib/urbanopt/scenario/default_reports/date.rb
196
+ - lib/urbanopt/scenario/default_reports/distributed_generation.rb
177
197
  - lib/urbanopt/scenario/default_reports/end_use.rb
178
198
  - lib/urbanopt/scenario/default_reports/end_uses.rb
179
199
  - lib/urbanopt/scenario/default_reports/feature_report.rb
200
+ - lib/urbanopt/scenario/default_reports/generator.rb
180
201
  - lib/urbanopt/scenario/default_reports/location.rb
181
202
  - lib/urbanopt/scenario/default_reports/logger.rb
182
203
  - lib/urbanopt/scenario/default_reports/program.rb
@@ -185,8 +206,11 @@ files:
185
206
  - lib/urbanopt/scenario/default_reports/schema/README.md
186
207
  - lib/urbanopt/scenario/default_reports/schema/scenario_csv_columns.txt
187
208
  - lib/urbanopt/scenario/default_reports/schema/scenario_schema.json
209
+ - lib/urbanopt/scenario/default_reports/solar_pv.rb
210
+ - lib/urbanopt/scenario/default_reports/storage.rb
188
211
  - lib/urbanopt/scenario/default_reports/timeseries_csv.rb
189
212
  - lib/urbanopt/scenario/default_reports/validator.rb
213
+ - lib/urbanopt/scenario/default_reports/wind.rb
190
214
  - lib/urbanopt/scenario/extension.rb
191
215
  - lib/urbanopt/scenario/logger.rb
192
216
  - lib/urbanopt/scenario/scenario_base.rb