openstudio-standards 0.8.3 → 0.8.5.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/data/geometry/ASHRAECollege.osm +30 -30
- data/data/geometry/ASHRAECourthouse.osm +22 -22
- data/data/geometry/ASHRAESmallOfficeDetailed.osm +2 -2
- data/data/geometry/DEER_Asm.osm +1 -1
- data/data/geometry/DEER_ECC.osm +1 -1
- data/data/geometry/DEER_EPr.osm +1 -1
- data/data/geometry/DEER_ERC.osm +1 -1
- data/data/geometry/DEER_ESe.osm +1 -1
- data/data/geometry/DEER_EUn.osm +1 -1
- data/data/geometry/DEER_Hsp.osm +1 -1
- data/data/geometry/DEER_Htl.osm +1 -1
- data/data/geometry/DEER_MBT.osm +1 -1
- data/data/geometry/DEER_MFm.osm +1 -1
- data/data/geometry/DEER_Nrs.osm +1 -1
- data/data/geometry/DEER_OfL.osm +1 -1
- data/data/geometry/DEER_OfS.osm +1 -1
- data/data/geometry/DEER_RFF.osm +1 -1
- data/data/geometry/DEER_RSD.osm +1 -1
- data/data/geometry/DEER_Rt3.osm +1 -1
- data/data/geometry/DEER_RtS.osm +1 -1
- data/data/standards/export_OpenStudio_libraries.rb +2 -3
- data/data/standards/test_performance_expected_dd_results.csv +42 -42
- data/lib/openstudio-standards/btap/NECB_building_types.csv +35 -0
- data/lib/openstudio-standards/btap/NECB_space_types.csv +109 -0
- data/lib/openstudio-standards/btap/activity.rb +480 -0
- data/lib/openstudio-standards/btap/attributes.rb +166 -0
- data/lib/openstudio-standards/btap/bridging.rb +561 -1402
- data/lib/openstudio-standards/btap/btap.rb +4 -2
- data/lib/openstudio-standards/btap/btap_test_helper.rb +86 -0
- data/lib/openstudio-standards/btap/carbon/btap_carbon.rb +177 -0
- data/lib/openstudio-standards/btap/common_paths.rb +81 -0
- data/lib/openstudio-standards/btap/common_resources/ConstructionProperties.csv +52 -0
- data/lib/openstudio-standards/btap/common_resources/Constructions.csv +37 -0
- data/lib/openstudio-standards/btap/common_resources/carbon_frame.csv +35 -0
- data/lib/openstudio-standards/btap/common_resources/carbon_glazing.csv +35 -0
- data/lib/openstudio-standards/btap/common_resources/carbon_opaque.csv +164 -0
- data/lib/openstudio-standards/btap/common_resources/construction_sets.csv +1270 -0
- data/lib/openstudio-standards/btap/common_resources/constructions_glazing.csv +121 -0
- data/lib/openstudio-standards/btap/common_resources/constructions_opaque.csv +2256 -0
- data/lib/openstudio-standards/btap/common_resources/costs.csv +1897 -0
- data/lib/openstudio-standards/btap/common_resources/costs_local_factors.csv +2315 -0
- data/lib/openstudio-standards/btap/common_resources/hvac_vent_ahu.csv +925 -0
- data/lib/openstudio-standards/btap/common_resources/lighting.csv +364 -0
- data/lib/openstudio-standards/btap/common_resources/lighting_sets.csv +2667 -0
- data/lib/openstudio-standards/btap/common_resources/locations.csv +75 -0
- data/lib/openstudio-standards/btap/common_resources/materials_glazing.csv +35 -0
- data/lib/openstudio-standards/btap/common_resources/materials_hvac.csv +1686 -0
- data/lib/openstudio-standards/btap/common_resources/materials_lighting.csv +267 -0
- data/lib/openstudio-standards/btap/common_resources/materials_opaque.csv +164 -0
- data/lib/openstudio-standards/btap/costing/README.md +502 -0
- data/lib/openstudio-standards/btap/costing/btap_costing.rb +469 -0
- data/lib/openstudio-standards/btap/costing/btap_measure_helper.rb +359 -0
- data/lib/openstudio-standards/btap/costing/btap_workflow.rb +117 -0
- data/lib/openstudio-standards/btap/costing/copy_test_results_files_to_expected_results.rb +11 -0
- data/lib/openstudio-standards/btap/costing/cost_building_from_file.rb +136 -0
- data/lib/openstudio-standards/btap/costing/costing_database_wrapper.rb +173 -0
- data/lib/openstudio-standards/btap/costing/daylighting_sensor_control_costing.rb +354 -0
- data/lib/openstudio-standards/btap/costing/dcv_costing.rb +314 -0
- data/lib/openstudio-standards/btap/costing/dummy.epw +8768 -0
- data/lib/openstudio-standards/btap/costing/dummy.osm +5320 -0
- data/lib/openstudio-standards/btap/costing/envelope_costing.rb +215 -0
- data/lib/openstudio-standards/btap/costing/heating_cooling_costing.rb +2584 -0
- data/lib/openstudio-standards/btap/costing/led_lighting_costing.rb +156 -0
- data/lib/openstudio-standards/btap/costing/lighting_costing.rb +209 -0
- data/lib/openstudio-standards/btap/costing/mech_sizing.json +502 -0
- data/lib/openstudio-standards/btap/costing/neb_end_use_prices.csv +42 -0
- data/lib/openstudio-standards/btap/costing/necb_2011_spacetype_info.csv +225 -0
- data/lib/openstudio-standards/btap/costing/necb_reference_runs.csv +28705 -0
- data/lib/openstudio-standards/btap/costing/nv_costing.rb +547 -0
- data/lib/openstudio-standards/btap/costing/parallel_tests.rb +92 -0
- data/lib/openstudio-standards/btap/costing/pv_ground_costing.rb +687 -0
- data/lib/openstudio-standards/btap/costing/shw_costing.rb +705 -0
- data/lib/openstudio-standards/btap/costing/test_list.txt +15 -0
- data/lib/openstudio-standards/btap/costing/test_run_all_test_locally.rb +27 -0
- data/lib/openstudio-standards/btap/costing/test_run_costing_tests.rb +80 -0
- data/lib/openstudio-standards/btap/costing/ventilation_costing.rb +2616 -0
- data/lib/openstudio-standards/btap/geometry.rb +86 -6
- data/lib/openstudio-standards/btap/structure.rb +657 -0
- data/lib/openstudio-standards/constructions/modify.rb +2 -1
- data/lib/openstudio-standards/create_typical/create_typical.rb +17 -33
- data/lib/openstudio-standards/create_typical/space_type_ratios.rb +36 -36
- data/lib/openstudio-standards/equipment/create_transformer.rb +104 -0
- data/lib/openstudio-standards/equipment/create_typical_equipment.rb +117 -0
- data/lib/openstudio-standards/equipment/data/electric_equipment_space_types.json +1514 -0
- data/lib/openstudio-standards/equipment/data/gas_equipment_space_types.json +227 -0
- data/lib/openstudio-standards/exterior_lighting/create.rb +22 -22
- data/lib/openstudio-standards/exterior_lighting/information.rb +3 -2
- data/lib/openstudio-standards/hvac/components/air_conditioner_vrf.rb +482 -0
- data/lib/openstudio-standards/hvac/components/air_terminal.rb +31 -0
- data/lib/openstudio-standards/hvac/components/boiler_hot_water.rb +163 -0
- data/lib/openstudio-standards/hvac/components/central_air_source_heat_pump.rb +220 -0
- data/lib/openstudio-standards/hvac/components/chiller.rb +25 -0
- data/lib/openstudio-standards/hvac/components/coil.rb +276 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_dx_multi_speed.rb +40 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_dx_single_speed.rb +300 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_dx_two_speed.rb +187 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_water.rb +80 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_water_to_air_heat_pump_equation_fit.rb +182 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_dx_single_speed.rb +220 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_electric.rb +56 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_gas.rb +90 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_gas_multi_stage.rb +33 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_water.rb +98 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_water_to_air_heat_pump_equation_fit.rb +147 -0
- data/lib/openstudio-standards/hvac/components/component.rb +39 -0
- data/lib/openstudio-standards/{standards/ashrae_90_1/data/ashrae_90_1.fans.json → hvac/components/data/fans.json} +6 -6
- data/lib/openstudio-standards/hvac/components/fan.rb +363 -0
- data/lib/openstudio-standards/hvac/components/heat_exchanger_air_to_air.rb +203 -0
- data/lib/openstudio-standards/hvac/components/pump.rb +181 -0
- data/lib/openstudio-standards/hvac/controls/radiant_system_controls.rb +594 -0
- data/lib/openstudio-standards/hvac/conversions.rb +222 -0
- data/lib/openstudio-standards/hvac/curves.rb +192 -0
- data/lib/openstudio-standards/hvac/helpers.rb +357 -0
- data/lib/openstudio-standards/hvac/setpoint_managers/information.rb +4 -4
- data/lib/openstudio-standards/interior_lighting/create_lights.rb +52 -0
- data/lib/openstudio-standards/interior_lighting/create_typical_interior_lighting.rb +254 -0
- data/lib/openstudio-standards/interior_lighting/data/convert_lighting_data.rb +249 -0
- data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.csv +96 -0
- data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.json +1429 -0
- data/lib/openstudio-standards/interior_lighting/data/lighting_technology.csv +46 -0
- data/lib/openstudio-standards/interior_lighting/data/lighting_technology.json +859 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +4 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +4 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +6 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +15 -15
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +4 -4
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +5 -5
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +7 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +4 -4
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +5 -1
- data/lib/openstudio-standards/prototypes/common/data/prototype_space_type_map.json +2594 -0
- data/lib/openstudio-standards/prototypes/common/data/thermostat_schedule_lookup.json +2108 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +33 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +0 -140
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +1 -73
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +1 -69
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +0 -116
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +0 -61
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +128 -13
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +606 -607
- data/lib/openstudio-standards/prototypes/common/prototype_space_type_map.rb +41 -0
- data/lib/openstudio-standards/prototypes/common/space_type_equipment_map.rb +184 -0
- data/lib/openstudio-standards/prototypes/common/space_type_thermostat_schedule_map.rb +116 -0
- data/lib/openstudio-standards/qaqc/hvac.rb +12 -12
- data/lib/openstudio-standards/refrigeration/create_compressor.rb +2 -5
- data/lib/openstudio-standards/refrigeration/data/refrigeration_compressors.csv +4 -4
- data/lib/openstudio-standards/service_water_heating/create_water_heater.rb +1 -2
- data/lib/openstudio-standards/service_water_heating/create_water_use.rb +5 -5
- data/lib/openstudio-standards/space_type/data/level_1_space_types.json +612 -0
- data/lib/openstudio-standards/space_type/standards_space_type.rb +53 -0
- data/lib/openstudio-standards/standards/Standards.AirConditionerVariableRefrigerantFlow.rb +8 -26
- data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +13 -13
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +0 -24
- data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +6 -43
- data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +7 -24
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +19 -44
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +25 -50
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +25 -33
- data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +9 -22
- data/lib/openstudio-standards/standards/Standards.CoilDX.rb +15 -157
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +18 -105
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +3 -23
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +0 -24
- data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +2 -86
- data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +0 -107
- data/lib/openstudio-standards/standards/Standards.Model.rb +45 -20
- data/lib/openstudio-standards/standards/Standards.People.rb +113 -0
- data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +11 -11
- data/lib/openstudio-standards/standards/Standards.Pump.rb +2 -147
- data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +57 -41
- data/lib/openstudio-standards/standards/Standards.SpaceType.rb +30 -153
- data/lib/openstudio-standards/standards/Standards.Ventilation.rb +74 -0
- data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +3 -3
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +37 -112
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.spc_typ.json +37 -102
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +3 -3
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +37 -112
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.BoilerHotWater.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.spc_typ.json +37 -102
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.BoilerHotWater.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.spc_typ.json +45 -109
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps_heating.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.BoilerHotWater.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoilHeatingGas.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.spc_typ.json +45 -109
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps_heating.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +0 -200
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +2 -68
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +2 -35
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +42 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +5 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.Model.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +3 -3
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +1 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb +2 -4
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.curves.json +0 -200
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.fans.json +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/ashrae_90_1_prm.UserData.rb +7 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +0 -1
- data/lib/openstudio-standards/standards/cbes/data/cbes.curves.json +0 -200
- data/lib/openstudio-standards/standards/deer/data/deer.curves.json +0 -200
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +21 -37
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +12 -11
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_3_and_8_single_speed.rb +68 -27
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_4.rb +64 -25
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_system_6.rb +9 -14
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +4 -4
- data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +1 -1
- data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +115 -112
- data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +637 -249
- data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +16 -12
- data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +799 -46
- data/lib/openstudio-standards/standards/necb/NECB2011/data/chillers.json +33 -51
- data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +75 -7
- data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +25 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/data/geometry/HighriseApartmentMult.osm +14272 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/heat_pumps_heating.json +21 -15
- data/lib/openstudio-standards/standards/necb/NECB2011/data/necb_2015_table_c1.json +1 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/data/space_types.json +437 -437
- data/lib/openstudio-standards/standards/necb/NECB2011/data/systems.json +516 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/systems_including_sys5.json +588 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_namer.rb +489 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +18 -6
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_2_and_5.rb +48 -5
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_multi_speed.rb +2 -2
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_3_and_8_single_speed.rb +35 -27
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_4.rb +34 -23
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_6.rb +8 -6
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +68 -150
- data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +444 -134
- data/lib/openstudio-standards/standards/necb/NECB2011/system_fuels.rb +61 -1
- data/lib/openstudio-standards/standards/necb/NECB2015/data/heat_pumps_heating.json +10 -2
- data/lib/openstudio-standards/standards/necb/NECB2015/data/space_types.json +636 -636
- data/lib/openstudio-standards/standards/necb/NECB2015/data/unitary_acs.json +38 -38
- data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +17 -8
- data/lib/openstudio-standards/standards/necb/NECB2017/data/space_types.json +636 -636
- data/lib/openstudio-standards/standards/necb/NECB2020/data/chillers.json +71 -71
- data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps_heating.json +16 -6
- data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +60 -61
- data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +30 -30
- data/lib/openstudio-standards/standards/necb/README.md +343 -0
- data/lib/openstudio-standards/standards/necb/common/btap_analysis.rb +79 -0
- data/lib/openstudio-standards/standards/necb/common/btap_data.rb +206 -32
- data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +75 -43
- data/lib/openstudio-standards/standards/necb/common/eccc_electric_grid_intensity_20250311.csv +14 -0
- data/lib/openstudio-standards/standards/necb/common/nir_gas_grid_intensity_20250311.csv +14 -0
- data/lib/openstudio-standards/standards/necb/common/system_types.yaml +0 -0
- data/lib/openstudio-standards/thermal_zone/{thermal_zone.rb → information.rb} +12 -45
- data/lib/openstudio-standards/thermal_zone/thermostat_schedules.rb +152 -0
- data/lib/openstudio-standards/utilities/logging.rb +18 -14
- data/lib/openstudio-standards/version.rb +1 -1
- data/lib/openstudio-standards/weather/modify.rb +2 -2
- data/lib/openstudio-standards/weather/stat_file.rb +2 -2
- data/lib/openstudio-standards.rb +67 -38
- metadata +141 -50
- data/lib/openstudio-standards/hvac/components/create.rb +0 -169
- data/lib/openstudio-standards/hvac/components/modify.rb +0 -42
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +0 -438
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.BoilerHotWater.rb +0 -123
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +0 -216
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb +0 -273
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +0 -159
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWater.rb +0 -77
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +0 -154
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +0 -214
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingElectric.rb +0 -53
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +0 -72
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWater.rb +0 -95
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +0 -125
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +0 -17
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.transformers.rb +0 -90
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb +0 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb +0 -70
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +0 -590
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +0 -901
- data/lib/openstudio-standards/standards/Standards.FanConstantVolume.rb +0 -5
- data/lib/openstudio-standards/standards/Standards.FanOnOff.rb +0 -5
- data/lib/openstudio-standards/standards/Standards.FanZoneExhaust.rb +0 -5
- data/lib/openstudio-standards/standards/Standards.HeaderedPumpsConstantSpeed.rb +0 -5
- data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +0 -55
- data/lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb +0 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +0 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +0 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanZoneExhaust.rb +0 -5
- data/lib/openstudio-standards/standards/cbes/data/cbes.fans.json +0 -328
- data/lib/openstudio-standards/standards/deer/data/deer.fans.json +0 -328
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Pump.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.PumpVariableSpeed.rb +0 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
module OpenstudioStandards
|
|
2
|
+
# The InteriorLighting module provides methods to create, modify, and get information about interior lighting
|
|
3
|
+
module InteriorLighting
|
|
4
|
+
# @!group Create Typical Interior Lighting
|
|
5
|
+
# Methods to create typical interior lighting
|
|
6
|
+
|
|
7
|
+
# Create typical interior lighting in a model
|
|
8
|
+
#
|
|
9
|
+
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
10
|
+
# @param lighting_generation [String] Lighting generation to assume for lighting. Successive generations have more efficient lighting.
|
|
11
|
+
# Options are 'gen1_t12_incandescent', 'gen2_t8_halogen', 'gen3_t5_cfl', 'gen4_led', 'gen5_led', 'gen6_led', 'gen7_led', 'gen8_led'.
|
|
12
|
+
# @return [Array<OpenStudio::Model::Lights>] Array of OpenStudio Lights objects
|
|
13
|
+
def self.create_typical_interior_lighting(model, lighting_generation: 'gen4_led')
|
|
14
|
+
# collectors for building lighting power and floor area
|
|
15
|
+
interior_lights = []
|
|
16
|
+
building_lighting_floor_area = 0.0
|
|
17
|
+
starting_building_lighting_power = 0.0
|
|
18
|
+
ending_building_lighting_power = 0.0
|
|
19
|
+
|
|
20
|
+
# load lighting technology data
|
|
21
|
+
lighting_technologies_data = JSON.parse(File.read("#{File.dirname(__FILE__)}/data/lighting_technology.json"), symbolize_names: true)
|
|
22
|
+
lighting_technologies = lighting_technologies_data[:lighting_technologies].select { |hash| (hash[:lighting_generation] == lighting_generation) }
|
|
23
|
+
if lighting_technologies.nil?
|
|
24
|
+
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', "No interior lighting technologies found for lighting generation #{lighting_generation}. No interior lighting will be added to model.")
|
|
25
|
+
return interior_lights
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# load lighting space types data
|
|
29
|
+
lighting_space_type_properties_data = JSON.parse(File.read("#{File.dirname(__FILE__)}/data/lighting_space_types.json"), symbolize_names: true)
|
|
30
|
+
if lighting_space_type_properties_data.nil?
|
|
31
|
+
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', 'Unable to load lighting space types data. No interior lighting will be added to model.')
|
|
32
|
+
return interior_lights
|
|
33
|
+
end
|
|
34
|
+
lighting_space_type_properties_data = lighting_space_type_properties_data[:lighting_space_types]
|
|
35
|
+
|
|
36
|
+
# loop over space types and apply lighting
|
|
37
|
+
model.getSpaceTypes.each do |space_type|
|
|
38
|
+
# get space type area and volume
|
|
39
|
+
space_type_floor_area = space_type.floorArea
|
|
40
|
+
if space_type_floor_area.zero?
|
|
41
|
+
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', "Space type #{space_type} floor area is zero. Ignoring space type.")
|
|
42
|
+
next
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
space_type_volume = 0.0
|
|
46
|
+
space_type.spaces.each do |space|
|
|
47
|
+
space_type_volume += space.volume * space.multiplier
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
if space_type_volume.zero?
|
|
51
|
+
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', "Volume for space type #{space_type.name} is zero. Ignoring space type.")
|
|
52
|
+
next
|
|
53
|
+
elsif space_type_volume.nil?
|
|
54
|
+
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', "Unable to determine volume for space type #{space_type.name}. Ignoring space type.")
|
|
55
|
+
next
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# calculate average space_type height
|
|
59
|
+
space_type_average_height_m = space_type_volume / space_type_floor_area
|
|
60
|
+
space_type_average_height_ft = OpenStudio.convert(space_type_average_height_m, 'm', 'ft').get
|
|
61
|
+
|
|
62
|
+
# get number of people for lighting calculations
|
|
63
|
+
space_type_number_of_people = space_type.getNumberOfPeople(space_type_floor_area)
|
|
64
|
+
|
|
65
|
+
# get initial conditions
|
|
66
|
+
building_lighting_floor_area += space_type_floor_area
|
|
67
|
+
starting_space_type_lighting_power = space_type.getLightingPower(space_type_floor_area, space_type_number_of_people)
|
|
68
|
+
starting_building_lighting_power += starting_space_type_lighting_power
|
|
69
|
+
|
|
70
|
+
# remove existing lighting objects
|
|
71
|
+
space_type.lights.sort.each(&:remove)
|
|
72
|
+
|
|
73
|
+
# remove existing lighting objects from spaces
|
|
74
|
+
space_type.spaces.each do |space|
|
|
75
|
+
space.lights.sort.each(&:remove)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# get lighting space type from the object
|
|
79
|
+
has_lighting_space_type = space_type.additionalProperties.hasFeature('lighting_space_type')
|
|
80
|
+
unless has_lighting_space_type
|
|
81
|
+
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', "Space type '#{space_type.name}' does not have a lighting_space_type property assigned. Ignoring space type.")
|
|
82
|
+
next
|
|
83
|
+
end
|
|
84
|
+
lighting_space_type = space_type.additionalProperties.getFeatureAsString('lighting_space_type').to_s
|
|
85
|
+
|
|
86
|
+
# get lighting properties for the lighting space type
|
|
87
|
+
lighting_space_type_properties = lighting_space_type_properties_data.select { |r| (r[:lighting_space_type_name] == lighting_space_type) }
|
|
88
|
+
if lighting_space_type_properties.empty?
|
|
89
|
+
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', "Unable to find lighting space type data for '#{lighting_space_type}'. Ignoring space type #{space_type.name}.")
|
|
90
|
+
next
|
|
91
|
+
end
|
|
92
|
+
lighting_space_type_properties = lighting_space_type_properties[0]
|
|
93
|
+
|
|
94
|
+
# get lighting properties for the lighting space type
|
|
95
|
+
lighting_space_type_target_illuminance_setpoint = lighting_space_type_properties[:lighting_space_type_target_illuminance_setpoint].to_f
|
|
96
|
+
lighting_space_type_target_illuminance_units = lighting_space_type_properties[:lighting_space_type_target_illuminance_units].to_s
|
|
97
|
+
general_lighting_fraction = lighting_space_type_properties[:general_lighting_fraction].to_f
|
|
98
|
+
general_cu = lighting_space_type_properties[:general_lighting_coefficient_of_utilization].to_f
|
|
99
|
+
task_lighting_fraction = lighting_space_type_properties[:task_lighting_fraction].to_f
|
|
100
|
+
task_cu = lighting_space_type_properties[:task_lighting_coefficient_of_utilization].to_f
|
|
101
|
+
supplemental_lighting_fraction = lighting_space_type_properties[:supplemental_lighting_fraction].to_f
|
|
102
|
+
supplemental_cu = lighting_space_type_properties[:supplemental_lighting_coefficient_of_utilization].to_f
|
|
103
|
+
wall_wash_lighting_fraction = lighting_space_type_properties[:wall_wash_lighting_fraction].to_f
|
|
104
|
+
wall_wash_cu = lighting_space_type_properties[:wall_wash_lighting_coefficient_of_utilization].to_f
|
|
105
|
+
|
|
106
|
+
# variable holder for lighting technology, default 'na'
|
|
107
|
+
general_lighting_technology_name = 'na'
|
|
108
|
+
task_lighting_technology_name = 'na'
|
|
109
|
+
supplemental_lighting_technology_name = 'na'
|
|
110
|
+
wall_wash_lighting_technology_name = 'na'
|
|
111
|
+
|
|
112
|
+
# general lighting
|
|
113
|
+
if general_lighting_fraction > 0
|
|
114
|
+
matching_objects = lighting_technologies.select { |r| (r[:lighting_system_type] == 'general') }
|
|
115
|
+
matching_objects = matching_objects.reject { |r| space_type_average_height_ft.to_f.round(1) > r[:fixture_max_height_ft].to_f.round(1) }
|
|
116
|
+
matching_objects = matching_objects.reject { |r| space_type_average_height_ft.to_f.round(1) <= r[:fixture_min_height_ft].to_f.round(1) }
|
|
117
|
+
general_lighting_technology = matching_objects[0]
|
|
118
|
+
luminous_efficacy = general_lighting_technology[:source_efficacy_lumens_per_watt].to_f
|
|
119
|
+
llf = general_lighting_technology[:lighting_loss_factor].to_f
|
|
120
|
+
|
|
121
|
+
# ignore depreciation terms (rsdd, llf) when setting installed lighting power
|
|
122
|
+
general_lpd_w_per_m2 = (lighting_space_type_target_illuminance_setpoint * general_lighting_fraction) / (luminous_efficacy * general_cu)
|
|
123
|
+
general_lighting_technology_name = general_lighting_technology[:lighting_technology]
|
|
124
|
+
|
|
125
|
+
# general lighting definition
|
|
126
|
+
general_lights_definition = OpenStudio::Model::LightsDefinition.new(space_type.model)
|
|
127
|
+
general_lights_definition.setName("#{space_type.name} General Lights Definition")
|
|
128
|
+
general_lights_definition.setWattsperSpaceFloorArea(general_lpd_w_per_m2)
|
|
129
|
+
general_lights_definition.setReturnAirFraction(general_lighting_technology[:return_air_fraction].to_f)
|
|
130
|
+
general_lights_definition.setFractionRadiant(general_lighting_technology[:radiant_fraction].to_f)
|
|
131
|
+
general_lights_definition.setFractionVisible(general_lighting_technology[:visible_fraction].to_f)
|
|
132
|
+
general_lights_definition.additionalProperties.setFeature('lighting_technology', general_lighting_technology_name)
|
|
133
|
+
general_lights_definition.additionalProperties.setFeature('lighting_system_type', 'general')
|
|
134
|
+
|
|
135
|
+
# general lighting object
|
|
136
|
+
general_lights = OpenStudio::Model::Lights.new(general_lights_definition)
|
|
137
|
+
general_lights.setName("#{space_type.name} General Lighting")
|
|
138
|
+
general_lights.setSpaceType(space_type)
|
|
139
|
+
interior_lights << general_lights
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# task lighting
|
|
143
|
+
if task_lighting_fraction > 0
|
|
144
|
+
matching_objects = lighting_technologies.select { |r| (r[:lighting_system_type] == 'task') }
|
|
145
|
+
task_lighting_technology = matching_objects[0]
|
|
146
|
+
luminous_efficacy = task_lighting_technology[:source_efficacy_lumens_per_watt].to_f
|
|
147
|
+
llf = task_lighting_technology[:lighting_loss_factor].to_f
|
|
148
|
+
|
|
149
|
+
# ignore depreciation terms (rsdd, llf) when setting installed lighting power
|
|
150
|
+
task_lpd_w_per_m2 = (lighting_space_type_target_illuminance_setpoint * task_lighting_fraction) / (luminous_efficacy * task_cu)
|
|
151
|
+
task_lighting_technology_name = task_lighting_technology[:lighting_technology]
|
|
152
|
+
|
|
153
|
+
# task lighting definition
|
|
154
|
+
task_lights_definition = OpenStudio::Model::LightsDefinition.new(space_type.model)
|
|
155
|
+
task_lights_definition.setName("#{space_type.name} Task Lights Definition")
|
|
156
|
+
task_lights_definition.setWattsperSpaceFloorArea(task_lpd_w_per_m2)
|
|
157
|
+
task_lights_definition.setReturnAirFraction(task_lighting_technology[:return_air_fraction].to_f)
|
|
158
|
+
task_lights_definition.setFractionRadiant(task_lighting_technology[:radiant_fraction].to_f)
|
|
159
|
+
task_lights_definition.setFractionVisible(task_lighting_technology[:visible_fraction].to_f)
|
|
160
|
+
task_lights_definition.additionalProperties.setFeature('lighting_technology', task_lighting_technology_name)
|
|
161
|
+
task_lights_definition.additionalProperties.setFeature('lighting_system_type', 'task')
|
|
162
|
+
|
|
163
|
+
# task lighting object
|
|
164
|
+
task_lights = OpenStudio::Model::Lights.new(task_lights_definition)
|
|
165
|
+
task_lights.setName("#{space_type.name} Task Lighting")
|
|
166
|
+
task_lights.setSpaceType(space_type)
|
|
167
|
+
interior_lights << task_lights
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
# supplemental lighting
|
|
171
|
+
if supplemental_lighting_fraction > 0
|
|
172
|
+
matching_objects = lighting_technologies.select { |r| (r[:lighting_system_type] == 'supplemental') }
|
|
173
|
+
supplemental_lighting_technology = matching_objects[0]
|
|
174
|
+
luminous_efficacy = supplemental_lighting_technology[:source_efficacy_lumens_per_watt].to_f
|
|
175
|
+
llf = supplemental_lighting_technology[:lighting_loss_factor].to_f
|
|
176
|
+
|
|
177
|
+
# ignore depreciation terms (rsdd, llf) when setting installed lighting power
|
|
178
|
+
supplemental_lpd_w_per_m2 = (lighting_space_type_target_illuminance_setpoint * supplemental_lighting_fraction) / (luminous_efficacy * supplemental_cu)
|
|
179
|
+
supplemental_lighting_technology_name = supplemental_lighting_technology[:lighting_technology]
|
|
180
|
+
|
|
181
|
+
# supplemental lighting definition
|
|
182
|
+
supplemental_lights_definition = OpenStudio::Model::LightsDefinition.new(space_type.model)
|
|
183
|
+
supplemental_lights_definition.setName("#{space_type.name} Supplemental Lights Definition")
|
|
184
|
+
supplemental_lights_definition.setWattsperSpaceFloorArea(supplemental_lpd_w_per_m2)
|
|
185
|
+
supplemental_lights_definition.setReturnAirFraction(supplemental_lighting_technology[:return_air_fraction].to_f)
|
|
186
|
+
supplemental_lights_definition.setFractionRadiant(supplemental_lighting_technology[:radiant_fraction].to_f)
|
|
187
|
+
supplemental_lights_definition.setFractionVisible(supplemental_lighting_technology[:visible_fraction].to_f)
|
|
188
|
+
supplemental_lights_definition.additionalProperties.setFeature('lighting_technology', supplemental_lighting_technology_name)
|
|
189
|
+
supplemental_lights_definition.additionalProperties.setFeature('lighting_system_type', 'supplemental')
|
|
190
|
+
|
|
191
|
+
# supplemental lighting object
|
|
192
|
+
supplemental_lights = OpenStudio::Model::Lights.new(supplemental_lights_definition)
|
|
193
|
+
supplemental_lights.setName("#{space_type.name} Supplemental Lighting")
|
|
194
|
+
supplemental_lights.setSpaceType(space_type)
|
|
195
|
+
interior_lights << supplemental_lights
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
# wall wash lighting
|
|
199
|
+
if wall_wash_lighting_fraction > 0
|
|
200
|
+
matching_objects = lighting_technologies.select { |r| (r[:lighting_system_type] == 'wall_wash') }
|
|
201
|
+
wall_wash_lighting_technology = matching_objects[0]
|
|
202
|
+
luminous_efficacy = wall_wash_lighting_technology[:source_efficacy_lumens_per_watt].to_f
|
|
203
|
+
llf = wall_wash_lighting_technology[:lighting_loss_factor].to_f
|
|
204
|
+
|
|
205
|
+
# ignore depreciation terms (rsdd, llf) when setting installed lighting power
|
|
206
|
+
wall_wash_lpd_w_per_m2 = (lighting_space_type_target_illuminance_setpoint * wall_wash_lighting_fraction) / (luminous_efficacy * wall_wash_cu)
|
|
207
|
+
wall_wash_lighting_technology_name = wall_wash_lighting_technology[:lighting_technology]
|
|
208
|
+
|
|
209
|
+
# wall wash lighting definition
|
|
210
|
+
wall_wash_lights_definition = OpenStudio::Model::LightsDefinition.new(space_type.model)
|
|
211
|
+
wall_wash_lights_definition.setName("#{space_type.name} Wall Wash Lights Definition")
|
|
212
|
+
wall_wash_lights_definition.setWattsperSpaceFloorArea(wall_wash_lpd_w_per_m2)
|
|
213
|
+
wall_wash_lights_definition.setReturnAirFraction(wall_wash_lighting_technology[:return_air_fraction].to_f)
|
|
214
|
+
wall_wash_lights_definition.setFractionRadiant(wall_wash_lighting_technology[:radiant_fraction].to_f)
|
|
215
|
+
wall_wash_lights_definition.setFractionVisible(wall_wash_lighting_technology[:visible_fraction].to_f)
|
|
216
|
+
wall_wash_lights_definition.additionalProperties.setFeature('lighting_technology', wall_wash_lighting_technology_name)
|
|
217
|
+
wall_wash_lights_definition.additionalProperties.setFeature('lighting_system_type', 'wall_wash')
|
|
218
|
+
|
|
219
|
+
# wall wash lighting object
|
|
220
|
+
wall_wash_lights = OpenStudio::Model::Lights.new(wall_wash_lights_definition)
|
|
221
|
+
wall_wash_lights.setName("#{space_type.name} Wall Wash Lighting")
|
|
222
|
+
wall_wash_lights.setSpaceType(space_type)
|
|
223
|
+
interior_lights << wall_wash_lights
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
# calculate ending lighting power
|
|
227
|
+
ending_space_type_lighting_power = space_type.getLightingPower(space_type_floor_area, space_type_number_of_people)
|
|
228
|
+
ending_building_lighting_power += ending_space_type_lighting_power
|
|
229
|
+
|
|
230
|
+
if space_type_floor_area > 0
|
|
231
|
+
starting_space_type_lpd = OpenStudio.convert(starting_space_type_lighting_power / space_type_floor_area, 'W/m^2', 'W/ft^2').get
|
|
232
|
+
ending_space_type_lpd = OpenStudio.convert(ending_space_type_lighting_power / space_type_floor_area, 'W/m^2', 'W/ft^2').get
|
|
233
|
+
else
|
|
234
|
+
starting_space_type_lpd = 0.0
|
|
235
|
+
ending_space_type_lpd = 0.0
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.InteriorLighting', "Setting space type '#{space_type.name}' with lighting space type '#{lighting_space_type}' to lighting generation '#{lighting_generation}', general '#{general_lighting_technology_name}', task '#{task_lighting_technology_name}', supplemental '#{supplemental_lighting_technology_name}', wall_wash '#{wall_wash_lighting_technology_name}'. Starting LPD #{starting_space_type_lpd.round(2)} W/ft2, ending LPD #{ending_space_type_lpd.round(2)} W/ft2.")
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
if building_lighting_floor_area > 0
|
|
242
|
+
starting_building_lpd = OpenStudio.convert(starting_building_lighting_power / building_lighting_floor_area, 'W/m^2', 'W/ft^2').get
|
|
243
|
+
ending_building_lpd = OpenStudio.convert(ending_building_lighting_power / building_lighting_floor_area, 'W/m^2', 'W/ft^2').get
|
|
244
|
+
else
|
|
245
|
+
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.InteriorLighting', 'Building lighting floor area is zero. This can happen if space types are not assigned to spaces. Unable to report out building level LPDs.')
|
|
246
|
+
starting_building_lpd = 0
|
|
247
|
+
ending_building_lpd = 0
|
|
248
|
+
end
|
|
249
|
+
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.InteriorLighting', "Building lighting started with #{starting_building_lighting_power.round(2)} W (average LPD #{starting_building_lpd.round(2)} W/ft2) and ended with #{ending_building_lighting_power.round(2)} W (average LPD #{ending_building_lpd.round(2)} W/ft2).")
|
|
250
|
+
|
|
251
|
+
return interior_lights
|
|
252
|
+
end
|
|
253
|
+
end
|
|
254
|
+
end
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
# These methods convert space type interior lighting data to and from .csv for editing.
|
|
2
|
+
private
|
|
3
|
+
|
|
4
|
+
require 'csv'
|
|
5
|
+
require 'json'
|
|
6
|
+
|
|
7
|
+
def lighting_space_types_csv_to_json(input_csv = 'lighting_space_types.csv',
|
|
8
|
+
output_json = 'lighting_space_types.json')
|
|
9
|
+
# Initialize the structure
|
|
10
|
+
result = {
|
|
11
|
+
lighting_space_types: []
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
# Read the CSV file
|
|
15
|
+
CSV.foreach(input_csv, headers: true, header_converters: :symbol) do |row|
|
|
16
|
+
lighting_space_type_name = row[:lighting_space_type_name]
|
|
17
|
+
lighting_space_type_target_illuminance_setpoint = row[:lighting_space_type_target_illuminance_setpoint]&.to_f
|
|
18
|
+
lighting_space_type_target_illuminance_units = row[:lighting_space_type_target_illuminance_units]
|
|
19
|
+
general_lighting_fraction = row[:general_lighting_fraction]&.to_f
|
|
20
|
+
general_lighting_coefficient_of_utilization = row[:general_lighting_coefficient_of_utilization]&.to_f
|
|
21
|
+
task_lighting_fraction = row[:task_lighting_fraction]&.to_f
|
|
22
|
+
task_lighting_coefficient_of_utilization = row[:task_lighting_coefficient_of_utilization]&.to_f
|
|
23
|
+
supplemental_lighting_fraction = row[:supplemental_lighting_fraction]&.to_f
|
|
24
|
+
supplemental_lighting_coefficient_of_utilization = row[:supplemental_lighting_coefficient_of_utilization]&.to_f
|
|
25
|
+
wall_wash_lighting_fraction = row[:wall_wash_lighting_fraction]&.to_f
|
|
26
|
+
wall_wash_lighting_coefficient_of_utilization = row[:wall_wash_lighting_coefficient_of_utilization]&.to_f
|
|
27
|
+
source = row[:source]
|
|
28
|
+
notes = row[:notes]
|
|
29
|
+
|
|
30
|
+
lighting_space_type_hash = {
|
|
31
|
+
lighting_space_type_name: lighting_space_type_name,
|
|
32
|
+
lighting_space_type_target_illuminance_setpoint: lighting_space_type_target_illuminance_setpoint,
|
|
33
|
+
lighting_space_type_target_illuminance_units: lighting_space_type_target_illuminance_units,
|
|
34
|
+
general_lighting_fraction: general_lighting_fraction,
|
|
35
|
+
general_lighting_coefficient_of_utilization: general_lighting_coefficient_of_utilization,
|
|
36
|
+
task_lighting_fraction: task_lighting_fraction,
|
|
37
|
+
task_lighting_coefficient_of_utilization: task_lighting_coefficient_of_utilization,
|
|
38
|
+
supplemental_lighting_fraction: supplemental_lighting_fraction,
|
|
39
|
+
supplemental_lighting_coefficient_of_utilization: supplemental_lighting_coefficient_of_utilization,
|
|
40
|
+
wall_wash_lighting_fraction: wall_wash_lighting_fraction,
|
|
41
|
+
wall_wash_lighting_coefficient_of_utilization: wall_wash_lighting_coefficient_of_utilization,
|
|
42
|
+
source: source,
|
|
43
|
+
notes: notes
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
# Add the lighting_space_type_hash to the result array
|
|
47
|
+
result[:lighting_space_types] << lighting_space_type_hash
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Write to the output JSON file
|
|
51
|
+
File.write(output_json, JSON.pretty_generate(result))
|
|
52
|
+
|
|
53
|
+
puts "Data has been converted to JSON and saved to #{output_json}"
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# convert to json
|
|
57
|
+
lighting_space_types_csv_to_json
|
|
58
|
+
|
|
59
|
+
def lighting_space_types_json_to_csv(input_json = 'lighting_space_types.json',
|
|
60
|
+
output_csv = 'lighting_space_types.csv')
|
|
61
|
+
# Read the JSON file
|
|
62
|
+
data = JSON.parse(File.read(input_json), symbolize_names: true)
|
|
63
|
+
|
|
64
|
+
# Prepare the CSV headers
|
|
65
|
+
headers = [
|
|
66
|
+
:lighting_space_type_name,
|
|
67
|
+
:lighting_space_type_target_illuminance_setpoint,
|
|
68
|
+
:lighting_space_type_target_illuminance_units,
|
|
69
|
+
:general_lighting_fraction,
|
|
70
|
+
:general_lighting_coefficient_of_utilization,
|
|
71
|
+
:task_lighting_fraction,
|
|
72
|
+
:task_lighting_coefficient_of_utilization,
|
|
73
|
+
:supplemental_lighting_fraction,
|
|
74
|
+
:supplemental_lighting_coefficient_of_utilization,
|
|
75
|
+
:wall_wash_lighting_fraction,
|
|
76
|
+
:wall_wash_lighting_coefficient_of_utilization,
|
|
77
|
+
:source,
|
|
78
|
+
:notes
|
|
79
|
+
]
|
|
80
|
+
|
|
81
|
+
# Write the CSV file
|
|
82
|
+
CSV.open(output_csv, 'w', write_headers: true, headers: headers) do |csv|
|
|
83
|
+
data[:lighting_space_types].each do |entry|
|
|
84
|
+
lighting_space_type_name = entry[:lighting_space_type_name]
|
|
85
|
+
lighting_space_type_target_illuminance_setpoint = entry[:lighting_space_type_target_illuminance_setpoint]
|
|
86
|
+
lighting_space_type_target_illuminance_units = entry[:lighting_space_type_target_illuminance_units]
|
|
87
|
+
general_lighting_fraction = entry[:general_lighting_fraction]
|
|
88
|
+
general_lighting_coefficient_of_utilization = entry[:general_lighting_coefficient_of_utilization]
|
|
89
|
+
task_lighting_fraction = entry[:task_lighting_fraction]
|
|
90
|
+
task_lighting_coefficient_of_utilization = entry[:task_lighting_coefficient_of_utilization]
|
|
91
|
+
supplemental_lighting_fraction = entry[:supplemental_lighting_fraction]
|
|
92
|
+
supplemental_lighting_coefficient_of_utilization = entry[:supplemental_lighting_coefficient_of_utilization]
|
|
93
|
+
wall_wash_lighting_fraction = entry[:wall_wash_lighting_fraction]
|
|
94
|
+
wall_wash_lighting_coefficient_of_utilization = entry[:wall_wash_lighting_coefficient_of_utilization]
|
|
95
|
+
source = entry[:source]
|
|
96
|
+
notes = entry[:notes]
|
|
97
|
+
|
|
98
|
+
csv << [
|
|
99
|
+
lighting_space_type_name,
|
|
100
|
+
buillighting_space_type_target_illuminance_setpointding_type,
|
|
101
|
+
lighting_space_type_target_illuminance_units,
|
|
102
|
+
general_lighting_fraction,
|
|
103
|
+
general_lighting_coefficient_of_utilization,
|
|
104
|
+
task_lighting_fraction,
|
|
105
|
+
task_lighting_coefficient_of_utilization,
|
|
106
|
+
supplemental_lighting_fraction,
|
|
107
|
+
supplemental_lighting_coefficient_of_utilization,
|
|
108
|
+
wall_wash_lighting_fraction,
|
|
109
|
+
wall_wash_lighting_coefficient_of_utilization,
|
|
110
|
+
source,
|
|
111
|
+
notes
|
|
112
|
+
]
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
puts "Data has been converted to CSV and saved to #{output_csv}"
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
def lighting_technology_csv_to_json(input_csv = 'lighting_technology.csv',
|
|
120
|
+
output_json = 'lighting_technology.json')
|
|
121
|
+
# Initialize the structure
|
|
122
|
+
result = {
|
|
123
|
+
lighting_technologies: []
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
# Read the CSV file
|
|
127
|
+
CSV.foreach(input_csv, headers: true, header_converters: :symbol) do |row|
|
|
128
|
+
lighting_technology = row[:lighting_technology]
|
|
129
|
+
lighting_generation = row[:lighting_generation]
|
|
130
|
+
lighting_system_type = row[:lighting_system_type]
|
|
131
|
+
fixture_type = row[:fixture_type]
|
|
132
|
+
lamp_type = row[:lamp_type]
|
|
133
|
+
fixture_min_height_ft = row[:fixture_min_height_ft]&.to_f
|
|
134
|
+
fixture_max_height_ft = row[:fixture_max_height_ft]&.to_f
|
|
135
|
+
source_efficacy_lumens_per_watt = row[:source_efficacy_lumens_per_watt]&.to_f
|
|
136
|
+
source_efficacy_reference = row[:source_efficacy_reference]
|
|
137
|
+
lamp_lumen_depreciation = row[:lamp_lumen_depreciation]&.to_f
|
|
138
|
+
luminaire_dirt_depreciation = row[:luminaire_dirt_depreciation]&.to_f
|
|
139
|
+
lighting_loss_factor = row[:lighting_loss_factor]&.to_f
|
|
140
|
+
lighting_loss_factor_reference = row[:lighting_loss_factor_reference]
|
|
141
|
+
return_air_fraction = row[:return_air_fraction]&.to_f
|
|
142
|
+
radiant_fraction = row[:radiant_fraction]&.to_f
|
|
143
|
+
visible_fraction = row[:visible_fraction]&.to_f
|
|
144
|
+
radiant_fraction_reference = row[:radiant_fraction_reference]
|
|
145
|
+
|
|
146
|
+
lighting_technology_hash = {
|
|
147
|
+
lighting_technology: lighting_technology,
|
|
148
|
+
lighting_generation: lighting_generation,
|
|
149
|
+
lighting_system_type: lighting_system_type,
|
|
150
|
+
fixture_type: fixture_type,
|
|
151
|
+
lamp_type: lamp_type,
|
|
152
|
+
fixture_min_height_ft: fixture_min_height_ft,
|
|
153
|
+
fixture_max_height_ft: fixture_max_height_ft,
|
|
154
|
+
source_efficacy_lumens_per_watt: source_efficacy_lumens_per_watt,
|
|
155
|
+
source_efficacy_reference: source_efficacy_reference,
|
|
156
|
+
lamp_lumen_depreciation: lamp_lumen_depreciation,
|
|
157
|
+
luminaire_dirt_depreciation: luminaire_dirt_depreciation,
|
|
158
|
+
lighting_loss_factor: lighting_loss_factor,
|
|
159
|
+
lighting_loss_factor_reference: lighting_loss_factor_reference,
|
|
160
|
+
return_air_fraction: return_air_fraction,
|
|
161
|
+
radiant_fraction: radiant_fraction,
|
|
162
|
+
visible_fraction: visible_fraction,
|
|
163
|
+
radiant_fraction_reference: radiant_fraction_reference
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
# Add the lighting_technology_hash to the result array
|
|
167
|
+
result[:lighting_technologies] << lighting_technology_hash
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
# Write to the output JSON file
|
|
171
|
+
File.write(output_json, JSON.pretty_generate(result))
|
|
172
|
+
|
|
173
|
+
puts "Data has been converted to JSON and saved to #{output_json}"
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# convert to json
|
|
177
|
+
lighting_technology_csv_to_json
|
|
178
|
+
|
|
179
|
+
def lighting_technology_json_to_csv(input_json = 'lighting_technology.json',
|
|
180
|
+
output_csv = 'lighting_technology.csv')
|
|
181
|
+
# Read the JSON file
|
|
182
|
+
data = JSON.parse(File.read(input_json), symbolize_names: true)
|
|
183
|
+
|
|
184
|
+
# Prepare the CSV headers
|
|
185
|
+
headers = [
|
|
186
|
+
:lighting_technology,
|
|
187
|
+
:lighting_generation,
|
|
188
|
+
:lighting_system_type,
|
|
189
|
+
:fixture_type,
|
|
190
|
+
:lamp_type,
|
|
191
|
+
:fixture_min_height_ft,
|
|
192
|
+
:fixture_max_height_ft,
|
|
193
|
+
:source_efficacy_lumens_per_watt,
|
|
194
|
+
:source_efficacy_reference,
|
|
195
|
+
:lamp_lumen_depreciation,
|
|
196
|
+
:luminaire_dirt_depreciation,
|
|
197
|
+
:lighting_loss_factor,
|
|
198
|
+
:lighting_loss_factor_reference,
|
|
199
|
+
:return_air_fraction,
|
|
200
|
+
:radiant_fraction,
|
|
201
|
+
:visible_fraction,
|
|
202
|
+
:radiant_fraction_reference
|
|
203
|
+
]
|
|
204
|
+
|
|
205
|
+
# Write the CSV file
|
|
206
|
+
CSV.open(output_csv, 'w', write_headers: true, headers: headers) do |csv|
|
|
207
|
+
data[:lighting_technologies].each do |entry|
|
|
208
|
+
lighting_technology = entry[:lighting_technology]
|
|
209
|
+
lighting_generation = entry[:lighting_generation]
|
|
210
|
+
lighting_system_type = entry[:lighting_system_type]
|
|
211
|
+
fixture_type = entry[:fixture_type]
|
|
212
|
+
lamp_type = entry[:lamp_type]
|
|
213
|
+
fixture_min_height_ft = entry[:fixture_min_height_ft]
|
|
214
|
+
fixture_max_height_ft = entry[:fixture_max_height_ft]
|
|
215
|
+
source_efficacy_lumens_per_watt = entry[:source_efficacy_lumens_per_watt]
|
|
216
|
+
source_efficacy_reference = entry[:source_efficacy_reference]
|
|
217
|
+
lamp_lumen_depreciation = entry[:lamp_lumen_depreciation]
|
|
218
|
+
luminaire_dirt_depreciation = entry[:luminaire_dirt_depreciation]
|
|
219
|
+
lighting_loss_factor = entry[:lighting_loss_factor]
|
|
220
|
+
lighting_loss_factor_reference = entry[:lighting_loss_factor_reference]
|
|
221
|
+
return_air_fraction = entry[:return_air_fraction]
|
|
222
|
+
radiant_fraction = entry[:radiant_fraction]
|
|
223
|
+
visible_fraction = entry[:visible_fraction]
|
|
224
|
+
radiant_fraction_reference = entry[:radiant_fraction_reference]
|
|
225
|
+
|
|
226
|
+
csv << [
|
|
227
|
+
lighting_technology,
|
|
228
|
+
lighting_generation,
|
|
229
|
+
lighting_system_type,
|
|
230
|
+
fixture_type,
|
|
231
|
+
lamp_type,
|
|
232
|
+
fixture_min_height_ft,
|
|
233
|
+
fixture_max_height_ft,
|
|
234
|
+
source_efficacy_lumens_per_watt,
|
|
235
|
+
source_efficacy_reference,
|
|
236
|
+
lamp_lumen_depreciation,
|
|
237
|
+
luminaire_dirt_depreciation,
|
|
238
|
+
lighting_loss_factor,
|
|
239
|
+
lighting_loss_factor_reference,
|
|
240
|
+
return_air_fraction,
|
|
241
|
+
radiant_fraction,
|
|
242
|
+
visible_fraction,
|
|
243
|
+
radiant_fraction_reference
|
|
244
|
+
]
|
|
245
|
+
end
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
puts "Data has been converted to CSV and saved to #{output_csv}"
|
|
249
|
+
end
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
lighting_space_type_name,lighting_space_type_target_illuminance_setpoint,lighting_space_type_target_illuminance_units,general_lighting_fraction,general_lighting_coefficient_of_utilization,task_lighting_fraction,task_lighting_coefficient_of_utilization,supplemental_lighting_fraction,supplemental_lighting_coefficient_of_utilization,wall_wash_lighting_fraction,wall_wash_lighting_coefficient_of_utilization,source,notes
|
|
2
|
+
airport_concourse_lighting,118,Lux,0.5,0.92,0.3,0.79,0,0,0.2,0.75,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
3
|
+
atrium_lighting,178,Lux,1,0.82,0,0,0,0,0,0.58,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",less than 20ft
|
|
4
|
+
audience_seating_area_for_gymnasium_lighting,118,Lux,1,0.59,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
5
|
+
audience_seating_area_for_motion_picture_theater_lighting,118,Lux,1,0.91,0,0,0,0.11,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
6
|
+
audience_seating_area_for_penitentiary_lighting,355,Lux,1,0.91,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
7
|
+
audience_seating_area_for_performing_arts_theater_lighting,426,Lux,0.791666667,0.69,0,0,0,0,0.208333333,0.58,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
8
|
+
audience_seating_area_for_religious_buildings_lighting,118,Lux,0.625,0.97,0.166666667,0.4,0,0,0.208333333,0.45,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
9
|
+
audience_seating_area_for_sports_arena_lighting,118,Lux,0.5,0.46,0.5,0.97,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
10
|
+
audience_seating_lighting,118,Lux,1,1.02,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",all other
|
|
11
|
+
automotive_general_lighting,355,Lux,0.833333333,0.7,0.166666667,0.56,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
12
|
+
baggage_carousel_lighting,237,Lux,0.45,0.92,0.3,0.76,0,0,0.25,0.87,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
13
|
+
banking_lighting,355,Lux,0.857142857,0.71,0,0,0,0,0.142857143,0.73,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
14
|
+
classroom_lecture_training_for_penitentiary_lighting,471,Lux,1,0.82,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",changed general fraction to 1 and supplemental fraction to 0
|
|
15
|
+
classroom_lecture_training_lighting,471,Lux,1,0.8,0,0.92,0,0,0,0.83,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",changed general fraction to 1.0
|
|
16
|
+
computer_room_lighting,710,Lux,1,0.92,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
17
|
+
conference_meeting_multipurpose_lighting,355,Lux,0.85,0.59,0.075,0.89,0,0,0.075,0.69,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.85, task and wall wash to 0.075"
|
|
18
|
+
confinement_cells_lighting,296,Lux,0.909090909,0.73,0.090909091,0.68,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
19
|
+
convention_center_exhibit_space_general_lighting,431,Lux,1,0.81,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
20
|
+
copy_print_lighting,178,Lux,1,0.74,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
21
|
+
corridor_lighting,178,Lux,1,0.64,0,0,0,0,0,0.6,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",changed general fraction to 1.0
|
|
22
|
+
corridor_transition_for_hospital_lighting,355,Lux,0.9,0.71,0,0,0,0,0.1,0.83,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.9, wall wash to 0.1"
|
|
23
|
+
courtroom_lighting,474,Lux,0.4,0.51,0.5,0.84,0,0,0.1,0.83,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
24
|
+
datacenterhighite_lighting,118,Lux,1,0.92,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","computer room, need a better match"
|
|
25
|
+
datacenterlowite_lighting,118,Lux,1,0.92,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","computer room, need a better match"
|
|
26
|
+
dining_area_for_family_dining_lighting,237,Lux,0.695652174,0.92,0.086956522,0.45,0,0,0.217391304,0.9,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
27
|
+
dining_area_for_penitentiary_lighting,178,Lux,1,0.73,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
28
|
+
dining_bar_lounge_leisure_general_lighting,118,Lux,0.594059406,1,0.247524752,0.45,0.158415842,0.9,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
29
|
+
dining_cafeteria_fast_food_general_lighting,237,Lux,0.85,0.79,0.05,0.92,0,0,0.1,0.83,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.85, task to 0.05, wall wash to 0.1"
|
|
30
|
+
dining_lighting,308,Lux,0.85,0.79,0.05,0.92,0,0,0.1,0.83,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.85, task to 0.05, wall wash to 0.1"
|
|
31
|
+
dressing_room_lighting,237,Lux,0.434782609,0.6,0.565217391,0.6,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",retail
|
|
32
|
+
electrical_mechanical_lighting,118,Lux,0.9,0.49,0.1,0.38,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.9, task fraction to 0.1"
|
|
33
|
+
emergency_room_lighting,888,Lux,0.9,0.7,0.1,374,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.9, task fraction to 0.1"
|
|
34
|
+
emergency_vehicle_garage_lighting,355,Lux,1,0.79,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
35
|
+
exam_treatment_lighting,592,Lux,1,0.58,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
36
|
+
exercise_area_lighting,474,Lux,1,0.59,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
37
|
+
exhibit_lighting,431,Lux,1,0.89,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
38
|
+
food_preparation_lighting,538,Lux,0.816326531,0.65,0.183673469,0.65,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
39
|
+
guest_room_lighting,178,Lux,0,0.64,1,0.83,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",adjusted general fraction to force A19-style use
|
|
40
|
+
imaging_lighting,355,Lux,1,0.74,0,0.73,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
41
|
+
interior_parking_lighting,54,Lux,1,0.67,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
42
|
+
judges_chambers_lighting,355,Lux,0.857142857,0.57,0,0,0,0,0.142857143,0.72,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
43
|
+
laboratory_lighting,592,Lux,0.79338843,0.59,0.20661157,0.77,0,0,0,0.64,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
44
|
+
laundry_washing_lighting,355,Lux,1,0.81,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
45
|
+
library_lighting,118,Lux,0.909090909,0.79,0.090909091,0.65,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
46
|
+
library_reading_area_lighting,592,Lux,0.681818182,0.76,0.318181818,0.97,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
47
|
+
library_stacks_lighting,355,Lux,0.384615385,0.68,0.615384615,0.82,0,0,0,0.66,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
48
|
+
living_quarters_lighting,178,Lux,0.85,0.52,0.15,0.38,0,0.33,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
49
|
+
loading_dock_lighting,355,Lux,1,0.46,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
50
|
+
lobby_for_hotel_lighting,178,Lux,0.666666667,0.93,0,0,0,0.96,0.333333333,0.91,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
51
|
+
lobby_for_motion_picture_theater_lighting,118,Lux,1,0.92,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
52
|
+
lobby_for_performing_arts_theater_lighting,296,Lux,0.863013699,0.72,0,0,0.136986301,0.29,0,0.76,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
53
|
+
lobby_lighting,296,Lux,0.689655172,0.45,0.137931034,0.92,0,0,0.172413793,0.75,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",lobby all other
|
|
54
|
+
locker_room_lighting,237,Lux,0.875,0.65,0.125,0.77,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
55
|
+
lounge_breakroom_lighting,178,Lux,0.9,0.92,0,0,0,0,0.1,0.82,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","all other, changed general fraction to 0.9, wall wash to 0.1"
|
|
56
|
+
lounge_recreation_for_hospital_lighting,296,Lux,0.9,0.77,0,0.77,0,0,0.1,0.64,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.9, task fraction to 0, wall wash to 0.1"
|
|
57
|
+
manufacturing_facility_detailed_manufacturing_area_lighting,592,Lux,1,0.94,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
58
|
+
manufacturing_facility_equipment_room_lighting,237,Lux,0.769230769,0.49,0.230769231,0.38,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
59
|
+
manufacturing_facility_high_bay_area_25_to_50_ft_ftc_hgt_lighting,592,Lux,1,0.54,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
60
|
+
manufacturing_facility_low_bay_area_lt_25_ft_ftc_hgt_lighting,592,Lux,1,0.79,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
61
|
+
manufacturing_lighting,592,Lux,1,0.79,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",same as low bay
|
|
62
|
+
medical_supply_lighting,355,Lux,1,0.74,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
63
|
+
multifamily_lighting,178,Lux,0.85,0.52,0.15,0.38,0,0.33,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",living quarters
|
|
64
|
+
museum_restoration_room_lighting,592,Lux,0.727272727,0.7,0.272727273,0.74,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
65
|
+
none_lighting,0,Lux,1,1,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
66
|
+
nursery_lighting,355,Lux,1,0.59,0,0.84,0,0,0,0.73,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
67
|
+
nurses_station_lighting,355,Lux,0.8,0.59,0.2,0.58,0,0,0,0.73,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.8, task fraction to 0.2"
|
|
68
|
+
office-enclosed_general_lighting,355,Lux,1,0.62,0,0.52,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","enclosed, greater than 250ft2"
|
|
69
|
+
office_enclosed_lighting,355,Lux,1,0.5597,0,0.47,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","enclosed, less than 250ft"
|
|
70
|
+
office_lighting,414,Lux,0.88,0.76,0,0.74,0,0,0.12,0.91,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",open plan lighting
|
|
71
|
+
office_open_plan_lighting,414,Lux,0.88,0.76,0,0.74,0,0,0.12,0.91,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
72
|
+
operating_room_lighting,1184,Lux,1,0.71,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
73
|
+
patient_room_lighting,355,Lux,0.457,0.73,0.543,0.7,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",changed general fraction from 0.435 to 0.457 and supplemental fraction to 0
|
|
74
|
+
pharmacy_lighting,888,Lux,0.882352941,0.65,0.117647059,0.65,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
75
|
+
physical_therapy_lighting,474,Lux,0.8,0.59,0.2,0.59,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.8, task fraction to 0.2"
|
|
76
|
+
playing_area_lighting,592,Lux,1,0.8,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
77
|
+
post_office_lighting,237,Lux,1,0.44,0,0,0,0,0,0.56,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","lobby, changed general fraction to 1 and supplemental fraction to 0"
|
|
78
|
+
post_office_sorting_area_general_lighting,474,Lux,0.8,0,0,0,0,0,0,,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
79
|
+
recovery_lighting,592,Lux,0.886363636,0.73,0,0,0,0,0.113636364,0.73,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
80
|
+
recreation_common_living_lighting,323,Lux,0.85,0.52,0.15,0.38,0,0.33,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","dormitory living quarters, illuminance value seems to high for a oounge"
|
|
81
|
+
religious_buildings_fellowship_hall_lighting,355,Lux,0.8,0.92,0.2,1.03,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
82
|
+
religious_buildings_worship_pulpit_choir_lighting,355,Lux,0.625,0.97,0.166666667,0.4,0,0,0.208333333,0.91,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
83
|
+
restroom_lighting,178,Lux,0.9,0.51,0,0.69,0,0,0.1,0.57,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.9, wall wash to 0.1"
|
|
84
|
+
retail_mall_concourse_lighting,403,Lux,0.705882353,0.97,0,0,0.294117647,0.4,0,0.75,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
85
|
+
retail_sales_lighting,474,Lux,0.9,0.6,0,0,0.06,0.83,0.04,0.56,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","retail sales area, changed general fraction to 0.9, supplemental to 0.06, wall wash to 0.04"
|
|
86
|
+
sleeping_quarters_lighting,59,Lux,0.5,0.65,0.5,0.43,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
87
|
+
sports_arena_lighting,1184,Lux,0.5,0.46,0.5,0.97,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
88
|
+
stairwell_lighting,118,Lux,0.9,0.36,0.05,0.27,0,0,0.05,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model","changed general fraction to 0.9, task to 0.05, wall wash to 0.05"
|
|
89
|
+
storage_lighting,118,Lux,1,0.61,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
90
|
+
transportation_facility_ticket_counter_lighting,296,Lux,0.4,0.79,0.4,0.92,0,0,0.2,0.83,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
91
|
+
transportation_lighting,237,Lux,0.545454545,0.59,0,0,0,0,0.454545455,0.83,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
92
|
+
vehicular_maintenance_lighting,355,Lux,0.833333333,0.7,0.166666667,0.56,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
93
|
+
warehouse_storage_area_medium_to_bulky_palletized_items_lighting,237,Lux,1,0.81,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
94
|
+
warehouse_storage_area_smaller_hand-carried_items_lighting,355,Lux,1,0.59,0,0,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
95
|
+
workshop_lighting,592,Lux,1,0.61,0,0.92,0,0,0,0,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|
|
96
|
+
worship_lighting,355,Lux,0.625,0.97,0.166666667,0.4,0,0,0.208333333,0.45,"total illuminance values from IES 2019, fractions from pnnl_90_1_lighting_subcommittee_model",
|