urbanopt-reporting 1.1.0 → 1.3.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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/nightly_ci_build.yml +7 -11
  3. data/CHANGELOG.md +9 -0
  4. data/CONTRIBUTING.md +4 -4
  5. data/Gemfile +1 -1
  6. data/LICENSE.md +1 -1
  7. data/Rakefile +1 -1
  8. data/doc_templates/LICENSE.md +1 -1
  9. data/doc_templates/copyright_erb.txt +1 -1
  10. data/doc_templates/copyright_js.txt +1 -1
  11. data/doc_templates/copyright_ruby.txt +1 -1
  12. data/docs/package.json +1 -1
  13. data/lib/measures/default_feature_reports/LICENSE.md +1 -1
  14. data/lib/measures/default_feature_reports/measure.rb +1 -1
  15. data/lib/measures/export_modelica_loads/LICENSE.md +1 -1
  16. data/lib/measures/export_modelica_loads/measure.rb +1 -1
  17. data/lib/measures/export_time_series_modelica/LICENSE.md +1 -1
  18. data/lib/measures/export_time_series_modelica/measure.rb +1 -1
  19. data/lib/measures/export_time_series_modelica/resources/os_lib_helper_methods.rb +1 -1
  20. data/lib/urbanopt/reporting/default_reports/construction_cost.rb +1 -1
  21. data/lib/urbanopt/reporting/default_reports/date.rb +1 -1
  22. data/lib/urbanopt/reporting/default_reports/distributed_generation.rb +46 -2
  23. data/lib/urbanopt/reporting/default_reports/end_use.rb +1 -1
  24. data/lib/urbanopt/reporting/default_reports/end_uses.rb +1 -1
  25. data/lib/urbanopt/reporting/default_reports/extension.rb +1 -1
  26. data/lib/urbanopt/reporting/default_reports/feature_report.rb +1 -1
  27. data/lib/urbanopt/reporting/default_reports/generator.rb +1 -1
  28. data/lib/urbanopt/reporting/default_reports/location.rb +1 -1
  29. data/lib/urbanopt/reporting/default_reports/logger.rb +1 -1
  30. data/lib/urbanopt/reporting/default_reports/power_distribution.rb +1 -1
  31. data/lib/urbanopt/reporting/default_reports/program.rb +1 -1
  32. data/lib/urbanopt/reporting/default_reports/qaqc_flags.rb +1 -1
  33. data/lib/urbanopt/reporting/default_reports/reporting_period.rb +1 -1
  34. data/lib/urbanopt/reporting/default_reports/scenario_power_distribution.rb +1 -1
  35. data/lib/urbanopt/reporting/default_reports/scenario_power_distribution_cost.rb +1 -1
  36. data/lib/urbanopt/reporting/default_reports/scenario_report.rb +1 -1
  37. data/lib/urbanopt/reporting/default_reports/schema/scenario_schema.json +25 -0
  38. data/lib/urbanopt/reporting/default_reports/solar_pv.rb +1 -1
  39. data/lib/urbanopt/reporting/default_reports/storage.rb +1 -1
  40. data/lib/urbanopt/reporting/default_reports/thermal_storage.rb +1 -1
  41. data/lib/urbanopt/reporting/default_reports/timeseries_csv.rb +20 -15
  42. data/lib/urbanopt/reporting/default_reports/validator.rb +1 -1
  43. data/lib/urbanopt/reporting/default_reports/wind.rb +1 -1
  44. data/lib/urbanopt/reporting/default_reports.rb +1 -1
  45. data/lib/urbanopt/reporting/derived_extension.rb +1 -1
  46. data/lib/urbanopt/reporting/version.rb +2 -2
  47. data/lib/urbanopt/reporting.rb +1 -1
  48. data/urbanopt-reporting-gem.gemspec +3 -3
  49. metadata +7 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 166b735ce69f284a1940be9b0b0f6465859398858710c3066a3e4b1483a3cee1
4
- data.tar.gz: 8f92f0d3051e56b74ad38f4751cb3191388a990a645f5f1189a2d82a969816e3
3
+ metadata.gz: ffc392cf19483625a5f2cad39ede228156e8b964c49735acbb0ff91cec909336
4
+ data.tar.gz: 34eea3ba8b847a307bf3b7224868ddf3fbeadcaf3590a458c8d676f258b4745e
5
5
  SHA512:
6
- metadata.gz: 1d360fa05a79294c4ad9b6cd0024bd0bb743d7f147d16efdb6a09064f27bf09f875bc21a5346e84770b440673d49874af90e15748a2d83f1548aa7b6422e5683
7
- data.tar.gz: c3a5fa01b0638693edc0c27bb62cb3e980e3f693c56179155a15351667e421827a7ab4c4d73a66ab71968cb33d21d03f1fea72324f325aade0f9b3093a047647
6
+ metadata.gz: 1d2c147824efc929af070ebfaf96d0345d12a584bc5ebf7aa1e03c8672255a6138986a7c26b42339a947e5f5f1ce87b832bfd0bf05d715269dbc7bfb1f7784cf
7
+ data.tar.gz: 6497200141d8fb7a2fa06e756e6a6a09fce402d2958f91f3e05102e9f59287f9e1d881611eb61cdf774d03923564d186b9c319f89589ee752a2779c7007d6416
@@ -1,12 +1,12 @@
1
1
  name: Reporting-gem CI
2
2
 
3
3
  on:
4
+ pull_request:
4
5
  push:
5
- workflow_dispatch:
6
- schedule:
7
- # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule
8
- # 5 am UTC (11pm MDT the day before) every weekday night in MDT
9
- - cron: '22 5 * * 2-6'
6
+ branches:
7
+ - "develop"
8
+ tags:
9
+ - '*'
10
10
 
11
11
  env:
12
12
  # This env var should enforce develop branch of all dependencies
@@ -14,12 +14,13 @@ env:
14
14
  GEM_DEVELOPER_KEY: ${{ secrets.GEM_DEVELOPER_KEY }}
15
15
  # Enforce language so openstudio doesn't get confused
16
16
  LANG: "C.UTF-8"
17
+ LC_ALL: C.UTF-8
17
18
 
18
19
  jobs:
19
20
  weeknight-tests:
20
21
  runs-on: ubuntu-latest
21
22
  container:
22
- image: docker://nrel/openstudio:3.10.0
23
+ image: docker://nrel/openstudio:3.11.0
23
24
  steps:
24
25
  - uses: actions/checkout@v4
25
26
  - name: set git config options
@@ -29,13 +30,8 @@ jobs:
29
30
  run: |
30
31
  ruby --version
31
32
  bundle install
32
- bundle update
33
33
  - name: List OpenStudio measures
34
34
  run: bundle exec rake openstudio:list_measures
35
- - name: Update OpenStudio measures
36
- run: |
37
- bundle install
38
- bundle exec rake openstudio:update_measures
39
35
  - name: Test OpenStudio measures
40
36
  run: bundle exec rake openstudio:test_with_openstudio
41
37
  - name: Run Rspec
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # URBANopt Reporting Gem
2
2
 
3
+ ## Version 1.3.0
4
+
5
+ * Updated dependencies for OpenStudio 3.11
6
+
7
+ ## Version 1.2.0
8
+
9
+ * Update copyrights, handle change from github.com/NREL to github.com/NatLabRockies
10
+ * Add lifecycle cost fields to scenario report for REopt cost analysis
11
+
3
12
  ## Version 1.1.0
4
13
 
5
14
  * Upgrade to OpenStudio 3.10
data/CONTRIBUTING.md CHANGED
@@ -10,7 +10,7 @@ The contribution process for URBANopt is composed of three steps:
10
10
 
11
11
  In order for us to distribute your code as part of URBANopt under the URBANopt SDK [license](https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md), we’ll need your consent. An email acknowledging your understanding of these terms and agreeing to them is all that will be asked of any contributor. Send an email to the URBANopt project manager ([see below](#documentation) for the address) including the following text and a list of co-contributors (if any):
12
12
 
13
- *I agree to contribute to the URBANopt SDK. I agree to the following terms and conditions for my contributions: First, I agree that I am licensing the copyright to my contributions under the terms of the current URBANopt SDK license. Second, I hereby grant to Alliance for Sustainable Energy, LLC, to any successor manager and distributor of URBANopt SDK appointed by the U.S. Department of Energy, and to all recipients of a version of URBANopt SDK that includes my contributions, a non-exclusive, worldwide, royalty-free, irrevocable patent license under any patent claims owned by me, or owned by my employer and known to me, that are or will be,necessarily infringed upon by my contributions alone, or by combination of my contributions with the version of URBANopt SDK to which they are contributed, to make, have made, use, offer to sell, sell, import, and otherwise transfer any version of URBANopt SDK that includes my contributions, in source code and object code form. Third, I represent and warrant that I am authorized to make the contributions and grant the foregoing license(s). Additionally, if, to my knowledge, my employer has rights to intellectual property that covers my contributions, I represent and warrant that I have received permission to make these contributions and grant the foregoing license(s) on behalf of my employer.*
13
+ *I agree to contribute to the URBANopt SDK. I agree to the following terms and conditions for my contributions: First, I agree that I am licensing the copyright to my contributions under the terms of the current URBANopt SDK license. Second, I hereby grant to Alliance for Energy Innovation, LLC, to any successor manager and distributor of URBANopt SDK appointed by the U.S. Department of Energy, and to all recipients of a version of URBANopt SDK that includes my contributions, a non-exclusive, worldwide, royalty-free, irrevocable patent license under any patent claims owned by me, or owned by my employer and known to me, that are or will be,necessarily infringed upon by my contributions alone, or by combination of my contributions with the version of URBANopt SDK to which they are contributed, to make, have made, use, offer to sell, sell, import, and otherwise transfer any version of URBANopt SDK that includes my contributions, in source code and object code form. Third, I represent and warrant that I am authorized to make the contributions and grant the foregoing license(s). Additionally, if, to my knowledge, my employer has rights to intellectual property that covers my contributions, I represent and warrant that I have received permission to make these contributions and grant the foregoing license(s) on behalf of my employer.*
14
14
 
15
15
  Once we have your consent on file, you’ll only need to redo it if conditions change (e.g. a change of employer).
16
16
 
@@ -50,9 +50,9 @@ For further questions or information:
50
50
 
51
51
  - Ben Polly\
52
52
  URBANopt Project Management\
53
- ben.polly@nrel.gov\
53
+ ben.polly@nlr.gov\
54
54
  (303) 384-7429
55
55
 
56
- URBANopt is funded by the U.S. Department of Energy (DOE) and managed by the National Renewable Energy Laboratory (NREL).
56
+ URBANopt is funded by the U.S. Department of Energy (DOE) and managed by the National Laboratory of the Rockies (NLR).
57
57
 
58
- URBANopt is developed in collaboration with NREL, LBNL, and private firms.
58
+ URBANopt is developed in collaboration with NLR, LBNL, and private firms.
data/Gemfile CHANGED
@@ -14,5 +14,5 @@ allow_local = ENV['FAVOR_LOCAL_GEMS']
14
14
  # if allow_local && File.exist?('../openstudio-extension-gem')
15
15
  # gem 'openstudio-extension', path: '../openstudio-extension-gem'
16
16
  # elsif allow_local
17
- # gem 'openstudio-extension', github: 'NREL/openstudio-extension-gem', branch: 'develop'
17
+ # gem 'openstudio-extension', github: 'NatLabRockies/openstudio-extension-gem', branch: 'develop'
18
18
  # end
data/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- URBANopt (tm), Copyright (c) 2019-2024, Alliance for Sustainable Energy, LLC, and other
1
+ URBANopt (tm), Copyright (c) 2019-2026, Alliance for Energy Innovation, LLC, and other
2
2
  contributors. All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification,
data/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt™, Copyright © Alliance for Sustainable Energy, LLC.
2
+ # URBANopt™, Copyright © Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,4 +1,4 @@
1
- URBANopt (tm), Copyright (c) 2019-2024, Alliance for Sustainable Energy, LLC, and other
1
+ URBANopt (tm), Copyright (c) 2019-2026, Alliance for Energy Innovation, LLC, and other
2
2
  contributors. All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification,
@@ -1,6 +1,6 @@
1
1
  <%
2
2
  # *********************************************************************************
3
- # URBANopt (tm), Copyright (c) 2019-2024, Alliance for Sustainable Energy, LLC, and other
3
+ # URBANopt (tm), Copyright (c) 2019-2026, Alliance for Energy Innovation, LLC, and other
4
4
  # contributors. All rights reserved.
5
5
 
6
6
  # Redistribution and use in source and binary forms, with or without modification,
@@ -1,4 +1,4 @@
1
1
  /* @preserve
2
- * URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ * URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  * See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  */
@@ -1,4 +1,4 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
data/docs/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "build": "vuepress build",
9
9
  "deploy": "gh-pages -d .vuepress/dist"
10
10
  },
11
- "author": "NREL",
11
+ "author": "NLR",
12
12
  "dependencies": {
13
13
  "highlight.js": "^10.4.1",
14
14
  "json-schema-ref-parser": "^9.0.6",
@@ -1,4 +1,4 @@
1
- URBANopt (tm), Copyright (c) 2019-2024, Alliance for Sustainable Energy, LLC, and other
1
+ URBANopt (tm), Copyright (c) 2019-2026, Alliance for Energy Innovation, LLC, and other
2
2
  contributors. All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,4 +1,4 @@
1
- URBANopt (tm), Copyright (c) 2019-2024, Alliance for Sustainable Energy, LLC, and other
1
+ URBANopt (tm), Copyright (c) 2019-2026, Alliance for Energy Innovation, LLC, and other
2
2
  contributors. All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,4 +1,4 @@
1
- URBANopt (tm), Copyright (c) 2019-2024, Alliance for Sustainable Energy, LLC, and other
1
+ URBANopt (tm), Copyright (c) 2019-2026, Alliance for Energy Innovation, LLC, and other
2
2
  contributors. All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification,
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -82,6 +82,31 @@ module URBANopt
82
82
  #
83
83
  attr_accessor :lifecycle_energy_cost_after_tax_bau
84
84
 
85
+ ##
86
+ # _Float_ - Up-front capital costs for all technologies, in present value, excluding replacement costs and incentives.
87
+ #
88
+ attr_accessor :initial_capital_costs
89
+
90
+ ##
91
+ # _Float_ - Up-front capital costs for all technologies, in present value, excluding replacement costs, including incentives.
92
+ #
93
+ attr_accessor :initial_capital_costs_after_incentives
94
+
95
+ ##
96
+ # _Float_ - Net capital costs for all technologies, in present value, including replacement costs and incentives.
97
+ #
98
+ attr_accessor :lifecycle_capital_costs
99
+
100
+ ##
101
+ # _Float_ - Component of lifecycle costs (LCC). This value is the present value of all fuel costs over the analysis period, after tax.
102
+ #
103
+ attr_accessor :lifecycle_fuel_costs_after_tax
104
+
105
+ ##
106
+ # _Float_ - Component of lifecycle costs (LCC). This value is the present value of all electric utility charges, after tax.
107
+ #
108
+ attr_accessor :lifecycle_elecbill_after_tax
109
+
85
110
  ##
86
111
  # _Array_ - List of _SolarPV_ systems
87
112
  #
@@ -171,7 +196,9 @@ module URBANopt
171
196
  #
172
197
  # * Technologies include +:solar_pv+, +:wind+, +:generator+, and +:storage+.
173
198
  # * Financial metrics include +:lcc+, +:npv+, +:year_one_energy_cost_before_tax+, +:year_one_demand_cost_before_tax+,
174
- # +:year_one_bill_before_tax+, and +:lifecycle_energy_cost_after_tax+
199
+ # +:year_one_bill_before_tax+, +:lifecycle_energy_cost_after_tax+, +:initial_capital_costs+,
200
+ # +:initial_capital_costs_after_incentives+, +:lifecycle_capital_costs+,
201
+ # +:lifecycle_elecbill_after_tax+, and +:lifecycle_fuel_costs_after_tax+
175
202
  ##
176
203
  # [parameters:]
177
204
  #
@@ -194,6 +221,11 @@ module URBANopt
194
221
  @lifecycle_energy_cost_after_tax_bau = hash[:lifecycle_energy_cost_after_tax_bau]
195
222
  @lifecycle_demand_cost_after_tax = hash[:lifecycle_demand_cost_after_tax]
196
223
  @lifecycle_demand_cost_after_tax_bau = hash[:lifecycle_demand_cost_after_tax_bau]
224
+ @initial_capital_costs = hash[:initial_capital_costs]
225
+ @initial_capital_costs_after_incentives = hash[:initial_capital_costs_after_incentives]
226
+ @lifecycle_capital_costs = hash[:lifecycle_capital_costs]
227
+ @lifecycle_fuel_costs_after_tax = hash[:lifecycle_fuel_costs_after_tax]
228
+ @lifecycle_elecbill_after_tax = hash[:lifecycle_elecbill_after_tax]
197
229
 
198
230
  @resilience_hours_min = hash[:resilience_hours_min]
199
231
  @resilience_hours_max = hash[:resilience_hours_max]
@@ -362,6 +394,12 @@ module URBANopt
362
394
  result[:lifecycle_energy_cost_after_tax_bau] = @lifecycle_energy_cost_after_tax_bau if @lifecycle_energy_cost_after_tax_bau
363
395
  result[:lifecycle_demand_cost_after_tax_bau] = @lifecycle_demand_cost_after_tax_bau if @lifecycle_demand_cost_after_tax_bau
364
396
 
397
+ result[:initial_capital_costs] = @initial_capital_costs if @initial_capital_costs
398
+ result[:initial_capital_costs_after_incentives] = @initial_capital_costs_after_incentives if @initial_capital_costs_after_incentives
399
+ result[:lifecycle_capital_costs] = @lifecycle_capital_costs if @lifecycle_capital_costs
400
+ result[:lifecycle_fuel_costs_after_tax] = @lifecycle_fuel_costs_after_tax if @lifecycle_fuel_costs_after_tax
401
+ result[:lifecycle_elecbill_after_tax] = @lifecycle_elecbill_after_tax if @lifecycle_elecbill_after_tax
402
+
365
403
  result[:total_solar_pv_kw] = @total_solar_pv_kw if @total_solar_pv_kw
366
404
  result[:total_wind_kw] = @total_wind_kw if @total_wind_kw
367
405
  result[:total_generator_kw] = @total_generator_kw if @total_generator_kw
@@ -432,6 +470,12 @@ module URBANopt
432
470
  existing_dgen.lifecycle_energy_cost_after_tax_bau = add_values(existing_dgen.lifecycle_energy_cost_after_tax_bau, new_dgen.lifecycle_energy_cost_after_tax_bau)
433
471
  existing_dgen.lifecycle_demand_cost_after_tax_bau = add_values(existing_dgen.lifecycle_demand_cost_after_tax_bau, new_dgen.lifecycle_demand_cost_after_tax_bau)
434
472
 
473
+ existing_dgen.initial_capital_costs = add_values(existing_dgen.initial_capital_costs, new_dgen.initial_capital_costs)
474
+ existing_dgen.initial_capital_costs_after_incentives = add_values(existing_dgen.initial_capital_costs_after_incentives, new_dgen.initial_capital_costs_after_incentives)
475
+ existing_dgen.lifecycle_capital_costs = add_values(existing_dgen.lifecycle_capital_costs, new_dgen.lifecycle_capital_costs)
476
+ existing_dgen.lifecycle_fuel_costs_after_tax = add_values(existing_dgen.lifecycle_fuel_costs_after_tax, new_dgen.lifecycle_fuel_costs_after_tax)
477
+ existing_dgen.lifecycle_elecbill_after_tax = add_values(existing_dgen.lifecycle_elecbill_after_tax, new_dgen.lifecycle_elecbill_after_tax)
478
+
435
479
  existing_dgen.resilience_hours_min = add_values(existing_dgen.resilience_hours_min, new_dgen.resilience_hours_min)
436
480
  existing_dgen.resilience_hours_max = add_values(existing_dgen.resilience_hours_max, new_dgen.resilience_hours_max)
437
481
  existing_dgen.resilience_hours_avg = add_values(existing_dgen.resilience_hours_avg, new_dgen.resilience_hours_avg)
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -481,6 +481,31 @@
481
481
  "units": "dollars",
482
482
  "type": "number"
483
483
  },
484
+ "initial_capital_costs": {
485
+ "description": "Up-front capital costs for all technologies, in present value, excluding replacement costs and incentives.",
486
+ "units": "dollars",
487
+ "type": "number"
488
+ },
489
+ "initial_capital_costs_after_incentives": {
490
+ "description": "Up-front capital costs for all technologies, in present value, excluding replacement costs, including incentives.",
491
+ "units": "dollars",
492
+ "type": "number"
493
+ },
494
+ "lifecycle_capital_costs": {
495
+ "description": "Net capital costs for all technologies, in present value, including replacement costs and incentives.",
496
+ "units": "dollars",
497
+ "type": "number"
498
+ },
499
+ "lifecycle_fuel_costs_after_tax": {
500
+ "description": "Component of lifecycle costs (LCC). This value is the present value of all fuel costs over the analysis period, after tax.",
501
+ "units": "dollars",
502
+ "type": "number"
503
+ },
504
+ "lifecycle_elecbill_after_tax": {
505
+ "description": "Component of lifecycle costs (LCC). This value is the present value of all electric utility charges, after tax.",
506
+ "units": "dollars",
507
+ "type": "number"
508
+ },
484
509
  "SolarPV": {
485
510
  "$ref": "#/definitions/SolarPV"
486
511
  },
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -186,21 +186,26 @@ module URBANopt
186
186
  path = @path
187
187
  end
188
188
 
189
- File.open(path, 'w') do |f|
190
- f.puts @column_names.join(',')
191
- n = @data[@column_names[0]].size - 1
192
-
193
- (0..n).each do |i|
194
- line = []
195
- @column_names.each do |column_name|
196
- line << @data[column_name][i]
189
+ # what if data is nil? warn user and don't attempt to write to file or it errors out
190
+ if @data.nil?
191
+ @@logger.warn('No data to save to TimeseriesCSV to write to file during feature report update.')
192
+ puts
193
+ else
194
+ File.open(path, 'w') do |f|
195
+ f.puts @column_names.join(',')
196
+ n = @data[@column_names[0]].size - 1
197
+ (0..n).each do |i|
198
+ line = []
199
+ @column_names.each do |column_name|
200
+ line << @data[column_name][i]
201
+ end
202
+ f.puts line.join(',')
203
+ end
204
+ begin
205
+ f.fsync
206
+ rescue StandardError
207
+ f.flush
197
208
  end
198
- f.puts line.join(',')
199
- end
200
- begin
201
- f.fsync
202
- rescue StandardError
203
- f.flush
204
209
  end
205
210
  end
206
211
  end
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -1,10 +1,10 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
6
6
  module URBANopt
7
7
  module Reporting
8
- VERSION = '1.1.0'.freeze
8
+ VERSION = '1.3.0'.freeze
9
9
  end
10
10
  end
@@ -1,5 +1,5 @@
1
1
  # *********************************************************************************
2
- # URBANopt (tm), Copyright (c) Alliance for Sustainable Energy, LLC.
2
+ # URBANopt (tm), Copyright (c) Alliance for Energy Innovation, LLC.
3
3
  # See also https://github.com/urbanopt/urbanopt-reporting-gem/blob/develop/LICENSE.md
4
4
  # *********************************************************************************
5
5
 
@@ -5,8 +5,8 @@ require 'urbanopt/reporting/version'
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'urbanopt-reporting'
7
7
  spec.version = URBANopt::Reporting::VERSION
8
- spec.authors = ['Rawad El Kontar', 'Dan Macumber']
9
- spec.email = ['rawad.elkontar@nrel.gov']
8
+ spec.authors = ['Rawad El Kontar', 'Katherine Fleming', 'Dan Macumber']
9
+ spec.email = ['rawad.elkontar@nlr.gov', 'katherine.fleming@nlr.gov']
10
10
 
11
11
  spec.summary = 'Library to report URBANopt results'
12
12
  spec.description = 'Library include scenario default reporting measure and scenario defaults reports schema and classes'
@@ -34,5 +34,5 @@ Gem::Specification.new do |spec|
34
34
 
35
35
  spec.add_runtime_dependency 'json_pure', '~> 2.7'
36
36
  spec.add_runtime_dependency 'json-schema', '~> 4.3.1'
37
- spec.add_dependency 'openstudio-extension', '~> 0.9.4'
37
+ spec.add_dependency 'openstudio-extension', '~> 0.9.7'
38
38
  end
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: urbanopt-reporting
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rawad El Kontar
8
+ - Katherine Fleming
8
9
  - Dan Macumber
9
10
  autorequire:
10
11
  bindir: exe
11
12
  cert_chain: []
12
- date: 2025-10-06 00:00:00.000000000 Z
13
+ date: 2026-07-09 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: rake
@@ -129,18 +130,19 @@ dependencies:
129
130
  requirements:
130
131
  - - "~>"
131
132
  - !ruby/object:Gem::Version
132
- version: 0.9.4
133
+ version: 0.9.7
133
134
  type: :runtime
134
135
  prerelease: false
135
136
  version_requirements: !ruby/object:Gem::Requirement
136
137
  requirements:
137
138
  - - "~>"
138
139
  - !ruby/object:Gem::Version
139
- version: 0.9.4
140
+ version: 0.9.7
140
141
  description: Library include scenario default reporting measure and scenario defaults
141
142
  reports schema and classes
142
143
  email:
143
- - rawad.elkontar@nrel.gov
144
+ - rawad.elkontar@nlr.gov
145
+ - katherine.fleming@nlr.gov
144
146
  executables: []
145
147
  extensions: []
146
148
  extra_rdoc_files: []