urbanopt-reopt 0.11.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/nightly_ci_build.yml +1 -0
- data/CHANGELOG.md +6 -0
- data/Gemfile +1 -1
- data/RDOC_MAIN.md +6 -6
- data/README.md +6 -6
- data/docs/README.md +6 -6
- data/docs/schemas/reopt-input-schema.md +25 -23
- data/docs/schemas/reopt-output-schema.md +7 -7
- data/index.md +9 -9
- data/lib/urbanopt/reopt/feature_report_adapter.rb +229 -196
- data/lib/urbanopt/reopt/reopt_lite_api.rb +76 -37
- data/lib/urbanopt/reopt/reopt_post_processor.rb +11 -10
- data/lib/urbanopt/reopt/reopt_schema/reopt_input_schema.json +1125 -1105
- data/lib/urbanopt/reopt/reopt_schema/reopt_output_schema.json +448 -523
- data/lib/urbanopt/reopt/scenario_report_adapter.rb +260 -225
- data/lib/urbanopt/reopt/version.rb +1 -1
- data/urbanopt-reopt.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebc2f3c6f40a363e9f234917e55bd165eab74734c2ae477dd393893fb6210a3d
|
4
|
+
data.tar.gz: a2502bf5a657e7d256e39be74426f8eb91d7774f64851274a98c67347a33de12
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfad70c6283e27679164c2b6c14dcbb7a009643a838614a4d31f04aca864f548324cea4dfa0978e02eba29bd7705ea32a31867763aca16120a90205cf10ad241
|
7
|
+
data.tar.gz: 243aca41f2c5f45970f346cb7d430a7443fd8f0a5db08b59e43db23ef8a6063d9aefd56e4a5b45a54cb89d708c147531e34424f8172c23276943faa987169b74
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# URBANopt REopt Gem
|
2
2
|
|
3
|
+
## Version 0.12.0
|
4
|
+
Date Range: 01/11/24 - 05/06/24
|
5
|
+
* Use Reopt v3 by @vtnate in https://github.com/urbanopt/urbanopt-reopt-gem/pull/149
|
6
|
+
|
7
|
+
**Full Changelog**: https://github.com/urbanopt/urbanopt-reopt-gem/compare/v0.11.0...v0.12.0
|
8
|
+
|
3
9
|
## Version 0.11.0
|
4
10
|
Date Range: 07/06/23 - 01/11/24
|
5
11
|
|
data/Gemfile
CHANGED
@@ -44,7 +44,7 @@ allow_local = ENV['FAVOR_LOCAL_GEMS']
|
|
44
44
|
# if allow_local && File.exist?('../urbanopt-scenario-gem')
|
45
45
|
# gem 'urbanopt-scenario', path: '../urbanopt-scenario-gem'
|
46
46
|
# elsif allow_local
|
47
|
-
# gem 'urbanopt-scenario', github: 'URBANopt/urbanopt-scenario-gem', branch: '
|
47
|
+
# gem 'urbanopt-scenario', github: 'URBANopt/urbanopt-scenario-gem', branch: 'reopt-v3'
|
48
48
|
# end
|
49
49
|
|
50
50
|
# if allow_local && File.exists?('../urbanopt-geojson-gem')
|
data/RDOC_MAIN.md
CHANGED
@@ -35,12 +35,12 @@ This gem is used to call the REopt API on a Scenario Report or Feature Report to
|
|
35
35
|
|
36
36
|
```
|
37
37
|
"distributed_generation": {
|
38
|
-
"
|
39
|
-
"
|
40
|
-
"
|
41
|
-
"
|
42
|
-
"
|
43
|
-
"
|
38
|
+
"lcc": 100000000.0,
|
39
|
+
"npv": 10000000.0,
|
40
|
+
"year_one_energy_cost_before_tax": 7000000.0,
|
41
|
+
"year_one_demand_cost_before_tax": 3000000.0,
|
42
|
+
"year_one_bill_before_tax": 10000000.0,
|
43
|
+
"lifecycle_energy_cost_after_tax": 70000000.0,
|
44
44
|
"solar_pv": {
|
45
45
|
"size_kw": 30000.0
|
46
46
|
},
|
data/README.md
CHANGED
@@ -41,12 +41,12 @@ Or install it yourself as:
|
|
41
41
|
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:
|
42
42
|
```
|
43
43
|
"distributed_generation": {
|
44
|
-
"
|
45
|
-
"
|
46
|
-
"
|
47
|
-
"
|
48
|
-
"
|
49
|
-
"
|
44
|
+
"lcc": 100000000.0,
|
45
|
+
"npv": 10000000.0,
|
46
|
+
"year_one_energy_cost_before_tax": 7000000.0,
|
47
|
+
"year_one_demand_cost_before_tax": 3000000.0,
|
48
|
+
"year_one_bill_before_tax": 10000000.0,
|
49
|
+
"lifecycle_energy_cost_after_tax": 70000000.0,
|
50
50
|
"solar_pv": {
|
51
51
|
"size_kw": 30000.0
|
52
52
|
},
|
data/docs/README.md
CHANGED
@@ -52,12 +52,12 @@ Or install it yourself as:
|
|
52
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
|
-
"
|
56
|
-
"
|
57
|
-
"
|
58
|
-
"
|
59
|
-
"
|
60
|
-
"
|
55
|
+
"lcc": 100000000.0,
|
56
|
+
"npv": 10000000.0,
|
57
|
+
"year_one_energy_cost_before_tax": 7000000.0,
|
58
|
+
"year_one_demand_cost_before_tax": 3000000.0,
|
59
|
+
"year_one_bill_before_tax": 10000000.0,
|
60
|
+
"lifecycle_energy_cost_after_tax": 70000000.0,
|
61
61
|
"solar_pv": {
|
62
62
|
"size_kw": 30000.0
|
63
63
|
},
|
@@ -8,15 +8,19 @@ The following shows the complete set of inputs to the REopt Lite AP which is cal
|
|
8
8
|
|
9
9
|
## Required Inputs
|
10
10
|
|
11
|
-
The only required parameters to the REopt Lite API (called internally by the gem) are:
|
11
|
+
The only required parameters to the REopt Lite API (called internally by the gem) are:
|
12
12
|
- *latitude*
|
13
|
-
- *longitude*
|
14
|
-
- *urdb_response*
|
15
|
-
|
16
|
-
|
17
|
-
- *
|
18
|
-
|
19
|
-
|
13
|
+
- *longitude*
|
14
|
+
- *urdb_response* OR one of the following sets:
|
15
|
+
- *urdb_label*
|
16
|
+
- *monthly_energy_rates* **and** *monthly_demand_rates*
|
17
|
+
- *blended_annual_demand_rate* **and** *blended_annual_energy_rate*
|
18
|
+
- *urdb_utility_name* **and** *urdb_rate_name*
|
19
|
+
- *tou_energy_rates_per_kwh*
|
20
|
+
|
21
|
+
- *loads_kw* OR one of the following sets:
|
22
|
+
- *doe_reference_name* **and** *annual_kwh*
|
23
|
+
- *doe_reference_name* **and** *monthly_totals_kwh*
|
20
24
|
|
21
25
|
The gem sources *latitude*, *longitude* and *loads_kw* from a Feature or Scenario Report directly. If no specific *urdb_response* or *urdb_label* is specified as an custom assumption (see below), then a constant rate of $0.13/kWh with no demand charge is provided by the gem as a default to the REopt API.
|
22
26
|
|
@@ -24,28 +28,26 @@ Otherwise, all non-required input parameters will be filled in with default valu
|
|
24
28
|
|
25
29
|
|
26
30
|
```
|
27
|
-
{
|
28
|
-
"
|
29
|
-
"
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
}
|
39
|
-
}
|
31
|
+
{
|
32
|
+
"Site":{
|
33
|
+
"latitude":45,
|
34
|
+
"longitude":-110
|
35
|
+
},
|
36
|
+
"ElectricTariff": {
|
37
|
+
"urdb_label":"594976725457a37b1175d089"
|
38
|
+
},
|
39
|
+
"ElectricLoad":{
|
40
|
+
"doe_reference_name":"Hospital",
|
41
|
+
"annual_kwh":1000000
|
40
42
|
}
|
41
43
|
}
|
42
44
|
```
|
43
45
|
|
44
46
|
## Setting Custom Assumptions
|
45
47
|
|
46
|
-
If you wish to use custom input parameters, other than default values, you have a couple of options.
|
48
|
+
If you wish to use custom input parameters, other than default values, you have a couple of options.
|
47
49
|
|
48
|
-
* 1) Custom hashes, formatted as described above, can be directly paramaterized when invoking _reopt_json_from_scenario_report_ or _reopt_jsons_from_scenario_feature_reports_ from a **URBANopt::REopt::ScenarioReportAdapter**, or _reopt_json_from_feature_report_ from a **URBANopt::REopt::FeatureReportAdapter**.
|
50
|
+
* 1) Custom hashes, formatted as described above, can be directly paramaterized when invoking _reopt_json_from_scenario_report_ or _reopt_jsons_from_scenario_feature_reports_ from a **URBANopt::REopt::ScenarioReportAdapter**, or _reopt_json_from_feature_report_ from a **URBANopt::REopt::FeatureReportAdapter**.
|
49
51
|
|
50
52
|
* 2) Paths to custom hashes, formatted as described above and saved as JSON files in a common folder, can be specified in the input REopt Scenario CSV. See the [example project](https://github.com/TK-23/urbanopt-example-geojson-reopt-project.git) for more information on how to do this.
|
51
53
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# REopt Lite Outputs Schema
|
2
2
|
|
3
|
-
When the gem calls the REopt Lite APUI it recieves the following complete set of results described in the data dictionary below. Only those needed to update a Feature or Scenario Report's distributed_generation attibute set and timeseries CSV are pulled from the reponse and transferred to the Feature or Scenario Report. You may choose to modify the code to include more or less of the full REopt Lite response.
|
3
|
+
When the gem calls the REopt Lite APUI it recieves the following complete set of results described in the data dictionary below. Only those needed to update a Feature or Scenario Report's distributed_generation attibute set and timeseries CSV are pulled from the reponse and transferred to the Feature or Scenario Report. You may choose to modify the code to include more or less of the full REopt Lite response.
|
4
4
|
|
5
5
|
## Data Dictionary
|
6
6
|
<ReoptOutputSchema />
|
@@ -12,12 +12,12 @@ The REopt Lite API updates the distributed_generation attributes of a Scenario o
|
|
12
12
|
|
13
13
|
```
|
14
14
|
"distributed_generation": {
|
15
|
-
"
|
16
|
-
"
|
17
|
-
"
|
18
|
-
"
|
19
|
-
"
|
20
|
-
"
|
15
|
+
"lcc": 100000000.0,
|
16
|
+
"npv": 10000000.0,
|
17
|
+
"year_one_energy_cost_before_tax": 7000000.0,
|
18
|
+
"year_one_demand_cost_before_tax": 3000000.0,
|
19
|
+
"year_one_bill_before_tax": 10000000.0,
|
20
|
+
"lifecycle_energy_cost_after_tax": 70000000.0,
|
21
21
|
"solar_pv": {
|
22
22
|
"size_kw": 30000.0
|
23
23
|
},
|
data/index.md
CHANGED
@@ -10,9 +10,9 @@ See the [example project](https://github.com/urbanopt/urbanopt-example-reopt-pro
|
|
10
10
|
## Installation
|
11
11
|
|
12
12
|
See [https://docs.urbanopt.net/installation/installation.html](https://docs.urbanopt.net/installation/installation.html) for instructions on prerequiste software, including:
|
13
|
-
- Ruby 2.2
|
14
|
-
- Bundler 1.
|
15
|
-
- OpenStudio
|
13
|
+
- Ruby 2.7.2
|
14
|
+
- Bundler 1.21.0
|
15
|
+
- OpenStudio 3.7.0
|
16
16
|
|
17
17
|
Add this line to your application's Gemfile:
|
18
18
|
|
@@ -35,12 +35,12 @@ This gem is used to call the REopt API on a Scenario Report or Feature Report to
|
|
35
35
|
|
36
36
|
```
|
37
37
|
"distributed_generation": {
|
38
|
-
"
|
39
|
-
"
|
40
|
-
"
|
41
|
-
"
|
42
|
-
"
|
43
|
-
"
|
38
|
+
"lcc": 100000000.0,
|
39
|
+
"npv": 10000000.0,
|
40
|
+
"year_one_energy_cost_before_tax": 7000000.0,
|
41
|
+
"year_one_demand_cost_before_tax": 3000000.0,
|
42
|
+
"year_one_bill_before_tax": 10000000.0,
|
43
|
+
"lifecycle_energy_cost_after_tax": 70000000.0,
|
44
44
|
"solar_pv": {
|
45
45
|
"size_kw": 30000.0
|
46
46
|
},
|