urbanopt-reporting 1.0.0 → 1.2.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.
- checksums.yaml +4 -4
- data/.github/workflows/nightly_ci_build.yml +1 -1
- data/CHANGELOG.md +9 -0
- data/CONTRIBUTING.md +3 -3
- data/Gemfile +1 -2
- data/LICENSE.md +1 -1
- data/Rakefile +1 -1
- data/doc_templates/LICENSE.md +1 -1
- data/doc_templates/copyright_erb.txt +1 -1
- data/doc_templates/copyright_js.txt +1 -1
- data/doc_templates/copyright_ruby.txt +1 -1
- data/docs/package.json +1 -1
- data/lib/measures/default_feature_reports/LICENSE.md +1 -1
- data/lib/measures/default_feature_reports/measure.rb +24 -11
- data/lib/measures/default_feature_reports/measure.xml +10 -4
- data/lib/measures/export_modelica_loads/LICENSE.md +1 -1
- data/lib/measures/export_modelica_loads/measure.rb +1 -1
- data/lib/measures/export_time_series_modelica/LICENSE.md +1 -1
- data/lib/measures/export_time_series_modelica/measure.rb +1 -1
- data/lib/measures/export_time_series_modelica/resources/os_lib_helper_methods.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/construction_cost.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/date.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/distributed_generation.rb +46 -2
- data/lib/urbanopt/reporting/default_reports/end_use.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/end_uses.rb +15 -8
- data/lib/urbanopt/reporting/default_reports/extension.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/feature_report.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/generator.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/location.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/logger.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/power_distribution.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/program.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/qaqc_flags.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/reporting_period.rb +10 -6
- data/lib/urbanopt/reporting/default_reports/scenario_power_distribution.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/scenario_power_distribution_cost.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/scenario_report.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/schema/README.md +2 -1
- data/lib/urbanopt/reporting/default_reports/schema/scenario_csv_columns.txt +2 -1
- data/lib/urbanopt/reporting/default_reports/schema/scenario_schema.json +35 -3
- data/lib/urbanopt/reporting/default_reports/solar_pv.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/storage.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/thermal_storage.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/timeseries_csv.rb +20 -15
- data/lib/urbanopt/reporting/default_reports/validator.rb +1 -1
- data/lib/urbanopt/reporting/default_reports/wind.rb +1 -1
- data/lib/urbanopt/reporting/default_reports.rb +1 -1
- data/lib/urbanopt/reporting/derived_extension.rb +1 -1
- data/lib/urbanopt/reporting/version.rb +2 -2
- data/lib/urbanopt/reporting.rb +1 -1
- data/urbanopt-reporting-gem.gemspec +7 -4
- metadata +52 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: aa7b49f39bc2a2498641f9ced12a7e56a27427a1b092977aad78233e9cf03b01
|
|
4
|
+
data.tar.gz: 203cd4d39d0cd44caad0111d6a82fc1c758f558559cf9311ce9083bca6084a44
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b7deaa287639975c21f7b58e05b42eea23bc0d686f61b5f356047acc08ce55d4cb8399463e056562c3d97b67c22aae8bcb1c3294ddfa802f577b95b750191ad3
|
|
7
|
+
data.tar.gz: ea954942db30ecd7967b128a86bc3703734285fc598918980d71d3ae4233a7913a8d3302fdefc3e03ce137d4b5ac8289e853bea76349cd86932623ed7a149cfa
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# URBANopt Reporting Gem
|
|
2
2
|
|
|
3
|
+
## Version 1.2.0
|
|
4
|
+
|
|
5
|
+
* Update copyrights, handle change from github.com/NREL to github.com/NatLabRockies
|
|
6
|
+
* Add lifecycle cost fields to scenario report for REopt cost analysis
|
|
7
|
+
|
|
8
|
+
## Version 1.1.0
|
|
9
|
+
|
|
10
|
+
* Upgrade to OpenStudio 3.10
|
|
11
|
+
|
|
3
12
|
## Version 1.0.0
|
|
4
13
|
|
|
5
14
|
* Upgrade to OpenStudio 3.9 and Ruby 3.2.2 by @vtnate in https://github.com/urbanopt/urbanopt-reporting-gem/pull/155
|
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
|
|
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
|
|
|
@@ -53,6 +53,6 @@ URBANopt Project Management\
|
|
|
53
53
|
ben.polly@nrel.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
|
|
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
|
|
58
|
+
URBANopt is developed in collaboration with NLR, LBNL, and private firms.
|
data/Gemfile
CHANGED
|
@@ -14,6 +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
|
-
#
|
|
18
|
-
# gem 'openstudio-extension', '~> 0.8.1'
|
|
17
|
+
# gem 'openstudio-extension', github: 'NatLabRockies/openstudio-extension-gem', branch: 'develop'
|
|
19
18
|
# end
|
data/LICENSE.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
URBANopt (tm), Copyright (c) 2019-
|
|
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
|
|
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
|
|
data/doc_templates/LICENSE.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
URBANopt (tm), Copyright (c) 2019-
|
|
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-
|
|
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
|
# *********************************************************************************
|
|
2
|
-
# URBANopt (tm), Copyright (c) Alliance for
|
|
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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
URBANopt (tm), Copyright (c) 2019-
|
|
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
|
|
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
|
|
|
@@ -80,7 +80,8 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
|
80
80
|
'FuelOilNo2' => 'Fuel Oil #2',
|
|
81
81
|
'Propane' => 'Propane',
|
|
82
82
|
'DistrictCooling' => 'District Cooling',
|
|
83
|
-
'
|
|
83
|
+
'DistrictHeatingSteam' => 'District Heating Steam',
|
|
84
|
+
'DistrictHeatingWater' => 'District Heating Water',
|
|
84
85
|
'Water' => 'Water'
|
|
85
86
|
}
|
|
86
87
|
|
|
@@ -179,7 +180,8 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
|
179
180
|
result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,ElectricityProduced:Facility,#{reporting_frequency};").get
|
|
180
181
|
result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,NaturalGas:Facility,#{reporting_frequency};").get
|
|
181
182
|
result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,DistrictCooling:Facility,#{reporting_frequency};").get
|
|
182
|
-
result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,
|
|
183
|
+
result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,DistrictHeatingSteam:Facility,#{reporting_frequency};").get
|
|
184
|
+
result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,DistrictHeatingWater:Facility,#{reporting_frequency};").get
|
|
183
185
|
result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,Propane:Facility,#{reporting_frequency};").get
|
|
184
186
|
result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,FuelOilNo2:Facility,#{reporting_frequency};").get
|
|
185
187
|
|
|
@@ -191,7 +193,9 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
|
191
193
|
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,Fans:Electricity,#{reporting_frequency};").get
|
|
192
194
|
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,Pumps:Electricity,#{reporting_frequency};").get
|
|
193
195
|
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,WaterSystems:Electricity,#{reporting_frequency};").get
|
|
194
|
-
|
|
196
|
+
result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,Heating:NaturalGas,#{reporting_frequency};").get
|
|
197
|
+
result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,Cooling:NaturalGas,#{reporting_frequency};").get
|
|
198
|
+
|
|
195
199
|
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,WaterSystems:NaturalGas,#{reporting_frequency};").get
|
|
196
200
|
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,InteriorEquipment:NaturalGas,#{reporting_frequency};").get
|
|
197
201
|
result << OpenStudio::IdfObject.load('Output:Variable,*,Heating Coil Heating Rate,hourly; !- HVAC Average [W];').get
|
|
@@ -769,13 +773,20 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
|
769
773
|
feature_report.reporting_periods[0].district_cooling_kwh = 0.0
|
|
770
774
|
end
|
|
771
775
|
|
|
772
|
-
#
|
|
773
|
-
|
|
774
|
-
feature_report.reporting_periods[0].
|
|
776
|
+
# district_heating_steam
|
|
777
|
+
district_heating_steam = sql_query(runner, sql_file, 'AnnualBuildingUtilityPerformanceSummary', "TableName='End Uses' AND RowName='Total End Uses' AND ColumnName='District Heating'")
|
|
778
|
+
feature_report.reporting_periods[0].district_heating_steam_kwh = convert_units(district_heating_steam, 'GJ', 'kWh')
|
|
775
779
|
if building.standardsBuildingType.is_initialized && ['Residential'].include?(building.standardsBuildingType.get)
|
|
776
|
-
feature_report.reporting_periods[0].
|
|
780
|
+
feature_report.reporting_periods[0].district_heating_steam_kwh = 0.0
|
|
777
781
|
end
|
|
778
782
|
|
|
783
|
+
# district_heating_water
|
|
784
|
+
district_heating_water = sql_query(runner, sql_file, 'AnnualBuildingUtilityPerformanceSummary', "TableName='End Uses' AND RowName='Total End Uses' AND ColumnName='District Heating'")
|
|
785
|
+
feature_report.reporting_periods[0].district_heating_water_kwh = convert_units(district_heating_water, 'GJ', 'kWh')
|
|
786
|
+
if building.standardsBuildingType.is_initialized && ['Residential'].include?(building.standardsBuildingType.get)
|
|
787
|
+
feature_report.reporting_periods[0].district_heating_water_kwh = 0.0
|
|
788
|
+
end
|
|
789
|
+
|
|
779
790
|
# water
|
|
780
791
|
water = sql_query(runner, sql_file, 'AnnualBuildingUtilityPerformanceSummary', "TableName='End Uses' AND RowName='Total End Uses' AND ColumnName='Water'")
|
|
781
792
|
feature_report.reporting_periods[0].water_qbft = water
|
|
@@ -800,7 +811,7 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
|
800
811
|
|
|
801
812
|
# report each query in its corresponding feature report object
|
|
802
813
|
x = ft.tr(' ', '_').downcase
|
|
803
|
-
if x.include?
|
|
814
|
+
if x.include?('water') && x != 'district_heating_water'
|
|
804
815
|
x_u = "#{x}_qbft"
|
|
805
816
|
else
|
|
806
817
|
x = x.gsub('_#2', '')
|
|
@@ -965,6 +976,7 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
|
965
976
|
'HeatRejection:Electricity',
|
|
966
977
|
'HeatRejection:NaturalGas',
|
|
967
978
|
'Heating:NaturalGas',
|
|
979
|
+
'Cooling:NaturalGas',
|
|
968
980
|
'WaterSystems:NaturalGas',
|
|
969
981
|
'InteriorEquipment:NaturalGas',
|
|
970
982
|
'HeatRejection:Propane',
|
|
@@ -980,7 +992,8 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
|
980
992
|
'WaterSystems:OtherFuels',
|
|
981
993
|
'InteriorEquipment:OtherFuels',
|
|
982
994
|
'DistrictCooling:Facility',
|
|
983
|
-
'
|
|
995
|
+
'DistrictHeatingSteam:Facility',
|
|
996
|
+
'DistrictHeatingWater:Facility',
|
|
984
997
|
'District Cooling Chilled Water Rate',
|
|
985
998
|
'District Cooling Mass Flow Rate',
|
|
986
999
|
'District Cooling Inlet Temperature',
|
|
@@ -1135,7 +1148,7 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
|
1135
1148
|
end
|
|
1136
1149
|
|
|
1137
1150
|
# residential considerations
|
|
1138
|
-
if building.standardsBuildingType.is_initialized && (['DistrictCooling:Facility', '
|
|
1151
|
+
if building.standardsBuildingType.is_initialized && (['DistrictCooling:Facility', 'DistrictHeatingSteam:Facility', 'DistrictHeatingWater:Facility'].include?(timeseries_name) && ['Residential'].include?(building.standardsBuildingType.get))
|
|
1139
1152
|
values[key_cnt] = Array.new(n, 0)
|
|
1140
1153
|
end
|
|
1141
1154
|
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
<schema_version>3.1</schema_version>
|
|
4
4
|
<name>default_feature_reports</name>
|
|
5
5
|
<uid>9ee3135a-8070-4408-bfa1-b75fecf9dd4f</uid>
|
|
6
|
-
<version_id>
|
|
7
|
-
<version_modified>2025-
|
|
6
|
+
<version_id>5405e272-fbd5-4967-9398-2a16acb72ea3</version_id>
|
|
7
|
+
<version_modified>2025-08-08T21:47:22Z</version_modified>
|
|
8
8
|
<xml_checksum>FB304155</xml_checksum>
|
|
9
9
|
<class_name>DefaultFeatureReports</class_name>
|
|
10
10
|
<display_name>DefaultFeatureReports</display_name>
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
<filename>measure.rb</filename>
|
|
129
129
|
<filetype>rb</filetype>
|
|
130
130
|
<usage_type>script</usage_type>
|
|
131
|
-
<checksum>
|
|
131
|
+
<checksum>BE00699F</checksum>
|
|
132
132
|
</file>
|
|
133
133
|
<file>
|
|
134
134
|
<filename>USA_CO_Golden-NREL.724666_TMY3.epw</filename>
|
|
@@ -140,7 +140,13 @@
|
|
|
140
140
|
<filename>default_feature_reports_test.rb</filename>
|
|
141
141
|
<filetype>rb</filetype>
|
|
142
142
|
<usage_type>test</usage_type>
|
|
143
|
-
<checksum>
|
|
143
|
+
<checksum>C0A93893</checksum>
|
|
144
|
+
</file>
|
|
145
|
+
<file>
|
|
146
|
+
<filename>example_district.osm</filename>
|
|
147
|
+
<filetype>osm</filetype>
|
|
148
|
+
<usage_type>test</usage_type>
|
|
149
|
+
<checksum>45DD7725</checksum>
|
|
144
150
|
</file>
|
|
145
151
|
<file>
|
|
146
152
|
<filename>example_model.osm</filename>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
URBANopt (tm), Copyright (c) 2019-
|
|
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
|
|
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-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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+,
|
|
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
|
|
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
|
|
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
|
|
|
@@ -14,7 +14,7 @@ module URBANopt
|
|
|
14
14
|
# Enduses class include results for each fuel type.
|
|
15
15
|
##
|
|
16
16
|
class EndUses
|
|
17
|
-
attr_accessor :electricity_kwh, :natural_gas_kwh, :propane_kwh, :fuel_oil_kwh, :other_fuels_kwh, :district_cooling_kwh, :
|
|
17
|
+
attr_accessor :electricity_kwh, :natural_gas_kwh, :propane_kwh, :fuel_oil_kwh, :other_fuels_kwh, :district_cooling_kwh, :district_heating_water_kwh, :district_heating_steam_kwh, :water_qbft # :nodoc:
|
|
18
18
|
|
|
19
19
|
##
|
|
20
20
|
# EndUses class initialize end_uses(fuel type) attributes: +:electricity_kwh+ , +:natural_gas_kwh+ , +:propane_kwh+ , +:fuel_oil_kwh+ , +:other_fuels_kwh+ ,
|
|
@@ -33,7 +33,8 @@ module URBANopt
|
|
|
33
33
|
@fuel_oil_kwh = EndUse.new(hash[:fuel_oil_kwh])
|
|
34
34
|
@other_fuels_kwh = EndUse.new(hash[:other_fuels_kwh])
|
|
35
35
|
@district_cooling_kwh = EndUse.new(hash[:district_cooling_kwh])
|
|
36
|
-
@
|
|
36
|
+
@district_heating_water_kwh = EndUse.new(hash[:district_heating_water_kwh])
|
|
37
|
+
@district_heating_steam_kwh = EndUse.new(hash[:district_heating_steam_kwh])
|
|
37
38
|
@water_qbft = EndUse.new(hash[:water_qbft])
|
|
38
39
|
|
|
39
40
|
# initialize class variables @@validator and @@schema
|
|
@@ -74,9 +75,13 @@ module URBANopt
|
|
|
74
75
|
district_cooling_kwh_hash.delete_if { |k, v| v.nil? }
|
|
75
76
|
result[:district_cooling_kwh] = district_cooling_kwh_hash if @district_cooling_kwh
|
|
76
77
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
result[:
|
|
78
|
+
district_heating_water_kwh_hash = @district_heating_water_kwh.to_hash if @district_heating_water_kwh
|
|
79
|
+
district_heating_water_kwh_hash.delete_if { |k, v| v.nil? }
|
|
80
|
+
result[:district_heating_water_kwh] = district_heating_water_kwh_hash if @district_heating_water_kwh
|
|
81
|
+
|
|
82
|
+
district_heating_steam_kwh_hash = @district_heating_steam_kwh.to_hash if @district_heating_steam_kwh
|
|
83
|
+
district_heating_steam_kwh_hash.delete_if { |k, v| v.nil? }
|
|
84
|
+
result[:district_heating_steam_kwh] = district_heating_steam_kwh_hash if @district_heating_steam_kwh
|
|
80
85
|
|
|
81
86
|
water_qbft_hash = @water_qbft.to_hash if @water_qbft
|
|
82
87
|
water_qbft_hash.delete_if { |k, v| v.nil? }
|
|
@@ -101,7 +106,8 @@ module URBANopt
|
|
|
101
106
|
hash[:fuel_oil_kwh] = EndUse.new.to_hash
|
|
102
107
|
hash[:other_fuels_kwh] = EndUse.new.to_hash
|
|
103
108
|
hash[:district_cooling_kwh] = EndUse.new.to_hash
|
|
104
|
-
hash[:
|
|
109
|
+
hash[:district_heating_steam_kwh] = EndUse.new.to_hash
|
|
110
|
+
hash[:district_heating_water_kwh] = EndUse.new.to_hash
|
|
105
111
|
hash[:water_qbft] = EndUse.new.to_hash
|
|
106
112
|
|
|
107
113
|
return hash
|
|
@@ -121,7 +127,8 @@ module URBANopt
|
|
|
121
127
|
@fuel_oil_kwh.merge_end_use!(new_end_uses.fuel_oil_kwh)
|
|
122
128
|
@other_fuels_kwh.merge_end_use!(new_end_uses.other_fuels_kwh)
|
|
123
129
|
@district_cooling_kwh.merge_end_use!(new_end_uses.district_cooling_kwh)
|
|
124
|
-
@
|
|
130
|
+
@district_heating_water_kwh.merge_end_use!(new_end_uses.district_heating_water_kwh)
|
|
131
|
+
@district_heating_steam_kwh.merge_end_use!(new_end_uses.district_heating_steam_kwh)
|
|
125
132
|
return self
|
|
126
133
|
end
|
|
127
134
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# *********************************************************************************
|
|
2
|
-
# URBANopt (tm), Copyright (c) Alliance for
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
|
@@ -20,7 +20,7 @@ module URBANopt
|
|
|
20
20
|
class ReportingPeriod
|
|
21
21
|
attr_accessor :id, :name, :multiplier, :start_date, :end_date, :month, :day_of_month, :year, :total_site_energy_kwh, :total_source_energy_kwh, :site_EUI_kwh_per_m2, :site_EUI_kbtu_per_ft2, :source_EUI_kwh_per_m2, :source_EUI_kbtu_per_ft2,
|
|
22
22
|
:net_site_energy_kwh, :net_source_energy_kwh, :total_utility_cost_dollar, :net_utility_cost_dollar, :utility_costs_dollar, :electricity_kwh, :natural_gas_kwh, :propane_kwh, :fuel_oil_kwh, :other_fuels_kwh, :district_cooling_kwh,
|
|
23
|
-
:
|
|
23
|
+
:district_heating_water_kwh, :district_heating_steam_kwh, :water_qbft, :electricity_produced_kwh, :end_uses, :energy_production_kwh, :photovoltaic,
|
|
24
24
|
:fuel_type, :total_cost_dollar, :usage_cost_dollar, :demand_cost_dollar, :comfort_result, :time_setpoint_not_met_during_occupied_cooling,
|
|
25
25
|
:time_setpoint_not_met_during_occupied_heating, :time_setpoint_not_met_during_occupied_hours, :hours_out_of_comfort_bounds_PMV, :hours_out_of_comfort_bounds_PPD,
|
|
26
26
|
:emissions, :future_annual_electricity_emissions_mt, :future_hourly_electricity_emissions_mt, :historical_annual_electricity_emissions_mt, :historical_hourly_electricity_emissions_mt,
|
|
@@ -68,7 +68,8 @@ module URBANopt
|
|
|
68
68
|
@fuel_oil_kwh = hash[:fuel_oil_kwh]
|
|
69
69
|
@other_fuels_kwh = hash[:other_fuels_kwh]
|
|
70
70
|
@district_cooling_kwh = hash[:district_cooling_kwh]
|
|
71
|
-
@
|
|
71
|
+
@district_heating_water_kwh = hash[:district_heating_water_kwh]
|
|
72
|
+
@district_heating_steam_kwh = hash[:district_heating_steam_kwh]
|
|
72
73
|
@water_qbft = hash[:water_qbft]
|
|
73
74
|
@electricity_produced_kwh = hash[:electricity_produced_kwh]
|
|
74
75
|
@end_uses = EndUses.new(hash[:end_uses])
|
|
@@ -114,7 +115,8 @@ module URBANopt
|
|
|
114
115
|
hash[:fuel_oil_kwh] = nil
|
|
115
116
|
hash[:other_fuels_kwh] = nil
|
|
116
117
|
hash[:district_cooling_kwh] = nil
|
|
117
|
-
hash[:
|
|
118
|
+
hash[:district_heating_water_kwh] = nil
|
|
119
|
+
hash[:district_heating_steam_kwh] = nil
|
|
118
120
|
|
|
119
121
|
hash[:electricity_produced_kwh] = nil
|
|
120
122
|
hash[:end_uses] = EndUses.new.to_hash
|
|
@@ -162,7 +164,8 @@ module URBANopt
|
|
|
162
164
|
result[:fuel_oil_kwh] = @fuel_oil_kwh if @fuel_oil_kwh
|
|
163
165
|
result[:other_fuels_kwh] = @other_fuels_kwh if @other_fuels_kwh
|
|
164
166
|
result[:district_cooling_kwh] = @district_cooling_kwh if @district_cooling_kwh
|
|
165
|
-
result[:
|
|
167
|
+
result[:district_heating_steam_kwh] = @district_heating_steam_kwh if @district_heating_steam_kwh
|
|
168
|
+
result[:district_heating_water_kwh] = @district_heating_water_kwh if @district_heating_water_kwh
|
|
166
169
|
result[:water_qbft] = @water_qbft if @water_qbft
|
|
167
170
|
result[:electricity_produced_kwh] = @electricity_produced_kwh if @electricity_produced_kwh
|
|
168
171
|
result[:end_uses] = @end_uses.to_hash if @end_uses
|
|
@@ -236,7 +239,8 @@ module URBANopt
|
|
|
236
239
|
existing_period.fuel_oil_kwh = add_values(existing_period.fuel_oil_kwh, new_period.fuel_oil_kwh)
|
|
237
240
|
existing_period.other_fuels_kwh = add_values(existing_period.other_fuels_kwh, new_period.other_fuels_kwh)
|
|
238
241
|
existing_period.district_cooling_kwh = add_values(existing_period.district_cooling_kwh, new_period.district_cooling_kwh)
|
|
239
|
-
existing_period.
|
|
242
|
+
existing_period.district_heating_steam_kwh = add_values(existing_period.district_heating_steam_kwh, new_period.district_heating_steam_kwh)
|
|
243
|
+
existing_period.district_heating_water_kwh = add_values(existing_period.district_heating_water_kwh, new_period.district_heating_water_kwh)
|
|
240
244
|
existing_period.water_qbft = add_values(existing_period.water_qbft, new_period.water_qbft)
|
|
241
245
|
existing_period.electricity_produced_kwh = add_values(existing_period.electricity_produced_kwh, new_period.electricity_produced_kwh)
|
|
242
246
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# *********************************************************************************
|
|
2
|
-
# URBANopt (tm), Copyright (c) Alliance for
|
|
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
|
|
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
|
|
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
|
|
|
@@ -22,7 +22,8 @@ The URBANopt <sup>™</sup> Scenario Gem includes functionality for defining
|
|
|
22
22
|
| ElectricityProduced:Facility | kWh |
|
|
23
23
|
| Gas:Facility | kBtu |
|
|
24
24
|
| DistrictCooling:Facility | kWh |
|
|
25
|
-
|
|
|
25
|
+
| DistrictHeatingSteam:Facility | kWh |
|
|
26
|
+
| DistrictHeatingWater:Facility | kWh |
|
|
26
27
|
| District Cooling Chilled Water Rate | GPM |
|
|
27
28
|
| District Cooling Mass Flow Rate | kg/s |
|
|
28
29
|
| District Cooling Inlet Temperature | °C |
|
|
@@ -32,7 +32,8 @@ Heating:OtherFuels
|
|
|
32
32
|
WaterSystems:OtherFuels
|
|
33
33
|
InteriorEquipment:OtherFuels
|
|
34
34
|
DistrictCooling:Facility
|
|
35
|
-
|
|
35
|
+
DistrictHeatingSteam:Facility
|
|
36
|
+
DistrictHeatingWater:Facility
|
|
36
37
|
District Cooling Chilled Water Rate
|
|
37
38
|
District Cooling Mass Flow Rate
|
|
38
39
|
District Cooling Inlet Temperature
|
|
@@ -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
|
},
|
|
@@ -946,8 +971,12 @@
|
|
|
946
971
|
"description": "Sum of all distric cooling end uses consumption (kWh)",
|
|
947
972
|
"type": "number"
|
|
948
973
|
},
|
|
949
|
-
"
|
|
950
|
-
"description": "Sum of all distric heating end uses consumption (kWh)",
|
|
974
|
+
"district_heating_steam_kwh": {
|
|
975
|
+
"description": "Sum of all distric heating steam end uses consumption (kWh)",
|
|
976
|
+
"type": "number"
|
|
977
|
+
},
|
|
978
|
+
"district_heating_water_kwh": {
|
|
979
|
+
"description": "Sum of all distric heating water end uses consumption (kWh)",
|
|
951
980
|
"type": "number"
|
|
952
981
|
},
|
|
953
982
|
"water_qbft": {
|
|
@@ -1081,7 +1110,10 @@
|
|
|
1081
1110
|
"district_cooling_kwh": {
|
|
1082
1111
|
"$ref": "#/definitions/EndUse"
|
|
1083
1112
|
},
|
|
1084
|
-
"
|
|
1113
|
+
"district_heating_water_kwh": {
|
|
1114
|
+
"$ref": "#/definitions/EndUse"
|
|
1115
|
+
},
|
|
1116
|
+
"district_heating_steam_kwh": {
|
|
1085
1117
|
"$ref": "#/definitions/EndUse"
|
|
1086
1118
|
},
|
|
1087
1119
|
"water_qbft": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# *********************************************************************************
|
|
2
|
-
# URBANopt (tm), Copyright (c) Alliance for
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
@column_names.
|
|
196
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
8
|
+
VERSION = '1.2.0'.freeze
|
|
9
9
|
end
|
|
10
10
|
end
|
data/lib/urbanopt/reporting.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# *********************************************************************************
|
|
2
|
-
# URBANopt (tm), Copyright (c) Alliance for
|
|
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
|
|
|
@@ -25,11 +25,14 @@ Gem::Specification.new do |spec|
|
|
|
25
25
|
# It would be nice to be able to use newer patches of Ruby 3.2, which would require os-extension to relax its dependency on bundler.
|
|
26
26
|
spec.required_ruby_version = '3.2.2'
|
|
27
27
|
|
|
28
|
-
spec.add_development_dependency '
|
|
29
|
-
spec.add_development_dependency '
|
|
30
|
-
spec.add_development_dependency '
|
|
28
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
|
29
|
+
spec.add_development_dependency 'rspec', '~> 3.9'
|
|
30
|
+
spec.add_development_dependency 'rubocop', '~> 1.50'
|
|
31
|
+
spec.add_development_dependency 'rubocop-performance', '~> 1.20'
|
|
32
|
+
spec.add_development_dependency 'simplecov', '~> 0.22.0'
|
|
33
|
+
spec.add_development_dependency 'simplecov-lcov', '~> 0.8.0'
|
|
31
34
|
|
|
32
35
|
spec.add_runtime_dependency 'json_pure', '~> 2.7'
|
|
33
36
|
spec.add_runtime_dependency 'json-schema', '~> 4.3.1'
|
|
34
|
-
spec.add_dependency 'openstudio-extension', '~> 0.
|
|
37
|
+
spec.add_dependency 'openstudio-extension', '~> 0.9.4'
|
|
35
38
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: urbanopt-reporting
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Rawad El Kontar
|
|
@@ -9,48 +9,90 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: exe
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2026-01-23 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
15
|
+
name: rake
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
requirements:
|
|
18
|
+
- - "~>"
|
|
19
|
+
- !ruby/object:Gem::Version
|
|
20
|
+
version: '13.0'
|
|
21
|
+
type: :development
|
|
22
|
+
prerelease: false
|
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
24
|
+
requirements:
|
|
25
|
+
- - "~>"
|
|
26
|
+
- !ruby/object:Gem::Version
|
|
27
|
+
version: '13.0'
|
|
14
28
|
- !ruby/object:Gem::Dependency
|
|
15
29
|
name: rspec
|
|
16
30
|
requirement: !ruby/object:Gem::Requirement
|
|
17
31
|
requirements:
|
|
18
32
|
- - "~>"
|
|
19
33
|
- !ruby/object:Gem::Version
|
|
20
|
-
version: '3.
|
|
34
|
+
version: '3.9'
|
|
21
35
|
type: :development
|
|
22
36
|
prerelease: false
|
|
23
37
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
38
|
requirements:
|
|
25
39
|
- - "~>"
|
|
26
40
|
- !ruby/object:Gem::Version
|
|
27
|
-
version: '3.
|
|
41
|
+
version: '3.9'
|
|
42
|
+
- !ruby/object:Gem::Dependency
|
|
43
|
+
name: rubocop
|
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
|
45
|
+
requirements:
|
|
46
|
+
- - "~>"
|
|
47
|
+
- !ruby/object:Gem::Version
|
|
48
|
+
version: '1.50'
|
|
49
|
+
type: :development
|
|
50
|
+
prerelease: false
|
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
52
|
+
requirements:
|
|
53
|
+
- - "~>"
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '1.50'
|
|
56
|
+
- !ruby/object:Gem::Dependency
|
|
57
|
+
name: rubocop-performance
|
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
|
59
|
+
requirements:
|
|
60
|
+
- - "~>"
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: '1.20'
|
|
63
|
+
type: :development
|
|
64
|
+
prerelease: false
|
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
66
|
+
requirements:
|
|
67
|
+
- - "~>"
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: '1.20'
|
|
28
70
|
- !ruby/object:Gem::Dependency
|
|
29
71
|
name: simplecov
|
|
30
72
|
requirement: !ruby/object:Gem::Requirement
|
|
31
73
|
requirements:
|
|
32
|
-
- -
|
|
74
|
+
- - "~>"
|
|
33
75
|
- !ruby/object:Gem::Version
|
|
34
76
|
version: 0.22.0
|
|
35
77
|
type: :development
|
|
36
78
|
prerelease: false
|
|
37
79
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
80
|
requirements:
|
|
39
|
-
- -
|
|
81
|
+
- - "~>"
|
|
40
82
|
- !ruby/object:Gem::Version
|
|
41
83
|
version: 0.22.0
|
|
42
84
|
- !ruby/object:Gem::Dependency
|
|
43
85
|
name: simplecov-lcov
|
|
44
86
|
requirement: !ruby/object:Gem::Requirement
|
|
45
87
|
requirements:
|
|
46
|
-
- -
|
|
88
|
+
- - "~>"
|
|
47
89
|
- !ruby/object:Gem::Version
|
|
48
90
|
version: 0.8.0
|
|
49
91
|
type: :development
|
|
50
92
|
prerelease: false
|
|
51
93
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
94
|
requirements:
|
|
53
|
-
- -
|
|
95
|
+
- - "~>"
|
|
54
96
|
- !ruby/object:Gem::Version
|
|
55
97
|
version: 0.8.0
|
|
56
98
|
- !ruby/object:Gem::Dependency
|
|
@@ -87,14 +129,14 @@ dependencies:
|
|
|
87
129
|
requirements:
|
|
88
130
|
- - "~>"
|
|
89
131
|
- !ruby/object:Gem::Version
|
|
90
|
-
version: 0.
|
|
132
|
+
version: 0.9.4
|
|
91
133
|
type: :runtime
|
|
92
134
|
prerelease: false
|
|
93
135
|
version_requirements: !ruby/object:Gem::Requirement
|
|
94
136
|
requirements:
|
|
95
137
|
- - "~>"
|
|
96
138
|
- !ruby/object:Gem::Version
|
|
97
|
-
version: 0.
|
|
139
|
+
version: 0.9.4
|
|
98
140
|
description: Library include scenario default reporting measure and scenario defaults
|
|
99
141
|
reports schema and classes
|
|
100
142
|
email:
|