urbanopt-reopt 0.9.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/release.yml +25 -0
- data/.github/workflows/{nightly_build.yml → nightly_ci_build.yml} +14 -9
- data/CHANGELOG.md +24 -7
- data/Gemfile +1 -1
- data/LICENSE.md +26 -11
- data/RDOC_MAIN.md +13 -13
- data/README.md +15 -14
- data/developer_nrel_key.rb +2 -27
- data/doc_templates/LICENSE.md +26 -11
- data/doc_templates/copyright_erb.txt +32 -16
- data/doc_templates/copyright_js.txt +2 -2
- data/doc_templates/copyright_ruby.txt +2 -27
- data/docs/README.md +12 -12
- data/docs/package-lock.json +4806 -4836
- data/index.md +13 -13
- data/lib/urbanopt/reopt/extension.rb +2 -27
- data/lib/urbanopt/reopt/feature_report_adapter.rb +14 -39
- data/lib/urbanopt/reopt/reopt_lite_api.rb +24 -49
- data/lib/urbanopt/reopt/reopt_logger.rb +2 -27
- data/lib/urbanopt/reopt/reopt_post_processor.rb +25 -50
- data/lib/urbanopt/reopt/reopt_schema/reopt_input_schema.json +1 -1
- data/lib/urbanopt/reopt/reopt_schema/reopt_output_schema.json +1 -1
- data/lib/urbanopt/reopt/scenario/reopt_scenario_csv.rb +9 -34
- data/lib/urbanopt/reopt/scenario_report_adapter.rb +17 -42
- data/lib/urbanopt/reopt/utilities.rb +2 -27
- data/lib/urbanopt/reopt/version.rb +3 -28
- data/lib/urbanopt/reopt.rb +2 -27
- data/lib/urbanopt/reopt_scenario.rb +2 -27
- data/lib/urbanopt-reopt.rb +2 -27
- data/urbanopt-reopt.gemspec +6 -5
- metadata +33 -20
- data/Jenkinsfile +0 -10
data/docs/README.md
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
### <StaticLink target="\_blank" href="rdoc/">Rdocs</StaticLink>
|
4
4
|
|
5
|
-
The **URBANopt<sup>™</sup> REopt Gem** extends a **URBANopt::Reporting::DefaultReports::ScenarioReport** and **URBANopt::Reporting::DefaultReports::FeatureReport** with the ability to derive cost-optimal distributed energy resource (DER) technology sizes and annual dispatch strageties via the <StaticLink target="\_blank" href="https://reopt.nrel.gov/tool">REopt
|
6
|
-
REopt
|
5
|
+
The **URBANopt<sup>™</sup> REopt Gem** extends a **URBANopt::Reporting::DefaultReports::ScenarioReport** and **URBANopt::Reporting::DefaultReports::FeatureReport** with the ability to derive cost-optimal distributed energy resource (DER) technology sizes and annual dispatch strageties via the <StaticLink target="\_blank" href="https://reopt.nrel.gov/tool">REopt</StaticLink> decision support platform.
|
6
|
+
REopt is a technoeconomic model which leverages mixed integer linear programming to identify the cost-optimal sizing of solar PV, Wind, Storage and/or diesel generation given an electric load profile, a utility rate tariff and other technoeconomic parameters. See <StaticLink target="\_blank" href="https://developer.nrel.gov/docs/energy-optimization/reopt/v2/">https://developer.nrel.gov/docs/energy-optimization/reopt/v2/</StaticLink> for more detailed information on input parameters and default assumptions.
|
7
7
|
|
8
8
|
The REopt Gem accomplishes three basic functions (described more below in the _Functionality_ section):
|
9
9
|
|
@@ -49,7 +49,7 @@ Or install it yourself as:
|
|
49
49
|
|
50
50
|
## Functionality
|
51
51
|
|
52
|
-
This gem is used to call the REopt
|
52
|
+
This gem is used to call the REopt API on a Scenario Report or Feature Report to update the object's Distributed Generation attributes (including system financial and sizing metrics) as shown in an example below:
|
53
53
|
```
|
54
54
|
"distributed_generation": {
|
55
55
|
"lcc_us_dollars": 100000000.0,
|
@@ -99,7 +99,7 @@ Moreover, the following optimal dispatch fields are added to its timeseries CSV.
|
|
99
99
|
| ElectricityProduced:Wind:ToGrid | kWh |
|
100
100
|
|
101
101
|
|
102
|
-
The REopt
|
102
|
+
The REopt has default values for all non-required input parameters that are used unless the user specifies custom assumptions. See <StaticLink target="\_blank" href="https://developer.nrel.gov/docs/energy-optimization/reopt/v2/">https://developer.nrel.gov/docs/energy-optimization/reopt/v2/</StaticLink> for more detailed information on input parameters and default assumptions.
|
103
103
|
|
104
104
|
<b>Note:</b> Required attributes for a REopt run include latitude and longitude, parsed from the Feature or Scenario Report attributes. If no utility rate is specified in your assumptions, then a constant rate of $0.13 is assumed without demand charges. Also, by default, only solar PV and storage are considered in the analysis (i.e. Wind and Generators are excluded from consideration).
|
105
105
|
|
@@ -120,19 +120,19 @@ feature_reports_hash = {} # <insert a valid Feature Report hash here with latitu
|
|
120
120
|
#Create a Feature Report
|
121
121
|
feature_report = URBANopt::Reporting::DefaultReports::FeatureReport.new(feature_reports_hash)
|
122
122
|
|
123
|
-
#Specify a file name where REopt
|
123
|
+
#Specify a file name where REopt results will be written in JSON format
|
124
124
|
reopt_output_file = File.join(feature_report.directory_name, 'feature_report_reopt_run.json')
|
125
125
|
|
126
|
-
#Specify a file name where the new timeseries CSV will be written after REopt
|
126
|
+
#Specify a file name where the new timeseries CSV will be written after REopt has determined cost optimal dispatch
|
127
127
|
timeseries_output_file = File.join(feature_report.directory_name, 'feature_report_timeseries.csv')
|
128
128
|
|
129
|
-
#Specify non-default REopt
|
129
|
+
#Specify non-default REopt assumptions, saved in JSON format, to be used in calling the API
|
130
130
|
reopt_assumptions_file = File.join(File.dirname(__FILE__), '../files/reopt_assumptions_basic.json')
|
131
131
|
|
132
|
-
#Create a REopt
|
132
|
+
#Create a REopt Post Processor to call the API, note you will need a Developer.nrel.gov API key in this step
|
133
133
|
reopt_post_processor = URBANopt::REopt::REoptPostProcessor.new(nil, nil, nil, DEVELOPER_NREL_KEY)
|
134
134
|
|
135
|
-
#Call REopt
|
135
|
+
#Call REopt with the post processor to update the feature's distributed generation attributes and timeseries CSV.
|
136
136
|
updated_feature_report = reopt_post_processor.run_feature_report(feature_report,reopt_assumptions_file,reopt_output_file,timeseries_output_file)
|
137
137
|
|
138
138
|
```
|
@@ -162,13 +162,13 @@ scenario_report = URBANopt::Reporting::DefaultReports::ScenarioReport.new({:dire
|
|
162
162
|
scenario_report.add_feature_report(feature_report)
|
163
163
|
end
|
164
164
|
|
165
|
-
#Specify non-default REopt
|
165
|
+
#Specify non-default REopt assumptions, saved in JSON format, to be used in calling the API
|
166
166
|
reopt_assumptions_file = File.join(File.dirname(__FILE__), 'files/reopt_assumptions_basic.json')
|
167
167
|
|
168
|
-
#Create a REopt
|
168
|
+
#Create a REopt Post Processor to call the API, note you will need a Developer.nrel.gov API key in this step
|
169
169
|
reopt_post_processor = URBANopt::REopt::REoptPostProcessor.new(scenario_report, reopt_assumptions_file, nil, DEVELOPER_NREL_KEY)
|
170
170
|
|
171
|
-
#Call REopt
|
171
|
+
#Call REopt with the post processor once on the sceanrio's aggregated load to update the scenario's distributed generation attributes and timeseries CSV.
|
172
172
|
updated_scenario_report = reopt_post_processor.run_scenario_report(scenario_report)
|
173
173
|
|
174
174
|
```
|