From dae20875595bcaa63469c0accb09dd5402cc9dec Mon Sep 17 00:00:00 2001 From: Khalim Conn-Kowlessar Date: Tue, 19 Sep 2023 17:21:14 +0100 Subject: [PATCH] handling missed trvs cases with mainheat controls --- model_data/cleaner_app.py | 8 +++ .../epc_attributes/MainheatAttributes.py | 3 +- .../MainheatControlAttributes.py | 13 +++-- .../generate_rdsap_change.py | 3 ++ .../test_mainheat_attributes_cases.py | 13 +++++ .../test_mainheat_control_attributes_cases.py | 50 +++++++++++++++++-- 6 files changed, 81 insertions(+), 9 deletions(-) diff --git a/model_data/cleaner_app.py b/model_data/cleaner_app.py index 1ccb6238..cf56675d 100644 --- a/model_data/cleaner_app.py +++ b/model_data/cleaner_app.py @@ -34,6 +34,14 @@ def app(): Currently, this application is just run on a local machine """ + # mainheat control todos: + # [x]'System dalu wediGÇÖi chysylltu +ó defnyddio gwres cymunedol, rhaglennydd a TRVs' + # [x]'System dalu wediGÇÖi chysylltu +ó defnyddio gwres cymunedol, TRVs' + # [x] 'T+-ól un gyfradd, TRVs' + # [x]'T+ól un gyfradd, rhaglennydd a TRVs' + # [x]'T+ól un gyfradd, TRVs' + # 'TRVs a falf osgoi' + cleaned_data = {} epc_directories = [entry for entry in EPC_DIRECTORY.iterdir() if entry.is_dir()] for directory in tqdm(epc_directories): diff --git a/model_data/epc_attributes/MainheatAttributes.py b/model_data/epc_attributes/MainheatAttributes.py index 3fc1468b..9471ee1d 100644 --- a/model_data/epc_attributes/MainheatAttributes.py +++ b/model_data/epc_attributes/MainheatAttributes.py @@ -54,7 +54,8 @@ class MainHeatAttributes(Definitions): "gwresogyddion ystafell, pelenni coed": "room heaters, wood pellets", "gwresogyddion ystafell, glo": "room heaters, coal", "bwyler a gwres dan y llawr, lpg": "boiler and underfloor heating, lpg", - "bwyler a gwres dan y llawr, trydan": "boiler and underfloor heating, electric" + "bwyler a gwres dan y llawr, trydan": "boiler and underfloor heating, electric", + "boiler and radiators, nwy prif gyflenwad, mains gas": "boiler and radiators, mains gas", } REMAP = { diff --git a/model_data/epc_attributes/MainheatControlAttributes.py b/model_data/epc_attributes/MainheatControlAttributes.py index 8bb90f16..64f5afba 100644 --- a/model_data/epc_attributes/MainheatControlAttributes.py +++ b/model_data/epc_attributes/MainheatControlAttributes.py @@ -102,9 +102,16 @@ class MainheatControlAttributes(Definitions): "dim rheolaeth thermostatig ar dymheredd yr ystafell": "no thermostatic control of room temperature", "thermostatau ar y cyfarpar": "appliance thermostats", "rhaglennydd a thermostatau ystafell": "programmer and room thermostats", - "system dalu wedigçöi chysylltu +ó defnyddio gwres cymunedol, rhaglennydd a thermostat ystafell": ( - "charging system linked to use of community heating, programmer and room thermostat" - ), + "system dalu wedigçöi chysylltu +ó defnyddio gwres cymunedol, rhaglennydd a thermostat ystafell": + "charging system linked to use of community heating, programmer and room thermostat", + 'system dalu wedigçöi chysylltu +ó defnyddio gwres cymunedol, rhaglennydd a trvs': + "charging system linked to use of community heating, programmer and trvs", + 'system dalu wedigçöi chysylltu +ó defnyddio gwres cymunedol, trvs': + 'charging system linked to use of community heating, trvs', + 't+-ól un gyfradd, trvs': 'single rate heating, trvs', + 't+ól un gyfradd, rhaglennydd a trvs': 'single rate heating, programmer, trvs', + 't+ól un gyfradd, trvs': 'single rate heating, trvs', + 'trvs a falf osgoi': 'trvs and bypass' } def __init__(self, description: str): diff --git a/model_data/simulation_system/generate_rdsap_change.py b/model_data/simulation_system/generate_rdsap_change.py index 8dd993a5..27ad9f70 100644 --- a/model_data/simulation_system/generate_rdsap_change.py +++ b/model_data/simulation_system/generate_rdsap_change.py @@ -347,6 +347,9 @@ def app(): data_by_urpn_df = process_and_prune_desriptions(data_by_urpn_df, cleaned_lookup) + if pd.isnull(data_by_urpn_df).sum().sum(): + raise ValueError("Null values found in dataset after process_and_prune_desriptions") + dataset.append(data_by_urpn_df) cleaning_averages["LOCAL_AUTHORITY"] = df["LOCAL_AUTHORITY"].values[0] diff --git a/model_data/tests/test_data/test_mainheat_attributes_cases.py b/model_data/tests/test_data/test_mainheat_attributes_cases.py index 44daddcb..d264ebff 100644 --- a/model_data/tests/test_data/test_mainheat_attributes_cases.py +++ b/model_data/tests/test_data/test_mainheat_attributes_cases.py @@ -1639,4 +1639,17 @@ mainheat_cases = [ 'has_electricaire': False, 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False, "has_electric_heat_pumps": False, "has_micro-cogeneration": False}, + {'original_description': 'Boiler and radiators, nwy prif gyflenwad, mains gas', 'has_radiators': True, + 'has_fan_coil_units': False, + 'has_pipes_in_screed_above_insulation': False, 'has_pipes_in_insulated_timber_floor': False, + 'has_pipes_in_concrete_slab': False, 'has_boiler': True, 'has_air_source_heat_pump': False, + 'has_room_heaters': False, 'has_electric_storage_heaters': False, 'has_warm_air': False, + 'has_electric_underfloor_heating': False, 'has_electric_ceiling_heating': False, 'has_community_scheme': False, + 'has_ground_source_heat_pump': False, 'has_no_system_present': False, 'has_portable_electric_heaters': False, + 'has_water_source_heat_pump': False, 'has_electric': False, 'has_mains_gas': True, 'has_wood_logs': False, + 'has_coal': False, 'has_oil': False, 'has_wood_pellets': False, 'has_anthracite': False, + 'has_dual_fuel_mineral_and_wood': False, 'has_smokeless_fuel': False, 'has_lpg': False, 'has_assumed': False, + 'has_electricaire': False, 'has_assumed_for_most_rooms': False, 'has_underfloor_heating': False, + "has_electric_heat_pumps": False, + "has_micro-cogeneration": False}, ] diff --git a/model_data/tests/test_data/test_mainheat_control_attributes_cases.py b/model_data/tests/test_data/test_mainheat_control_attributes_cases.py index 2f6d3768..9aa6c80c 100644 --- a/model_data/tests/test_data/test_mainheat_control_attributes_cases.py +++ b/model_data/tests/test_data/test_mainheat_control_attributes_cases.py @@ -16,7 +16,8 @@ mainheat_control_cases = [ {'original_description': 'Charging system linked to use of community heating, programmer and TRVs', 'thermostatic_control': None, 'charging_system': 'charging system', 'switch_system': 'programmer', 'no_control': None, 'dhw_control': None, 'community_heating': 'use of community heating', - 'multiple_room_thermostats': False, 'auxiliary_systems': None, 'trvs': 'trvs'}, { + 'multiple_room_thermostats': False, 'auxiliary_systems': None, 'trvs': 'trvs'}, + { 'original_description': 'Charging system linked to use of community heating, programmer and at least two room ' 'stats', 'thermostatic_control': None, 'charging_system': 'charging system', 'switch_system': 'programmer', @@ -38,10 +39,11 @@ mainheat_control_cases = [ {'original_description': 'Controls for high heat retention storage heaters', 'thermostatic_control': None, 'charging_system': 'high heat retention storage heaters', 'switch_system': None, 'no_control': None, 'dhw_control': None, 'community_heating': None, 'multiple_room_thermostats': False, 'auxiliary_systems': None, - 'trvs': None}, {'original_description': 'Flat rate charging, TRVs', 'thermostatic_control': None, - 'charging_system': 'flat rate charging', 'switch_system': None, 'no_control': None, - 'dhw_control': None, 'community_heating': None, 'multiple_room_thermostats': False, - 'auxiliary_systems': None, 'trvs': 'trvs'}, + 'trvs': None}, + {'original_description': 'Flat rate charging, TRVs', 'thermostatic_control': None, + 'charging_system': 'flat rate charging', 'switch_system': None, 'no_control': None, + 'dhw_control': None, 'community_heating': None, 'multiple_room_thermostats': False, + 'auxiliary_systems': None, 'trvs': 'trvs'}, {'original_description': 'Flat rate charging, no thermostatic control of room temperature', 'thermostatic_control': None, 'charging_system': 'flat rate charging', 'switch_system': None, 'no_control': 'no thermostatic control', 'dhw_control': None, 'community_heating': None, @@ -213,4 +215,42 @@ mainheat_control_cases = [ 'thermostatic_control': 'room thermostat', 'charging_system': 'charging system', 'switch_system': 'programmer', 'no_control': None, 'dhw_control': None, 'community_heating': 'use of community heating', 'multiple_room_thermostats': False, 'auxiliary_systems': None, 'trvs': None}, + {'original_description': 'System dalu wediGÇÖi chysylltu +ó defnyddio gwres cymunedol, rhaglennydd a TRVs', + 'thermostatic_control': None, 'charging_system': 'charging system', 'switch_system': 'programmer', + 'no_control': None, 'dhw_control': None, 'community_heating': 'use of community heating', + 'multiple_room_thermostats': False, 'auxiliary_systems': None, 'trvs': 'trvs'}, + {'original_description': 'System dalu wediGÇÖi chysylltu +ó defnyddio gwres cymunedol, TRVs', + 'thermostatic_control': None, + 'charging_system': 'charging system', 'switch_system': None, 'no_control': None, 'dhw_control': None, + 'community_heating': 'use of community heating', 'multiple_room_thermostats': False, 'auxiliary_systems': None, + 'trvs': 'trvs'}, + {'original_description': 'Single rate heating, TRVs', + 'thermostatic_control': None, 'charging_system': None, + 'switch_system': None, + 'no_control': None, 'dhw_control': None, 'community_heating': None, 'multiple_room_thermostats': False, + 'auxiliary_systems': None, 'trvs': 'trvs', 'rate_control': 'single rate heating'}, + {'original_description': 'T+-ól un gyfradd, TRVs', + 'thermostatic_control': None, 'charging_system': None, + 'switch_system': None, + 'no_control': None, 'dhw_control': None, 'community_heating': None, 'multiple_room_thermostats': False, + 'auxiliary_systems': None, 'trvs': 'trvs', 'rate_control': 'single rate heating'}, + {'original_description': 'Single rate heating, programmer, TRVs', + 'thermostatic_control': None, 'charging_system': None, + 'switch_system': 'programmer', + 'no_control': None, 'dhw_control': None, 'community_heating': None, 'multiple_room_thermostats': False, + 'auxiliary_systems': None, 'trvs': 'trvs', 'rate_control': 'single rate heating'}, + {'original_description': 'T+ól un gyfradd, rhaglennydd a TRVs', + 'thermostatic_control': None, 'charging_system': None, + 'switch_system': 'programmer', + 'no_control': None, 'dhw_control': None, 'community_heating': None, 'multiple_room_thermostats': False, + 'auxiliary_systems': None, 'trvs': 'trvs', 'rate_control': 'single rate heating'}, + {'original_description': 'T+ól un gyfradd, TRVs', + 'thermostatic_control': None, 'charging_system': None, + 'switch_system': None, + 'no_control': None, 'dhw_control': None, 'community_heating': None, 'multiple_room_thermostats': False, + 'auxiliary_systems': None, 'trvs': 'trvs', 'rate_control': 'single rate heating'}, + {'original_description': 'TRVs a falf osgoi', 'thermostatic_control': None, + 'charging_system': None, + 'switch_system': None, 'no_control': None, 'dhw_control': None, 'community_heating': None, + 'multiple_room_thermostats': False, 'auxiliary_systems': 'bypass', 'trvs': 'trvs'}, ]