urbanopt-cli 0.8.3 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +5 -6
- data/CHANGELOG.md +20 -0
- data/CMakeLists.txt +7 -7
- data/Gemfile +3 -1
- data/LICENSE.md +1 -1
- data/README.md +9 -0
- data/Rakefile +1 -1
- data/example_files/Gemfile +23 -16
- data/example_files/Gemfile.lock +177 -0
- data/example_files/base_workflow_res.osw +57 -14
- data/example_files/class_project_coincident.json +1322 -0
- data/example_files/class_project_diverse.json +1322 -0
- data/example_files/disco/config.json +42 -0
- data/example_files/disco/cost_database.xlsx +0 -0
- data/example_files/disco/technical_catalog.json +12126 -0
- data/example_files/mappers/Baseline.rb +11 -8
- data/example_files/mappers/ChilledWaterStorage.rb +98 -0
- data/example_files/mappers/ClassProject.rb +110 -0
- data/example_files/mappers/CreateBar.rb +2 -1
- data/example_files/mappers/EvCharging.rb +1 -1
- data/example_files/mappers/FlexibleHotWater.rb +1 -1
- data/example_files/mappers/Floorspace.rb +1 -1
- data/example_files/mappers/HighEfficiency.rb +14 -12
- data/example_files/mappers/HighEfficiencyCreateBar.rb +1 -1
- data/example_files/mappers/HighEfficiencyFloorspace.rb +1 -1
- data/example_files/mappers/PeakHoursMelsShedding.rb +72 -0
- data/example_files/mappers/PeakHoursThermostatAdjust.rb +78 -0
- data/example_files/mappers/ThermalStorage.rb +2 -1
- data/example_files/mappers/base_workflow.osw +55 -14
- data/example_files/mappers/class_project_workflow.osw +328 -0
- data/example_files/mappers/createbar_workflow.osw +16 -16
- data/example_files/measures/BuildResidentialModel/measure.rb +7 -1
- data/example_files/measures/BuildResidentialModel/measure.xml +1313 -706
- data/example_files/opendss/electrical_database.json +1446 -1446
- data/example_files/python_deps/dependencies.json +5 -0
- data/example_files/python_deps/install_python.ps1 +96 -0
- data/example_files/python_deps/install_python.sh +120 -0
- data/example_files/residential/clothes_dryer.tsv +11 -11
- data/example_files/residential/clothes_washer.tsv +3 -3
- data/example_files/residential/dishwasher.tsv +3 -3
- data/example_files/resources/hpxml-measures/.github/pull_request_template.md +0 -1
- data/example_files/resources/hpxml-measures/.github/workflows/config.yml +8 -21
- data/example_files/resources/hpxml-measures/.gitignore +2 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +1272 -1094
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +978 -659
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +52 -74
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +77 -140
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.rb +37 -27
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.xml +42 -15
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules.rb +70 -51
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/tests/build_residential_schedule_file_test.rb +142 -21
- data/example_files/resources/hpxml-measures/Changelog.md +95 -19
- data/example_files/resources/hpxml-measures/Gemfile +2 -4
- data/example_files/resources/hpxml-measures/Gemfile.lock +2 -13
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +276 -300
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +220 -214
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +215 -170
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/battery.rb +115 -18
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +24 -44
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +564 -197
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/cambium/README.md +8 -8
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +1 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +7 -55
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +24 -19
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +541 -211
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +305 -176
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXML.xsd +0 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXMLBaseElements.xsd +230 -141
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXMLDataTypes.xsd +145 -137
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml +191 -97
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schematron/iso-schematron.xsd +391 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +194 -198
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +140 -145
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lighting.rb +11 -11
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/location.rb +33 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/materials.rb +4 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +17 -9
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +14 -12
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/output.rb +39 -17
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/psychrometrics.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/battery.csv +8761 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +114 -57
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/simcontrols.rb +1 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/utility_bills.rb +148 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +90 -128
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/weather.rb +26 -32
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +2 -14
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlvalidator.rb +67 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +117 -56
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_battery.rb +141 -14
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +471 -344
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_enclosure.rb +124 -20
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +28 -32
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +172 -79
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +54 -8
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +3 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_location.rb +4 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +7 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_schedules.rb +6 -9
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_simcontrols.rb +8 -8
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +213 -95
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +1 -10
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_weather.rb +76 -0
- data/example_files/resources/hpxml-measures/README.md +2 -3
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.rb +587 -284
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.xml +304 -352
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/tests/output_report_test.rb +404 -279
- data/example_files/resources/hpxml-measures/ReportUtilityBills/measure.rb +222 -501
- data/example_files/resources/hpxml-measures/ReportUtilityBills/measure.xml +137 -200
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Flat Rate Min Annual Charge.json +649 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Flat Rate Min Monthly Charge.json +649 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Flat Rate.json +647 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Real-Time Pricing Rate Min Annual Charge.json +8776 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Real-Time Pricing Rate Min Monthly Charge.json +8776 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Real-Time Pricing Rate.json +8774 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Rate Min Annual Charge.json +659 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Rate Min Monthly Charge.json +659 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Rate.json +657 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Time-of-Use Rate Min Annual Charge.json +670 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Time-of-Use Rate Min Monthly Charge.json +670 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Tiered Time-of-Use Rate.json +668 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Time-of-Use Rate Min Annual Charge.json +655 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Time-of-Use Rate Min Monthly Charge.json +655 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/Sample Time-of-Use Rate.json +653 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/detailed_rates/openei_rates.zip +0 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/Average_retail_price_of_electricity.csv +0 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/HouseholdConsumption.csv +0 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/NG_PRI_SUM_A_EPG0_PRS_DMCF_A.csv +0 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/PET_PRI_WFR_A_EPD2F_PRS_DPGAL_W.csv +0 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/PET_PRI_WFR_A_EPLLPA_PRS_DPGAL_W.csv +0 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/{Data/UtilityRates → simple_rates}/README.md +0 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/resources/util.rb +506 -25
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/Contains Demand Charges.json +1312 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/Invalid Fixed Charge Units.json +657 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/Invalid Min Charge Units.json +659 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/JacksonElectricMemberCorp-ResidentialSeniorCitizenLowIncomeAssistance.json +681 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/Missing Required Fields.json +54 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/data.csv +8761 -0
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/utility_bills_test.rb +1006 -235
- data/example_files/resources/hpxml-measures/docs/source/conf.py +1 -1
- data/example_files/resources/hpxml-measures/docs/source/intro.rst +0 -1
- data/example_files/resources/hpxml-measures/docs/source/usage_instructions.rst +4 -3
- data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +468 -264
- data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +148 -154
- data/example_files/resources/hpxml-measures/tasks.rb +616 -802
- data/example_files/resources/hpxml-measures/workflow/real_homes/house001.xml +19 -11
- data/example_files/resources/hpxml-measures/workflow/real_homes/house002.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house003.xml +12 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house004.xml +12 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house005.xml +19 -11
- data/example_files/resources/hpxml-measures/workflow/real_homes/house006.xml +12 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house007.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house008.xml +28 -16
- data/example_files/resources/hpxml-measures/workflow/real_homes/house009.xml +28 -17
- data/example_files/resources/hpxml-measures/workflow/real_homes/house010.xml +28 -16
- data/example_files/resources/hpxml-measures/workflow/real_homes/house011.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house012.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house013.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house014.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house015.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house016.xml +22 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house017.xml +19 -11
- data/example_files/resources/hpxml-measures/workflow/real_homes/house018.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house019.xml +13 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house020.xml +12 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house021.xml +31 -16
- data/example_files/resources/hpxml-measures/workflow/real_homes/house022.xml +22 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house023.xml +21 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house024.xml +37 -22
- data/example_files/resources/hpxml-measures/workflow/real_homes/house025.xml +24 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house026.xml +33 -21
- data/example_files/resources/hpxml-measures/workflow/real_homes/house027.xml +28 -16
- data/example_files/resources/hpxml-measures/workflow/real_homes/house028.xml +28 -16
- data/example_files/resources/hpxml-measures/workflow/real_homes/house029.xml +30 -17
- data/example_files/resources/hpxml-measures/workflow/real_homes/house030.xml +10 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house031.xml +22 -11
- data/example_files/resources/hpxml-measures/workflow/real_homes/house032.xml +12 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house033.xml +18 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house034.xml +25 -16
- data/example_files/resources/hpxml-measures/workflow/real_homes/house035.xml +22 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house036.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house037.xml +26 -17
- data/example_files/resources/hpxml-measures/workflow/real_homes/house038.xml +19 -11
- data/example_files/resources/hpxml-measures/workflow/real_homes/house039.xml +25 -16
- data/example_files/resources/hpxml-measures/workflow/real_homes/house040.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house041.xml +35 -21
- data/example_files/resources/hpxml-measures/workflow/real_homes/house042.xml +28 -17
- data/example_files/resources/hpxml-measures/workflow/real_homes/house043.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house044.xml +35 -21
- data/example_files/resources/hpxml-measures/workflow/real_homes/house045.xml +20 -12
- data/example_files/resources/hpxml-measures/workflow/real_homes/house046.xml +20 -13
- data/example_files/resources/hpxml-measures/workflow/real_homes/house047.xml +12 -9
- data/example_files/resources/hpxml-measures/workflow/real_homes/house048.xml +25 -14
- data/example_files/resources/hpxml-measures/workflow/real_homes/house049.xml +10 -7
- data/example_files/resources/hpxml-measures/workflow/real_homes/house050.xml +20 -11
- data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +91 -88
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-portable.xml +546 -535
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +546 -535
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +555 -544
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil-location-miami-fl.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane-location-portland-or.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +7 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +17 -6
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +7 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery-scheduled.xml +600 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery.xml +598 -587
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml +494 -485
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +606 -593
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml +494 -485
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-heated-space.xml +494 -485
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml +494 -485
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-calctype-operational.xml +480 -471
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml +464 -457
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml +496 -487
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +466 -459
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +518 -509
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +513 -504
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-baseboard.xml +445 -438
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml +476 -467
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +443 -436
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +446 -439
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +494 -485
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-baseboard.xml +445 -438
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml +476 -467
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +446 -439
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +494 -485
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +489 -480
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +499 -490
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +491 -482
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room-multiple-water-heaters.xml +510 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +495 -486
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-multiple.xml +709 -695
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +528 -519
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +512 -503
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +504 -495
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +497 -488
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +490 -481
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +487 -478
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached-2stories.xml +639 -628
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached-atticroof-cathedral.xml +587 -580
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-single-family-attached.xml +639 -628
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-calctype-operational-misc-defaults.xml +539 -528
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-calctype-operational-misc-loads-large-uncommon.xml +644 -633
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-calctype-operational-misc-loads-large-uncommon2.xml +644 -633
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-calctype-operational.xml +575 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +585 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-detailed-setpoints.xml +536 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +20 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +19 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +19 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +19 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +19 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +19 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-detailed-setpoints.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef-fhr.xml +584 -573
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +584 -573
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-detailed-schedules.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml +585 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-model-type-stratified-detailed-occupancy-stochastic.xml +586 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-model-type-stratified.xml +585 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-detailed-setpoints.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +28 -11
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +20 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-ceilingtypes.xml +607 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-floortypes.xml +550 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-orientations.xml +589 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-physical-properties.xml +619 -608
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +620 -609
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-storms.xml +618 -607
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +537 -526
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +90 -43
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +2507 -2460
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-thermal-mass.xml +595 -584
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +19 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-natural-ventilation-availability.xml +584 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-physical-properties.xml +594 -583
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading.xml +597 -586
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-storms.xml +598 -587
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +671 -656
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-foundation-conditioned-basement-wall-interior-insulation.xml → base-foundation-conditioned-basement-wall-insulation.xml} +585 -574
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-crawlspace.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +35 -16
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-backup-lockout-temperature.xml +586 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml +573 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-seer2-hspf2.xml +583 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-switchover-temperature.xml +600 -589
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml +599 -588
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-furnace.xml +629 -616
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +573 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml +579 -568
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-acca.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-hers.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload-miami-fl.xml +582 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-acca.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-hers.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-maxload.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-boiler.xml +598 -587
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-furnace.xml +628 -615
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-acca.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-hers.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-maxload.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-elec-only.xml +535 -526
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-central-ac-1-speed.xml +589 -578
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-only.xml +536 -527
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-1-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-2-speed.xml +565 -554
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-var-speed.xml +565 -554
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-acca.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-hers.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-elec-resistance-only.xml +526 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-evap-cooler-furnace-gas.xml +573 -562
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-floor-furnace-propane-only.xml +529 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml +565 -554
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-2-speed.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-var-speed.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-only.xml +565 -554
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-room-ac.xml +578 -567
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +575 -564
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-acca.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-hers.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-maxload.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-acca.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-hers.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-maxload.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ductless-backup-stove.xml +551 -542
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ptac-with-heating.xml +532 -530
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ptac.xml +525 -516
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-acca.xml +541 -532
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-hers.xml +541 -532
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-maxload.xml +541 -532
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-only.xml +525 -516
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-heating.xml +533 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-acca.xml +542 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-hers.xml +542 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-maxload.xml +542 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-stove-oil-only.xml +529 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-wall-furnace-elec-only.xml +529 -520
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize.xml +580 -569
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed-seer2.xml +567 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-area-fractions.xml +611 -598
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-area-multipliers.xml +589 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-cfm50.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +17 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +530 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +530 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +530 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +566 -555
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only-detailed-setpoints.xml +566 -555
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +566 -555
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +574 -563
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-1-speed.xml +587 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml +587 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml +587 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml +591 -580
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml +591 -580
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml +591 -580
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-only.xml +570 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-ground-to-air-heat-pump.xml +586 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-mini-split-air-conditioner-only-ducted.xml +570 -559
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-mini-split-heat-pump-ducted.xml +586 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-stove.xml +552 -543
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +963 -938
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-none.xml +33 -69
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +530 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac-with-heating-electricity.xml +535 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-ptac-with-heating.xml → base-hvac-ptac-with-heating-natural-gas.xml} +23 -21
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac.xml +526 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-pthp.xml +541 -532
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-ceer.xml +526 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-detailed-setpoints.xml +526 -517
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +16 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-with-heating.xml +535 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-with-reverse-cycle.xml +542 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-seasons.xml +594 -583
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints-daily-schedules.xml +586 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints-daily-setbacks.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +530 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +530 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +530 -521
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-holiday.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-capetown-zaf.xml +591 -576
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +27 -12
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +537 -526
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +537 -526
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +601 -586
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-airflow-fraction-zero.xml +601 -587
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +19 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +20 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-supplemental-fan-exhaust.xml +607 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-supplemental-fan-supply.xml +607 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +21 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +37 -19
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-additional-properties.xml +590 -579
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-none.xml +578 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv-detailed-only.xml +632 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv-mixed.xml +614 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv.xml +677 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills.xml +593 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +27 -9
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-emissions.xml +676 -665
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators-battery-scheduled.xml +616 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators-battery.xml +615 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +598 -587
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-ground-conductivity.xml +586 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shielding-of-home.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +1700 -1677
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-ah.xml +622 -611
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-garage.xml +697 -682
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-pv-battery-lifetime-model.xml → base-pv-battery-round-trip-efficiency.xml} +20 -11
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-scheduled.xml +624 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery.xml +622 -611
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators-battery-scheduled.xml +640 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators-battery.xml +639 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators.xml +623 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +606 -595
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-all-10-mins.xml +582 -571
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-smooth.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-10-mins.xml +584 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-vacancy.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic.xml +583 -572
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints-daily-schedules.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints-daily-setbacks.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints.xml +581 -570
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple.xml +636 -625
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +27 -14
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +21 -10
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +21 -10
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-dhw-tank-heat-pump-detailed-operating-modes.xml → base-simcontrol-temperature-capacitance-multiplier.xml} +25 -13
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins-occupancy-stochastic-10-mins.xml +584 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins-occupancy-stochastic-60-mins.xml +584 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-dhw-tank-heat-pump-detailed-setpoints.xml → base-simcontrol-timestep-30-mins.xml} +25 -14
- data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +18 -7
- data/example_files/resources/hpxml-measures/workflow/template-build-and-run-hpxml-with-stochastic-occupancy.osw +18 -13
- data/example_files/resources/hpxml-measures/workflow/template-run-hpxml-with-stochastic-occupancy-subset.osw +64 -0
- data/example_files/resources/hpxml-measures/workflow/template-run-hpxml-with-stochastic-occupancy.osw +12 -7
- data/example_files/resources/hpxml-measures/workflow/template-run-hpxml.osw +8 -24
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AC.xml +366 -358
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AL.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AC.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AL.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AC.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AL.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AC.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AL.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AC.xml +311 -303
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AL.xml +311 -303
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AC.xml +327 -319
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AL.xml +327 -319
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AC.xml +332 -324
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AL.xml +332 -324
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AC.xml +341 -333
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AL.xml +341 -333
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AC.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AL.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AC.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AL.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AC.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AL.xml +369 -361
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L302XC.xml +383 -379
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L304XC.xml +383 -379
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L322XC.xml +538 -534
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L324XC.xml +550 -546
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results.csv +444 -410
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_ashrae_140.csv +8 -8
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_bills.csv +444 -410
- data/example_files/resources/hpxml-measures/workflow/tests/compare.py +18 -4
- data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +163 -392
- data/example_files/scripts/convert_urbanopt_to_disco.py +130 -0
- data/example_files/scripts/default_control_changes.csv +8 -0
- data/example_files/scripts/default_voltage_regulators.csv +3 -0
- data/example_files/scripts/read_data.py +331 -0
- data/example_files/visualization/input_visualization_feature.html +172 -81
- data/example_files/visualization/input_visualization_scenario.html +178 -82
- data/example_files/xml_building/17/README.md +2 -2
- data/example_files/xml_building/17/unit 1.xml +40 -41
- data/example_files/xml_building/17/unit 2.xml +35 -36
- data/example_files/xml_building/17/unit 3.xml +35 -36
- data/example_files/xml_building/17/unit 4.xml +41 -42
- data/lib/uo_cli/version.rb +2 -2
- data/lib/uo_cli.rb +597 -97
- data/uo_cli.gemspec +6 -5
- metadata +122 -36
- data/example_files/residential/exhaust.tsv +0 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/hvac_equipment_efficiency.csv +0 -493
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/water_heater_efficiency.csv +0 -157
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schematron/HPXMLvalidator.xml +0 -620
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/validator.rb +0 -107
- data/example_files/resources/hpxml-measures/ReportHPXMLOutput/measure.rb +0 -450
- data/example_files/resources/hpxml-measures/ReportHPXMLOutput/measure.xml +0 -85
- data/example_files/resources/hpxml-measures/ReportHPXMLOutput/resources/constants.rb +0 -72
- data/example_files/resources/hpxml-measures/ReportHPXMLOutput/tests/hpxml_output_report_test.rb +0 -290
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/PV_10kW.csv +0 -8761
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/PV_1kW.csv +0 -8761
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/PV_None.csv +0 -8761
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_hvac_sizing.csv +0 -410
@@ -6,14 +6,14 @@
|
|
6
6
|
require 'openstudio'
|
7
7
|
require 'pathname'
|
8
8
|
require 'oga'
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
9
|
+
Dir["#{File.dirname(__FILE__)}/resources/*.rb"].each do |resource_file|
|
10
|
+
require resource_file
|
11
|
+
end
|
12
|
+
Dir["#{File.dirname(__FILE__)}/../HPXMLtoOpenStudio/resources/*.rb"].each do |resource_file|
|
13
|
+
next if resource_file.include? 'minitest_helper.rb'
|
14
|
+
|
15
|
+
require resource_file
|
16
|
+
end
|
17
17
|
|
18
18
|
# start the measure
|
19
19
|
class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
|
@@ -33,7 +33,7 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
|
|
33
33
|
end
|
34
34
|
|
35
35
|
# define the arguments that the user will input
|
36
|
-
def arguments(model)
|
36
|
+
def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
|
37
37
|
args = OpenStudio::Measure::OSArgumentVector.new
|
38
38
|
|
39
39
|
arg = OpenStudio::Measure::OSArgument.makeStringArgument('hpxml_path', true)
|
@@ -51,6 +51,11 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
|
|
51
51
|
arg.setDefaultValue('smooth')
|
52
52
|
args << arg
|
53
53
|
|
54
|
+
arg = OpenStudio::Measure::OSArgument.makeStringArgument('schedules_column_names', false)
|
55
|
+
arg.setDisplayName('Schedules: Column Names')
|
56
|
+
arg.setDescription("A comma-separated list of the column names to generate. If not provided, defaults to all columns. Possible column names are: #{SchedulesFile.OccupancyColumnNames.join(', ')}.")
|
57
|
+
args << arg
|
58
|
+
|
54
59
|
arg = OpenStudio::Measure::OSArgument.makeStringArgument('schedules_vacancy_period', false)
|
55
60
|
arg.setDisplayName('Schedules: Vacancy Period')
|
56
61
|
arg.setDescription('Specifies the vacancy period. Enter a date like "Dec 15 - Jan 15".')
|
@@ -64,7 +69,7 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
|
|
64
69
|
|
65
70
|
arg = OpenStudio::Measure::OSArgument.makeStringArgument('output_csv_path', true)
|
66
71
|
arg.setDisplayName('Schedules: Output CSV Path')
|
67
|
-
arg.setDescription('Absolute/relative path of the
|
72
|
+
arg.setDescription('Absolute/relative path of the CSV file containing occupancy schedules. Relative paths are relative to the HPXML output path.')
|
68
73
|
args << arg
|
69
74
|
|
70
75
|
arg = OpenStudio::Measure::OSArgument.makeStringArgument('hpxml_output_path', true)
|
@@ -72,6 +77,12 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
|
|
72
77
|
arg.setDescription('Absolute/relative output path of the HPXML file. This HPXML file will include the output CSV path.')
|
73
78
|
args << arg
|
74
79
|
|
80
|
+
arg = OpenStudio::Measure::OSArgument.makeBoolArgument('debug', false)
|
81
|
+
arg.setDisplayName('Debug Mode?')
|
82
|
+
arg.setDescription('Applicable when schedules type is stochastic. If true: Write extra state column(s).')
|
83
|
+
arg.setDefaultValue(false)
|
84
|
+
args << arg
|
85
|
+
|
75
86
|
return args
|
76
87
|
end
|
77
88
|
|
@@ -90,7 +101,7 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
|
|
90
101
|
|
91
102
|
hpxml_path = args[:hpxml_path]
|
92
103
|
unless (Pathname.new hpxml_path).absolute?
|
93
|
-
hpxml_path = File.expand_path(
|
104
|
+
hpxml_path = File.expand_path(hpxml_path)
|
94
105
|
end
|
95
106
|
unless File.exist?(hpxml_path) && hpxml_path.downcase.end_with?('.xml')
|
96
107
|
fail "'#{hpxml_path}' does not exist or is not an .xml file."
|
@@ -98,21 +109,14 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
|
|
98
109
|
|
99
110
|
hpxml_output_path = args[:hpxml_output_path]
|
100
111
|
unless (Pathname.new hpxml_output_path).absolute?
|
101
|
-
hpxml_output_path = File.expand_path(
|
112
|
+
hpxml_output_path = File.expand_path(hpxml_output_path)
|
102
113
|
end
|
103
114
|
args[:hpxml_output_path] = hpxml_output_path
|
104
115
|
|
105
116
|
hpxml = HPXML.new(hpxml_path: hpxml_path)
|
106
117
|
|
107
118
|
# create EpwFile object
|
108
|
-
epw_path = hpxml
|
109
|
-
if not File.exist? epw_path
|
110
|
-
epw_path = File.join(File.expand_path(File.join(File.dirname(__FILE__), '..', 'weather')), epw_path) # a filename was entered for weather_station_epw_filepath
|
111
|
-
end
|
112
|
-
if not File.exist? epw_path
|
113
|
-
runner.registerError("Could not find EPW file at '#{epw_path}'.")
|
114
|
-
return false
|
115
|
-
end
|
119
|
+
epw_path = Location.get_epw_path(hpxml, hpxml_path)
|
116
120
|
epw_file = OpenStudio::EpwFile.new(epw_path)
|
117
121
|
|
118
122
|
# create the schedules
|
@@ -162,6 +166,7 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
|
|
162
166
|
info_msgs << "RandomSeed=#{args[:random_seed]}" if args[:schedules_random_seed].is_initialized
|
163
167
|
info_msgs << "GeometryNumOccupants=#{args[:geometry_num_occupants]}"
|
164
168
|
info_msgs << "VacancyPeriod=#{args[:schedules_vacancy_period].get}" if args[:schedules_vacancy_period].is_initialized
|
169
|
+
info_msgs << "ColumnNames=#{args[:column_names]}" if args[:schedules_column_names].is_initialized
|
165
170
|
|
166
171
|
runner.registerInfo("Created #{args[:schedules_type]} schedule with #{info_msgs.join(', ')}")
|
167
172
|
|
@@ -177,13 +182,7 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
|
|
177
182
|
args[:mkc_ts_per_day] = 96
|
178
183
|
args[:mkc_ts_per_hour] = args[:mkc_ts_per_day] / 24
|
179
184
|
|
180
|
-
calendar_year =
|
181
|
-
if !hpxml.header.sim_calendar_year.nil?
|
182
|
-
calendar_year = hpxml.header.sim_calendar_year
|
183
|
-
end
|
184
|
-
if epw_file.startDateActualYear.is_initialized # AMY
|
185
|
-
calendar_year = epw_file.startDateActualYear.get
|
186
|
-
end
|
185
|
+
calendar_year = Location.get_sim_calendar_year(hpxml.header.sim_calendar_year, epw_file)
|
187
186
|
args[:sim_year] = calendar_year
|
188
187
|
args[:sim_start_day] = DateTime.new(args[:sim_year], 1, 1)
|
189
188
|
args[:total_days_in_year] = Constants.NumDaysInYear(calendar_year)
|
@@ -195,12 +194,17 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
|
|
195
194
|
args[:state] = hpxml.header.state_code if !hpxml.header.state_code.nil?
|
196
195
|
|
197
196
|
args[:random_seed] = args[:schedules_random_seed].get if args[:schedules_random_seed].is_initialized
|
197
|
+
args[:column_names] = args[:schedules_column_names].get.split(',').map(&:strip) if args[:schedules_column_names].is_initialized
|
198
198
|
|
199
199
|
if hpxml.building_occupancy.number_of_residents.nil?
|
200
200
|
args[:geometry_num_occupants] = Geometry.get_occupancy_default_num(hpxml.building_construction.number_of_bedrooms)
|
201
201
|
else
|
202
202
|
args[:geometry_num_occupants] = hpxml.building_occupancy.number_of_residents
|
203
203
|
end
|
204
|
+
# Stochastic occupancy required integer number of occupants
|
205
|
+
if args[:schedules_type] == 'stochastic'
|
206
|
+
args[:geometry_num_occupants] = Float(Integer(args[:geometry_num_occupants]))
|
207
|
+
end
|
204
208
|
|
205
209
|
if args[:schedules_vacancy_period].is_initialized
|
206
210
|
begin_month, begin_day, end_month, end_day = Schedule.parse_date_range(args[:schedules_vacancy_period].get)
|
@@ -209,6 +213,12 @@ class BuildResidentialScheduleFile < OpenStudio::Measure::ModelMeasure
|
|
209
213
|
args[:schedules_vacancy_end_month] = end_month
|
210
214
|
args[:schedules_vacancy_end_day] = end_day
|
211
215
|
end
|
216
|
+
|
217
|
+
debug = false
|
218
|
+
if args[:schedules_type] == 'stochastic' && args[:debug].is_initialized
|
219
|
+
debug = args[:debug].get
|
220
|
+
end
|
221
|
+
args[:debug] = debug
|
212
222
|
end
|
213
223
|
end
|
214
224
|
|
@@ -3,8 +3,8 @@
|
|
3
3
|
<schema_version>3.0</schema_version>
|
4
4
|
<name>build_residential_schedule_file</name>
|
5
5
|
<uid>f770b2db-1a9f-4e99-99a7-7f3161a594b1</uid>
|
6
|
-
<version_id>
|
7
|
-
<version_modified>
|
6
|
+
<version_id>3a88a262-1431-4bb9-a577-cd235aed6b1e</version_id>
|
7
|
+
<version_modified>20221201T013247Z</version_modified>
|
8
8
|
<xml_checksum>03F02484</xml_checksum>
|
9
9
|
<class_name>BuildResidentialScheduleFile</class_name>
|
10
10
|
<display_name>Schedule File Builder</display_name>
|
@@ -38,6 +38,14 @@
|
|
38
38
|
</choice>
|
39
39
|
</choices>
|
40
40
|
</argument>
|
41
|
+
<argument>
|
42
|
+
<name>schedules_column_names</name>
|
43
|
+
<display_name>Schedules: Column Names</display_name>
|
44
|
+
<description>A comma-separated list of the column names to generate. If not provided, defaults to all columns. Possible column names are: occupants, lighting_interior, lighting_exterior, lighting_garage, lighting_exterior_holiday, cooking_range, refrigerator, extra_refrigerator, freezer, dishwasher, clothes_washer, clothes_dryer, ceiling_fan, plug_loads_other, plug_loads_tv, plug_loads_vehicle, plug_loads_well_pump, fuel_loads_grill, fuel_loads_lighting, fuel_loads_fireplace, pool_pump, pool_heater, hot_tub_pump, hot_tub_heater, hot_water_dishwasher, hot_water_clothes_washer, hot_water_fixtures.</description>
|
45
|
+
<type>String</type>
|
46
|
+
<required>false</required>
|
47
|
+
<model_dependent>false</model_dependent>
|
48
|
+
</argument>
|
41
49
|
<argument>
|
42
50
|
<name>schedules_vacancy_period</name>
|
43
51
|
<display_name>Schedules: Vacancy Period</display_name>
|
@@ -58,7 +66,7 @@
|
|
58
66
|
<argument>
|
59
67
|
<name>output_csv_path</name>
|
60
68
|
<display_name>Schedules: Output CSV Path</display_name>
|
61
|
-
<description>Absolute/relative path of the
|
69
|
+
<description>Absolute/relative path of the CSV file containing occupancy schedules. Relative paths are relative to the HPXML output path.</description>
|
62
70
|
<type>String</type>
|
63
71
|
<required>true</required>
|
64
72
|
<model_dependent>false</model_dependent>
|
@@ -71,6 +79,25 @@
|
|
71
79
|
<required>true</required>
|
72
80
|
<model_dependent>false</model_dependent>
|
73
81
|
</argument>
|
82
|
+
<argument>
|
83
|
+
<name>debug</name>
|
84
|
+
<display_name>Debug Mode?</display_name>
|
85
|
+
<description>Applicable when schedules type is stochastic. If true: Write extra state column(s).</description>
|
86
|
+
<type>Boolean</type>
|
87
|
+
<required>false</required>
|
88
|
+
<model_dependent>false</model_dependent>
|
89
|
+
<default_value>false</default_value>
|
90
|
+
<choices>
|
91
|
+
<choice>
|
92
|
+
<value>true</value>
|
93
|
+
<display_name>true</display_name>
|
94
|
+
</choice>
|
95
|
+
<choice>
|
96
|
+
<value>false</value>
|
97
|
+
<display_name>false</display_name>
|
98
|
+
</choice>
|
99
|
+
</choices>
|
100
|
+
</argument>
|
74
101
|
</arguments>
|
75
102
|
<outputs />
|
76
103
|
<provenances />
|
@@ -865,17 +892,23 @@
|
|
865
892
|
<usage_type>resource</usage_type>
|
866
893
|
<checksum>5FC694CF</checksum>
|
867
894
|
</file>
|
895
|
+
<file>
|
896
|
+
<filename>README.md</filename>
|
897
|
+
<filetype>md</filetype>
|
898
|
+
<usage_type>resource</usage_type>
|
899
|
+
<checksum>127D96AC</checksum>
|
900
|
+
</file>
|
868
901
|
<file>
|
869
902
|
<filename>schedules.rb</filename>
|
870
903
|
<filetype>rb</filetype>
|
871
904
|
<usage_type>resource</usage_type>
|
872
|
-
<checksum>
|
905
|
+
<checksum>AC348B70</checksum>
|
873
906
|
</file>
|
874
907
|
<file>
|
875
|
-
<filename>
|
876
|
-
<filetype>
|
877
|
-
<usage_type>
|
878
|
-
<checksum>
|
908
|
+
<filename>build_residential_schedule_file_test.rb</filename>
|
909
|
+
<filetype>rb</filetype>
|
910
|
+
<usage_type>test</usage_type>
|
911
|
+
<checksum>10DD8842</checksum>
|
879
912
|
</file>
|
880
913
|
<file>
|
881
914
|
<version>
|
@@ -886,13 +919,7 @@
|
|
886
919
|
<filename>measure.rb</filename>
|
887
920
|
<filetype>rb</filetype>
|
888
921
|
<usage_type>script</usage_type>
|
889
|
-
<checksum>
|
890
|
-
</file>
|
891
|
-
<file>
|
892
|
-
<filename>build_residential_schedule_file_test.rb</filename>
|
893
|
-
<filetype>rb</filetype>
|
894
|
-
<usage_type>test</usage_type>
|
895
|
-
<checksum>B0A60A85</checksum>
|
922
|
+
<checksum>3D8ADC7F</checksum>
|
896
923
|
</file>
|
897
924
|
</files>
|
898
925
|
</measure>
|
data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules.rb
CHANGED
@@ -8,6 +8,7 @@ class ScheduleGenerator
|
|
8
8
|
def initialize(runner:,
|
9
9
|
epw_file:,
|
10
10
|
state:,
|
11
|
+
column_names: nil,
|
11
12
|
random_seed: nil,
|
12
13
|
minutes_per_step:,
|
13
14
|
steps_in_day:,
|
@@ -16,10 +17,12 @@ class ScheduleGenerator
|
|
16
17
|
total_days_in_year:,
|
17
18
|
sim_year:,
|
18
19
|
sim_start_day:,
|
19
|
-
|
20
|
+
debug:,
|
21
|
+
**)
|
20
22
|
@runner = runner
|
21
23
|
@epw_file = epw_file
|
22
24
|
@state = state
|
25
|
+
@column_names = column_names
|
23
26
|
@random_seed = random_seed
|
24
27
|
@minutes_per_step = minutes_per_step
|
25
28
|
@steps_in_day = steps_in_day
|
@@ -28,6 +31,7 @@ class ScheduleGenerator
|
|
28
31
|
@total_days_in_year = total_days_in_year
|
29
32
|
@sim_year = sim_year
|
30
33
|
@sim_start_day = sim_start_day
|
34
|
+
@debug = debug
|
31
35
|
end
|
32
36
|
|
33
37
|
def get_random_seed
|
@@ -58,6 +62,16 @@ class ScheduleGenerator
|
|
58
62
|
def create(args:)
|
59
63
|
initialize_schedules
|
60
64
|
|
65
|
+
if @column_names.nil?
|
66
|
+
@column_names = SchedulesFile.ColumnNames
|
67
|
+
end
|
68
|
+
|
69
|
+
invalid_columns = (@column_names - SchedulesFile.ColumnNames)
|
70
|
+
invalid_columns.each do |invalid_column|
|
71
|
+
@runner.registerError("Invalid column name specified: '#{invalid_column}'.")
|
72
|
+
end
|
73
|
+
return false unless invalid_columns.empty?
|
74
|
+
|
61
75
|
success = create_average_schedules
|
62
76
|
return false if not success
|
63
77
|
|
@@ -282,7 +296,7 @@ class ScheduleGenerator
|
|
282
296
|
# States are: 'sleeping', 'shower', 'laundry', 'cooking', 'dishwashing', 'absent', 'nothingAtHome'
|
283
297
|
# if geometry_num_occupants = 2, period_in_a_year = 35040, num_of_states = 7, then
|
284
298
|
# shape of all_simulated_values is [2, 35040, 7]
|
285
|
-
|
299
|
+
for _n in 1..args[:geometry_num_occupants]
|
286
300
|
occ_type_id = weighted_random(prng, schedule_config['occupancy_types']['probabilities'])
|
287
301
|
init_prob_file_weekday = args[:resources_path] + "/weekday/mkv_chain_initial_prob_cluster_#{occ_type_id}.csv"
|
288
302
|
initial_prob_weekday = CSV.read(init_prob_file_weekday)
|
@@ -321,7 +335,7 @@ class ScheduleGenerator
|
|
321
335
|
state_vector[active_state] = 1 # Transition to the new state
|
322
336
|
# sample the duration of the state, and skip markov-chain based state transition until the end of the duration
|
323
337
|
activity_duration = sample_activity_duration(prng, activity_duration_prob_map, occ_type_id, active_state, day_type, j / 4)
|
324
|
-
|
338
|
+
for _i in 1..activity_duration
|
325
339
|
# repeat the same activity for the duration times
|
326
340
|
simulated_values << state_vector
|
327
341
|
j += 1
|
@@ -329,7 +343,7 @@ class ScheduleGenerator
|
|
329
343
|
end
|
330
344
|
if j >= @mkc_ts_per_day then break end # break as soon as we have filled activities for the day
|
331
345
|
|
332
|
-
transition_probs = transition_matrix[(j - 1) * 7
|
346
|
+
transition_probs = transition_matrix[(j - 1) * 7..j * 7 - 1] # obtain the transition matrix for current timestep
|
333
347
|
state_prob = transition_probs[active_state]
|
334
348
|
end
|
335
349
|
end
|
@@ -343,7 +357,6 @@ class ScheduleGenerator
|
|
343
357
|
lighting_sch = schedule_config['lighting']
|
344
358
|
ceiling_fan_sch = schedule_config['ceiling_fan']
|
345
359
|
|
346
|
-
monthly_lighting_schedule = schedule_config['lighting']['monthly_multiplier']
|
347
360
|
holiday_lighting_schedule = schedule_config['lighting']['holiday_sch']
|
348
361
|
|
349
362
|
sch = Lighting.get_schedule(@epw_file)
|
@@ -358,6 +371,7 @@ class ScheduleGenerator
|
|
358
371
|
|
359
372
|
holiday_lighting_schedule = get_holiday_lighting_sch(holiday_lighting_schedule)
|
360
373
|
|
374
|
+
sleep_schedule = []
|
361
375
|
away_schedule = []
|
362
376
|
idle_schedule = []
|
363
377
|
|
@@ -371,10 +385,10 @@ class ScheduleGenerator
|
|
371
385
|
@steps_in_day.times do |step|
|
372
386
|
minute = day * 1440 + step * @minutes_per_step
|
373
387
|
index_15 = (minute / 15).to_i
|
374
|
-
|
388
|
+
sleep_schedule << sum_across_occupants(all_simulated_values, 0, index_15).to_f / args[:geometry_num_occupants]
|
375
389
|
away_schedule << sum_across_occupants(all_simulated_values, 5, index_15).to_f / args[:geometry_num_occupants]
|
376
390
|
idle_schedule << sum_across_occupants(all_simulated_values, 6, index_15).to_f / args[:geometry_num_occupants]
|
377
|
-
active_occupancy_percentage = 1 - (away_schedule[-1] +
|
391
|
+
active_occupancy_percentage = 1 - (away_schedule[-1] + sleep_schedule[-1])
|
378
392
|
@schedules[SchedulesFile::ColumnPlugLoadsOther][day * @steps_in_day + step] = get_value_from_daily_sch(plugload_sch, month, is_weekday, minute, active_occupancy_percentage)
|
379
393
|
@schedules[SchedulesFile::ColumnLightingInterior][day * @steps_in_day + step] = scale_lighting_by_occupancy(interior_lighting_schedule, minute, active_occupancy_percentage)
|
380
394
|
@schedules[SchedulesFile::ColumnLightingExterior][day * @steps_in_day + step] = get_value_from_daily_sch(lighting_sch, month, is_weekday, minute, 1)
|
@@ -431,8 +445,8 @@ class ScheduleGenerator
|
|
431
445
|
sink_flow_rate_std = schedule_config['sink']['flow_rate_std']
|
432
446
|
sink_flow_rate = gaussian_rand(prng, sink_flow_rate_mean, sink_flow_rate_std, 0.1)
|
433
447
|
@total_days_in_year.times do |day|
|
434
|
-
|
435
|
-
todays_probable_steps = sink_activity_probable_mins[day * @mkc_ts_per_day
|
448
|
+
for _n in 1..cluster_per_day
|
449
|
+
todays_probable_steps = sink_activity_probable_mins[day * @mkc_ts_per_day..((day + 1) * @mkc_ts_per_day - 1)]
|
436
450
|
todays_probablities = todays_probable_steps.map.with_index { |p, i| p * hourly_onset_prob[i / @mkc_ts_per_hour] }
|
437
451
|
prob_sum = todays_probablities.sum(0)
|
438
452
|
normalized_probabilities = todays_probablities.map { |p| p * 1 / prob_sum }
|
@@ -443,7 +457,7 @@ class ScheduleGenerator
|
|
443
457
|
num_events = weighted_random(prng, events_per_cluster_probs) + 1
|
444
458
|
start_min = cluster_start_index * 15
|
445
459
|
end_min = (cluster_start_index + 1) * 15
|
446
|
-
|
460
|
+
for _i in 1..num_events
|
447
461
|
duration = weighted_random(prng, sink_duration_probs) + 1
|
448
462
|
if start_min + duration > end_min then duration = (end_min - start_min) end
|
449
463
|
sink_activity_sch.fill(sink_flow_rate, (day * 1440) + start_min, duration)
|
@@ -490,47 +504,45 @@ class ScheduleGenerator
|
|
490
504
|
# shower_state will be equal to number of occupant taking shower/bath in the given 15-minute mkc interval
|
491
505
|
shower_state = sum_across_occupants(all_simulated_values, 1, step)
|
492
506
|
step_jump = 1
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
507
|
+
for _n in 1..shower_state.to_i
|
508
|
+
r = prng.rand
|
509
|
+
if r <= bath_ratio
|
510
|
+
# fill in bath for this time
|
511
|
+
duration = gaussian_rand(prng, bath_duration_mean, bath_duration_std, 0.1)
|
512
|
+
int_duration = duration.ceil
|
513
|
+
# since we are rounding duration to integer minute, we compensate by scaling flow rate
|
514
|
+
flow_rate = bath_flow_rate * duration / int_duration
|
515
|
+
start_min = step * 15
|
516
|
+
m = 0
|
517
|
+
int_duration.times do
|
518
|
+
bath_activity_sch[start_min + m] += flow_rate
|
519
|
+
m += 1
|
520
|
+
if (start_min + m) >= mins_in_year then break end
|
521
|
+
end
|
522
|
+
step_jump = [step_jump, 1 + (m / 15)].max # jump additional step if the bath occupies multiple 15-min slots
|
523
|
+
else
|
524
|
+
# fill in the shower
|
525
|
+
num_events = sample_activity_cluster_size(prng, cluster_size_prob_map, 'shower')
|
526
|
+
start_min = step * 15
|
527
|
+
m = 0
|
528
|
+
num_events.times do
|
529
|
+
duration = sample_event_duration(prng, event_duration_prob_map, 'shower')
|
499
530
|
int_duration = duration.ceil
|
531
|
+
flow_rate = shower_flow_rate * duration / int_duration
|
500
532
|
# since we are rounding duration to integer minute, we compensate by scaling flow rate
|
501
|
-
flow_rate = bath_flow_rate * duration / int_duration
|
502
|
-
start_min = step * 15
|
503
|
-
m = 0
|
504
533
|
int_duration.times do
|
505
|
-
|
534
|
+
shower_activity_sch[start_min + m] += flow_rate
|
506
535
|
m += 1
|
507
536
|
if (start_min + m) >= mins_in_year then break end
|
508
537
|
end
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
start_min = step * 15
|
514
|
-
m = 0
|
515
|
-
num_events.times do
|
516
|
-
duration = sample_event_duration(prng, event_duration_prob_map, 'shower')
|
517
|
-
int_duration = duration.ceil
|
518
|
-
flow_rate = shower_flow_rate * duration / int_duration
|
519
|
-
# since we are rounding duration to integer minute, we compensate by scaling flow rate
|
520
|
-
int_duration.times do
|
521
|
-
shower_activity_sch[start_min + m] += flow_rate
|
522
|
-
m += 1
|
523
|
-
if (start_min + m) >= mins_in_year then break end
|
524
|
-
end
|
525
|
-
shower_minutes_between_event_gap.times do
|
526
|
-
# skip the gap between events
|
527
|
-
m += 1
|
528
|
-
if (start_min + m) >= mins_in_year then break end
|
529
|
-
end
|
530
|
-
if start_min + m >= mins_in_year then break end
|
538
|
+
shower_minutes_between_event_gap.times do
|
539
|
+
# skip the gap between events
|
540
|
+
m += 1
|
541
|
+
if (start_min + m) >= mins_in_year then break end
|
531
542
|
end
|
532
|
-
|
543
|
+
if start_min + m >= mins_in_year then break end
|
533
544
|
end
|
545
|
+
step_jump = [step_jump, 1 + (m / 15)].max
|
534
546
|
end
|
535
547
|
end
|
536
548
|
step += step_jump
|
@@ -554,7 +566,7 @@ class ScheduleGenerator
|
|
554
566
|
# Fill in dw_water draw schedule
|
555
567
|
step = 0
|
556
568
|
while step < mkc_steps_in_a_year
|
557
|
-
dish_state = sum_across_occupants(all_simulated_values, 4, step, max_clip
|
569
|
+
dish_state = sum_across_occupants(all_simulated_values, 4, step, max_clip: 1)
|
558
570
|
step_jump = 1
|
559
571
|
if dish_state > 0
|
560
572
|
cluster_size = sample_activity_cluster_size(prng, cluster_size_prob_map, 'hot_water_dishwasher')
|
@@ -593,7 +605,7 @@ class ScheduleGenerator
|
|
593
605
|
step = 0
|
594
606
|
# Fill in clothes washer water draw schedule based on markov-chain state 2 (laundry)
|
595
607
|
while step < mkc_steps_in_a_year
|
596
|
-
clothes_state = sum_across_occupants(all_simulated_values, 2, step, max_clip
|
608
|
+
clothes_state = sum_across_occupants(all_simulated_values, 2, step, max_clip: 1)
|
597
609
|
step_jump = 1
|
598
610
|
if clothes_state > 0
|
599
611
|
num_loads = weighted_random(prng, cw_load_size_probability) + 1
|
@@ -636,7 +648,7 @@ class ScheduleGenerator
|
|
636
648
|
last_state = 0
|
637
649
|
start_time = Time.new(@sim_year, 1, 1)
|
638
650
|
while step < mkc_steps_in_a_year
|
639
|
-
dish_state = sum_across_occupants(all_simulated_values, 4, step, max_clip
|
651
|
+
dish_state = sum_across_occupants(all_simulated_values, 4, step, max_clip: 1)
|
640
652
|
step_jump = 1
|
641
653
|
if (dish_state > 0) && (last_state == 0) # last_state == 0 prevents consecutive dishwasher power without gap
|
642
654
|
duration_15min, avg_power = sample_appliance_duration_power(prng, appliance_power_dist_map, 'dishwasher')
|
@@ -660,7 +672,7 @@ class ScheduleGenerator
|
|
660
672
|
last_state = 0
|
661
673
|
start_time = Time.new(@sim_year, 1, 1)
|
662
674
|
while step < mkc_steps_in_a_year
|
663
|
-
clothes_state = sum_across_occupants(all_simulated_values, 2, step, max_clip
|
675
|
+
clothes_state = sum_across_occupants(all_simulated_values, 2, step, max_clip: 1)
|
664
676
|
step_jump = 1
|
665
677
|
if (clothes_state > 0) && (last_state == 0) # last_state == 0 prevents consecutive washer power without gap
|
666
678
|
cw_duration_15min, cw_avg_power = sample_appliance_duration_power(prng, appliance_power_dist_map, 'clothes_washer')
|
@@ -688,7 +700,7 @@ class ScheduleGenerator
|
|
688
700
|
last_state = 0
|
689
701
|
start_time = Time.new(@sim_year, 1, 1)
|
690
702
|
while step < mkc_steps_in_a_year
|
691
|
-
cooking_state = sum_across_occupants(all_simulated_values, 3, step, max_clip
|
703
|
+
cooking_state = sum_across_occupants(all_simulated_values, 3, step, max_clip: 1)
|
692
704
|
step_jump = 1
|
693
705
|
if (cooking_state > 0) && (last_state == 0) # last_state == 0 prevents consecutive cooking power without gap
|
694
706
|
duration_15min, avg_power = sample_appliance_duration_power(prng, appliance_power_dist_map, 'cooking')
|
@@ -773,6 +785,10 @@ class ScheduleGenerator
|
|
773
785
|
|
774
786
|
@schedules[SchedulesFile::ColumnOccupants] = away_schedule.map { |i| 1.0 - i }
|
775
787
|
|
788
|
+
if @debug
|
789
|
+
@schedules[SchedulesFile::ColumnSleeping] = sleep_schedule
|
790
|
+
end
|
791
|
+
|
776
792
|
@schedules[SchedulesFile::ColumnHotWaterFixtures] = [showers, sinks, baths].transpose.map { |flow| flow.reduce(:+) }
|
777
793
|
fixtures_peak_flow = @schedules[SchedulesFile::ColumnHotWaterFixtures].max
|
778
794
|
@schedules[SchedulesFile::ColumnHotWaterFixtures] = @schedules[SchedulesFile::ColumnHotWaterFixtures].map { |flow| flow / fixtures_peak_flow }
|
@@ -801,7 +817,7 @@ class ScheduleGenerator
|
|
801
817
|
new_array_size = array.size / group_size
|
802
818
|
new_array = [0] * new_array_size
|
803
819
|
new_array_size.times do |j|
|
804
|
-
new_array[j] = array[(j * group_size)
|
820
|
+
new_array[j] = array[(j * group_size)..(j + 1) * group_size - 1].sum(0)
|
805
821
|
end
|
806
822
|
return new_array
|
807
823
|
end
|
@@ -959,6 +975,9 @@ class ScheduleGenerator
|
|
959
975
|
end
|
960
976
|
|
961
977
|
def export(schedules_path:)
|
978
|
+
(SchedulesFile.ColumnNames - @column_names).each do |col_to_remove|
|
979
|
+
@schedules.delete(col_to_remove)
|
980
|
+
end
|
962
981
|
CSV.open(schedules_path, 'w') do |csv|
|
963
982
|
csv << @schedules.keys
|
964
983
|
rows = @schedules.values.transpose
|
@@ -980,7 +999,7 @@ class ScheduleGenerator
|
|
980
999
|
return x
|
981
1000
|
end
|
982
1001
|
|
983
|
-
def sum_across_occupants(all_simulated_values, activity_index, time_index, max_clip
|
1002
|
+
def sum_across_occupants(all_simulated_values, activity_index, time_index, max_clip: nil)
|
984
1003
|
sum = 0
|
985
1004
|
all_simulated_values.size.times do |i|
|
986
1005
|
sum += all_simulated_values[i][time_index, activity_index]
|
@@ -1028,7 +1047,7 @@ class ScheduleGenerator
|
|
1028
1047
|
sch = [0] * 24 * @total_days_in_year
|
1029
1048
|
final_days = @total_days_in_year - holiday_start_day + 1
|
1030
1049
|
beginning_days = holiday_end_day
|
1031
|
-
sch[0
|
1050
|
+
sch[0..holiday_end_day * 24 - 1] = holiday_sch * beginning_days
|
1032
1051
|
sch[(holiday_start_day - 1) * 24..-1] = holiday_sch * final_days
|
1033
1052
|
m = sch.max
|
1034
1053
|
sch = sch.map { |s| s / m }
|