urbanopt-reporting 0.3.1 → 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +42 -2
- data/docs/package-lock.json +3 -3
- data/docs/package.json +1 -1
- data/lib/measures/default_feature_reports/measure.rb +78 -32
- data/lib/measures/default_feature_reports/measure.xml +3 -3
- data/lib/measures/export_modelica_loads/LICENSE.md +27 -0
- data/lib/measures/export_modelica_loads/README.md +26 -0
- data/lib/measures/export_modelica_loads/README.md.erb +42 -0
- data/lib/measures/export_modelica_loads/docs/.gitkeep +0 -0
- data/lib/measures/export_modelica_loads/measure.rb +374 -0
- data/lib/measures/export_modelica_loads/measure.xml +92 -0
- data/lib/measures/export_modelica_loads/resources/report.html.in +13 -0
- data/lib/measures/export_time_series_modelica/LICENSE.md +1 -0
- data/lib/measures/export_time_series_modelica/README.md +59 -0
- data/lib/measures/export_time_series_modelica/README.md.erb +42 -0
- data/lib/measures/export_time_series_modelica/docs/.gitkeep +0 -0
- data/lib/measures/export_time_series_modelica/measure.rb +430 -0
- data/lib/measures/export_time_series_modelica/measure.xml +147 -0
- data/lib/measures/export_time_series_modelica/resources/os_lib_helper_methods.rb +399 -0
- data/lib/measures/export_time_series_modelica/resources/report.html.in +13 -0
- data/lib/urbanopt/reporting/default_reports/end_use.rb +38 -17
- data/lib/urbanopt/reporting/default_reports/feature_report.rb +52 -4
- data/lib/urbanopt/reporting/default_reports/reporting_period.rb +14 -2
- data/lib/urbanopt/reporting/default_reports/scenario_report.rb +10 -5
- data/lib/urbanopt/reporting/default_reports/schema/scenario_csv_columns.txt +11 -10
- data/lib/urbanopt/reporting/default_reports/schema/scenario_schema.json +27 -12
- data/lib/urbanopt/reporting/version.rb +1 -1
- data/urbanopt-reporting-gem.gemspec +1 -1
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62dbeebffeb4088f111f04c86062b6c2db3a9f061ccf7dc6a84b1a5824456272
|
4
|
+
data.tar.gz: 705785c0bdbe0725ab6814be1a263627f1daf64d8cddab12efce59276bdca1bf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a76f98043801029d98477f18fa123aafd5f84fc46977b5ebb2ee946d1d09b68d7d560e392e87418742abc66faf7ebc8df9cd9be65e1d18e9183e0a259d7d353e
|
7
|
+
data.tar.gz: 87e1cd2f3615e3845f50c7af04d685c72cc4242bb5d545f20c6821807cf55196c65a4a328534cb850069225d2653b2d1b4872cf4d3f07d7e9deea85c3502f4a8
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,45 @@
|
|
1
1
|
# URBANopt Reporting Gem
|
2
2
|
|
3
|
+
## Version 0.3.6
|
4
|
+
|
5
|
+
Date Range: 02/05/21 - 02/11/21
|
6
|
+
|
7
|
+
- Fixed [#64]( https://github.com/urbanopt/urbanopt-reporting-gem/issues/64 ), EnergyPlus changed output fuel names in version 9.4
|
8
|
+
|
9
|
+
## Version 0.3.5
|
10
|
+
|
11
|
+
Date Range: 01/16/21 - 02/04/21
|
12
|
+
|
13
|
+
- Fixed [#58]( https://github.com/urbanopt/urbanopt-reporting-gem/issues/58 ), Feature report saving bug fix.
|
14
|
+
- Fixed [#60]( https://github.com/urbanopt/urbanopt-reporting-gem/issues/60 ), Added EV/ ExteriorEquipment results to csv and json reports
|
15
|
+
- Fixed [#61]( https://github.com/urbanopt/urbanopt-reporting-gem/issues/61 ), Enhance the aggregation of enduses.
|
16
|
+
|
17
|
+
|
18
|
+
## Version 0.3.4
|
19
|
+
|
20
|
+
Date Range: 01/14/21 - 01/15/21
|
21
|
+
|
22
|
+
- Fixed [#53]( https://github.com/urbanopt/urbanopt-reporting-gem/issues/53 ), Make subfolders in feature saving if necessary
|
23
|
+
- Fixed [#55]( https://github.com/urbanopt/urbanopt-reporting-gem/issues/55 ), Fix new measures
|
24
|
+
|
25
|
+
## Version 0.3.3
|
26
|
+
|
27
|
+
Date Range: 12/09/20 - 01/13/21
|
28
|
+
|
29
|
+
- Fixed [#36]( https://github.com/urbanopt/urbanopt-reporting-gem/issues/36 ), Add reporting measure for district heating/cooling system mass flow rates
|
30
|
+
- Fixed [#37]( https://github.com/urbanopt/urbanopt-reporting-gem/issues/37 ), Add EUI to default report
|
31
|
+
- Fixed [#38]( https://github.com/urbanopt/urbanopt-reporting-gem/issues/38 ), Add better error handling around convert_units
|
32
|
+
- Fixed [#43]( https://github.com/urbanopt/urbanopt-reporting-gem/issues/43 ), Add available_roof_area calculation
|
33
|
+
- Fixed [#44]( https://github.com/urbanopt/urbanopt-reporting-gem/issues/44 ), Fix coordinates order
|
34
|
+
|
35
|
+
## Version 0.3.2
|
36
|
+
|
37
|
+
Date Range: 12/07/20 - 12/08/20
|
38
|
+
|
39
|
+
- Fixed [#27]( https://github.com/urbanopt/urbanopt-reporting-gem/issues/27 ), reporting measure fails when there are no additional fuels in the model
|
40
|
+
- Fixed [#29]( https://github.com/urbanopt/urbanopt-reporting-gem/issues/29 ), restore save_feature_report function for backward compatibility
|
41
|
+
- Fixed [#32]( https://github.com/urbanopt/urbanopt-reporting-gem/issues/32 ), bump extension-gem dependency
|
42
|
+
|
3
43
|
## Version 0.3.1
|
4
44
|
|
5
45
|
Date Range: 11/26/2020 - 12/07/2020
|
@@ -11,7 +51,7 @@ Date Range: 11/26/2020 - 12/07/2020
|
|
11
51
|
## Version 0.3.0
|
12
52
|
|
13
53
|
Date Range: 11/12/2020 - 11/25/2020
|
14
|
-
|
54
|
+
|
15
55
|
- Updating dependencies to support OpenStudio 3.1.0
|
16
56
|
|
17
57
|
## Version 0.2.1
|
@@ -43,4 +83,4 @@ Date Range: 08/27/2020 - 09/21/2020
|
|
43
83
|
|
44
84
|
08/17/2020
|
45
85
|
|
46
|
-
Initial release of the urbanopt-reporting gem.
|
86
|
+
Initial release of the urbanopt-reporting gem.
|
data/docs/package-lock.json
CHANGED
@@ -4814,9 +4814,9 @@
|
|
4814
4814
|
"integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ=="
|
4815
4815
|
},
|
4816
4816
|
"highlight.js": {
|
4817
|
-
"version": "10.
|
4818
|
-
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.
|
4819
|
-
"integrity": "sha512-
|
4817
|
+
"version": "10.4.1",
|
4818
|
+
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz",
|
4819
|
+
"integrity": "sha512-yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg=="
|
4820
4820
|
},
|
4821
4821
|
"hmac-drbg": {
|
4822
4822
|
"version": "1.0.1",
|
data/docs/package.json
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
},
|
11
11
|
"author": "NREL",
|
12
12
|
"dependencies": {
|
13
|
-
"highlight.js": "^10.
|
13
|
+
"highlight.js": "^10.4.1",
|
14
14
|
"json-schema-ref-parser": "^9.0.6",
|
15
15
|
"json-schema-view-js": "git+https://git@github.com/bgschiller/json-schema-view-js.git",
|
16
16
|
"vuepress": "^1.7.1",
|
@@ -101,10 +101,9 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
101
101
|
def fuel_types
|
102
102
|
fuel_types = {
|
103
103
|
'Electricity' => 'Electricity',
|
104
|
-
'
|
105
|
-
'
|
104
|
+
'NaturalGas' => 'Natural Gas',
|
105
|
+
'FuelOilNo2' => 'Fuel Oil #2',
|
106
106
|
'Propane' => 'Propane',
|
107
|
-
'AdditionalFuel' => 'Additional Fuel',
|
108
107
|
'DistrictCooling' => 'District Cooling',
|
109
108
|
'DistrictHeating' => 'District Heating',
|
110
109
|
'Water' => 'Water'
|
@@ -165,9 +164,9 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
165
164
|
|
166
165
|
# Request the output for each end use/fuel type combination
|
167
166
|
end_uses.each do |end_use|
|
168
|
-
end_use,
|
167
|
+
end_use, = end_use
|
169
168
|
fuel_types.each do |fuel_type|
|
170
|
-
fuel_type,
|
169
|
+
fuel_type, = fuel_type
|
171
170
|
variable_name = if end_use == 'Facility'
|
172
171
|
"#{fuel_type}:#{end_use}"
|
173
172
|
else
|
@@ -178,17 +177,17 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
178
177
|
end
|
179
178
|
|
180
179
|
# OtherFuels
|
181
|
-
other_fuels = [
|
182
|
-
other_fuel_uses = [
|
183
|
-
custom_meter_facility =
|
180
|
+
other_fuels = ['FuelOil#1', 'Diesel', 'Gasoline', 'Coal', 'Steam']
|
181
|
+
other_fuel_uses = ['HeatRejection', 'Heating', 'WaterSystems', 'InteriorEquipment']
|
182
|
+
custom_meter_facility = 'Meter:Custom,OtherFuels:Facility,OtherFuel1'
|
184
183
|
other_fuel_uses.each do |end_use|
|
185
184
|
custom_meter = "Meter:Custom,#{end_use}:OtherFuels,OtherFuel1"
|
186
|
-
other_fuels.each do |other_fuel|
|
185
|
+
other_fuels.each do |other_fuel|
|
187
186
|
result << OpenStudio::IdfObject.load("Output:Meter,#{end_use}:#{other_fuel},#{reporting_frequency};").get
|
188
187
|
custom_meter_facility += ",,#{end_use}:#{other_fuel}"
|
189
188
|
custom_meter += ",,#{end_use}:#{other_fuel}"
|
190
189
|
end
|
191
|
-
custom_meter +=
|
190
|
+
custom_meter += ';'
|
192
191
|
result << OpenStudio::IdfObject.load(custom_meter).get
|
193
192
|
result << OpenStudio::IdfObject.load("Output:Meter,#{end_use}:OtherFuels,#{reporting_frequency};").get
|
194
193
|
end
|
@@ -201,6 +200,7 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
201
200
|
result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,Gas:Facility,#{reporting_frequency};").get
|
202
201
|
result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,DistrictCooling:Facility,#{reporting_frequency};").get
|
203
202
|
result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,DistrictHeating:Facility,#{reporting_frequency};").get
|
203
|
+
|
204
204
|
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,Cooling:Electricity,#{reporting_frequency};").get
|
205
205
|
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,Heating:Electricity,#{reporting_frequency};").get
|
206
206
|
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,InteriorLights:Electricity,#{reporting_frequency};").get
|
@@ -209,18 +209,22 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
209
209
|
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,Fans:Electricity,#{reporting_frequency};").get
|
210
210
|
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,Pumps:Electricity,#{reporting_frequency};").get
|
211
211
|
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,WaterSystems:Electricity,#{reporting_frequency};").get
|
212
|
-
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,Heating:
|
213
|
-
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,WaterSystems:
|
214
|
-
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,InteriorEquipment:
|
212
|
+
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,Heating:NaturalGas,#{reporting_frequency};").get
|
213
|
+
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,WaterSystems:NaturalGas,#{reporting_frequency};").get
|
214
|
+
# result << OpenStudio::IdfObject.load("Output:Meter:MeterFileOnly,InteriorEquipment:NaturalGas,#{reporting_frequency};").get
|
215
215
|
result << OpenStudio::IdfObject.load('Output:Variable,*,Heating Coil Heating Rate,hourly; !- HVAC Average [W];').get
|
216
|
+
# result << OpenStudio::IdfObject.load("Output:Variable,*,Exterior Equipment:Electric Vehicles,#{reporting_frequency};").get
|
216
217
|
|
217
218
|
timeseries_data = ['District Cooling Chilled Water Rate', 'District Cooling Mass Flow Rate',
|
218
219
|
'District Cooling Inlet Temperature', 'District Cooling Outlet Temperature',
|
219
220
|
'District Heating Hot Water Rate', 'District Heating Mass Flow Rate',
|
220
221
|
'District Heating Inlet Temperature', 'District Heating Outlet Temperature', 'Cooling Coil Total Cooling Rate',
|
221
|
-
'Heating Coil Heating Rate']
|
222
|
+
'Heating Coil Heating Rate', 'ExteriorEquipment:Electricity']
|
222
223
|
|
223
224
|
tes_timeseries_data = ['Ice Thermal Storage End Fraction', 'Cooling coil Ice Thermal Storage End Fraction']
|
225
|
+
|
226
|
+
ev_timeseries_data = ['Exterior Equipment:Electric Vehicles']
|
227
|
+
|
224
228
|
timeseries_data += tes_timeseries_data
|
225
229
|
|
226
230
|
timeseries_data.each do |ts|
|
@@ -258,6 +262,11 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
258
262
|
if value.nil?
|
259
263
|
return nil
|
260
264
|
end
|
265
|
+
if from_units.nil? || to_units.nil?
|
266
|
+
@runner.registerError("Cannot convert units...from_units: #{from_units} or to_units: #{to_units} left blank.")
|
267
|
+
return nil
|
268
|
+
end
|
269
|
+
|
261
270
|
# apply unit conversion
|
262
271
|
value_converted = OpenStudio.convert(value, from_units, to_units)
|
263
272
|
if value_converted.is_initialized
|
@@ -353,10 +362,10 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
353
362
|
##
|
354
363
|
|
355
364
|
if feature_location.include? '['
|
356
|
-
# get latitude from feature_location
|
357
|
-
latitude = (feature_location.split(',')[0].delete! '[]').to_f
|
358
365
|
# get longitude from feature_location
|
359
|
-
longitude = (feature_location.split(',')[
|
366
|
+
longitude = (feature_location.split(',')[0].delete! '[]').to_f
|
367
|
+
# get latitude from feature_location
|
368
|
+
latitude = (feature_location.split(',')[1].delete! '[]').to_f
|
360
369
|
# latitude
|
361
370
|
feature_report.location.latitude_deg = latitude
|
362
371
|
# longitude
|
@@ -495,7 +504,22 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
495
504
|
total_roof_area += surface.netArea
|
496
505
|
end
|
497
506
|
end
|
498
|
-
|
507
|
+
|
508
|
+
total_roof_area_sqft = convert_units(total_roof_area, 'm^2', 'ft^2')
|
509
|
+
feature_report.program.roof_area_sqft[:total_roof_area_sqft] = total_roof_area_sqft
|
510
|
+
|
511
|
+
# available_roof_area_sqft
|
512
|
+
# RK: a more robust method should be implemented to find the available_roof_area
|
513
|
+
# assign available roof area to be a percentage of the total roof area
|
514
|
+
|
515
|
+
if building_types[0][:building_type].include? 'Single-Family Detached'
|
516
|
+
feature_report.program.roof_area_sqft[:available_roof_area_sqft] = 0.45 * total_roof_area_sqft
|
517
|
+
else
|
518
|
+
feature_report.program.roof_area_sqft[:available_roof_area_sqft] = 0.75 * total_roof_area_sqft
|
519
|
+
end
|
520
|
+
|
521
|
+
# RK: Temporary solution: assign available roof area to be equal to total roof area
|
522
|
+
# feature_report.program.roof_area_sqft[:available_roof_area_sqft] = total_roof_area_sqft
|
499
523
|
|
500
524
|
# orientation
|
501
525
|
# RK: a more robust method should be implemented to find orientation(finding main axis of the building using aspect ratio)
|
@@ -581,6 +605,22 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
581
605
|
total_source_energy = sql_query(runner, sql_file, 'AnnualBuildingUtilityPerformanceSummary', "TableName='Site and Source Energy' AND RowName='Total Source Energy' AND ColumnName='Total Energy'")
|
582
606
|
feature_report.reporting_periods[0].total_source_energy_kwh = convert_units(total_source_energy, 'GJ', 'kWh')
|
583
607
|
|
608
|
+
# EUI is only valid with a full year of energy data
|
609
|
+
if begin_month == 1 && begin_day_of_month == 1 && end_month == 12 && end_day_of_month == 31
|
610
|
+
# calculate site EUI
|
611
|
+
site_EUI_kwh_per_m2 = feature_report.reporting_periods[0].total_site_energy_kwh / floor_area
|
612
|
+
site_EUI_kbtu_per_ft2 = convert_units(total_site_energy, 'GJ', 'kBtu') / feature_report.program.floor_area_sqft
|
613
|
+
# add site EUI to feature report
|
614
|
+
feature_report.reporting_periods[0].site_EUI_kwh_per_m2 = site_EUI_kwh_per_m2
|
615
|
+
feature_report.reporting_periods[0].site_EUI_kbtu_per_ft2 = site_EUI_kbtu_per_ft2
|
616
|
+
# calculate source EUI
|
617
|
+
source_EUI_kwh_per_m2 = feature_report.reporting_periods[0].total_source_energy_kwh / floor_area
|
618
|
+
source_EUI_kbtu_per_ft2 = convert_units(total_source_energy, 'GJ', 'kBtu') / feature_report.program.floor_area_sqft
|
619
|
+
# add source EUI to feature report
|
620
|
+
feature_report.reporting_periods[0].source_EUI_kwh_per_m2 = source_EUI_kwh_per_m2
|
621
|
+
feature_report.reporting_periods[0].source_EUI_kbtu_per_ft2 = source_EUI_kbtu_per_ft2
|
622
|
+
end
|
623
|
+
|
584
624
|
# net_site_energy
|
585
625
|
net_site_energy = sql_query(runner, sql_file, 'AnnualBuildingUtilityPerformanceSummary', "TableName='Site and Source Energy' AND RowName='Net Site Energy' AND ColumnName='Total Energy'")
|
586
626
|
feature_report.reporting_periods[0].net_site_energy_kwh = convert_units(net_site_energy, 'GJ', 'kWh')
|
@@ -603,7 +643,7 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
603
643
|
feature_report.reporting_periods[0].propane_kwh = convert_units(propane, 'GJ', 'kWh') unless propane.nil?
|
604
644
|
|
605
645
|
# fuel_oil
|
606
|
-
fuel_oil = sql_query(runner, sql_file, 'EnergyMeters', "TableName='Annual and Peak Values - Other' AND RowName='
|
646
|
+
fuel_oil = sql_query(runner, sql_file, 'EnergyMeters', "TableName='Annual and Peak Values - Other' AND RowName='FuelOilNo2:Facility' AND ColumnName='Annual Value'")
|
607
647
|
feature_report.reporting_periods[0].fuel_oil_kwh = 0.0
|
608
648
|
feature_report.reporting_periods[0].fuel_oil_kwh = convert_units(fuel_oil, 'GJ', 'kWh') unless fuel_oil.nil?
|
609
649
|
|
@@ -698,12 +738,17 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
698
738
|
sql_r -= feature_report.reporting_periods[0].end_uses.fuel_oil_kwh.send(y)
|
699
739
|
end
|
700
740
|
building_types.each do |i|
|
701
|
-
sql_r = 0.0 if
|
741
|
+
sql_r = 0.0 if i[:building_type].include?('Single-Family Detached') && x_u.include?('district')
|
702
742
|
end
|
703
743
|
m.send("#{y}=", sql_r)
|
704
744
|
end
|
705
745
|
end
|
706
746
|
|
747
|
+
# add enduses subcategories
|
748
|
+
electric_vehicles = sql_query(runner, sql_file, 'AnnualBuildingUtilityPerformanceSummary', "TableName='End Uses By Subcategory' AND RowName='Exterior Equipment:Electric Vehicles' AND ColumnName='Electricity'")
|
749
|
+
puts "electric_vehicle = #{electric_vehicles}"
|
750
|
+
feature_report.reporting_periods[0].end_uses.electricity_kwh.electric_vehicles = convert_units(electric_vehicles, 'GJ', 'kWh')
|
751
|
+
|
707
752
|
### energy_production
|
708
753
|
## electricity_produced
|
709
754
|
# photovoltaic
|
@@ -758,31 +803,32 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
758
803
|
requested_timeseries_names = [
|
759
804
|
'Electricity:Facility',
|
760
805
|
'ElectricityProduced:Facility',
|
761
|
-
'
|
806
|
+
'NaturalGas:Facility',
|
762
807
|
'Propane:Facility',
|
763
|
-
'
|
808
|
+
'FuelOilNo2:Facility',
|
764
809
|
'OtherFuels:Facility',
|
765
810
|
'Cooling:Electricity',
|
766
811
|
'Heating:Electricity',
|
767
812
|
'InteriorLights:Electricity',
|
768
813
|
'ExteriorLights:Electricity',
|
769
814
|
'InteriorEquipment:Electricity',
|
815
|
+
'ExteriorEquipment:Electricity',
|
770
816
|
'Fans:Electricity',
|
771
817
|
'Pumps:Electricity',
|
772
818
|
'WaterSystems:Electricity',
|
773
819
|
'HeatRejection:Electricity',
|
774
|
-
'HeatRejection:
|
775
|
-
'Heating:
|
776
|
-
'WaterSystems:
|
777
|
-
'InteriorEquipment:
|
820
|
+
'HeatRejection:NaturalGas',
|
821
|
+
'Heating:NaturalGas',
|
822
|
+
'WaterSystems:NaturalGas',
|
823
|
+
'InteriorEquipment:NaturalGas',
|
778
824
|
'HeatRejection:Propane',
|
779
825
|
'Heating:Propane',
|
780
826
|
'WaterSystems:Propane',
|
781
827
|
'InteriorEquipment:Propane',
|
782
|
-
'HeatRejection:
|
783
|
-
'Heating:
|
784
|
-
'WaterSystems:
|
785
|
-
'InteriorEquipment:
|
828
|
+
'HeatRejection:FuelOilNo2',
|
829
|
+
'Heating:FuelOilNo2',
|
830
|
+
'WaterSystems:FuelOilNo2',
|
831
|
+
'InteriorEquipment:FuelOilNo2',
|
786
832
|
'HeatRejection:OtherFuels',
|
787
833
|
'Heating:OtherFuels',
|
788
834
|
'WaterSystems:OtherFuels',
|
@@ -850,7 +896,7 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
850
896
|
puts " *********timeseries_name = #{timeseries_name}******************"
|
851
897
|
runner.registerInfo("TIMESERIES: #{timeseries_name}")
|
852
898
|
|
853
|
-
# get all the key values that this timeseries can be reported for (e.g. if PMV is requested for each zone)
|
899
|
+
# get all the key values that this timeseries can be reported for (e.g. if PMV is requested for each zone)
|
854
900
|
if timeseries_name.include?('OtherFuels')
|
855
901
|
key_values = sql_file.availableKeyValues('RUN PERIOD 1', 'Zone Timestep', timeseries_name.upcase)
|
856
902
|
else
|
@@ -926,7 +972,7 @@ class DefaultFeatureReports < OpenStudio::Measure::ReportingMeasure
|
|
926
972
|
# unit conversion
|
927
973
|
old_unit = ts.get.units if ts.is_initialized
|
928
974
|
|
929
|
-
if timeseries_name.include?('
|
975
|
+
if timeseries_name.include?('NaturalGas') || timeseries_name.include?('Propane') || timeseries_name.include?('FuelOilNo2') || timeseries_name.include?('OtherFuels')
|
930
976
|
new_unit = 'kBtu'
|
931
977
|
else
|
932
978
|
new_unit = case old_unit.to_s
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<schema_version>3.0</schema_version>
|
4
4
|
<name>default_feature_reports</name>
|
5
5
|
<uid>9ee3135a-8070-4408-bfa1-b75fecf9dd4f</uid>
|
6
|
-
<version_id>
|
7
|
-
<version_modified>
|
6
|
+
<version_id>d4f5b2e2-f93d-4ce2-9c68-ed29714fdc0c</version_id>
|
7
|
+
<version_modified>20201208T230102Z</version_modified>
|
8
8
|
<xml_checksum>FB304155</xml_checksum>
|
9
9
|
<class_name>DefaultFeatureReports</class_name>
|
10
10
|
<display_name>DefaultFeatureReports</display_name>
|
@@ -153,7 +153,7 @@
|
|
153
153
|
<filename>measure.rb</filename>
|
154
154
|
<filetype>rb</filetype>
|
155
155
|
<usage_type>script</usage_type>
|
156
|
-
<checksum>
|
156
|
+
<checksum>48AEB753</checksum>
|
157
157
|
</file>
|
158
158
|
</files>
|
159
159
|
</measure>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
OpenStudio(R), Copyright (c) 2008-2020, Alliance for Sustainable Energy, LLC. All rights reserved.
|
2
|
+
|
3
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted
|
4
|
+
provided that the following conditions are met:
|
5
|
+
|
6
|
+
(1) Redistributions of source code must retain the above copyright notice, this list of conditions
|
7
|
+
and the following disclaimer.
|
8
|
+
|
9
|
+
(2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions
|
10
|
+
and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
11
|
+
|
12
|
+
(3) Neither the name of the copyright holder nor the names of any contributors may be used to endorse
|
13
|
+
or promote products derived from this software without specific prior written permission from the
|
14
|
+
respective party.
|
15
|
+
|
16
|
+
(4) Other than as required in clauses (1) and (2), distributions in any form of modifications or other
|
17
|
+
derivative works may not use the "OpenStudio" trademark, "OS", "os", or any other confusingly similar
|
18
|
+
designation without specific prior written permission from Alliance for Sustainable Energy, LLC.
|
19
|
+
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
|
21
|
+
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
22
|
+
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER, THE UNITED STATES GOVERNMENT,
|
23
|
+
OR ANY CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
24
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
25
|
+
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
26
|
+
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
27
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
@@ -0,0 +1,26 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
###### (Automatically generated documentation)
|
4
|
+
|
5
|
+
# Export Modelica Loads
|
6
|
+
|
7
|
+
## Description
|
8
|
+
Use the results from the EnergyPlus simulation to generate a load file for use in Modelica. This will create a MOS and a CSV file of the heating, cooling, and hot water loads.
|
9
|
+
|
10
|
+
## Modeler Description
|
11
|
+
|
12
|
+
|
13
|
+
## Measure Type
|
14
|
+
ReportingMeasure
|
15
|
+
|
16
|
+
## Taxonomy
|
17
|
+
|
18
|
+
|
19
|
+
## Arguments
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
This measure does not have any user arguments
|
25
|
+
|
26
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<%#= README.md.erb is used to auto-generate README.md. %>
|
2
|
+
<%#= To manually maintain README.md throw away README.md.erb and manually edit README.md %>
|
3
|
+
###### (Automatically generated documentation)
|
4
|
+
|
5
|
+
# <%= name %>
|
6
|
+
|
7
|
+
## Description
|
8
|
+
<%= description %>
|
9
|
+
|
10
|
+
## Modeler Description
|
11
|
+
<%= modelerDescription %>
|
12
|
+
|
13
|
+
## Measure Type
|
14
|
+
<%= measureType %>
|
15
|
+
|
16
|
+
## Taxonomy
|
17
|
+
<%= taxonomy %>
|
18
|
+
|
19
|
+
## Arguments
|
20
|
+
|
21
|
+
<% arguments.each do |argument| %>
|
22
|
+
### <%= argument[:display_name] %>
|
23
|
+
<%= argument[:description] %>
|
24
|
+
**Name:** <%= argument[:name] %>,
|
25
|
+
**Type:** <%= argument[:type] %>,
|
26
|
+
**Units:** <%= argument[:units] %>,
|
27
|
+
**Required:** <%= argument[:required] %>,
|
28
|
+
**Model Dependent:** <%= argument[:model_dependent] %>
|
29
|
+
<% end %>
|
30
|
+
|
31
|
+
<% if arguments.size == 0 %>
|
32
|
+
<%= "This measure does not have any user arguments" %>
|
33
|
+
<% end %>
|
34
|
+
|
35
|
+
<% if outputs.size > 0 %>
|
36
|
+
## Outputs
|
37
|
+
<% output_names = [] %>
|
38
|
+
<% outputs.each do |output| %>
|
39
|
+
<% output_names << output[:display_name] %>
|
40
|
+
<% end %>
|
41
|
+
<%= output_names.join(", ") %>
|
42
|
+
<% end %>
|