urbanopt-reporting 0.1.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 +7 -0
- data/.gitignore +24 -0
- data/.rubocop.yml +10 -0
- data/CHANGELOG.md +7 -0
- data/CONTRIBUTING.md +58 -0
- data/Gemfile +18 -0
- data/Jenkinsfile +10 -0
- data/LICENSE.md +27 -0
- data/README.md +40 -0
- data/Rakefile +45 -0
- data/doc_templates/LICENSE.md +27 -0
- data/doc_templates/README.md.erb +42 -0
- data/doc_templates/copyright_erb.txt +31 -0
- data/doc_templates/copyright_js.txt +4 -0
- data/doc_templates/copyright_ruby.txt +29 -0
- data/lib/measures/.rubocop.yml +5 -0
- data/lib/measures/default_feature_reports/LICENSE.md +27 -0
- data/lib/measures/default_feature_reports/README.md +26 -0
- data/lib/measures/default_feature_reports/README.md.erb +42 -0
- data/lib/measures/default_feature_reports/measure.rb +1012 -0
- data/lib/measures/default_feature_reports/measure.xml +160 -0
- data/lib/urbanopt/reporting.rb +37 -0
- data/lib/urbanopt/reporting/default_reports.rb +44 -0
- data/lib/urbanopt/reporting/default_reports/construction_cost.rb +169 -0
- data/lib/urbanopt/reporting/default_reports/date.rb +97 -0
- data/lib/urbanopt/reporting/default_reports/distributed_generation.rb +379 -0
- data/lib/urbanopt/reporting/default_reports/end_use.rb +159 -0
- data/lib/urbanopt/reporting/default_reports/end_uses.rb +140 -0
- data/lib/urbanopt/reporting/default_reports/extension.rb +15 -0
- data/lib/urbanopt/reporting/default_reports/feature_report.rb +266 -0
- data/lib/urbanopt/reporting/default_reports/generator.rb +92 -0
- data/lib/urbanopt/reporting/default_reports/location.rb +99 -0
- data/lib/urbanopt/reporting/default_reports/logger.rb +44 -0
- data/lib/urbanopt/reporting/default_reports/power_distribution.rb +103 -0
- data/lib/urbanopt/reporting/default_reports/program.rb +265 -0
- data/lib/urbanopt/reporting/default_reports/reporting_period.rb +300 -0
- data/lib/urbanopt/reporting/default_reports/scenario_report.rb +317 -0
- data/lib/urbanopt/reporting/default_reports/schema/README.md +33 -0
- data/lib/urbanopt/reporting/default_reports/schema/scenario_csv_columns.txt +34 -0
- data/lib/urbanopt/reporting/default_reports/schema/scenario_schema.json +857 -0
- data/lib/urbanopt/reporting/default_reports/solar_pv.rb +93 -0
- data/lib/urbanopt/reporting/default_reports/storage.rb +105 -0
- data/lib/urbanopt/reporting/default_reports/timeseries_csv.rb +300 -0
- data/lib/urbanopt/reporting/default_reports/validator.rb +112 -0
- data/lib/urbanopt/reporting/default_reports/wind.rb +92 -0
- data/lib/urbanopt/reporting/derived_extension.rb +63 -0
- data/lib/urbanopt/reporting/version.rb +35 -0
- data/urbanopt-reporting-gem.gemspec +33 -0
- metadata +176 -0
@@ -0,0 +1,33 @@
|
|
1
|
+
# URBANopt Scenario Schema
|
2
|
+
|
3
|
+
The URBANopt Scenario Gem includes functionality for defining scenarios, running simulations, and post-processing results. An URBANopt Scenario describes a specific set of options to apply to each Feature in a FeatureFile (e.g. each GeoJSON Feature in an URBANopt GeoJSON File). User defined SimulationMapper classes translate each Feature to a SimulationDir which is a directory containing simulation input files. A ScenarioRunner is used to perform simulations for each SimulationDir. Finally, a ScenarioPostProcessor can run on a Scenario to generate scenario level results. The [URBANopt Scenario Gem Design Document](https://docs.google.com/document/d/1ExcGuHliaSvPlrYevAJTSV8XAtTQXz_KQqH3p4iQDwg/edit) describes the gem in more detail. The [URBANopt Example Project](https://github.com/urbanopt/urbanopt-example-project) demonstrates how to use the URBANopt Scenario Gem to perform a scenario analysis.
|
4
|
+
|
5
|
+
## Reporting output units
|
6
|
+
|
7
|
+
**JSON Output Units**
|
8
|
+
|
9
|
+
- energy outputs: kbtu
|
10
|
+
- water rate outputs : GPM (gallon per minute)
|
11
|
+
- mass flow rate outputs : lbs/min
|
12
|
+
- Temperature outputs : °F
|
13
|
+
- area output: sf
|
14
|
+
- measured distance output: ft
|
15
|
+
- cost outputs: $
|
16
|
+
|
17
|
+
**CSV Output Units**
|
18
|
+
|
19
|
+
| output | unit |
|
20
|
+
| -----------------------------------------| ------- |
|
21
|
+
| Electricity:Facility | kWh |
|
22
|
+
| ElectricityProduced:Facility | kWh |
|
23
|
+
| Gas:Facility | kBtu |
|
24
|
+
| DistrictCooling:Facility | kWh |
|
25
|
+
| DistrictHeating:Facility | kWh |
|
26
|
+
| District Cooling Chilled Water Rate | GPM |
|
27
|
+
| District Cooling Mass Flow Rate | kg/s |
|
28
|
+
| District Cooling Inlet Temperature | °C |
|
29
|
+
| District Cooling Outlet Temperature | °C |
|
30
|
+
| District Heating Hot Water Rate | GPM |
|
31
|
+
| District Heating Mass Flow Rate | kg/s |
|
32
|
+
| District Heating Inlet Temperature | °C |
|
33
|
+
| District Heating Outlet Temperature | °C |
|
@@ -0,0 +1,34 @@
|
|
1
|
+
Datetime
|
2
|
+
Electricity:Facility
|
3
|
+
ElectricityProduced:Facility
|
4
|
+
Gas:Facility
|
5
|
+
Cooling:Electricity
|
6
|
+
Heating:Electricity
|
7
|
+
InteriorLights:Electricity
|
8
|
+
ExteriorLights:Electricity
|
9
|
+
InteriorEquipment:Electricity
|
10
|
+
Fans:Electricity
|
11
|
+
Pumps:Electricity
|
12
|
+
WaterSystems:Electricity
|
13
|
+
HeatRejection:Electricity
|
14
|
+
HeatRejection:Gas
|
15
|
+
Heating:Gas
|
16
|
+
WaterSystems:Gas
|
17
|
+
InteriorEquipment:Gas
|
18
|
+
DistrictCooling:Facility
|
19
|
+
DistrictHeating:Facility
|
20
|
+
District Cooling Chilled Water Rate
|
21
|
+
District Cooling Mass Flow Rate
|
22
|
+
District Cooling Inlet Temperature
|
23
|
+
District Cooling Outlet Temperature
|
24
|
+
District Heating Hot Water Rate
|
25
|
+
District Heating Mass Flow Rate
|
26
|
+
District Heating Inlet Temperature
|
27
|
+
District Heating Outlet Temperature
|
28
|
+
Net Electric Energy
|
29
|
+
Electricity:Facility Power
|
30
|
+
ElectricityProduced:Facility Power
|
31
|
+
Electricity:Facility Apparent Power
|
32
|
+
ElectricityProduced:Facility Apparent Power
|
33
|
+
Net Power
|
34
|
+
Net Apparent Power
|
@@ -0,0 +1,857 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
"description": "Comment describing your JSON Schema",
|
4
|
+
"type": "object",
|
5
|
+
"properties": {
|
6
|
+
"scenario_report": {
|
7
|
+
"$ref": "#/definitions/ScenarioReport"
|
8
|
+
},
|
9
|
+
"feature_reports": {
|
10
|
+
"description": "features of each data point in the scenario",
|
11
|
+
"type": "array",
|
12
|
+
"items": {
|
13
|
+
"$ref": "#/definitions/FeatureReport"
|
14
|
+
}
|
15
|
+
}
|
16
|
+
},
|
17
|
+
"required": [
|
18
|
+
"scenario_report"
|
19
|
+
],
|
20
|
+
"additionalProperties": false,
|
21
|
+
"definitions": {
|
22
|
+
"ScenarioReport": {
|
23
|
+
"type": "object",
|
24
|
+
"properties": {
|
25
|
+
"id": {
|
26
|
+
"type": "string"
|
27
|
+
},
|
28
|
+
"name": {
|
29
|
+
"type": "string"
|
30
|
+
},
|
31
|
+
"directory_name": {
|
32
|
+
"type": "string"
|
33
|
+
},
|
34
|
+
"timesteps_per_hour": {
|
35
|
+
"$ref": "#/definitions/TimestepsPerHour"
|
36
|
+
},
|
37
|
+
"number_of_not_started_simulations": {
|
38
|
+
"type": "number"
|
39
|
+
},
|
40
|
+
"number_of_started_simulations": {
|
41
|
+
"type": "number"
|
42
|
+
},
|
43
|
+
"number_of_complete_simulations": {
|
44
|
+
"type": "number"
|
45
|
+
},
|
46
|
+
"number_of_failed_simulations": {
|
47
|
+
"type": "number"
|
48
|
+
},
|
49
|
+
"location": {
|
50
|
+
"$ref": "#/definitions/Location"
|
51
|
+
},
|
52
|
+
"timeseries_csv": {
|
53
|
+
"$ref": "#/definitions/TimeseriesCSV"
|
54
|
+
},
|
55
|
+
"program": {
|
56
|
+
"$ref": "#/definitions/Program"
|
57
|
+
},
|
58
|
+
"construction_costs": {
|
59
|
+
"$ref": "#/definitions/ConstructionCosts"
|
60
|
+
},
|
61
|
+
"reporting_periods": {
|
62
|
+
"$ref": "#/definitions/ReportingPeriods"
|
63
|
+
},
|
64
|
+
"distributed_generation": {
|
65
|
+
"$ref": "#/definitions/DistributedGeneration"
|
66
|
+
}
|
67
|
+
},
|
68
|
+
"required": [
|
69
|
+
"id",
|
70
|
+
"name",
|
71
|
+
"directory_name",
|
72
|
+
"timesteps_per_hour",
|
73
|
+
"number_of_not_started_simulations",
|
74
|
+
"number_of_started_simulations",
|
75
|
+
"number_of_complete_simulations",
|
76
|
+
"number_of_failed_simulations",
|
77
|
+
"program"
|
78
|
+
],
|
79
|
+
"additionalProperties": false
|
80
|
+
},
|
81
|
+
"DistributedGeneration": {
|
82
|
+
"type": "object",
|
83
|
+
"properties": {
|
84
|
+
"lcc_us_dollars": {
|
85
|
+
"description": "Optimal lifecycle cost",
|
86
|
+
"type": "number"
|
87
|
+
},
|
88
|
+
"npv_us_dollars": {
|
89
|
+
"description": "Net present value of savings realized by the project",
|
90
|
+
"type": "number"
|
91
|
+
},
|
92
|
+
"year_one_energy_cost_us_dollars": {
|
93
|
+
"description": "Optimal year one utility energy cost",
|
94
|
+
"type": "number"
|
95
|
+
},
|
96
|
+
"year_one_demand_cost_us_dollars": {
|
97
|
+
"description": "Optimal year one utility demand cost",
|
98
|
+
"type": "number"
|
99
|
+
},
|
100
|
+
"year_one_bill_us_dollars": {
|
101
|
+
"description": "Optimal year one utility bill",
|
102
|
+
"type": "number"
|
103
|
+
},
|
104
|
+
"total_energy_cost_us_dollars": {
|
105
|
+
"description": "Total utility energy cost over the lifecycle, after-tax",
|
106
|
+
"type": "number"
|
107
|
+
},
|
108
|
+
"SolarPV": {
|
109
|
+
"$ref": "#/definitions/SolarPV"
|
110
|
+
},
|
111
|
+
"Wind": {
|
112
|
+
"$ref": "#/definitions/Wind"
|
113
|
+
},
|
114
|
+
"Generator": {
|
115
|
+
"$ref": "#/definitions/Generator"
|
116
|
+
},
|
117
|
+
"Storage": {
|
118
|
+
"$ref": "#/definitions/Storage"
|
119
|
+
}
|
120
|
+
}
|
121
|
+
},
|
122
|
+
"SolarPV": {
|
123
|
+
"type": "object",
|
124
|
+
"properties": {
|
125
|
+
"size_kw": {
|
126
|
+
"description": "rated power in kW",
|
127
|
+
"type": "string"
|
128
|
+
}
|
129
|
+
}
|
130
|
+
},
|
131
|
+
"Wind": {
|
132
|
+
"type": "object",
|
133
|
+
"properties": {
|
134
|
+
"size_kw": {
|
135
|
+
"description": "rated power in kW",
|
136
|
+
"type": "string"
|
137
|
+
}
|
138
|
+
}
|
139
|
+
},
|
140
|
+
"Generator": {
|
141
|
+
"type": "object",
|
142
|
+
"properties": {
|
143
|
+
"size_kw": {
|
144
|
+
"description": "rated power in kW",
|
145
|
+
"type": "string"
|
146
|
+
}
|
147
|
+
}
|
148
|
+
},
|
149
|
+
"Storage": {
|
150
|
+
"type": "object",
|
151
|
+
"properties": {
|
152
|
+
"size_kw": {
|
153
|
+
"description": "rated power in kW",
|
154
|
+
"type": "string"
|
155
|
+
},
|
156
|
+
"size_kw": {
|
157
|
+
"description": "rated capacity in kWh",
|
158
|
+
"type": "string"
|
159
|
+
}
|
160
|
+
}
|
161
|
+
},
|
162
|
+
"FeatureReport": {
|
163
|
+
"type": "object",
|
164
|
+
"properties": {
|
165
|
+
"id": {
|
166
|
+
"description": "Id refers to the id of a building/feature",
|
167
|
+
"type": "string"
|
168
|
+
},
|
169
|
+
"name": {
|
170
|
+
"description": "name refers to the name of the feature (eg. Building 1, tranformer 5)",
|
171
|
+
"type": "string"
|
172
|
+
},
|
173
|
+
"directory_name": {
|
174
|
+
"type": "string"
|
175
|
+
},
|
176
|
+
"feature_type": {
|
177
|
+
"type": "string",
|
178
|
+
"enum": [
|
179
|
+
"Building",
|
180
|
+
"District System",
|
181
|
+
"Transformer"
|
182
|
+
]
|
183
|
+
},
|
184
|
+
"timesteps_per_hour": {
|
185
|
+
"$ref": "#/definitions/TimestepsPerHour"
|
186
|
+
},
|
187
|
+
"simulation_status": {
|
188
|
+
"type": "string",
|
189
|
+
"enum": [
|
190
|
+
"Not Started",
|
191
|
+
"Started",
|
192
|
+
"Complete",
|
193
|
+
"Failed"
|
194
|
+
]
|
195
|
+
},
|
196
|
+
"timeseries_csv": {
|
197
|
+
"$ref": "#/definitions/TimeseriesCSV"
|
198
|
+
},
|
199
|
+
"location": {
|
200
|
+
"$ref": "#/definitions/Location"
|
201
|
+
},
|
202
|
+
"program": {
|
203
|
+
"$ref": "#/definitions/Program"
|
204
|
+
},
|
205
|
+
"design_parameters": {
|
206
|
+
"$ref": "#/definitions/DesignParameters"
|
207
|
+
},
|
208
|
+
"construction_costs": {
|
209
|
+
"$ref": "#/definitions/ConstructionCosts"
|
210
|
+
},
|
211
|
+
"reporting_periods": {
|
212
|
+
"$ref": "#/definitions/ReportingPeriods"
|
213
|
+
},
|
214
|
+
"distributed_generation": {
|
215
|
+
"$ref": "#/definitions/DistributedGeneration"
|
216
|
+
},
|
217
|
+
"power_distribution": {
|
218
|
+
"$ref": "#/definitions/PowerDistribution"
|
219
|
+
}
|
220
|
+
},
|
221
|
+
"required": [
|
222
|
+
"id",
|
223
|
+
"name",
|
224
|
+
"directory_name",
|
225
|
+
"feature_type",
|
226
|
+
"timesteps_per_hour",
|
227
|
+
"simulation_status"
|
228
|
+
],
|
229
|
+
"additionalProperties": false
|
230
|
+
},
|
231
|
+
"ReportingPeriods": {
|
232
|
+
"type": "array",
|
233
|
+
"items": {
|
234
|
+
"$ref": "#/definitions/ReportingPeriod"
|
235
|
+
}
|
236
|
+
},
|
237
|
+
"ReportingPeriod": {
|
238
|
+
"description": "Non-overlapping reporting periods",
|
239
|
+
"type": "object",
|
240
|
+
"properties": {
|
241
|
+
"id": {
|
242
|
+
"description": "Id refers to the id of the reporting period. Ids of reporting periods are matched across simulations, so the same period of time gets the same id for all simulations.",
|
243
|
+
"type": "number"
|
244
|
+
},
|
245
|
+
"name": {
|
246
|
+
"description": "name refers to the name of the reporting period(eg. Annual, January)",
|
247
|
+
"type": "string"
|
248
|
+
},
|
249
|
+
"multiplier": {
|
250
|
+
"description": "Multiplier used if this reporting period is representative of mulitple periods. For example one week simulation that represents entire month.",
|
251
|
+
"type": "number",
|
252
|
+
"default": 1
|
253
|
+
},
|
254
|
+
"start_date": {
|
255
|
+
"$ref": "#/definitions/Date"
|
256
|
+
},
|
257
|
+
"end_date": {
|
258
|
+
"$ref": "#/definitions/Date"
|
259
|
+
},
|
260
|
+
"total_site_energy": {
|
261
|
+
"description": "Total energy used on site, does not include generation (kBtu)",
|
262
|
+
"type": "number"
|
263
|
+
},
|
264
|
+
"total_source_energy": {
|
265
|
+
"description": "Total source energy used, does not include generation (kBtu)",
|
266
|
+
"type": "number"
|
267
|
+
},
|
268
|
+
"net_site_energy": {
|
269
|
+
"description": "Net site energy (kBtu)",
|
270
|
+
"type": "number"
|
271
|
+
},
|
272
|
+
"net_source_energy": {
|
273
|
+
"description": "Net source energy (kBtu)",
|
274
|
+
"type": "number"
|
275
|
+
},
|
276
|
+
"total_utility_cost": {
|
277
|
+
"description": "Total utility cost",
|
278
|
+
"type": "number"
|
279
|
+
},
|
280
|
+
"net_utility_cost": {
|
281
|
+
"description": "Net utility cost for reporting period includes generation",
|
282
|
+
"type": "number"
|
283
|
+
},
|
284
|
+
"utility_costs": {
|
285
|
+
"type": "array",
|
286
|
+
"items": {
|
287
|
+
"$ref": "#/definitions/UtilityCost"
|
288
|
+
}
|
289
|
+
},
|
290
|
+
"electricity": {
|
291
|
+
"description": "Sum of all electricity used, does not include electricity produced (kWh)",
|
292
|
+
"type": "number"
|
293
|
+
},
|
294
|
+
"natural_gas": {
|
295
|
+
"description": "Sum of all natural gas end uses consumption (kBtu)",
|
296
|
+
"type": "number"
|
297
|
+
},
|
298
|
+
"additional_fuel": {
|
299
|
+
"description": "Sum of all additional fuel end uses consumption (kBtu)",
|
300
|
+
"type": "number"
|
301
|
+
},
|
302
|
+
"district_cooling": {
|
303
|
+
"description": "Sum of all distric cooling end uses consumption (kBtu)",
|
304
|
+
"type": "number"
|
305
|
+
},
|
306
|
+
"district_heating": {
|
307
|
+
"description": "Sum of all distric heating end uses consumption (kBtu)",
|
308
|
+
"type": "number"
|
309
|
+
},
|
310
|
+
"water": {
|
311
|
+
"description": "Sum of all water end uses consumption (ft^3)",
|
312
|
+
"type": "number"
|
313
|
+
},
|
314
|
+
"electricity_produced": {
|
315
|
+
"description": "Sum of all electricity produced (kWh)",
|
316
|
+
"type": "number"
|
317
|
+
},
|
318
|
+
"end_uses": {
|
319
|
+
"$ref": "#/definitions/EndUses"
|
320
|
+
},
|
321
|
+
"energy_production": {
|
322
|
+
"description": "Energy produced for reporting period. Electricity reported in kWh, water in m^3, all others in kBtu.",
|
323
|
+
"type": "object",
|
324
|
+
"properties": {
|
325
|
+
"electricity_produced": {
|
326
|
+
"type": "object",
|
327
|
+
"properties": {
|
328
|
+
"photovoltaic": {
|
329
|
+
"type": "number"
|
330
|
+
}
|
331
|
+
},
|
332
|
+
"additionalProperties": false
|
333
|
+
}
|
334
|
+
},
|
335
|
+
"additionalProperties": false
|
336
|
+
},
|
337
|
+
"comfort_result": {
|
338
|
+
"$ref": "#/definitions/ComfortResult"
|
339
|
+
}
|
340
|
+
},
|
341
|
+
"additionalProperties": false
|
342
|
+
},
|
343
|
+
"Date": {
|
344
|
+
"type": "object",
|
345
|
+
"properties": {
|
346
|
+
"month": {
|
347
|
+
"type": "integer"
|
348
|
+
},
|
349
|
+
"day_of_month": {
|
350
|
+
"type": "integer"
|
351
|
+
},
|
352
|
+
"year": {
|
353
|
+
"type": "integer"
|
354
|
+
}
|
355
|
+
},
|
356
|
+
"additionalProperties": false
|
357
|
+
},
|
358
|
+
"EndUses": {
|
359
|
+
"description": "End uses for reporting period. Does not include energy produced. Electricity reported in kWh, water in m^3, all others in kBtu.",
|
360
|
+
"type": "object",
|
361
|
+
"properties": {
|
362
|
+
"electricity": {
|
363
|
+
"$ref": "#/definitions/EndUse"
|
364
|
+
},
|
365
|
+
"natural_gas": {
|
366
|
+
"$ref": "#/definitions/EndUse"
|
367
|
+
},
|
368
|
+
"additional_fuel": {
|
369
|
+
"$ref": "#/definitions/EndUse"
|
370
|
+
},
|
371
|
+
"district_cooling": {
|
372
|
+
"$ref": "#/definitions/EndUse"
|
373
|
+
},
|
374
|
+
"district_heating": {
|
375
|
+
"$ref": "#/definitions/EndUse"
|
376
|
+
},
|
377
|
+
"water": {
|
378
|
+
"$ref": "#/definitions/EndUse"
|
379
|
+
}
|
380
|
+
},
|
381
|
+
"additionalProperties": false
|
382
|
+
},
|
383
|
+
"EndUse": {
|
384
|
+
"type": "object",
|
385
|
+
"properties": {
|
386
|
+
"heating": {
|
387
|
+
"type": "number"
|
388
|
+
},
|
389
|
+
"cooling": {
|
390
|
+
"type": "number"
|
391
|
+
},
|
392
|
+
"interior_lighting": {
|
393
|
+
"type": "number"
|
394
|
+
},
|
395
|
+
"exterior_lighting": {
|
396
|
+
"type": "number"
|
397
|
+
},
|
398
|
+
"interior_equipment": {
|
399
|
+
"type": "number"
|
400
|
+
},
|
401
|
+
"exterior_equipment": {
|
402
|
+
"type": "number"
|
403
|
+
},
|
404
|
+
"fans": {
|
405
|
+
"type": "number"
|
406
|
+
},
|
407
|
+
"pumps": {
|
408
|
+
"type": "number"
|
409
|
+
},
|
410
|
+
"heat_rejection": {
|
411
|
+
"type": "number"
|
412
|
+
},
|
413
|
+
"humidification": {
|
414
|
+
"type": "number"
|
415
|
+
},
|
416
|
+
"heat_recovery": {
|
417
|
+
"type": "number"
|
418
|
+
},
|
419
|
+
"water_systems": {
|
420
|
+
"type": "number"
|
421
|
+
},
|
422
|
+
"refrigeration": {
|
423
|
+
"type": "number"
|
424
|
+
},
|
425
|
+
"generators": {
|
426
|
+
"type": "number"
|
427
|
+
}
|
428
|
+
},
|
429
|
+
"additionalProperties": false
|
430
|
+
},
|
431
|
+
"ComfortResult": {
|
432
|
+
"type": "object",
|
433
|
+
"properties": {
|
434
|
+
"time_setpoint_not_met_during_occupied_cooling": {
|
435
|
+
"description": "(hrs)",
|
436
|
+
"type": "number"
|
437
|
+
},
|
438
|
+
"time_setpoint_not_met_during_occupied_heating": {
|
439
|
+
"description": "(hrs)",
|
440
|
+
"type": "number"
|
441
|
+
},
|
442
|
+
"time_setpoint_not_met_during_occupied_hours": {
|
443
|
+
"description": "(hrs)",
|
444
|
+
"type": "number"
|
445
|
+
},
|
446
|
+
"hours_out_of_comfort_bounds_PMV": {
|
447
|
+
"type": "number"
|
448
|
+
},
|
449
|
+
"hours_out_of_comfort_bounds_PPD": {
|
450
|
+
"type": "number"
|
451
|
+
}
|
452
|
+
},
|
453
|
+
"additionalProperties": false
|
454
|
+
},
|
455
|
+
"ConstructionCosts": {
|
456
|
+
"type": "array",
|
457
|
+
"items": {
|
458
|
+
"$ref": "#/definitions/ConstructionCost"
|
459
|
+
}
|
460
|
+
},
|
461
|
+
"ConstructionCost": {
|
462
|
+
"description": "Program related information, does not change in time",
|
463
|
+
"type": "object",
|
464
|
+
"properties": {
|
465
|
+
"category": {
|
466
|
+
"type": "string",
|
467
|
+
"enum": [
|
468
|
+
"Construction",
|
469
|
+
"Building",
|
470
|
+
"Space",
|
471
|
+
"ThermalZone",
|
472
|
+
"AirLoop",
|
473
|
+
"PlantLoop",
|
474
|
+
"ZoneHVAC",
|
475
|
+
"Lights",
|
476
|
+
"Luminaire",
|
477
|
+
"Equipment",
|
478
|
+
"HVACComponent",
|
479
|
+
"ZoneHVACComponent"
|
480
|
+
]
|
481
|
+
},
|
482
|
+
"item_name": {
|
483
|
+
"description": "Name of the item being costed, e.g. the name of the exterior wall construction",
|
484
|
+
"type": "string"
|
485
|
+
},
|
486
|
+
"unit_cost": {
|
487
|
+
"description": "Cost per unit of item, e.g. cost per area of construction. This can be adjusted in post processing.",
|
488
|
+
"type": "number"
|
489
|
+
},
|
490
|
+
"cost_units": {
|
491
|
+
"description": "Unit of cost for this item",
|
492
|
+
"type": "string",
|
493
|
+
"enum": [
|
494
|
+
"CostPerEach",
|
495
|
+
"CostPerFt2",
|
496
|
+
"CostPerKW",
|
497
|
+
"CostPerCFM"
|
498
|
+
]
|
499
|
+
},
|
500
|
+
"item_quantity": {
|
501
|
+
"description": "Amount of the item in units corresponding to cost_units",
|
502
|
+
"type": "number"
|
503
|
+
},
|
504
|
+
"total_cost": {
|
505
|
+
"description": "Total cost is unit_cost multiplied by item_quantity. Can be updated if unit_cost is changed.",
|
506
|
+
"type": "number"
|
507
|
+
}
|
508
|
+
},
|
509
|
+
"additionalProperties": false
|
510
|
+
},
|
511
|
+
"UtilityCost": {
|
512
|
+
"type": "object",
|
513
|
+
"properties": {
|
514
|
+
"fuel_type": {
|
515
|
+
"type": "string",
|
516
|
+
"enum": [
|
517
|
+
"Electricity",
|
518
|
+
"Natural Gas",
|
519
|
+
"District Cooling",
|
520
|
+
"District Heating",
|
521
|
+
"Additional Fuel",
|
522
|
+
"Water"
|
523
|
+
]
|
524
|
+
},
|
525
|
+
"total_cost": {
|
526
|
+
"description": "($)",
|
527
|
+
"type": "number"
|
528
|
+
},
|
529
|
+
"usage_cost": {
|
530
|
+
"description": "($)",
|
531
|
+
"type": "number"
|
532
|
+
},
|
533
|
+
"demand_cost": {
|
534
|
+
"description": "($)",
|
535
|
+
"type": "number"
|
536
|
+
}
|
537
|
+
},
|
538
|
+
"additionalProperties": false
|
539
|
+
},
|
540
|
+
"Location": {
|
541
|
+
"type": "object",
|
542
|
+
"properties": {
|
543
|
+
"latitude": {
|
544
|
+
"description": "(deg)",
|
545
|
+
"type": "number"
|
546
|
+
},
|
547
|
+
"longitude": {
|
548
|
+
"description": "(deg)",
|
549
|
+
"type": "number"
|
550
|
+
},
|
551
|
+
"surface_elevation": {
|
552
|
+
"description": "The surface elevation (above NAVD88 datum) (ft).",
|
553
|
+
"type": "number"
|
554
|
+
},
|
555
|
+
"weather_filename": {
|
556
|
+
"description": "Name of EPW weather file.",
|
557
|
+
"type": "string"
|
558
|
+
}
|
559
|
+
},
|
560
|
+
"additionalProperties": false
|
561
|
+
},
|
562
|
+
"TimestepsPerHour": {
|
563
|
+
"type": "integer",
|
564
|
+
"minimum": 1,
|
565
|
+
"maximum": 60
|
566
|
+
},
|
567
|
+
"Program": {
|
568
|
+
"type": "object",
|
569
|
+
"properties": {
|
570
|
+
"site_area": {
|
571
|
+
"description": "Area of the entire site or lot (ft^2)",
|
572
|
+
"type": "number"
|
573
|
+
},
|
574
|
+
"floor_area": {
|
575
|
+
"description": "Building gross floor area (ft^2)",
|
576
|
+
"type": "number"
|
577
|
+
},
|
578
|
+
"conditioned_area": {
|
579
|
+
"description": "Building conditioned floor area (ft^2)",
|
580
|
+
"type": "number"
|
581
|
+
},
|
582
|
+
"unconditioned_area": {
|
583
|
+
"description": "Building unconditioned floor area (ft^2)",
|
584
|
+
"type": "number"
|
585
|
+
},
|
586
|
+
"footprint_area": {
|
587
|
+
"description": "Building floorprint area (ft^2)",
|
588
|
+
"type": "number"
|
589
|
+
},
|
590
|
+
"maximum_roof_height": {
|
591
|
+
"description": "Maximum height of the roof relative to surface elevation (ft)",
|
592
|
+
"type": "number"
|
593
|
+
},
|
594
|
+
"maximum_number_of_stories": {
|
595
|
+
"description": "The maximum number of building stories, sum of number of above and below ground stories.",
|
596
|
+
"type": "number"
|
597
|
+
},
|
598
|
+
"maximum_number_of_stories_above_ground": {
|
599
|
+
"description": "The maximum number of building stories above ground",
|
600
|
+
"type": "number"
|
601
|
+
},
|
602
|
+
"parking_area": {
|
603
|
+
"description": "Parking gross area (ft^2)",
|
604
|
+
"type": "number"
|
605
|
+
},
|
606
|
+
"number_of_parking_spaces": {
|
607
|
+
"description": "Number of parking spaces",
|
608
|
+
"type": "number"
|
609
|
+
},
|
610
|
+
"number_of_parking_spaces_charging": {
|
611
|
+
"description": "Number of parking spaces with electric vehicle charging",
|
612
|
+
"type": "number"
|
613
|
+
},
|
614
|
+
"parking_footprint_area": {
|
615
|
+
"description": "Parking floorprint area (ft^2)",
|
616
|
+
"type": "number"
|
617
|
+
},
|
618
|
+
"maximum_parking_height": {
|
619
|
+
"description": "Maximum height of the parking structure relative to surface elevation (ft)",
|
620
|
+
"type": "number"
|
621
|
+
},
|
622
|
+
"maximum_number_of_parking_stories": {
|
623
|
+
"description": "The maximum number of parking stories, sum of number of above and below ground stories.",
|
624
|
+
"type": "number"
|
625
|
+
},
|
626
|
+
"maximum_number_of_parking_stories_above_ground": {
|
627
|
+
"description": "The maximum number of parking stories above ground",
|
628
|
+
"type": "number"
|
629
|
+
},
|
630
|
+
"number_of_residential_units": {
|
631
|
+
"description": "Total number of residential units.",
|
632
|
+
"type": "integer"
|
633
|
+
},
|
634
|
+
"building_types": {
|
635
|
+
"type": "array",
|
636
|
+
"items": {
|
637
|
+
"$ref": "#/definitions/BuildingType"
|
638
|
+
}
|
639
|
+
},
|
640
|
+
"window_area": {
|
641
|
+
"description": "Exterior windows gross area (ft^2)",
|
642
|
+
"type": "object",
|
643
|
+
"properties": {
|
644
|
+
"north_window_area": {
|
645
|
+
"type": "number"
|
646
|
+
},
|
647
|
+
"south_window_area": {
|
648
|
+
"type": "number"
|
649
|
+
},
|
650
|
+
"east_window_area": {
|
651
|
+
"type": "number"
|
652
|
+
},
|
653
|
+
"west_window_area": {
|
654
|
+
"type": "number"
|
655
|
+
},
|
656
|
+
"total_window_area": {
|
657
|
+
"type": "number"
|
658
|
+
}
|
659
|
+
},
|
660
|
+
"required": [
|
661
|
+
"total_window_area"
|
662
|
+
],
|
663
|
+
"additionalProperties": false
|
664
|
+
},
|
665
|
+
"wall_area": {
|
666
|
+
"description": "exterior walls gross area (ft^2)",
|
667
|
+
"type": "object",
|
668
|
+
"properties": {
|
669
|
+
"north_wall_area": {
|
670
|
+
"type": "number"
|
671
|
+
},
|
672
|
+
"south_wall_area": {
|
673
|
+
"type": "number"
|
674
|
+
},
|
675
|
+
"east_wall_area": {
|
676
|
+
"type": "number"
|
677
|
+
},
|
678
|
+
"west_wall_area": {
|
679
|
+
"type": "number"
|
680
|
+
},
|
681
|
+
"total_wall_area": {
|
682
|
+
"type": "number"
|
683
|
+
}
|
684
|
+
},
|
685
|
+
"required": [
|
686
|
+
"north_wall_area",
|
687
|
+
"south_wall_area",
|
688
|
+
"east_wall_area",
|
689
|
+
"west_wall_area",
|
690
|
+
"total_wall_area"
|
691
|
+
],
|
692
|
+
"additionalProperties": false
|
693
|
+
},
|
694
|
+
"roof_area": {
|
695
|
+
"type": "object",
|
696
|
+
"properties": {
|
697
|
+
"equipment_roof_area": {
|
698
|
+
"type": "number"
|
699
|
+
},
|
700
|
+
"photovoltaic_roof_area": {
|
701
|
+
"type": "number"
|
702
|
+
},
|
703
|
+
"available_roof_area": {
|
704
|
+
"description": "gross roof area (ft^2)",
|
705
|
+
"type": "number"
|
706
|
+
},
|
707
|
+
"total_roof_area": {
|
708
|
+
"description": "Exterior roofs gross area (ft^2)",
|
709
|
+
"type": "number"
|
710
|
+
}
|
711
|
+
},
|
712
|
+
"required": [
|
713
|
+
"total_roof_area"
|
714
|
+
],
|
715
|
+
"additionalProperties": false
|
716
|
+
},
|
717
|
+
"orientation": {
|
718
|
+
"description": "Rotation of longest axis from East-West,about up axis (deg)",
|
719
|
+
"type": "number"
|
720
|
+
},
|
721
|
+
"aspect_ratio": {
|
722
|
+
"description": "Ratio of longest to shortest axis",
|
723
|
+
"type": "number"
|
724
|
+
},
|
725
|
+
"total_construction_cost": {
|
726
|
+
"description": "total construction cost calculated from the defined cost per floor area ($)",
|
727
|
+
"type": "number"
|
728
|
+
}
|
729
|
+
},
|
730
|
+
"required": [
|
731
|
+
"floor_area",
|
732
|
+
"conditioned_area",
|
733
|
+
"unconditioned_area",
|
734
|
+
"footprint_area",
|
735
|
+
"maximum_roof_height",
|
736
|
+
"number_of_residential_units",
|
737
|
+
"building_types",
|
738
|
+
"window_area",
|
739
|
+
"wall_area",
|
740
|
+
"roof_area"
|
741
|
+
],
|
742
|
+
"additionalProperties": false
|
743
|
+
},
|
744
|
+
"BuildingType": {
|
745
|
+
"type": "object",
|
746
|
+
"properties": {
|
747
|
+
"building_type": {
|
748
|
+
"description": "Primary building space type",
|
749
|
+
"type": "string",
|
750
|
+
"enum": [
|
751
|
+
"Single-Family",
|
752
|
+
"Multifamily (2 to 4 units)",
|
753
|
+
"Multifamily (5 or more units)",
|
754
|
+
"Mobile Home",
|
755
|
+
"Vacant",
|
756
|
+
"Office",
|
757
|
+
"Laboratory",
|
758
|
+
"Nonrefrigerated warehouse",
|
759
|
+
"Food sales",
|
760
|
+
"Public order and safety",
|
761
|
+
"Outpatient health care",
|
762
|
+
"Refrigerated warehouse",
|
763
|
+
"Religious worship",
|
764
|
+
"Public assembly",
|
765
|
+
"Education",
|
766
|
+
"Food service",
|
767
|
+
"Inpatient health care",
|
768
|
+
"Nursing",
|
769
|
+
"Lodging",
|
770
|
+
"Strip shopping mall",
|
771
|
+
"Enclosed mall",
|
772
|
+
"Retail other than mall",
|
773
|
+
"Service"
|
774
|
+
]
|
775
|
+
},
|
776
|
+
"maximum_occupancy": {
|
777
|
+
"description": "Maximum number of occupants ",
|
778
|
+
"type": "number"
|
779
|
+
},
|
780
|
+
"floor_area": {
|
781
|
+
"description": "Building gross floor area of this type (ft^2)",
|
782
|
+
"type": "number"
|
783
|
+
}
|
784
|
+
},
|
785
|
+
"required": [
|
786
|
+
"building_type",
|
787
|
+
"maximum_occupancy",
|
788
|
+
"floor_area"
|
789
|
+
],
|
790
|
+
"additionalProperties": false
|
791
|
+
},
|
792
|
+
"DesignParameters": {
|
793
|
+
"type": "object",
|
794
|
+
"properties": {
|
795
|
+
"district_cooling_chilled_water_rate": {
|
796
|
+
"type": "number"
|
797
|
+
},
|
798
|
+
"district_cooling_mass_flow_rate": {
|
799
|
+
"type": "number"
|
800
|
+
},
|
801
|
+
"district_cooling_inlet_temperature": {
|
802
|
+
"type": "number"
|
803
|
+
},
|
804
|
+
"district_cooling_outlet_temperature": {
|
805
|
+
"type": "number"
|
806
|
+
},
|
807
|
+
"district_heating_hot_water_rate": {
|
808
|
+
"type": "number"
|
809
|
+
},
|
810
|
+
"district_heating_mass_flow_rate": {
|
811
|
+
"type": "number"
|
812
|
+
},
|
813
|
+
"district_heating_inlet_temperature": {
|
814
|
+
"type": "number"
|
815
|
+
},
|
816
|
+
"district_heating_outlet_temperature": {
|
817
|
+
"type": "number"
|
818
|
+
}
|
819
|
+
},
|
820
|
+
"additionalProperties": false
|
821
|
+
},
|
822
|
+
"TimeseriesCSV": {
|
823
|
+
"type": "object",
|
824
|
+
"properties": {
|
825
|
+
"path": {
|
826
|
+
"type": "string"
|
827
|
+
},
|
828
|
+
"first_report_datetime": {
|
829
|
+
"type": "string"
|
830
|
+
},
|
831
|
+
"column_names": {
|
832
|
+
"type": "array",
|
833
|
+
"items": {
|
834
|
+
"type": "string"
|
835
|
+
}
|
836
|
+
}
|
837
|
+
},
|
838
|
+
"required": [
|
839
|
+
"path",
|
840
|
+
"first_report_datetime",
|
841
|
+
"column_names"
|
842
|
+
],
|
843
|
+
"additionalProperties": false
|
844
|
+
},
|
845
|
+
"PowerDistribution": {
|
846
|
+
"type": "object",
|
847
|
+
"properties": {
|
848
|
+
"over_voltage_hours": {
|
849
|
+
"type": "number"
|
850
|
+
},
|
851
|
+
"under_voltage_hours": {
|
852
|
+
"type": "number"
|
853
|
+
}
|
854
|
+
}
|
855
|
+
}
|
856
|
+
}
|
857
|
+
}
|