urbanopt-cli 0.9.2 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/{nightly_build.yml → nightly_ci_build.yml} +6 -5
- data/CHANGELOG.md +16 -2
- data/CMakeLists.txt +7 -7
- data/Gemfile +8 -7
- data/LICENSE.md +18 -15
- data/README.md +2 -1
- data/Rakefile +2 -37
- data/example_files/Gemfile +10 -8
- data/example_files/mappers/Baseline.rb +170 -191
- data/example_files/mappers/ChilledWaterStorage.rb +8 -30
- data/example_files/mappers/ClassProject.rb +2 -27
- data/example_files/mappers/CreateBar.rb +2 -28
- data/example_files/mappers/EvCharging.rb +2 -27
- data/example_files/mappers/FlexibleHotWater.rb +2 -27
- data/example_files/mappers/Floorspace.rb +2 -27
- data/example_files/mappers/HighEfficiency.rb +2 -27
- data/example_files/mappers/HighEfficiencyCreateBar.rb +2 -27
- data/example_files/mappers/HighEfficiencyFloorspace.rb +2 -27
- data/example_files/mappers/PeakHoursMelsShedding.rb +4 -27
- data/example_files/mappers/PeakHoursThermostatAdjust.rb +4 -27
- data/example_files/mappers/ThermalStorage.rb +2 -28
- data/example_files/measures/BuildResidentialModel/measure.rb +30 -60
- data/example_files/measures/BuildResidentialModel/measure.xml +253 -84
- data/example_files/measures/BuildResidentialModel/resources/util.rb +45 -45
- data/example_files/python_deps/dependencies.json +3 -3
- data/example_files/resources/hpxml-measures/.github/pull_request_template.md +1 -1
- data/example_files/resources/hpxml-measures/.github/workflows/config.yml +28 -19
- data/example_files/resources/hpxml-measures/.gitignore +0 -997
- data/example_files/resources/hpxml-measures/.readthedocs.yml +9 -0
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.rb +476 -230
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/measure.xml +244 -75
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/resources/geometry.rb +42 -15
- data/example_files/resources/hpxml-measures/BuildResidentialHPXML/tests/build_residential_hpxml_test.rb +24 -9
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.rb +11 -33
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/measure.xml +23 -50
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/README.md +2 -2
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/constants.rb +119 -0
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules.rb +67 -290
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules_config.md +6 -5
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/tests/build_residential_schedule_file_test.rb +78 -349
- data/example_files/resources/hpxml-measures/Changelog.md +80 -10
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.rb +212 -144
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/measure.xml +164 -170
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/airflow.rb +238 -167
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/battery.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constants.rb +12 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/constructions.rb +36 -6
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/data/unavailable_periods.csv +33 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/energyplus.rb +1 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/geometry.rb +9 -7
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hotwater_appliances.rb +79 -61
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml.rb +387 -124
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +427 -196
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXML.xsd +11515 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/README.md +1 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml +224 -85
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac.rb +334 -319
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hvac_sizing.rb +572 -838
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/lighting.rb +162 -68
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/location.rb +4 -20
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/meta_measure.rb +12 -10
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/misc_loads.rb +34 -37
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/output.rb +8 -101
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/psychrometrics.rb +31 -40
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/pv.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-non-stochastic.csv +8761 -0
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic-10-mins.csv +52561 -52561
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic.csv +8761 -8761
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedules.rb +384 -155
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/unit_conversions.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/util.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/version.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/waterheater.rb +68 -90
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/weather.rb +34 -223
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlhelper.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/xmlvalidator.rb +16 -4
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_airflow.rb +94 -40
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_defaults.rb +765 -302
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_enclosure.rb +119 -69
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_generator.rb +8 -8
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hotwater_appliance.rb +1 -1
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac.rb +51 -11
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_hvac_sizing.rb +196 -9
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_lighting.rb +36 -13
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_miscloads.rb +3 -3
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_pv.rb +2 -2
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_schedules.rb +571 -61
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_validation.rb +190 -81
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_water_heater.rb +11 -11
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/tests/test_weather.rb +188 -50
- data/example_files/resources/hpxml-measures/README.md +3 -3
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.rb +659 -815
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/measure.xml +301 -1112
- data/example_files/resources/hpxml-measures/ReportSimulationOutput/tests/output_report_test.rb +605 -350
- data/example_files/resources/hpxml-measures/ReportUtilityBills/measure.rb +18 -14
- data/example_files/resources/hpxml-measures/ReportUtilityBills/measure.xml +15 -15
- data/example_files/resources/hpxml-measures/ReportUtilityBills/tests/utility_bills_test.rb +13 -3
- data/example_files/resources/hpxml-measures/docs/source/usage_instructions.rst +3 -3
- data/example_files/resources/hpxml-measures/docs/source/workflow_inputs.rst +894 -596
- data/example_files/resources/hpxml-measures/docs/source/workflow_outputs.rst +127 -76
- data/example_files/resources/hpxml-measures/tasks.rb +185 -2802
- data/example_files/resources/hpxml-measures/workflow/hpxml_inputs.json +3401 -0
- data/example_files/resources/hpxml-measures/workflow/real_homes/house001.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house002.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house003.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house004.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house005.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house006.xml +1 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house007.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house008.xml +1 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house009.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house010.xml +1 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house011.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house012.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house013.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house014.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house015.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house016.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house017.xml +17 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house018.xml +2 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house019.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house020.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house021.xml +4 -5
- data/example_files/resources/hpxml-measures/workflow/real_homes/house022.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house023.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house024.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house025.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house026.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house027.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house028.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house029.xml +1 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house030.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house031.xml +4 -5
- data/example_files/resources/hpxml-measures/workflow/real_homes/house032.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house033.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house034.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house035.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house036.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house037.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house038.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house039.xml +3 -3
- data/example_files/resources/hpxml-measures/workflow/real_homes/house040.xml +3 -4
- data/example_files/resources/hpxml-measures/workflow/real_homes/house041.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house042.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house043.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house044.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house045.xml +0 -1
- data/example_files/resources/hpxml-measures/workflow/real_homes/house046.xml +1 -0
- data/example_files/resources/hpxml-measures/workflow/real_homes/house047.xml +1 -0
- data/example_files/resources/hpxml-measures/workflow/run_simulation.rb +12 -8
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-coal.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-portable.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-ief-whole-home.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier-multiple.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-dehumidifier.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-modified.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil-location-miami-fl.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-oil.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane-location-portland-or.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-propane.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-appliances-wood.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-cathedral.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-conditioned.xml +9 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-flat.xml +9 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-radiant-barrier.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-unvented-insulated-roof.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-atticroof-vented.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery-scheduled.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-battery.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-single-family-attached-2stories.xml → base-bldgtype-attached-2stories.xml} +610 -639
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-single-family-attached-atticroof-cathedral.xml → base-bldgtype-attached-atticroof-cathedral.xml} +558 -587
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-attached-infil-compartmentalization-test.xml +611 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-single-family-attached.xml → base-bldgtype-attached.xml} +610 -639
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multifamily-buffer-space.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-non-freezing-space.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-heated-space.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-adjacent-to-other-housing-unit.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-infil-compartmentalization-test.xml +462 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-bldgtype-multifamily-calctype-operational.xml → base-bldgtype-multifamily-residents-1.xml} +453 -480
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-baseboard.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil-ducted.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-fan-coil.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-chiller-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-cooling-tower-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-baseboard.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-ducted.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil-eae.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-fan-coil.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-boiler-only-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-baseboard.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil-ducted.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-fan-coil.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-chiller-only-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-cooling-tower-only-water-loop-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-generator.xml +11 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-ground-loop-ground-to-air-heat-pump.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room-multiple-water-heaters.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-laundry-room.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-multiple.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent-preconditioning.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-mechvent.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-pv.xml +15 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater-recirc.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily-shared-water-heater.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-bldgtype-multifamily.xml +10 -39
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-combi-tankless.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-gshp.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-hpwh.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-tankless.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-desuperheater.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-dwhr.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-dse.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-standbyloss.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect-with-solar-fraction.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-indirect.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-electric.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-hpwh.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-jacket-indirect.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-low-flow-fixtures.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-multiple.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-demand.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-manual.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-nocontrol.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-temperature.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-recirc-timer.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-evacuated-tube.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-flat-plate.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-direct-ics.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-fraction.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-indirect-flat-plate.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-solar-thermosyphon-flat-plate.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-coal.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-elec-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef-fhr.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-detailed-schedules.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-operating-mode-heat-pump-only.xml +11 -43
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar-fraction.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump-with-solar.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-heat-pump.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-model-type-stratified-detailed-occupancy-stochastic.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-model-type-stratified.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-oil.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tank-wood.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-outside.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-electric.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-uef.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar-fraction.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas-with-solar.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-dhw-tankless-propane.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories-garage.xml +19 -25
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-2stories.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-1.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-2.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-4.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-beds-5.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-ceilingtypes.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-floortypes.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-garage.xml +18 -24
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ach-house-pressure.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm-house-pressure.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-cfm50.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-ela.xml +549 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-flue.xml +13 -43
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-ach.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-infil-natural-cfm.xml +552 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-orientations.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-overhangs.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-rooftypes.xml +17 -47
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-physical-properties.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-shading.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights-storms.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-skylights.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-level.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-thermal-mass.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-walltypes.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-natural-ventilation-availability.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-physical-properties.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading-seasons.xml +559 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-shading.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-windows-storms.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-ambient.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-basement-garage.xml +19 -25
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-complex.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-slab-insulation.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-basement-wall-insulation.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-conditioned-crawlspace.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-multiple.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-slab.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-above-grade.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-assembly-r.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement-wall-insulation.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unconditioned-basement.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-unvented-crawlspace.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-vented-crawlspace.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-foundation-walkout-basement.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-autosized-backup.xml +557 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-cooling-only.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-electric.xml → base-hvac-air-to-air-heat-pump-1-speed-heating-capacity-17f.xml} +552 -583
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-heating-only.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-hvac-air-to-air-heat-pump-1-speed-backup-lockout-temperature.xml → base-hvac-air-to-air-heat-pump-1-speed-lockout-temperatures.xml} +562 -586
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed-seer2-hspf2.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-1-speed.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-2-speed.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-hvac-seasons.xml +587 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler-switchover-temperature.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-boiler.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed-backup-furnace.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-air-to-air-heat-pump-var-speed.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-cooling-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-heating-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-hers.xml +10 -40
- 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 +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-1-speed-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-hers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-2-speed-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-boiler.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-backup-furnace.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-hers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-air-to-air-heat-pump-var-speed-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-central-ac-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-boiler-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-only-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-central-ac-plus-air-to-air-heat-pump-heating.xml +10 -40
- 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 +11 -41
- 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 +11 -41
- 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 +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted-backup-hardsized.xml +553 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-dual-fuel-mini-split-heat-pump-ducted.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-elec-resistance-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-evap-cooler-furnace-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-floor-furnace-propane-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-central-ac-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-furnace-gas-room-ac.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-cooling-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-heating-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-hers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ground-to-air-heat-pump-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-air-conditioner-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-cooling-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-heating-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-acca.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-hers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ducted-sizing-methodology-maxload.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ductless-backup-baseboard.xml +519 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-mini-split-heat-pump-ductless-backup-stove.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ptac-with-heating.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-ptac.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-acca.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-hers.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-pthp-sizing-methodology-maxload.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-heating.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-acca.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-hers.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-room-ac-with-reverse-cycle-sizing-methodology-maxload.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-sizing-controls.xml +566 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-stove-oil-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize-wall-furnace-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-autosize.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-coal-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-central-ac-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only-pilot.xml +513 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-oil-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-propane-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-boiler-wood-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed-seer2.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-only-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-central-ac-plus-air-to-air-heat-pump-heating.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-crankcase-heater-40w.xml +556 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dse.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed-lockout-temperatures.xml +560 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-1-speed.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-2-speed.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-air-to-air-heat-pump-var-speed.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-dual-fuel-mini-split-heat-pump-ducted.xml +17 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-area-fractions.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-area-multipliers.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-buried.xml +555 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-effective-rvalue.xml +553 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-cfm50.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ducts-leakage-percent.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-elec-resistance-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-furnace-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-evap-cooler-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fireplace-wood-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-fixed-heater-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only-pilot-light.xml +506 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-floor-furnace-propane-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-coal-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-central-ac-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-central-ac-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only-pilot.xml +542 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-gas-room-ac.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-oil-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-propane-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-wood-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-furnace-x3-dse.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-cooling-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump-heating-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ground-to-air-heat-pump.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-1-speed.xml +14 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-2-speed.xml +14 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-air-to-air-heat-pump-var-speed.xml +14 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-1-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-2-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-central-ac-var-speed.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-furnace-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-ground-to-air-heat-pump.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-mini-split-air-conditioner-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-install-quality-mini-split-heat-pump-ducted.xml +14 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-air-conditioner-only-ductless.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-cooling-only.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted-heating-only.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ducted.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-baseboard.xml +525 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-furnace.xml +564 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-backup-stove.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless-heating-capacity-17f.xml +506 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-mini-split-heat-pump-ductless.xml +16 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-multiple.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-portable-heater-gas-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac-with-heating-electricity.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac-with-heating-natural-gas.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-ptac.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-pthp-heating-capacity-17f.xml +513 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-pthp.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-33percent.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-ceer.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-with-heating.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-room-ac-with-reverse-cycle.xml +16 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-seasons.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints-daily-schedules.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints-daily-setbacks.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-oil-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-stove-wood-pellets-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized-allow-increased-fixed-capacities.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-undersized.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-hvac-wall-furnace-elec-only.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-ceiling-fans.xml +11 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-holiday.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-kwh-per-year.xml +529 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-mixed.xml +537 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none-ceiling-fans.xml +516 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-lighting-none.xml +1 -7
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-AMY-2012.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-baltimore-md.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-capetown-zaf.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-dallas-tx.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-duluth-mn.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-helena-mt.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-honolulu-hi.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-miami-fl.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-phoenix-az.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-location-portland-or.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-balanced.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-bath-kitchen-fans.xml +12 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-airflow-fraction-zero.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-dse.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-evap-cooler-only-ducted.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-supplemental-fan-exhaust.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis-supplemental-fan-supply.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-cfis.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv-atre-asre.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-erv.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust-rated-flow-rate.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-exhaust.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv-asre.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-hrv.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-multiple.xml +14 -44
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-supply.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-mechvent-whole-house-fan.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-additional-properties.xml +10 -38
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv-detailed-only.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv-mixed.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills-pv.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-bills.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-defaults.xml +14 -37
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-emissions.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators-battery-scheduled.xml +12 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators-battery.xml +12 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-generators.xml +12 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-ground-conductivity.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon.xml +10 -38
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-large-uncommon2.xml +10 -38
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-loads-none.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading-bldgtype-multifamily.xml +509 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-neighbor-shading.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-shielding-of-home.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-misc-usage-multiplier.xml +10 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-multiple-buildings.xml +30 -138
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-ah.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-garage.xml +24 -26
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-round-trip-efficiency.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery-scheduled.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-battery.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators-battery-scheduled.xml +18 -44
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators-battery.xml +18 -44
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv-generators.xml +18 -44
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-pv.xml +16 -42
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-residents-0-runperiod-1-month.xml +560 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-residents-0.xml +556 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational-misc-loads-large-uncommon.xml → base-residents-1-misc-loads-large-uncommon.xml} +616 -644
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational-misc-loads-large-uncommon2.xml → base-residents-1-misc-loads-large-uncommon2.xml} +616 -644
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational.xml → base-residents-1.xml} +547 -575
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-calctype-operational-misc-defaults.xml → base-residents-5.xml} +515 -539
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-all-10-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-10-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-power-outage.xml +565 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/{base-schedules-detailed-occupancy-smooth.xml → base-schedules-detailed-occupancy-stochastic-vacancy-year-round.xml} +563 -583
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic-vacancy.xml +21 -41
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-occupancy-stochastic.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints-daily-schedules.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints-daily-setbacks.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-detailed-setpoints.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-power-outage-natvent-available.xml +565 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-power-outage-natvent-unavailable.xml +565 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-power-outage.xml +620 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-vacancy-year-round.xml +619 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple-vacancy.xml +619 -0
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-schedules-simple.xml +10 -38
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-calendar-year-custom.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-custom.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-daylight-saving-disabled.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-runperiod-1-month.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-temperature-capacitance-multiplier.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins-occupancy-stochastic-10-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins-occupancy-stochastic-60-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-10-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-simcontrol-timestep-30-mins.xml +10 -40
- data/example_files/resources/hpxml-measures/workflow/sample_files/base.xml +10 -37
- data/example_files/resources/hpxml-measures/workflow/template-build-and-run-hpxml-with-stochastic-occupancy.osw +16 -4
- data/example_files/resources/hpxml-measures/workflow/template-run-hpxml-with-stochastic-occupancy-subset.osw +16 -3
- data/example_files/resources/hpxml-measures/workflow/template-run-hpxml-with-stochastic-occupancy.osw +16 -3
- data/example_files/resources/hpxml-measures/workflow/template-run-hpxml.osw +16 -2
- data/example_files/resources/hpxml-measures/workflow/tests/ACCA_Examples/Long_Residence.xml +386 -0
- data/example_files/resources/hpxml-measures/workflow/tests/ACCA_Examples/Vatilo_Residence.xml +381 -0
- data/example_files/resources/hpxml-measures/workflow/tests/ACCA_Examples/Victor_Residence.xml +370 -0
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AC.xml +2 -2
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L100AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L110AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L120AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L130AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L140AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L150AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L155AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L160AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AC.xml +2 -12
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L170AL.xml +2 -12
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L200AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L202AL.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L302XC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L304XC.xml +2 -5
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L322XC.xml +6 -9
- data/example_files/resources/hpxml-measures/workflow/tests/ASHRAE_Standard_140/L324XC.xml +6 -9
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results.csv +475 -444
- data/example_files/resources/hpxml-measures/workflow/tests/base_results/results_bills.csv +475 -444
- data/example_files/resources/hpxml-measures/workflow/tests/hpxml_translator_test.rb +177 -112
- data/example_files/resources/meta_measure.rb +2 -27
- data/example_files/xml_building/17/README.md +3 -3
- data/lib/uo_cli/version.rb +3 -38
- data/lib/uo_cli.rb +3 -38
- data/uo_cli.gemspec +6 -7
- metadata +70 -51
- data/example_files/resources/hpxml-measures/BuildResidentialScheduleFile/resources/schedules_config.json +0 -388
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXMLBaseElements.xsd +0 -6136
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/hpxml_schema/HPXMLDataTypes.xsd +0 -4846
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-smooth.csv +0 -8761
- data/example_files/resources/hpxml-measures/HPXMLtoOpenStudio/resources/schedule_files/occupancy-stochastic-vacancy.csv +0 -8761
- data/example_files/resources/hpxml-measures/weather/USA_AZ_Phoenix-Sky.Harbor.Intl.AP.722780_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_CO_Colorado.Springs-Peterson.Field.724660_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_CO_Denver.Intl.AP.725650_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_DE_Wilmington-New.Castle.County.AP.724089_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_FL_Miami.Intl.AP.722020_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_HI_Honolulu.Intl.AP.911820_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_MD_Baltimore-Washington.Intl.AP.724060_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_MN_Duluth.Intl.AP.727450_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_MT_Helena.Rgnl.AP.727720_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_NC_Charlotte-Douglas.Intl.AP.723140_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_NJ_Cape.May.County.AP.745966_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_NV_Las.Vegas-McCarran.Intl.AP.723860_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_OR_Portland.Intl.AP.726980_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/USA_TX_Dallas-Fort.Worth.Intl.AP.722590_TMY3-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/US_CO_Boulder_AMY_2012-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/weather/ZAF_Cape.Town.688160_IWEC-cache.csv +0 -35
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces.xml +0 -2508
- data/example_files/resources/hpxml-measures/workflow/sample_files/base-enclosure-split-surfaces2.xml +0 -2508
data/example_files/resources/hpxml-measures/ReportSimulationOutput/tests/output_report_test.rb
CHANGED
@@ -21,162 +21,175 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
21
21
|
end
|
22
22
|
|
23
23
|
AnnualRows = [
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
24
|
+
"Energy Use: #{TE::Total} (MBtu)",
|
25
|
+
"Energy Use: #{TE::Net} (MBtu)",
|
26
|
+
"Fuel Use: #{FT::Elec}: #{TE::Total} (MBtu)",
|
27
|
+
"Fuel Use: #{FT::Elec}: #{TE::Net} (MBtu)",
|
28
|
+
"Fuel Use: #{FT::Gas}: #{TE::Total} (MBtu)",
|
29
|
+
"Fuel Use: #{FT::Oil}: #{TE::Total} (MBtu)",
|
30
|
+
"Fuel Use: #{FT::Propane}: #{TE::Total} (MBtu)",
|
31
|
+
"Fuel Use: #{FT::WoodCord}: #{TE::Total} (MBtu)",
|
32
|
+
"Fuel Use: #{FT::WoodPellets}: #{TE::Total} (MBtu)",
|
33
|
+
"Fuel Use: #{FT::Coal}: #{TE::Total} (MBtu)",
|
34
|
+
"End Use: #{FT::Elec}: #{EUT::Heating} (MBtu)",
|
35
|
+
"End Use: #{FT::Elec}: #{EUT::HeatingFanPump} (MBtu)",
|
36
|
+
"End Use: #{FT::Elec}: #{EUT::HeatingHeatPumpBackup} (MBtu)",
|
37
|
+
"End Use: #{FT::Elec}: #{EUT::HeatingHeatPumpBackupFanPump} (MBtu)",
|
38
|
+
"End Use: #{FT::Elec}: #{EUT::Cooling} (MBtu)",
|
39
|
+
"End Use: #{FT::Elec}: #{EUT::CoolingFanPump} (MBtu)",
|
40
|
+
"End Use: #{FT::Elec}: #{EUT::HotWater} (MBtu)",
|
41
|
+
"End Use: #{FT::Elec}: #{EUT::HotWaterRecircPump} (MBtu)",
|
42
|
+
"End Use: #{FT::Elec}: #{EUT::HotWaterSolarThermalPump} (MBtu)",
|
43
|
+
"End Use: #{FT::Elec}: #{EUT::LightsInterior} (MBtu)",
|
44
|
+
"End Use: #{FT::Elec}: #{EUT::LightsGarage} (MBtu)",
|
45
|
+
"End Use: #{FT::Elec}: #{EUT::LightsExterior} (MBtu)",
|
46
|
+
"End Use: #{FT::Elec}: #{EUT::MechVent} (MBtu)",
|
47
|
+
"End Use: #{FT::Elec}: #{EUT::MechVentPreheat} (MBtu)",
|
48
|
+
"End Use: #{FT::Elec}: #{EUT::MechVentPrecool} (MBtu)",
|
49
|
+
"End Use: #{FT::Elec}: #{EUT::WholeHouseFan} (MBtu)",
|
50
|
+
"End Use: #{FT::Elec}: #{EUT::Refrigerator} (MBtu)",
|
51
|
+
"End Use: #{FT::Elec}: #{EUT::Freezer} (MBtu)",
|
52
|
+
"End Use: #{FT::Elec}: #{EUT::Dehumidifier} (MBtu)",
|
53
|
+
"End Use: #{FT::Elec}: #{EUT::Dishwasher} (MBtu)",
|
54
|
+
"End Use: #{FT::Elec}: #{EUT::ClothesWasher} (MBtu)",
|
55
|
+
"End Use: #{FT::Elec}: #{EUT::ClothesDryer} (MBtu)",
|
56
|
+
"End Use: #{FT::Elec}: #{EUT::RangeOven} (MBtu)",
|
57
|
+
"End Use: #{FT::Elec}: #{EUT::CeilingFan} (MBtu)",
|
58
|
+
"End Use: #{FT::Elec}: #{EUT::Television} (MBtu)",
|
59
|
+
"End Use: #{FT::Elec}: #{EUT::PlugLoads} (MBtu)",
|
60
|
+
"End Use: #{FT::Elec}: #{EUT::Vehicle} (MBtu)",
|
61
|
+
"End Use: #{FT::Elec}: #{EUT::WellPump} (MBtu)",
|
62
|
+
"End Use: #{FT::Elec}: #{EUT::PoolHeater} (MBtu)",
|
63
|
+
"End Use: #{FT::Elec}: #{EUT::PoolPump} (MBtu)",
|
64
|
+
"End Use: #{FT::Elec}: #{EUT::HotTubHeater} (MBtu)",
|
65
|
+
"End Use: #{FT::Elec}: #{EUT::HotTubPump} (MBtu)",
|
66
|
+
"End Use: #{FT::Elec}: #{EUT::PV} (MBtu)",
|
67
|
+
"End Use: #{FT::Elec}: #{EUT::Generator} (MBtu)",
|
68
|
+
"End Use: #{FT::Elec}: #{EUT::Battery} (MBtu)",
|
69
|
+
"End Use: #{FT::Gas}: #{EUT::Heating} (MBtu)",
|
70
|
+
"End Use: #{FT::Gas}: #{EUT::HeatingHeatPumpBackup} (MBtu)",
|
71
|
+
"End Use: #{FT::Gas}: #{EUT::HotWater} (MBtu)",
|
72
|
+
"End Use: #{FT::Gas}: #{EUT::MechVentPreheat} (MBtu)",
|
73
|
+
"End Use: #{FT::Gas}: #{EUT::ClothesDryer} (MBtu)",
|
74
|
+
"End Use: #{FT::Gas}: #{EUT::RangeOven} (MBtu)",
|
75
|
+
"End Use: #{FT::Gas}: #{EUT::PoolHeater} (MBtu)",
|
76
|
+
"End Use: #{FT::Gas}: #{EUT::HotTubHeater} (MBtu)",
|
77
|
+
"End Use: #{FT::Gas}: #{EUT::Grill} (MBtu)",
|
78
|
+
"End Use: #{FT::Gas}: #{EUT::Lighting} (MBtu)",
|
79
|
+
"End Use: #{FT::Gas}: #{EUT::Fireplace} (MBtu)",
|
80
|
+
"End Use: #{FT::Gas}: #{EUT::Generator} (MBtu)",
|
81
|
+
"End Use: #{FT::Oil}: #{EUT::Heating} (MBtu)",
|
82
|
+
"End Use: #{FT::Oil}: #{EUT::HeatingHeatPumpBackup} (MBtu)",
|
83
|
+
"End Use: #{FT::Oil}: #{EUT::HotWater} (MBtu)",
|
84
|
+
"End Use: #{FT::Oil}: #{EUT::MechVentPreheat} (MBtu)",
|
85
|
+
"End Use: #{FT::Oil}: #{EUT::ClothesDryer} (MBtu)",
|
86
|
+
"End Use: #{FT::Oil}: #{EUT::RangeOven} (MBtu)",
|
87
|
+
"End Use: #{FT::Oil}: #{EUT::Grill} (MBtu)",
|
88
|
+
"End Use: #{FT::Oil}: #{EUT::Lighting} (MBtu)",
|
89
|
+
"End Use: #{FT::Oil}: #{EUT::Fireplace} (MBtu)",
|
90
|
+
"End Use: #{FT::Oil}: #{EUT::Generator} (MBtu)",
|
91
|
+
"End Use: #{FT::Propane}: #{EUT::Heating} (MBtu)",
|
92
|
+
"End Use: #{FT::Propane}: #{EUT::HeatingHeatPumpBackup} (MBtu)",
|
93
|
+
"End Use: #{FT::Propane}: #{EUT::HotWater} (MBtu)",
|
94
|
+
"End Use: #{FT::Propane}: #{EUT::MechVentPreheat} (MBtu)",
|
95
|
+
"End Use: #{FT::Propane}: #{EUT::ClothesDryer} (MBtu)",
|
96
|
+
"End Use: #{FT::Propane}: #{EUT::RangeOven} (MBtu)",
|
97
|
+
"End Use: #{FT::Propane}: #{EUT::Grill} (MBtu)",
|
98
|
+
"End Use: #{FT::Propane}: #{EUT::Lighting} (MBtu)",
|
99
|
+
"End Use: #{FT::Propane}: #{EUT::Fireplace} (MBtu)",
|
100
|
+
"End Use: #{FT::Propane}: #{EUT::Generator} (MBtu)",
|
101
|
+
"End Use: #{FT::WoodCord}: #{EUT::Heating} (MBtu)",
|
102
|
+
"End Use: #{FT::WoodCord}: #{EUT::HeatingHeatPumpBackup} (MBtu)",
|
103
|
+
"End Use: #{FT::WoodCord}: #{EUT::HotWater} (MBtu)",
|
104
|
+
"End Use: #{FT::WoodCord}: #{EUT::MechVentPreheat} (MBtu)",
|
105
|
+
"End Use: #{FT::WoodCord}: #{EUT::ClothesDryer} (MBtu)",
|
106
|
+
"End Use: #{FT::WoodCord}: #{EUT::RangeOven} (MBtu)",
|
107
|
+
"End Use: #{FT::WoodCord}: #{EUT::Grill} (MBtu)",
|
108
|
+
"End Use: #{FT::WoodCord}: #{EUT::Lighting} (MBtu)",
|
109
|
+
"End Use: #{FT::WoodCord}: #{EUT::Fireplace} (MBtu)",
|
110
|
+
"End Use: #{FT::WoodCord}: #{EUT::Generator} (MBtu)",
|
111
|
+
"End Use: #{FT::WoodPellets}: #{EUT::Heating} (MBtu)",
|
112
|
+
"End Use: #{FT::WoodPellets}: #{EUT::HeatingHeatPumpBackup} (MBtu)",
|
113
|
+
"End Use: #{FT::WoodPellets}: #{EUT::HotWater} (MBtu)",
|
114
|
+
"End Use: #{FT::WoodPellets}: #{EUT::MechVentPreheat} (MBtu)",
|
115
|
+
"End Use: #{FT::WoodPellets}: #{EUT::ClothesDryer} (MBtu)",
|
116
|
+
"End Use: #{FT::WoodPellets}: #{EUT::RangeOven} (MBtu)",
|
117
|
+
"End Use: #{FT::WoodPellets}: #{EUT::Grill} (MBtu)",
|
118
|
+
"End Use: #{FT::WoodPellets}: #{EUT::Lighting} (MBtu)",
|
119
|
+
"End Use: #{FT::WoodPellets}: #{EUT::Fireplace} (MBtu)",
|
120
|
+
"End Use: #{FT::WoodPellets}: #{EUT::Generator} (MBtu)",
|
121
|
+
"End Use: #{FT::Coal}: #{EUT::Heating} (MBtu)",
|
122
|
+
"End Use: #{FT::Coal}: #{EUT::HeatingHeatPumpBackup} (MBtu)",
|
123
|
+
"End Use: #{FT::Coal}: #{EUT::HotWater} (MBtu)",
|
124
|
+
"End Use: #{FT::Coal}: #{EUT::MechVentPreheat} (MBtu)",
|
125
|
+
"End Use: #{FT::Coal}: #{EUT::ClothesDryer} (MBtu)",
|
126
|
+
"End Use: #{FT::Coal}: #{EUT::RangeOven} (MBtu)",
|
127
|
+
"End Use: #{FT::Coal}: #{EUT::Grill} (MBtu)",
|
128
|
+
"End Use: #{FT::Coal}: #{EUT::Lighting} (MBtu)",
|
129
|
+
"End Use: #{FT::Coal}: #{EUT::Fireplace} (MBtu)",
|
130
|
+
"End Use: #{FT::Coal}: #{EUT::Generator} (MBtu)",
|
131
|
+
"System Use: HeatingSystem1: #{FT::Elec}: #{EUT::HeatingFanPump} (MBtu)",
|
132
|
+
"System Use: HeatingSystem1: #{FT::Gas}: #{EUT::Heating} (MBtu)",
|
133
|
+
"System Use: CoolingSystem1: #{FT::Elec}: #{EUT::Cooling} (MBtu)",
|
134
|
+
"System Use: CoolingSystem1: #{FT::Elec}: #{EUT::CoolingFanPump} (MBtu)",
|
135
|
+
"System Use: WaterHeatingSystem1: #{FT::Elec}: #{EUT::HotWater} (MBtu)",
|
136
|
+
"Load: #{LT::Heating} (MBtu)",
|
137
|
+
"Load: #{LT::HeatingHeatPumpBackup} (MBtu)",
|
138
|
+
"Load: #{LT::Cooling} (MBtu)",
|
139
|
+
"Load: #{LT::HotWaterDelivered} (MBtu)",
|
140
|
+
"Load: #{LT::HotWaterTankLosses} (MBtu)",
|
141
|
+
"Load: #{LT::HotWaterDesuperheater} (MBtu)",
|
142
|
+
"Load: #{LT::HotWaterSolarThermal} (MBtu)",
|
143
|
+
"Unmet Hours: #{UHT::Heating} (hr)",
|
144
|
+
"Unmet Hours: #{UHT::Cooling} (hr)",
|
145
|
+
"Peak Electricity: #{PFT::Winter} #{TE::Total} (W)",
|
146
|
+
"Peak Electricity: #{PFT::Summer} #{TE::Total} (W)",
|
147
|
+
"Peak Load: #{PLT::Heating} (kBtu/hr)",
|
148
|
+
"Peak Load: #{PLT::Cooling} (kBtu/hr)",
|
149
|
+
"Component Load: Heating: #{CLT::Roofs} (MBtu)",
|
150
|
+
"Component Load: Heating: #{CLT::Ceilings} (MBtu)",
|
151
|
+
"Component Load: Heating: #{CLT::Walls} (MBtu)",
|
152
|
+
"Component Load: Heating: #{CLT::RimJoists} (MBtu)",
|
153
|
+
"Component Load: Heating: #{CLT::FoundationWalls} (MBtu)",
|
154
|
+
"Component Load: Heating: #{CLT::Doors} (MBtu)",
|
155
|
+
"Component Load: Heating: #{CLT::WindowsConduction} (MBtu)",
|
156
|
+
"Component Load: Heating: #{CLT::WindowsSolar} (MBtu)",
|
157
|
+
"Component Load: Heating: #{CLT::SkylightsConduction} (MBtu)",
|
158
|
+
"Component Load: Heating: #{CLT::SkylightsSolar} (MBtu)",
|
159
|
+
"Component Load: Heating: #{CLT::Floors} (MBtu)",
|
160
|
+
"Component Load: Heating: #{CLT::Slabs} (MBtu)",
|
161
|
+
"Component Load: Heating: #{CLT::InternalMass} (MBtu)",
|
162
|
+
"Component Load: Heating: #{CLT::Infiltration} (MBtu)",
|
163
|
+
"Component Load: Heating: #{CLT::NaturalVentilation} (MBtu)",
|
164
|
+
"Component Load: Heating: #{CLT::MechanicalVentilation} (MBtu)",
|
165
|
+
"Component Load: Heating: #{CLT::WholeHouseFan} (MBtu)",
|
166
|
+
"Component Load: Heating: #{CLT::Ducts} (MBtu)",
|
167
|
+
"Component Load: Heating: #{CLT::InternalGains} (MBtu)",
|
168
|
+
"Component Load: Heating: #{CLT::Lighting} (MBtu)",
|
169
|
+
"Component Load: Cooling: #{CLT::Roofs} (MBtu)",
|
170
|
+
"Component Load: Cooling: #{CLT::Ceilings} (MBtu)",
|
171
|
+
"Component Load: Cooling: #{CLT::Walls} (MBtu)",
|
172
|
+
"Component Load: Cooling: #{CLT::RimJoists} (MBtu)",
|
173
|
+
"Component Load: Cooling: #{CLT::FoundationWalls} (MBtu)",
|
174
|
+
"Component Load: Cooling: #{CLT::Doors} (MBtu)",
|
175
|
+
"Component Load: Cooling: #{CLT::WindowsConduction} (MBtu)",
|
176
|
+
"Component Load: Cooling: #{CLT::WindowsSolar} (MBtu)",
|
177
|
+
"Component Load: Cooling: #{CLT::SkylightsConduction} (MBtu)",
|
178
|
+
"Component Load: Cooling: #{CLT::SkylightsSolar} (MBtu)",
|
179
|
+
"Component Load: Cooling: #{CLT::Floors} (MBtu)",
|
180
|
+
"Component Load: Cooling: #{CLT::Slabs} (MBtu)",
|
181
|
+
"Component Load: Cooling: #{CLT::InternalMass} (MBtu)",
|
182
|
+
"Component Load: Cooling: #{CLT::Infiltration} (MBtu)",
|
183
|
+
"Component Load: Cooling: #{CLT::NaturalVentilation} (MBtu)",
|
184
|
+
"Component Load: Cooling: #{CLT::MechanicalVentilation} (MBtu)",
|
185
|
+
"Component Load: Cooling: #{CLT::WholeHouseFan} (MBtu)",
|
186
|
+
"Component Load: Cooling: #{CLT::Ducts} (MBtu)",
|
187
|
+
"Component Load: Cooling: #{CLT::InternalGains} (MBtu)",
|
188
|
+
"Component Load: Cooling: #{CLT::Lighting} (MBtu)",
|
189
|
+
"Hot Water: #{HWT::ClothesWasher} (gal)",
|
190
|
+
"Hot Water: #{HWT::Dishwasher} (gal)",
|
191
|
+
"Hot Water: #{HWT::Fixtures} (gal)",
|
192
|
+
"Hot Water: #{HWT::DistributionWaste} (gal)",
|
180
193
|
'HVAC Capacity: Cooling (Btu/h)',
|
181
194
|
'HVAC Capacity: Heating (Btu/h)',
|
182
195
|
'HVAC Capacity: Heat Pump Backup (Btu/h)',
|
@@ -212,75 +225,88 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
212
225
|
]
|
213
226
|
|
214
227
|
BaseHPXMLTimeseriesColsEnergy = [
|
215
|
-
|
228
|
+
"Energy Use: #{TE::Total}",
|
216
229
|
]
|
217
230
|
|
218
231
|
BaseHPXMLTimeseriesColsFuels = [
|
219
|
-
|
220
|
-
|
232
|
+
"Fuel Use: #{FT::Elec}: #{TE::Total}",
|
233
|
+
"Fuel Use: #{FT::Gas}: #{TE::Total}",
|
221
234
|
]
|
222
235
|
|
223
236
|
BaseHPXMLTimeseriesColsEndUses = [
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
237
|
+
"End Use: #{FT::Elec}: #{EUT::ClothesDryer}",
|
238
|
+
"End Use: #{FT::Elec}: #{EUT::ClothesWasher}",
|
239
|
+
"End Use: #{FT::Elec}: #{EUT::Cooling}",
|
240
|
+
"End Use: #{FT::Elec}: #{EUT::CoolingFanPump}",
|
241
|
+
"End Use: #{FT::Elec}: #{EUT::Dishwasher}",
|
242
|
+
"End Use: #{FT::Elec}: #{EUT::HeatingFanPump}",
|
243
|
+
"End Use: #{FT::Elec}: #{EUT::HotWater}",
|
244
|
+
"End Use: #{FT::Elec}: #{EUT::LightsExterior}",
|
245
|
+
"End Use: #{FT::Elec}: #{EUT::LightsInterior}",
|
246
|
+
"End Use: #{FT::Elec}: #{EUT::PlugLoads}",
|
247
|
+
"End Use: #{FT::Elec}: #{EUT::RangeOven}",
|
248
|
+
"End Use: #{FT::Elec}: #{EUT::Refrigerator}",
|
249
|
+
"End Use: #{FT::Elec}: #{EUT::Television}",
|
250
|
+
"End Use: #{FT::Gas}: #{EUT::Heating}",
|
251
|
+
]
|
252
|
+
|
253
|
+
BaseHPXMLTimeseriesColsSystemUses = [
|
254
|
+
"System Use: HeatingSystem1: #{FT::Elec}: #{EUT::HeatingFanPump}",
|
255
|
+
"System Use: HeatingSystem1: #{FT::Gas}: #{EUT::Heating}",
|
256
|
+
"System Use: CoolingSystem1: #{FT::Elec}: #{EUT::Cooling}",
|
257
|
+
"System Use: CoolingSystem1: #{FT::Elec}: #{EUT::CoolingFanPump}",
|
258
|
+
"System Use: WaterHeatingSystem1: #{FT::Elec}: #{EUT::HotWater}",
|
238
259
|
]
|
239
260
|
|
240
261
|
BaseHPXMLTimeseriesColsWaterUses = [
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
262
|
+
"Hot Water: #{HWT::ClothesWasher}",
|
263
|
+
"Hot Water: #{HWT::Dishwasher}",
|
264
|
+
"Hot Water: #{HWT::Fixtures}",
|
265
|
+
"Hot Water: #{HWT::DistributionWaste}",
|
245
266
|
]
|
246
267
|
|
247
268
|
BaseHPXMLTimeseriesColsTotalLoads = [
|
248
|
-
|
249
|
-
|
250
|
-
|
269
|
+
"Load: #{LT::Heating}",
|
270
|
+
"Load: #{LT::Cooling}",
|
271
|
+
"Load: #{LT::HotWaterDelivered}",
|
272
|
+
"Load: #{LT::HotWaterTankLosses}"
|
251
273
|
]
|
252
274
|
|
253
275
|
BaseHPXMLTimeseriesColsComponentLoads = [
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
276
|
+
"Component Load: Cooling: #{CLT::Ceilings}",
|
277
|
+
"Component Load: Cooling: #{CLT::Doors}",
|
278
|
+
"Component Load: Cooling: #{CLT::Ducts}",
|
279
|
+
"Component Load: Cooling: #{CLT::FoundationWalls}",
|
280
|
+
"Component Load: Cooling: #{CLT::Infiltration}",
|
281
|
+
"Component Load: Cooling: #{CLT::Lighting}",
|
282
|
+
"Component Load: Cooling: #{CLT::InternalGains}",
|
283
|
+
"Component Load: Cooling: #{CLT::InternalMass}",
|
284
|
+
"Component Load: Cooling: #{CLT::MechanicalVentilation}",
|
285
|
+
"Component Load: Cooling: #{CLT::NaturalVentilation}",
|
286
|
+
"Component Load: Cooling: #{CLT::RimJoists}",
|
287
|
+
"Component Load: Cooling: #{CLT::Slabs}",
|
288
|
+
"Component Load: Cooling: #{CLT::Walls}",
|
289
|
+
"Component Load: Cooling: #{CLT::WindowsConduction}",
|
290
|
+
"Component Load: Cooling: #{CLT::WindowsSolar}",
|
291
|
+
"Component Load: Heating: #{CLT::Ceilings}",
|
292
|
+
"Component Load: Heating: #{CLT::Doors}",
|
293
|
+
"Component Load: Heating: #{CLT::Ducts}",
|
294
|
+
"Component Load: Heating: #{CLT::FoundationWalls}",
|
295
|
+
"Component Load: Heating: #{CLT::Infiltration}",
|
296
|
+
"Component Load: Heating: #{CLT::Lighting}",
|
297
|
+
"Component Load: Heating: #{CLT::InternalGains}",
|
298
|
+
"Component Load: Heating: #{CLT::InternalMass}",
|
299
|
+
"Component Load: Heating: #{CLT::MechanicalVentilation}",
|
300
|
+
"Component Load: Heating: #{CLT::RimJoists}",
|
301
|
+
"Component Load: Heating: #{CLT::Slabs}",
|
302
|
+
"Component Load: Heating: #{CLT::Walls}",
|
303
|
+
"Component Load: Heating: #{CLT::WindowsConduction}",
|
304
|
+
"Component Load: Heating: #{CLT::WindowsSolar}",
|
279
305
|
]
|
280
306
|
|
281
307
|
BaseHPXMLTimeseriesColsUnmetHours = [
|
282
|
-
|
283
|
-
|
308
|
+
"Unmet Hours: #{UHT::Heating}",
|
309
|
+
"Unmet Hours: #{UHT::Cooling}",
|
284
310
|
]
|
285
311
|
|
286
312
|
BaseHPXMLTimeseriesColsZoneTemps = [
|
@@ -291,18 +317,18 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
291
317
|
]
|
292
318
|
|
293
319
|
BaseHPXMLTimeseriesColsAirflows = [
|
294
|
-
|
295
|
-
|
296
|
-
|
320
|
+
"Airflow: #{AFT::Infiltration}",
|
321
|
+
"Airflow: #{AFT::MechanicalVentilation}",
|
322
|
+
"Airflow: #{AFT::NaturalVentilation}",
|
297
323
|
]
|
298
324
|
|
299
325
|
BaseHPXMLTimeseriesColsWeather = [
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
326
|
+
"Weather: #{WT::DrybulbTemp}",
|
327
|
+
"Weather: #{WT::WetbulbTemp}",
|
328
|
+
"Weather: #{WT::RelativeHumidity}",
|
329
|
+
"Weather: #{WT::WindSpeed}",
|
330
|
+
"Weather: #{WT::DiffuseSolar}",
|
331
|
+
"Weather: #{WT::DirectSolar}",
|
306
332
|
]
|
307
333
|
|
308
334
|
BaseHPXMLTimeseriesColsStandardOutputVariables = [
|
@@ -357,6 +383,7 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
357
383
|
return (BaseHPXMLTimeseriesColsEnergy +
|
358
384
|
BaseHPXMLTimeseriesColsFuels +
|
359
385
|
BaseHPXMLTimeseriesColsEndUses +
|
386
|
+
BaseHPXMLTimeseriesColsSystemUses +
|
360
387
|
BaseHPXMLTimeseriesColsWaterUses +
|
361
388
|
BaseHPXMLTimeseriesColsTotalLoads +
|
362
389
|
BaseHPXMLTimeseriesColsUnmetHours +
|
@@ -376,25 +403,113 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
376
403
|
def emission_annual_cols
|
377
404
|
cols = []
|
378
405
|
emission_scenarios.each do |scenario|
|
379
|
-
cols += ["Emissions: #{scenario}: Total (lb)",
|
380
|
-
"Emissions: #{scenario}:
|
381
|
-
"Emissions: #{scenario}:
|
382
|
-
"Emissions: #{scenario}:
|
383
|
-
"Emissions: #{scenario}:
|
384
|
-
"Emissions: #{scenario}:
|
385
|
-
"Emissions: #{scenario}:
|
386
|
-
"Emissions: #{scenario}:
|
387
|
-
"Emissions: #{scenario}:
|
388
|
-
"Emissions: #{scenario}:
|
389
|
-
"Emissions: #{scenario}:
|
390
|
-
"Emissions: #{scenario}:
|
391
|
-
"Emissions: #{scenario}:
|
392
|
-
"Emissions: #{scenario}:
|
393
|
-
"Emissions: #{scenario}:
|
394
|
-
"Emissions: #{scenario}:
|
395
|
-
"Emissions: #{scenario}:
|
396
|
-
"Emissions: #{scenario}:
|
397
|
-
"Emissions: #{scenario}:
|
406
|
+
cols += ["Emissions: #{scenario}: #{TE::Total} (lb)",
|
407
|
+
"Emissions: #{scenario}: #{TE::Net} (lb)",
|
408
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{TE::Total} (lb)",
|
409
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{TE::Net} (lb)",
|
410
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{TE::Total} (lb)",
|
411
|
+
"Emissions: #{scenario}: #{FT::Oil}: #{TE::Total} (lb)",
|
412
|
+
"Emissions: #{scenario}: #{FT::Propane}: #{TE::Total} (lb)",
|
413
|
+
"Emissions: #{scenario}: #{FT::WoodCord}: #{TE::Total} (lb)",
|
414
|
+
"Emissions: #{scenario}: #{FT::WoodPellets}: #{TE::Total} (lb)",
|
415
|
+
"Emissions: #{scenario}: #{FT::Coal}: #{TE::Total} (lb)",
|
416
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::Heating} (lb)",
|
417
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::HeatingFanPump} (lb)",
|
418
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::HeatingHeatPumpBackup} (lb)",
|
419
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::HeatingHeatPumpBackupFanPump} (lb)",
|
420
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::Cooling} (lb)",
|
421
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::CoolingFanPump} (lb)",
|
422
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::HotWater} (lb)",
|
423
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::HotWaterRecircPump} (lb)",
|
424
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::HotWaterSolarThermalPump} (lb)",
|
425
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::LightsInterior} (lb)",
|
426
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::LightsGarage} (lb)",
|
427
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::LightsExterior} (lb)",
|
428
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::MechVent} (lb)",
|
429
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::MechVentPreheat} (lb)",
|
430
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::MechVentPrecool} (lb)",
|
431
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::WholeHouseFan} (lb)",
|
432
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::Refrigerator} (lb)",
|
433
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::Freezer} (lb)",
|
434
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::Dehumidifier} (lb)",
|
435
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::Dishwasher} (lb)",
|
436
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::ClothesWasher} (lb)",
|
437
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::ClothesDryer} (lb)",
|
438
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::RangeOven} (lb)",
|
439
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::CeilingFan} (lb)",
|
440
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::Television} (lb)",
|
441
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::PlugLoads} (lb)",
|
442
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::Vehicle} (lb)",
|
443
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::WellPump} (lb)",
|
444
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::PoolHeater} (lb)",
|
445
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::PoolPump} (lb)",
|
446
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::HotTubHeater} (lb)",
|
447
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::HotTubPump} (lb)",
|
448
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::PV} (lb)",
|
449
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::Generator} (lb)",
|
450
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::Battery} (lb)",
|
451
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{EUT::Heating} (lb)",
|
452
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{EUT::HeatingHeatPumpBackup} (lb)",
|
453
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{EUT::HotWater} (lb)",
|
454
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{EUT::ClothesDryer} (lb)",
|
455
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{EUT::RangeOven} (lb)",
|
456
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{EUT::PoolHeater} (lb)",
|
457
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{EUT::HotTubHeater} (lb)",
|
458
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{EUT::Grill} (lb)",
|
459
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{EUT::Lighting} (lb)",
|
460
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{EUT::Fireplace} (lb)",
|
461
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{EUT::MechVentPreheat} (lb)",
|
462
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{EUT::Generator} (lb)",
|
463
|
+
"Emissions: #{scenario}: #{FT::Oil}: #{EUT::Heating} (lb)",
|
464
|
+
"Emissions: #{scenario}: #{FT::Oil}: #{EUT::HeatingHeatPumpBackup} (lb)",
|
465
|
+
"Emissions: #{scenario}: #{FT::Oil}: #{EUT::HotWater} (lb)",
|
466
|
+
"Emissions: #{scenario}: #{FT::Oil}: #{EUT::ClothesDryer} (lb)",
|
467
|
+
"Emissions: #{scenario}: #{FT::Oil}: #{EUT::RangeOven} (lb)",
|
468
|
+
"Emissions: #{scenario}: #{FT::Oil}: #{EUT::Grill} (lb)",
|
469
|
+
"Emissions: #{scenario}: #{FT::Oil}: #{EUT::Lighting} (lb)",
|
470
|
+
"Emissions: #{scenario}: #{FT::Oil}: #{EUT::Fireplace} (lb)",
|
471
|
+
"Emissions: #{scenario}: #{FT::Oil}: #{EUT::MechVentPreheat} (lb)",
|
472
|
+
"Emissions: #{scenario}: #{FT::Oil}: #{EUT::Generator} (lb)",
|
473
|
+
"Emissions: #{scenario}: #{FT::Propane}: #{EUT::Heating} (lb)",
|
474
|
+
"Emissions: #{scenario}: #{FT::Propane}: #{EUT::HeatingHeatPumpBackup} (lb)",
|
475
|
+
"Emissions: #{scenario}: #{FT::Propane}: #{EUT::HotWater} (lb)",
|
476
|
+
"Emissions: #{scenario}: #{FT::Propane}: #{EUT::ClothesDryer} (lb)",
|
477
|
+
"Emissions: #{scenario}: #{FT::Propane}: #{EUT::RangeOven} (lb)",
|
478
|
+
"Emissions: #{scenario}: #{FT::Propane}: #{EUT::Grill} (lb)",
|
479
|
+
"Emissions: #{scenario}: #{FT::Propane}: #{EUT::Lighting} (lb)",
|
480
|
+
"Emissions: #{scenario}: #{FT::Propane}: #{EUT::Fireplace} (lb)",
|
481
|
+
"Emissions: #{scenario}: #{FT::Propane}: #{EUT::MechVentPreheat} (lb)",
|
482
|
+
"Emissions: #{scenario}: #{FT::Propane}: #{EUT::Generator} (lb)",
|
483
|
+
"Emissions: #{scenario}: #{FT::WoodCord}: #{EUT::Heating} (lb)",
|
484
|
+
"Emissions: #{scenario}: #{FT::WoodCord}: #{EUT::HeatingHeatPumpBackup} (lb)",
|
485
|
+
"Emissions: #{scenario}: #{FT::WoodCord}: #{EUT::HotWater} (lb)",
|
486
|
+
"Emissions: #{scenario}: #{FT::WoodCord}: #{EUT::ClothesDryer} (lb)",
|
487
|
+
"Emissions: #{scenario}: #{FT::WoodCord}: #{EUT::RangeOven} (lb)",
|
488
|
+
"Emissions: #{scenario}: #{FT::WoodCord}: #{EUT::Grill} (lb)",
|
489
|
+
"Emissions: #{scenario}: #{FT::WoodCord}: #{EUT::Lighting} (lb)",
|
490
|
+
"Emissions: #{scenario}: #{FT::WoodCord}: #{EUT::Fireplace} (lb)",
|
491
|
+
"Emissions: #{scenario}: #{FT::WoodCord}: #{EUT::MechVentPreheat} (lb)",
|
492
|
+
"Emissions: #{scenario}: #{FT::WoodCord}: #{EUT::Generator} (lb)",
|
493
|
+
"Emissions: #{scenario}: #{FT::WoodPellets}: #{EUT::Heating} (lb)",
|
494
|
+
"Emissions: #{scenario}: #{FT::WoodPellets}: #{EUT::HeatingHeatPumpBackup} (lb)",
|
495
|
+
"Emissions: #{scenario}: #{FT::WoodPellets}: #{EUT::HotWater} (lb)",
|
496
|
+
"Emissions: #{scenario}: #{FT::WoodPellets}: #{EUT::ClothesDryer} (lb)",
|
497
|
+
"Emissions: #{scenario}: #{FT::WoodPellets}: #{EUT::RangeOven} (lb)",
|
498
|
+
"Emissions: #{scenario}: #{FT::WoodPellets}: #{EUT::Grill} (lb)",
|
499
|
+
"Emissions: #{scenario}: #{FT::WoodPellets}: #{EUT::Lighting} (lb)",
|
500
|
+
"Emissions: #{scenario}: #{FT::WoodPellets}: #{EUT::Fireplace} (lb)",
|
501
|
+
"Emissions: #{scenario}: #{FT::WoodPellets}: #{EUT::MechVentPreheat} (lb)",
|
502
|
+
"Emissions: #{scenario}: #{FT::WoodPellets}: #{EUT::Generator} (lb)",
|
503
|
+
"Emissions: #{scenario}: #{FT::Coal}: #{EUT::Heating} (lb)",
|
504
|
+
"Emissions: #{scenario}: #{FT::Coal}: #{EUT::HeatingHeatPumpBackup} (lb)",
|
505
|
+
"Emissions: #{scenario}: #{FT::Coal}: #{EUT::HotWater} (lb)",
|
506
|
+
"Emissions: #{scenario}: #{FT::Coal}: #{EUT::ClothesDryer} (lb)",
|
507
|
+
"Emissions: #{scenario}: #{FT::Coal}: #{EUT::RangeOven} (lb)",
|
508
|
+
"Emissions: #{scenario}: #{FT::Coal}: #{EUT::Grill} (lb)",
|
509
|
+
"Emissions: #{scenario}: #{FT::Coal}: #{EUT::Lighting} (lb)",
|
510
|
+
"Emissions: #{scenario}: #{FT::Coal}: #{EUT::Fireplace} (lb)",
|
511
|
+
"Emissions: #{scenario}: #{FT::Coal}: #{EUT::MechVentPreheat} (lb)",
|
512
|
+
"Emissions: #{scenario}: #{FT::Coal}: #{EUT::Generator} (lb)"]
|
398
513
|
end
|
399
514
|
return cols
|
400
515
|
end
|
@@ -402,7 +517,8 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
402
517
|
def emissions_timeseries_cols
|
403
518
|
cols = []
|
404
519
|
emission_scenarios.each do |scenario|
|
405
|
-
cols += ["Emissions: #{scenario}: Total"
|
520
|
+
cols += ["Emissions: #{scenario}: #{TE::Total}",
|
521
|
+
"Emissions: #{scenario}: #{TE::Net}"]
|
406
522
|
end
|
407
523
|
return cols
|
408
524
|
end
|
@@ -410,8 +526,9 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
410
526
|
def emission_fuels_timeseries_cols
|
411
527
|
cols = []
|
412
528
|
emission_scenarios.each do |scenario|
|
413
|
-
cols += ["Emissions: #{scenario}:
|
414
|
-
"Emissions: #{scenario}:
|
529
|
+
cols += ["Emissions: #{scenario}: #{FT::Elec}: #{TE::Total}",
|
530
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{TE::Net}",
|
531
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{TE::Total}"]
|
415
532
|
end
|
416
533
|
return cols
|
417
534
|
end
|
@@ -419,33 +536,42 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
419
536
|
def emission_end_uses_timeseries_cols
|
420
537
|
cols = []
|
421
538
|
emission_scenarios.each do |scenario|
|
422
|
-
cols += ["Emissions: #{scenario}:
|
423
|
-
"Emissions: #{scenario}:
|
424
|
-
"Emissions: #{scenario}:
|
425
|
-
"Emissions: #{scenario}:
|
426
|
-
"Emissions: #{scenario}:
|
427
|
-
"Emissions: #{scenario}:
|
428
|
-
"Emissions: #{scenario}:
|
429
|
-
"Emissions: #{scenario}:
|
430
|
-
"Emissions: #{scenario}:
|
431
|
-
"Emissions: #{scenario}:
|
432
|
-
"Emissions: #{scenario}:
|
433
|
-
"Emissions: #{scenario}:
|
434
|
-
"Emissions: #{scenario}:
|
435
|
-
"Emissions: #{scenario}:
|
436
|
-
"Emissions: #{scenario}:
|
437
|
-
"Emissions: #{scenario}:
|
539
|
+
cols += ["Emissions: #{scenario}: #{FT::Elec}: #{EUT::Cooling}",
|
540
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::CoolingFanPump}",
|
541
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::HeatingFanPump}",
|
542
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::HotWater}",
|
543
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::LightsInterior}",
|
544
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::LightsExterior}",
|
545
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::Refrigerator}",
|
546
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::Dishwasher}",
|
547
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::ClothesWasher}",
|
548
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::ClothesDryer}",
|
549
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::RangeOven}",
|
550
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::Television}",
|
551
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::PlugLoads}",
|
552
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::PV}",
|
553
|
+
"Emissions: #{scenario}: #{FT::Elec}: #{EUT::Battery}",
|
554
|
+
"Emissions: #{scenario}: #{FT::Gas}: #{EUT::Heating}"]
|
438
555
|
end
|
439
556
|
return cols
|
440
557
|
end
|
441
558
|
|
559
|
+
def pv_battery_timeseries_cols
|
560
|
+
return ["End Use: #{FT::Elec}: #{EUT::PV}",
|
561
|
+
"End Use: #{FT::Elec}: #{EUT::Battery}",
|
562
|
+
"Energy Use: #{TE::Net}",
|
563
|
+
"Fuel Use: #{FT::Elec}: #{TE::Net}"]
|
564
|
+
end
|
565
|
+
|
442
566
|
def test_annual_only
|
443
567
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
568
|
+
'skip_validation' => true,
|
444
569
|
'add_component_loads' => true,
|
445
570
|
'timeseries_frequency' => 'hourly',
|
446
571
|
'include_timeseries_total_consumptions' => false,
|
447
572
|
'include_timeseries_fuel_consumptions' => false,
|
448
573
|
'include_timeseries_end_use_consumptions' => false,
|
574
|
+
'include_timeseries_system_use_consumptions' => false,
|
449
575
|
'include_timeseries_emissions' => false,
|
450
576
|
'include_timeseries_emission_fuels' => false,
|
451
577
|
'include_timeseries_emission_end_uses' => false,
|
@@ -467,11 +593,13 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
467
593
|
|
468
594
|
def test_annual_only2
|
469
595
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-misc-emissions.xml'),
|
596
|
+
'skip_validation' => true,
|
470
597
|
'add_component_loads' => true,
|
471
598
|
'timeseries_frequency' => 'none',
|
472
|
-
'include_timeseries_total_consumptions' =>
|
599
|
+
'include_timeseries_total_consumptions' => true,
|
473
600
|
'include_timeseries_fuel_consumptions' => true,
|
474
601
|
'include_timeseries_end_use_consumptions' => true,
|
602
|
+
'include_timeseries_system_use_consumptions' => true,
|
475
603
|
'include_timeseries_emissions' => true,
|
476
604
|
'include_timeseries_emission_fuels' => true,
|
477
605
|
'include_timeseries_emission_end_uses' => true,
|
@@ -491,8 +619,33 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
491
619
|
_check_for_runner_registered_values(File.join(File.dirname(annual_csv), 'results.json'), actual_annual_rows)
|
492
620
|
end
|
493
621
|
|
622
|
+
def test_annual_disabled_outputs
|
623
|
+
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
624
|
+
'skip_validation' => true,
|
625
|
+
'include_annual_total_consumptions' => false,
|
626
|
+
'include_annual_fuel_consumptions' => false,
|
627
|
+
'include_annual_end_use_consumptions' => false,
|
628
|
+
'include_annual_system_use_consumptions' => false,
|
629
|
+
'include_annual_emissions' => false,
|
630
|
+
'include_annual_emission_fuels' => false,
|
631
|
+
'include_annual_emission_end_uses' => false,
|
632
|
+
'include_annual_total_loads' => false,
|
633
|
+
'include_annual_unmet_hours' => false,
|
634
|
+
'include_annual_peak_fuels' => false,
|
635
|
+
'include_annual_peak_loads' => false,
|
636
|
+
'include_annual_component_loads' => false,
|
637
|
+
'include_annual_hot_water_uses' => false,
|
638
|
+
'include_annual_hvac_summary' => false }
|
639
|
+
annual_csv, timeseries_csv = _test_measure(args_hash)
|
640
|
+
assert(File.exist?(annual_csv))
|
641
|
+
assert(!File.exist?(timeseries_csv))
|
642
|
+
actual_annual_rows = _get_actual_annual_rows(annual_csv)
|
643
|
+
assert(actual_annual_rows.keys.empty?)
|
644
|
+
end
|
645
|
+
|
494
646
|
def test_timeseries_hourly_total_energy
|
495
647
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
648
|
+
'skip_validation' => true,
|
496
649
|
'timeseries_frequency' => 'hourly',
|
497
650
|
'include_timeseries_total_consumptions' => true }
|
498
651
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -505,29 +658,31 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
505
658
|
assert_equal(8760, timeseries_rows.size - 2)
|
506
659
|
timeseries_cols = timeseries_rows.transpose
|
507
660
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
508
|
-
|
661
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, ["Energy Use: #{TE::Total}"])
|
509
662
|
end
|
510
663
|
|
511
664
|
def test_timeseries_hourly_total_energy_pv
|
512
665
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-pv.xml'),
|
666
|
+
'skip_validation' => true,
|
513
667
|
'timeseries_frequency' => 'hourly',
|
514
668
|
'include_timeseries_total_consumptions' => true }
|
515
669
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
516
670
|
assert(File.exist?(annual_csv))
|
517
671
|
assert(File.exist?(timeseries_csv))
|
518
|
-
expected_timeseries_cols = ['Time'] + BaseHPXMLTimeseriesColsEnergy + [
|
672
|
+
expected_timeseries_cols = ['Time'] + BaseHPXMLTimeseriesColsEnergy + ["Energy Use: #{TE::Net}"]
|
519
673
|
actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
|
520
674
|
assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
|
521
675
|
timeseries_rows = CSV.read(timeseries_csv)
|
522
676
|
assert_equal(8760, timeseries_rows.size - 2)
|
523
677
|
timeseries_cols = timeseries_rows.transpose
|
524
678
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
525
|
-
|
526
|
-
|
679
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, ["Energy Use: #{TE::Total}",
|
680
|
+
"Energy Use: #{TE::Net}"])
|
527
681
|
end
|
528
682
|
|
529
683
|
def test_timeseries_hourly_fuels
|
530
684
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
685
|
+
'skip_validation' => true,
|
531
686
|
'timeseries_frequency' => 'hourly',
|
532
687
|
'include_timeseries_fuel_consumptions' => true }
|
533
688
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -540,29 +695,31 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
540
695
|
assert_equal(8760, timeseries_rows.size - 2)
|
541
696
|
timeseries_cols = timeseries_rows.transpose
|
542
697
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
543
|
-
|
698
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, ["Fuel Use: #{FT::Elec}: #{TE::Total}"])
|
544
699
|
end
|
545
700
|
|
546
701
|
def test_timeseries_hourly_fuels_pv
|
547
702
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-pv.xml'),
|
703
|
+
'skip_validation' => true,
|
548
704
|
'timeseries_frequency' => 'hourly',
|
549
705
|
'include_timeseries_fuel_consumptions' => true }
|
550
706
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
551
707
|
assert(File.exist?(annual_csv))
|
552
708
|
assert(File.exist?(timeseries_csv))
|
553
|
-
expected_timeseries_cols = ['Time'] + BaseHPXMLTimeseriesColsFuels + [
|
709
|
+
expected_timeseries_cols = ['Time'] + BaseHPXMLTimeseriesColsFuels + ["Fuel Use: #{FT::Elec}: #{TE::Net}"]
|
554
710
|
actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
|
555
711
|
assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
|
556
712
|
timeseries_rows = CSV.read(timeseries_csv)
|
557
713
|
assert_equal(8760, timeseries_rows.size - 2)
|
558
714
|
timeseries_cols = timeseries_rows.transpose
|
559
715
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
560
|
-
|
561
|
-
|
716
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, ["Fuel Use: #{FT::Elec}: #{TE::Total}",
|
717
|
+
"Fuel Use: #{FT::Elec}: #{TE::Net}"])
|
562
718
|
end
|
563
719
|
|
564
720
|
def test_timeseries_hourly_emissions
|
565
721
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-misc-emissions.xml'),
|
722
|
+
'skip_validation' => true,
|
566
723
|
'timeseries_frequency' => 'hourly',
|
567
724
|
'include_timeseries_emissions' => true }
|
568
725
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -575,11 +732,12 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
575
732
|
assert_equal(8760, timeseries_rows.size - 2)
|
576
733
|
timeseries_cols = timeseries_rows.transpose
|
577
734
|
_check_for_constant_timeseries_step(timeseries_cols[0])
|
578
|
-
|
735
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, emissions_timeseries_cols[0..2])
|
579
736
|
end
|
580
737
|
|
581
738
|
def test_timeseries_hourly_emission_end_uses
|
582
739
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-misc-emissions.xml'),
|
740
|
+
'skip_validation' => true,
|
583
741
|
'timeseries_frequency' => 'hourly',
|
584
742
|
'include_timeseries_emission_end_uses' => true }
|
585
743
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -592,11 +750,12 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
592
750
|
assert_equal(8760, timeseries_rows.size - 2)
|
593
751
|
timeseries_cols = timeseries_rows.transpose
|
594
752
|
_check_for_constant_timeseries_step(timeseries_cols[0])
|
595
|
-
|
753
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, emission_end_uses_timeseries_cols[0..2])
|
596
754
|
end
|
597
755
|
|
598
756
|
def test_timeseries_hourly_emission_fuels
|
599
757
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-misc-emissions.xml'),
|
758
|
+
'skip_validation' => true,
|
600
759
|
'timeseries_frequency' => 'hourly',
|
601
760
|
'include_timeseries_emission_fuels' => true }
|
602
761
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -609,11 +768,12 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
609
768
|
assert_equal(8760, timeseries_rows.size - 2)
|
610
769
|
timeseries_cols = timeseries_rows.transpose
|
611
770
|
_check_for_constant_timeseries_step(timeseries_cols[0])
|
612
|
-
|
771
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, emission_fuels_timeseries_cols[0..2])
|
613
772
|
end
|
614
773
|
|
615
774
|
def test_timeseries_hourly_enduses
|
616
775
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
776
|
+
'skip_validation' => true,
|
617
777
|
'timeseries_frequency' => 'hourly',
|
618
778
|
'include_timeseries_end_use_consumptions' => true }
|
619
779
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -626,11 +786,114 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
626
786
|
assert_equal(8760, timeseries_rows.size - 2)
|
627
787
|
timeseries_cols = timeseries_rows.transpose
|
628
788
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
629
|
-
|
789
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, ["End Use: #{FT::Elec}: #{EUT::PlugLoads}"])
|
790
|
+
end
|
791
|
+
|
792
|
+
def test_timeseries_hourly_enduses_vacancy
|
793
|
+
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-schedules-simple-vacancy.xml'),
|
794
|
+
'skip_validation' => true,
|
795
|
+
'timeseries_frequency' => 'hourly',
|
796
|
+
'include_timeseries_end_use_consumptions' => true }
|
797
|
+
annual_csv, timeseries_csv = _test_measure(args_hash)
|
798
|
+
assert(File.exist?(annual_csv))
|
799
|
+
assert(File.exist?(timeseries_csv))
|
800
|
+
expected_timeseries_cols = ['Time'] + BaseHPXMLTimeseriesColsEndUses
|
801
|
+
actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
|
802
|
+
assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
|
803
|
+
timeseries_rows = CSV.read(timeseries_csv)
|
804
|
+
assert_equal(8760, timeseries_rows.size - 2)
|
805
|
+
timeseries_cols = timeseries_rows.transpose
|
806
|
+
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
807
|
+
_check_for_zero_timeseries_values(timeseries_csv, ["End Use: #{FT::Elec}: #{EUT::PlugLoads}"], 0, 31 * 24 - 1) # Jan
|
808
|
+
_check_for_zero_timeseries_values(timeseries_csv, ["End Use: #{FT::Elec}: #{EUT::PlugLoads}"], (31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30) * 24 + 1, -1) # Dec
|
809
|
+
_check_for_nonzero_timeseries_values(timeseries_csv, ["End Use: #{FT::Elec}: #{EUT::Refrigerator}"])
|
810
|
+
end
|
811
|
+
|
812
|
+
def test_timeseries_hourly_enduses_power_outage
|
813
|
+
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-schedules-simple-power-outage.xml'),
|
814
|
+
'skip_validation' => true,
|
815
|
+
'timeseries_frequency' => 'hourly',
|
816
|
+
'include_timeseries_end_use_consumptions' => true }
|
817
|
+
annual_csv, timeseries_csv = _test_measure(args_hash)
|
818
|
+
assert(File.exist?(annual_csv))
|
819
|
+
assert(File.exist?(timeseries_csv))
|
820
|
+
expected_timeseries_cols = ['Time'] + BaseHPXMLTimeseriesColsEndUses
|
821
|
+
actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
|
822
|
+
assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
|
823
|
+
timeseries_rows = CSV.read(timeseries_csv)
|
824
|
+
assert_equal(8760, timeseries_rows.size - 2)
|
825
|
+
timeseries_cols = timeseries_rows.transpose
|
826
|
+
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
827
|
+
_check_for_zero_timeseries_values(timeseries_csv, ["End Use: #{FT::Elec}: #{EUT::PlugLoads}"], (31 + 28 + 31 + 30 + 31 + 30) * 24 + 4, (31 + 28 + 31 + 30 + 31 + 30 + 31) * 24 - 12) # Jul
|
828
|
+
end
|
829
|
+
|
830
|
+
def test_timeseries_hourly_enduses_power_outage_natvent_availability
|
831
|
+
energy_use_total_col = "Energy Use: #{TE::Total}"
|
832
|
+
temperature_living_space_col = 'Temperature: Living Space'
|
833
|
+
|
834
|
+
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-schedules-simple-power-outage.xml'),
|
835
|
+
'skip_validation' => true,
|
836
|
+
'timeseries_frequency' => 'hourly',
|
837
|
+
'include_timeseries_total_consumptions' => true,
|
838
|
+
'include_timeseries_zone_temperatures' => true }
|
839
|
+
_annual_csv, timeseries_csv = _test_measure(args_hash)
|
840
|
+
assert(File.exist?(timeseries_csv))
|
841
|
+
values = _get_values(timeseries_csv, [energy_use_total_col, temperature_living_space_col])
|
842
|
+
schedule_regular_total = values[energy_use_total_col].sum(0.0)
|
843
|
+
schedule_regular_temp = values[temperature_living_space_col].sum(0.0) / values[temperature_living_space_col].size
|
844
|
+
|
845
|
+
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-schedules-simple-power-outage-natvent-available.xml'),
|
846
|
+
'skip_validation' => true,
|
847
|
+
'timeseries_frequency' => 'hourly',
|
848
|
+
'include_timeseries_total_consumptions' => true,
|
849
|
+
'include_timeseries_zone_temperatures' => true }
|
850
|
+
_annual_csv, timeseries_csv = _test_measure(args_hash)
|
851
|
+
assert(File.exist?(timeseries_csv))
|
852
|
+
values = _get_values(timeseries_csv, [energy_use_total_col, temperature_living_space_col])
|
853
|
+
schedule_available_total = values[energy_use_total_col].sum(0.0)
|
854
|
+
schedule_available_temp = values[temperature_living_space_col].sum(0.0) / values[temperature_living_space_col].size
|
855
|
+
|
856
|
+
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-schedules-simple-power-outage-natvent-unavailable.xml'),
|
857
|
+
'skip_validation' => true,
|
858
|
+
'timeseries_frequency' => 'hourly',
|
859
|
+
'include_timeseries_total_consumptions' => true,
|
860
|
+
'include_timeseries_zone_temperatures' => true }
|
861
|
+
_annual_csv, timeseries_csv = _test_measure(args_hash)
|
862
|
+
assert(File.exist?(timeseries_csv))
|
863
|
+
values = _get_values(timeseries_csv, [energy_use_total_col, temperature_living_space_col])
|
864
|
+
schedule_unavailable_total = values[energy_use_total_col].sum(0.0)
|
865
|
+
schedule_unavailable_temp = values[temperature_living_space_col].sum(0.0) / values[temperature_living_space_col].size
|
866
|
+
|
867
|
+
assert_operator(schedule_regular_total, :>, schedule_available_total)
|
868
|
+
assert_operator(schedule_available_total, :<, schedule_unavailable_total)
|
869
|
+
assert_operator(schedule_unavailable_total, :<, schedule_regular_total)
|
870
|
+
|
871
|
+
assert_operator(schedule_regular_temp, :>, schedule_available_temp)
|
872
|
+
assert_operator(schedule_available_temp, :<, schedule_unavailable_temp)
|
873
|
+
assert_operator(schedule_unavailable_temp, :>, schedule_regular_temp)
|
874
|
+
end
|
875
|
+
|
876
|
+
def test_timeseries_hourly_system_uses
|
877
|
+
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
878
|
+
'skip_validation' => true,
|
879
|
+
'timeseries_frequency' => 'hourly',
|
880
|
+
'include_timeseries_system_use_consumptions' => true }
|
881
|
+
annual_csv, timeseries_csv = _test_measure(args_hash)
|
882
|
+
assert(File.exist?(annual_csv))
|
883
|
+
assert(File.exist?(timeseries_csv))
|
884
|
+
expected_timeseries_cols = ['Time'] + BaseHPXMLTimeseriesColsSystemUses
|
885
|
+
actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
|
886
|
+
assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
|
887
|
+
timeseries_rows = CSV.read(timeseries_csv)
|
888
|
+
assert_equal(8760, timeseries_rows.size - 2)
|
889
|
+
timeseries_cols = timeseries_rows.transpose
|
890
|
+
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
891
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, ["System Use: HeatingSystem1: #{FT::Gas}: #{EUT::Heating}"])
|
630
892
|
end
|
631
893
|
|
632
894
|
def test_timeseries_hourly_hotwateruses
|
633
895
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
896
|
+
'skip_validation' => true,
|
634
897
|
'timeseries_frequency' => 'hourly',
|
635
898
|
'include_timeseries_hot_water_uses' => true }
|
636
899
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -643,11 +906,12 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
643
906
|
assert_equal(8760, timeseries_rows.size - 2)
|
644
907
|
timeseries_cols = timeseries_rows.transpose
|
645
908
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
646
|
-
|
909
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, BaseHPXMLTimeseriesColsWaterUses)
|
647
910
|
end
|
648
911
|
|
649
912
|
def test_timeseries_hourly_total_loads
|
650
913
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
914
|
+
'skip_validation' => true,
|
651
915
|
'timeseries_frequency' => 'hourly',
|
652
916
|
'include_timeseries_total_loads' => true }
|
653
917
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -660,11 +924,12 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
660
924
|
assert_equal(8760, timeseries_rows.size - 2)
|
661
925
|
timeseries_cols = timeseries_rows.transpose
|
662
926
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
663
|
-
|
927
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, BaseHPXMLTimeseriesColsTotalLoads)
|
664
928
|
end
|
665
929
|
|
666
930
|
def test_timeseries_hourly_component_loads
|
667
931
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
932
|
+
'skip_validation' => true,
|
668
933
|
'add_component_loads' => true,
|
669
934
|
'timeseries_frequency' => 'hourly',
|
670
935
|
'include_timeseries_component_loads' => true }
|
@@ -678,11 +943,13 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
678
943
|
assert_equal(8760, timeseries_rows.size - 2)
|
679
944
|
timeseries_cols = timeseries_rows.transpose
|
680
945
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
681
|
-
|
946
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, ["Component Load: Heating: #{CLT::InternalGains}",
|
947
|
+
"Component Load: Cooling: #{CLT::InternalGains}"])
|
682
948
|
end
|
683
949
|
|
684
950
|
def test_timeseries_hourly_unmet_hours
|
685
951
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-hvac-undersized.xml'),
|
952
|
+
'skip_validation' => true,
|
686
953
|
'add_component_loads' => true,
|
687
954
|
'timeseries_frequency' => 'hourly',
|
688
955
|
'include_timeseries_unmet_hours' => true }
|
@@ -696,11 +963,13 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
696
963
|
assert_equal(8760, timeseries_rows.size - 2)
|
697
964
|
timeseries_cols = timeseries_rows.transpose
|
698
965
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
699
|
-
|
966
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, ["Unmet Hours: #{UHT::Heating}",
|
967
|
+
"Unmet Hours: #{UHT::Cooling}"])
|
700
968
|
end
|
701
969
|
|
702
970
|
def test_timeseries_hourly_zone_temperatures
|
703
971
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
972
|
+
'skip_validation' => true,
|
704
973
|
'timeseries_frequency' => 'hourly',
|
705
974
|
'include_timeseries_zone_temperatures' => true }
|
706
975
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -713,11 +982,12 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
713
982
|
assert_equal(8760, timeseries_rows.size - 2)
|
714
983
|
timeseries_cols = timeseries_rows.transpose
|
715
984
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
716
|
-
|
985
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, BaseHPXMLTimeseriesColsZoneTemps)
|
717
986
|
end
|
718
987
|
|
719
988
|
def test_timeseries_hourly_zone_temperatures_without_cooling
|
720
989
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-hvac-furnace-gas-only.xml'),
|
990
|
+
'skip_validation' => true,
|
721
991
|
'timeseries_frequency' => 'hourly',
|
722
992
|
'include_timeseries_zone_temperatures' => true }
|
723
993
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -730,11 +1000,12 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
730
1000
|
assert_equal(8760, timeseries_rows.size - 2)
|
731
1001
|
timeseries_cols = timeseries_rows.transpose
|
732
1002
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
733
|
-
|
1003
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, BaseHPXMLTimeseriesColsZoneTemps - ['Temperature: Cooling Setpoint'])
|
734
1004
|
end
|
735
1005
|
|
736
1006
|
def test_timeseries_hourly_zone_temperatures_mf_space
|
737
1007
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-bldgtype-multifamily-adjacent-to-multiple.xml'),
|
1008
|
+
'skip_validation' => true,
|
738
1009
|
'timeseries_frequency' => 'hourly',
|
739
1010
|
'include_timeseries_zone_temperatures' => true }
|
740
1011
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -754,11 +1025,12 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
754
1025
|
assert_equal(8760, timeseries_rows.size - 2)
|
755
1026
|
timeseries_cols = timeseries_rows.transpose
|
756
1027
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
757
|
-
|
1028
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, cols_temps_other_side)
|
758
1029
|
end
|
759
1030
|
|
760
1031
|
def test_timeseries_hourly_airflows_with_exhaust_mechvent
|
761
1032
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-mechvent-exhaust.xml'),
|
1033
|
+
'skip_validation' => true,
|
762
1034
|
'timeseries_frequency' => 'hourly',
|
763
1035
|
'include_timeseries_airflows' => true }
|
764
1036
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -771,11 +1043,12 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
771
1043
|
assert_equal(8760, timeseries_rows.size - 2)
|
772
1044
|
timeseries_cols = timeseries_rows.transpose
|
773
1045
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
774
|
-
|
1046
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, BaseHPXMLTimeseriesColsAirflows.select { |t| t != 'Airflow: Whole House Fan' })
|
775
1047
|
end
|
776
1048
|
|
777
1049
|
def test_timeseries_hourly_airflows_with_whf
|
778
1050
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-mechvent-whole-house-fan.xml'),
|
1051
|
+
'skip_validation' => true,
|
779
1052
|
'timeseries_frequency' => 'hourly',
|
780
1053
|
'include_timeseries_airflows' => true }
|
781
1054
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -790,11 +1063,12 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
790
1063
|
assert_equal(8760, timeseries_rows.size - 2)
|
791
1064
|
timeseries_cols = timeseries_rows.transpose
|
792
1065
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
793
|
-
|
1066
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, add_cols)
|
794
1067
|
end
|
795
1068
|
|
796
1069
|
def test_timeseries_hourly_airflows_with_clothes_dryer_exhaust
|
797
1070
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-appliances-gas.xml'),
|
1071
|
+
'skip_validation' => true,
|
798
1072
|
'timeseries_frequency' => 'hourly',
|
799
1073
|
'include_timeseries_airflows' => true }
|
800
1074
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -807,11 +1081,12 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
807
1081
|
assert_equal(8760, timeseries_rows.size - 2)
|
808
1082
|
timeseries_cols = timeseries_rows.transpose
|
809
1083
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
810
|
-
|
1084
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, ["Airflow: #{AFT::MechanicalVentilation}"])
|
811
1085
|
end
|
812
1086
|
|
813
1087
|
def test_timeseries_hourly_airflows_with_balanced_mechvent
|
814
1088
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-mechvent-balanced.xml'),
|
1089
|
+
'skip_validation' => true,
|
815
1090
|
'timeseries_frequency' => 'hourly',
|
816
1091
|
'include_timeseries_airflows' => true }
|
817
1092
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -824,11 +1099,12 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
824
1099
|
assert_equal(8760, timeseries_rows.size - 2)
|
825
1100
|
timeseries_cols = timeseries_rows.transpose
|
826
1101
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
827
|
-
|
1102
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, ["Airflow: #{AFT::MechanicalVentilation}"])
|
828
1103
|
end
|
829
1104
|
|
830
1105
|
def test_timeseries_hourly_airflows_with_cfis
|
831
1106
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-mechvent-cfis.xml'),
|
1107
|
+
'skip_validation' => true,
|
832
1108
|
'timeseries_frequency' => 'hourly',
|
833
1109
|
'include_timeseries_airflows' => true }
|
834
1110
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -841,11 +1117,12 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
841
1117
|
assert_equal(8760, timeseries_rows.size - 2)
|
842
1118
|
timeseries_cols = timeseries_rows.transpose
|
843
1119
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
844
|
-
|
1120
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, ["Airflow: #{AFT::MechanicalVentilation}"])
|
845
1121
|
end
|
846
1122
|
|
847
1123
|
def test_timeseries_hourly_weather
|
848
1124
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
1125
|
+
'skip_validation' => true,
|
849
1126
|
'timeseries_frequency' => 'hourly',
|
850
1127
|
'include_timeseries_weather' => true }
|
851
1128
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -858,15 +1135,17 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
858
1135
|
assert_equal(8760, timeseries_rows.size - 2)
|
859
1136
|
timeseries_cols = timeseries_rows.transpose
|
860
1137
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
861
|
-
|
1138
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, BaseHPXMLTimeseriesColsWeather)
|
862
1139
|
end
|
863
1140
|
|
864
1141
|
def test_timeseries_hourly_ALL
|
865
1142
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-misc-emissions.xml'),
|
1143
|
+
'skip_validation' => true,
|
866
1144
|
'timeseries_frequency' => 'hourly',
|
867
1145
|
'include_timeseries_total_consumptions' => true,
|
868
1146
|
'include_timeseries_fuel_consumptions' => true,
|
869
1147
|
'include_timeseries_end_use_consumptions' => true,
|
1148
|
+
'include_timeseries_system_use_consumptions' => true,
|
870
1149
|
'include_timeseries_emissions' => true,
|
871
1150
|
'include_timeseries_emission_fuels' => true,
|
872
1151
|
'include_timeseries_emission_end_uses' => true,
|
@@ -885,23 +1164,25 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
885
1164
|
emissions_timeseries_cols +
|
886
1165
|
emission_fuels_timeseries_cols +
|
887
1166
|
emission_end_uses_timeseries_cols +
|
888
|
-
|
1167
|
+
pv_battery_timeseries_cols
|
889
1168
|
actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
|
890
1169
|
assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
|
891
1170
|
timeseries_rows = CSV.read(timeseries_csv)
|
892
1171
|
assert_equal(8760, timeseries_rows.size - 2)
|
893
1172
|
timeseries_cols = timeseries_rows.transpose
|
894
1173
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
895
|
-
|
896
|
-
|
1174
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, emissions_timeseries_cols[0..2])
|
1175
|
+
_check_for_nonzero_timeseries_values(timeseries_csv, ["End Use: #{FT::Elec}: #{EUT::Refrigerator}"])
|
897
1176
|
end
|
898
1177
|
|
899
1178
|
def test_timeseries_daily_ALL
|
900
1179
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-misc-emissions.xml'),
|
1180
|
+
'skip_validation' => true,
|
901
1181
|
'timeseries_frequency' => 'daily',
|
902
1182
|
'include_timeseries_total_consumptions' => true,
|
903
1183
|
'include_timeseries_fuel_consumptions' => true,
|
904
1184
|
'include_timeseries_end_use_consumptions' => true,
|
1185
|
+
'include_timeseries_system_use_consumptions' => true,
|
905
1186
|
'include_timeseries_emissions' => true,
|
906
1187
|
'include_timeseries_emission_fuels' => true,
|
907
1188
|
'include_timeseries_emission_end_uses' => true,
|
@@ -920,23 +1201,25 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
920
1201
|
emissions_timeseries_cols +
|
921
1202
|
emission_fuels_timeseries_cols +
|
922
1203
|
emission_end_uses_timeseries_cols +
|
923
|
-
|
1204
|
+
pv_battery_timeseries_cols
|
924
1205
|
actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
|
925
1206
|
assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
|
926
1207
|
timeseries_rows = CSV.read(timeseries_csv)
|
927
1208
|
assert_equal(365, timeseries_rows.size - 2)
|
928
1209
|
timeseries_cols = timeseries_rows.transpose
|
929
1210
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
930
|
-
|
931
|
-
|
1211
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, emissions_timeseries_cols[0..2])
|
1212
|
+
_check_for_nonzero_timeseries_values(timeseries_csv, ["End Use: #{FT::Elec}: #{EUT::Refrigerator}"])
|
932
1213
|
end
|
933
1214
|
|
934
1215
|
def test_timeseries_monthly_ALL
|
935
1216
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-misc-emissions.xml'),
|
1217
|
+
'skip_validation' => true,
|
936
1218
|
'timeseries_frequency' => 'monthly',
|
937
1219
|
'include_timeseries_total_consumptions' => true,
|
938
1220
|
'include_timeseries_fuel_consumptions' => true,
|
939
1221
|
'include_timeseries_end_use_consumptions' => true,
|
1222
|
+
'include_timeseries_system_use_consumptions' => true,
|
940
1223
|
'include_timeseries_emissions' => true,
|
941
1224
|
'include_timeseries_emission_fuels' => true,
|
942
1225
|
'include_timeseries_emission_end_uses' => true,
|
@@ -955,13 +1238,13 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
955
1238
|
emissions_timeseries_cols +
|
956
1239
|
emission_fuels_timeseries_cols +
|
957
1240
|
emission_end_uses_timeseries_cols +
|
958
|
-
|
1241
|
+
pv_battery_timeseries_cols
|
959
1242
|
actual_timeseries_cols = File.readlines(timeseries_csv)[0].strip.split(',')
|
960
1243
|
assert_equal(expected_timeseries_cols.sort, actual_timeseries_cols.sort)
|
961
1244
|
timeseries_rows = CSV.read(timeseries_csv)
|
962
1245
|
assert_equal(12, timeseries_rows.size - 2)
|
963
|
-
|
964
|
-
|
1246
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, emissions_timeseries_cols[0..2])
|
1247
|
+
_check_for_nonzero_timeseries_values(timeseries_csv, ["End Use: #{FT::Elec}: #{EUT::Refrigerator}"])
|
965
1248
|
end
|
966
1249
|
|
967
1250
|
def test_timeseries_timestep
|
@@ -979,19 +1262,11 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
979
1262
|
|
980
1263
|
def test_timeseries_timestep_emissions
|
981
1264
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-misc-emissions.xml'),
|
1265
|
+
'skip_validation' => true,
|
982
1266
|
'timeseries_frequency' => 'timestep',
|
983
|
-
'include_timeseries_fuel_consumptions' => false,
|
984
|
-
'include_timeseries_end_use_consumptions' => false,
|
985
1267
|
'include_timeseries_emissions' => true,
|
986
1268
|
'include_timeseries_emission_fuels' => true,
|
987
|
-
'include_timeseries_emission_end_uses' => true
|
988
|
-
'include_timeseries_hot_water_uses' => false,
|
989
|
-
'include_timeseries_total_loads' => false,
|
990
|
-
'include_timeseries_unmet_hours' => false,
|
991
|
-
'include_timeseries_component_loads' => false,
|
992
|
-
'include_timeseries_zone_temperatures' => false,
|
993
|
-
'include_timeseries_airflows' => false,
|
994
|
-
'include_timeseries_weather' => false }
|
1269
|
+
'include_timeseries_emission_end_uses' => true }
|
995
1270
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
996
1271
|
assert(File.exist?(annual_csv))
|
997
1272
|
assert(File.exist?(timeseries_csv))
|
@@ -1005,11 +1280,12 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
1005
1280
|
assert_equal(8760, timeseries_rows.size - 2)
|
1006
1281
|
timeseries_cols = timeseries_rows.transpose
|
1007
1282
|
_check_for_constant_timeseries_step(timeseries_cols[0])
|
1008
|
-
|
1283
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, emissions_timeseries_cols[0..2])
|
1009
1284
|
end
|
1010
1285
|
|
1011
1286
|
def test_timeseries_timestep_10min
|
1012
1287
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-simcontrol-timestep-10-mins.xml'),
|
1288
|
+
'skip_validation' => true,
|
1013
1289
|
'timeseries_frequency' => 'timestep',
|
1014
1290
|
'include_timeseries_fuel_consumptions' => true }
|
1015
1291
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -1029,6 +1305,7 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
1029
1305
|
|
1030
1306
|
expected_values.each do |timeseries_frequency, expected_value|
|
1031
1307
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-simcontrol-runperiod-1-month.xml'),
|
1308
|
+
'skip_validation' => true,
|
1032
1309
|
'timeseries_frequency' => timeseries_frequency,
|
1033
1310
|
'include_timeseries_fuel_consumptions' => true }
|
1034
1311
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -1045,6 +1322,7 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
1045
1322
|
|
1046
1323
|
def test_timeseries_hourly_AMY_2012
|
1047
1324
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-location-AMY-2012.xml'),
|
1325
|
+
'skip_validation' => true,
|
1048
1326
|
'timeseries_frequency' => 'hourly',
|
1049
1327
|
'include_timeseries_fuel_consumptions' => true }
|
1050
1328
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
@@ -1065,6 +1343,7 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
1065
1343
|
|
1066
1344
|
expected_values_array.each do |timeseries_frequency, expected_values|
|
1067
1345
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base-simcontrol-timestep-30-mins.xml'),
|
1346
|
+
'skip_validation' => true,
|
1068
1347
|
'timeseries_frequency' => timeseries_frequency,
|
1069
1348
|
'include_timeseries_fuel_consumptions' => true,
|
1070
1349
|
'timeseries_timestamp_convention' => 'end' }
|
@@ -1088,6 +1367,7 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
1088
1367
|
|
1089
1368
|
def test_timeseries_for_dview
|
1090
1369
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
1370
|
+
'skip_validation' => true,
|
1091
1371
|
'output_format' => 'csv_dview',
|
1092
1372
|
'timeseries_frequency' => 'timestep',
|
1093
1373
|
'include_timeseries_fuel_consumptions' => true,
|
@@ -1112,6 +1392,7 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
1112
1392
|
|
1113
1393
|
def test_timeseries_local_time_dst
|
1114
1394
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
1395
|
+
'skip_validation' => true,
|
1115
1396
|
'timeseries_frequency' => 'timestep',
|
1116
1397
|
'include_timeseries_fuel_consumptions' => true,
|
1117
1398
|
'add_timeseries_dst_column' => true }
|
@@ -1129,6 +1410,7 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
1129
1410
|
|
1130
1411
|
def test_timeseries_local_time_utc
|
1131
1412
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
1413
|
+
'skip_validation' => true,
|
1132
1414
|
'timeseries_frequency' => 'timestep',
|
1133
1415
|
'include_timeseries_fuel_consumptions' => true,
|
1134
1416
|
'add_timeseries_utc_column' => true }
|
@@ -1146,6 +1428,7 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
1146
1428
|
|
1147
1429
|
def test_timeseries_local_time_dst_and_utc
|
1148
1430
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
1431
|
+
'skip_validation' => true,
|
1149
1432
|
'timeseries_frequency' => 'timestep',
|
1150
1433
|
'include_timeseries_fuel_consumptions' => true,
|
1151
1434
|
'add_timeseries_dst_column' => true,
|
@@ -1166,19 +1449,8 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
1166
1449
|
|
1167
1450
|
def test_timeseries_user_defined_standard_output_variables
|
1168
1451
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
1452
|
+
'skip_validation' => true,
|
1169
1453
|
'timeseries_frequency' => 'hourly',
|
1170
|
-
'include_timeseries_fuel_consumptions' => false,
|
1171
|
-
'include_timeseries_end_use_consumptions' => false,
|
1172
|
-
'include_timeseries_emissions' => false,
|
1173
|
-
'include_timeseries_emission_fuels' => false,
|
1174
|
-
'include_timeseries_emission_end_uses' => false,
|
1175
|
-
'include_timeseries_hot_water_uses' => false,
|
1176
|
-
'include_timeseries_total_loads' => false,
|
1177
|
-
'include_timeseries_unmet_hours' => false,
|
1178
|
-
'include_timeseries_component_loads' => false,
|
1179
|
-
'include_timeseries_zone_temperatures' => false,
|
1180
|
-
'include_timeseries_airflows' => false,
|
1181
|
-
'include_timeseries_weather' => false,
|
1182
1454
|
'user_output_variables' => 'Zone People Occupant Count, Zone People Total Heating Energy, Foo' }
|
1183
1455
|
annual_csv, timeseries_csv, run_log = _test_measure(args_hash)
|
1184
1456
|
assert(File.exist?(annual_csv))
|
@@ -1190,26 +1462,15 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
1190
1462
|
assert_equal(8760, timeseries_rows.size - 2)
|
1191
1463
|
timeseries_cols = timeseries_rows.transpose
|
1192
1464
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
1193
|
-
|
1465
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, BaseHPXMLTimeseriesColsStandardOutputVariables)
|
1194
1466
|
assert(File.readlines(run_log).any? { |line| line.include?("Request for output variable 'Foo'") })
|
1195
1467
|
end
|
1196
1468
|
|
1197
1469
|
def test_timeseries_user_defined_advanced_output_variables
|
1198
1470
|
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
1471
|
+
'skip_validation' => true,
|
1199
1472
|
'add_component_loads' => true,
|
1200
1473
|
'timeseries_frequency' => 'hourly',
|
1201
|
-
'include_timeseries_fuel_consumptions' => false,
|
1202
|
-
'include_timeseries_end_use_consumptions' => false,
|
1203
|
-
'include_timeseries_emissions' => false,
|
1204
|
-
'include_timeseries_emission_fuels' => false,
|
1205
|
-
'include_timeseries_emission_end_uses' => false,
|
1206
|
-
'include_timeseries_hot_water_uses' => false,
|
1207
|
-
'include_timeseries_total_loads' => false,
|
1208
|
-
'include_timeseries_unmet_hours' => false,
|
1209
|
-
'include_timeseries_component_loads' => false,
|
1210
|
-
'include_timeseries_zone_temperatures' => false,
|
1211
|
-
'include_timeseries_airflows' => false,
|
1212
|
-
'include_timeseries_weather' => false,
|
1213
1474
|
'user_output_variables' => 'Surface Construction Index' }
|
1214
1475
|
annual_csv, timeseries_csv = _test_measure(args_hash)
|
1215
1476
|
assert(File.exist?(annual_csv))
|
@@ -1221,17 +1482,7 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
1221
1482
|
assert_equal(8760, timeseries_rows.size - 2)
|
1222
1483
|
timeseries_cols = timeseries_rows.transpose
|
1223
1484
|
assert_equal(1, _check_for_constant_timeseries_step(timeseries_cols[0]))
|
1224
|
-
|
1225
|
-
end
|
1226
|
-
|
1227
|
-
def test_eri_output
|
1228
|
-
args_hash = { 'hpxml_path' => File.join(File.dirname(__FILE__), '../../workflow/sample_files/base.xml'),
|
1229
|
-
'generate_eri_outputs' => true }
|
1230
|
-
annual_csv, timeseries_csv = _test_measure(args_hash)
|
1231
|
-
assert(File.exist?(annual_csv))
|
1232
|
-
assert(!File.exist?(timeseries_csv))
|
1233
|
-
actual_annual_rows = File.readlines(annual_csv).map { |x| x.split(',')[0].strip }.select { |x| !x.empty? }
|
1234
|
-
assert(actual_annual_rows.include? 'ERI: Building: CFA')
|
1485
|
+
_check_for_nonzero_avg_timeseries_value(timeseries_csv, BaseHPXMLTimeseriesColsAdvancedOutputVariables)
|
1235
1486
|
end
|
1236
1487
|
|
1237
1488
|
def test_for_unsuccessful_simulation_infinity
|
@@ -1241,7 +1492,8 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
1241
1492
|
hpxml.heating_systems[0].heating_efficiency_afue = 10.0**-315
|
1242
1493
|
XMLHelper.write_file(hpxml.to_oga(), @tmp_hpxml_path)
|
1243
1494
|
|
1244
|
-
args_hash = { 'hpxml_path' => @tmp_hpxml_path
|
1495
|
+
args_hash = { 'hpxml_path' => @tmp_hpxml_path,
|
1496
|
+
'skip_validation' => true, }
|
1245
1497
|
annual_csv, timeseries_csv, run_log = _test_measure(args_hash, expect_success: false)
|
1246
1498
|
assert(!File.exist?(annual_csv))
|
1247
1499
|
assert(!File.exist?(timeseries_csv))
|
@@ -1310,7 +1562,7 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
1310
1562
|
return steps.uniq.size
|
1311
1563
|
end
|
1312
1564
|
|
1313
|
-
def
|
1565
|
+
def _get_values(timeseries_csv, timeseries_cols)
|
1314
1566
|
values = {}
|
1315
1567
|
timeseries_cols.each do |col|
|
1316
1568
|
values[col] = []
|
@@ -1324,27 +1576,30 @@ class ReportSimulationOutputTest < MiniTest::Test
|
|
1324
1576
|
values[col] << Float(row[col])
|
1325
1577
|
end
|
1326
1578
|
end
|
1579
|
+
return values
|
1580
|
+
end
|
1581
|
+
|
1582
|
+
def _check_for_nonzero_avg_timeseries_value(timeseries_csv, timeseries_cols)
|
1583
|
+
values = _get_values(timeseries_csv, timeseries_cols)
|
1584
|
+
|
1327
1585
|
timeseries_cols.each do |col|
|
1328
1586
|
avg_value = values[col].sum(0.0) / values[col].size
|
1329
1587
|
assert_operator(avg_value, :!=, 0)
|
1330
1588
|
end
|
1331
1589
|
end
|
1332
1590
|
|
1333
|
-
def
|
1334
|
-
|
1335
|
-
|
1591
|
+
def _check_for_zero_timeseries_values(timeseries_csv, timeseries_cols, start_ix, end_ix)
|
1592
|
+
values = _get_values(timeseries_csv, timeseries_cols)
|
1593
|
+
|
1336
1594
|
timeseries_cols.each do |col|
|
1337
|
-
values[col]
|
1595
|
+
has_only_zero_timeseries_values = values[col][start_ix..end_ix].all? { |x| x == 0 }
|
1596
|
+
assert(has_only_zero_timeseries_values)
|
1338
1597
|
end
|
1339
|
-
|
1340
|
-
next if row['Time'].nil?
|
1341
|
-
|
1342
|
-
timeseries_cols.each do |col|
|
1343
|
-
fail "Unexpected column: #{col}." if row[col].nil?
|
1598
|
+
end
|
1344
1599
|
|
1345
|
-
|
1346
|
-
|
1347
|
-
|
1600
|
+
def _check_for_nonzero_timeseries_values(timeseries_csv, timeseries_cols)
|
1601
|
+
# check that every day has non zero values for baseload equipment (e.g., refrigerator)
|
1602
|
+
values = _get_values(timeseries_csv, timeseries_cols)
|
1348
1603
|
|
1349
1604
|
timeseries_cols.each do |col|
|
1350
1605
|
has_no_zero_timeseries_value = !values[col].include?(0.0)
|