mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
set up basic mapping
This commit is contained in:
parent
4de7dafccb
commit
4d2275fd12
2 changed files with 266 additions and 109 deletions
|
|
@ -6,6 +6,8 @@ class EpcFuel(Enum):
|
|||
lpg_not_community = "LPG (not community)"
|
||||
mains_gas_not_community = "mains gas (not community)"
|
||||
oil_not_community = "oil (not community)"
|
||||
manufactured_smokeless_fuel = "Solid fuel: manufactured smokeless fuel"
|
||||
smokeless_coal = "smokeless coal"
|
||||
|
||||
|
||||
class EpcHeatingControls(Enum):
|
||||
|
|
@ -13,9 +15,43 @@ class EpcHeatingControls(Enum):
|
|||
programmers_trvs_bypass = "Programmer, TRVs and bypass"
|
||||
time_and_temperature_zone_control = "Time and temperature zone control"
|
||||
|
||||
# Room heaters
|
||||
programmer_and_appliance_thermostats = "Programmer and appliance thermostats"
|
||||
appliance_thermostats = "Appliance thermostats"
|
||||
|
||||
# Storage heaters
|
||||
automatic_charge_control = "Automatic charge control"
|
||||
manual_charge_control = "Manual charge control"
|
||||
|
||||
# Warm air
|
||||
programmer_and_atleast_two_room_thermostats = "Programmer and at least two room thermostats"
|
||||
|
||||
|
||||
class EpcHeatingSystems(Enum):
|
||||
# boiler and radiators
|
||||
boiler_and_radiators_electric = "Boiler and radiators, electric"
|
||||
boiler_and_radiators_lpg = "Boiler and radiators, LPG"
|
||||
boiler_radiators_mains_gas = "Boiler and radiators, mains gas"
|
||||
boiler_radiators_oil = "Boiler and radiators, oil"
|
||||
# underfloor
|
||||
electric_underfloor_heating = "Electric underfloor heating"
|
||||
# ashp
|
||||
air_to_air_ashp = "Air source heat pump, warm air, electric"
|
||||
ashp_radiators_electric = "Air source heat pump, radiators, electric"
|
||||
# Room heaters
|
||||
room_heaters_electric = "Room heaters, electric"
|
||||
room_heaters_mains_gas = "Room heaters, mains gas"
|
||||
room_heaters_smokeless_fuel = "Room heaters, smokeless fuel"
|
||||
room_heaters_coal = "Room heaters, coal"
|
||||
# Storage heaters
|
||||
electric_storage_heaters = "Electric storage heaters"
|
||||
# Warm air
|
||||
warm_air_electricaire = "Warm air, Electricaire"
|
||||
warm_air_mains_gas = "Warm air, mains gas"
|
||||
|
||||
|
||||
class EpcHotWaterSystems(Enum):
|
||||
# from primary heating system
|
||||
from_main_system = "From main system"
|
||||
# Common for heater-based systems, e.g. room heaters or storage heaters
|
||||
electric_immersion_off_peak = "Electric immersion, off-peak"
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ from backend.onboarders.mappings.age_band import parity_map as age_band_map
|
|||
from backend.onboarders.mappings.built_form import parity_map as built_form_map
|
||||
from backend.onboarders.epc_descriptions import EpcWallDescriptions, EpcConstructionAgeBand, EpcEfficiency, \
|
||||
WALL_DESCRIPTION_EFFICIENCIES, EpcRoofDescriptions, resolve_roof_efficiency, EpcFloorDescriptions
|
||||
from backend.onboarders.epc.placeholder import EpcFuel, EpcHeatingControls, EpcHeatingSystems
|
||||
from backend.onboarders.epc.placeholder import EpcFuel, EpcHeatingControls, EpcHeatingSystems, EpcHotWaterSystems
|
||||
from backend.onboarders.mappings.as_built_wall_classifiers import AS_BUILT_WALL_CLASSIFIERS
|
||||
from backend.onboarders.mappings.as_built_roof_classifiers import AS_BUILT_ROOF_CLASSIFIERS
|
||||
from backend.onboarders.mappings.as_built_floor_classifiers import unknown_floor_as_built, unknown_floor_retrofitted, \
|
||||
|
|
@ -460,9 +460,8 @@ data[["landlord_windows_description",
|
|||
# 3) landlord_multi_glaze_proportion - maybe don't need to store this, same for glazing type and area
|
||||
|
||||
|
||||
# ------------ Heating ------------
|
||||
# ------------ Heating, fuel, controls & hot water ------------
|
||||
|
||||
agg = data.groupby(['Heating', 'Boiler Efficiency', 'Main Fuel', 'Controls Adequacy']).size().reset_index(name='counts')
|
||||
|
||||
# We map to:
|
||||
# 1) Heating description
|
||||
|
|
@ -470,6 +469,8 @@ agg = data.groupby(['Heating', 'Boiler Efficiency', 'Main Fuel', 'Controls Adequ
|
|||
# 3) Fuel type
|
||||
# 4) Heating controls
|
||||
# 5) Heating controls efficiency
|
||||
# 6) Hot water system
|
||||
# 7) Hot water efficiency
|
||||
|
||||
# TODO - when mapping heating controls, we should check the existing heating controls and the efficiency rating
|
||||
# For sub optimal heating controls, we're going to make an assumption as to what the heating controls are
|
||||
|
|
@ -490,229 +491,349 @@ heating_map = {
|
|||
# 0
|
||||
('Boilers', 'A', 'ElectricityNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 1
|
||||
('Boilers', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 2
|
||||
('Boilers', 'A', 'ElectricityNotCommunity', 'Top Spec'): (
|
||||
EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 3
|
||||
('Boilers', 'A', 'LPGNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_and_radiators_lpg, EpcEfficiency.POOR, EpcFuel.lpg_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 4
|
||||
('Boilers', 'A', 'MainsGasNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.VERY_GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 5
|
||||
('Boilers', 'A', 'MainsGasNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.VERY_GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 6
|
||||
('Boilers', 'A', 'MainsGasNotCommunity', 'Top Spec'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.VERY_GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 7
|
||||
('Boilers', 'B', 'MainsGasNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 8
|
||||
('Boilers', 'B', 'MainsGasNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 9
|
||||
('Boilers', 'B', 'MainsGasNotCommunity', 'Top Spec'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 10
|
||||
('Boilers', 'C', 'ElectricityNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 11
|
||||
('Boilers', 'C', 'ElectricityNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 12
|
||||
('Boilers', 'C', 'ElectricityNotCommunity', 'Top Spec'): (
|
||||
EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 13
|
||||
('Boilers', 'C', 'LPGNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_and_radiators_lpg, EpcEfficiency.POOR, EpcFuel.lpg_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 14
|
||||
('Boilers', 'C', 'LPGNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.boiler_and_radiators_lpg, EpcEfficiency.POOR, EpcFuel.lpg_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 15
|
||||
('Boilers', 'C', 'MainsGasNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 16
|
||||
('Boilers', 'C', 'MainsGasNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 17
|
||||
('Boilers', 'C', 'MainsGasNotCommunity', 'Top Spec'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 18 - oil boilers have an average efficiency rating
|
||||
('Boilers', 'C', 'OilNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_oil, EpcEfficiency.AVERAGE, EpcFuel.oil_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD
|
||||
),
|
||||
# 18
|
||||
('Boilers', 'C', 'OilNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_oil, EpcEfficiency.AVERAGE, EpcFuel.oil_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 19
|
||||
('Boilers', 'C', 'OilNotCommunity', 'Top Spec'): (
|
||||
('Boilers', 'C', 'OilNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_oil, EpcEfficiency.AVERAGE, EpcFuel.oil_not_community,
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 20
|
||||
('Boilers', 'D', 'MainsGasNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD
|
||||
('Boilers', 'C', 'OilNotCommunity', 'Top Spec'): (
|
||||
EpcHeatingSystems.boiler_radiators_oil, EpcEfficiency.AVERAGE, EpcFuel.oil_not_community,
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 21
|
||||
('Boilers', 'D', 'MainsGasNotCommunity', 'Sub Optimal'): (
|
||||
('Boilers', 'D', 'MainsGasNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 22
|
||||
('Boilers', 'D', 'MainsGasNotCommunity', 'Top Spec'): (
|
||||
('Boilers', 'D', 'MainsGasNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 23
|
||||
('Boilers', 'E', 'ElectricityNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD
|
||||
('Boilers', 'D', 'MainsGasNotCommunity', 'Top Spec'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 24
|
||||
('Boilers', 'E', 'MainsGasNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD
|
||||
('Boilers', 'E', 'ElectricityNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_and_radiators_electric, EpcEfficiency.VERY_POOR, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 25
|
||||
('Boilers', 'E', 'MainsGasNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 26
|
||||
('Boilers', 'E', 'MainsGasNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 27
|
||||
('Boilers', 'E', 'MainsGasNotCommunity', 'Top Spec'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 28
|
||||
('Boilers', 'E', 'OilNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_oil, EpcEfficiency.AVERAGE, EpcFuel.oil_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 29
|
||||
('Boilers', 'E', 'OilNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_oil, EpcEfficiency.AVERAGE, EpcFuel.oil_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 30
|
||||
('Boilers', 'F', 'MainsGasNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 31
|
||||
('Boilers', 'F', 'MainsGasNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 32
|
||||
('Boilers', 'F', 'MainsGasNotCommunity', 'Top Spec'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 33
|
||||
('Boilers', 'G', 'MainsGasNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 34
|
||||
('Boilers', 'G', 'MainsGasNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
('Boilers', 'G', 'MainsGasNotCommunity', 'Top Spec'): None,
|
||||
('Electric underfloor', 'A', 'ElectricityNotCommunity', 'Optimal'): None,
|
||||
('Electric underfloor', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): None,
|
||||
('Electric underfloor', 'A', 'ElectricityNotCommunity', 'Top Spec'): None,
|
||||
('Heat pumps (warm air)', 'A', 'ElectricityNotCommunity', 'Optimal'): None,
|
||||
('Heat pumps (warm air)', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): None,
|
||||
('Heat pumps (wet)', 'A', 'ElectricityNotCommunity', 'Optimal'): None,
|
||||
('Heat pumps (wet)', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): None,
|
||||
('Heat pumps (wet)', 'A', 'ElectricityNotCommunity', 'Top Spec'): None,
|
||||
('Room heaters', 'A', 'ElectricityNotCommunity', 'Optimal'): None,
|
||||
('Room heaters', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): None,
|
||||
('Room heaters', 'C', 'MainsGasNotCommunity', 'Sub Optimal'): None,
|
||||
('Room heaters', 'F', 'MainsGasNotCommunity', 'Sub Optimal'): None,
|
||||
('Room heaters', 'G', 'MainsGasNotCommunity', 'Optimal'): None,
|
||||
('Room heaters', 'G', 'MainsGasNotCommunity', 'Sub Optimal'): None,
|
||||
('Room heaters', 'G', 'SmokelessCoal', 'Sub Optimal'): None,
|
||||
('Storage heaters', 'A', 'ElectricityNotCommunity', 'Optimal'): None,
|
||||
('Storage heaters', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): None,
|
||||
('Warm Air (not heat pump)', 'G', 'ElectricityNotCommunity', 'Sub Optimal'): None,
|
||||
('Warm Air (not heat pump)', 'G', 'MainsGasNotCommunity', 'Sub Optimal'): None
|
||||
# 35
|
||||
('Boilers', 'G', 'MainsGasNotCommunity', 'Top Spec'): (
|
||||
EpcHeatingSystems.boiler_radiators_mains_gas, EpcEfficiency.AVERAGE, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 36
|
||||
('Electric underfloor', 'A', 'ElectricityNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.electric_underfloor_heating, EpcEfficiency.AVERAGE, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 37
|
||||
('Electric underfloor', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.electric_underfloor_heating, EpcEfficiency.AVERAGE, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 38
|
||||
('Electric underfloor', 'A', 'ElectricityNotCommunity', 'Top Spec'): (
|
||||
EpcHeatingSystems.electric_underfloor_heating, EpcEfficiency.AVERAGE, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD,
|
||||
EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 39
|
||||
('Heat pumps (warm air)', 'A', 'ElectricityNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.air_to_air_ashp, EpcEfficiency.AVERAGE, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 40
|
||||
('Heat pumps (warm air)', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.air_to_air_ashp, EpcEfficiency.AVERAGE, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 41
|
||||
('Heat pumps (wet)', 'A', 'ElectricityNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.ashp_radiators_electric, EpcEfficiency.GOOD, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.programmer_room_thermostat_trvs, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 42
|
||||
('Heat pumps (wet)', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.ashp_radiators_electric, EpcEfficiency.GOOD, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.programmers_trvs_bypass, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 43
|
||||
('Heat pumps (wet)', 'A', 'ElectricityNotCommunity', 'Top Spec'): (
|
||||
EpcHeatingSystems.ashp_radiators_electric, EpcEfficiency.GOOD, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.time_and_temperature_zone_control, EpcEfficiency.VERY_GOOD,
|
||||
EpcHotWaterSystems.from_main_system, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 44
|
||||
('Room heaters', 'A', 'ElectricityNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.room_heaters_electric, EpcEfficiency.POOR, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.programmer_and_appliance_thermostats, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 45
|
||||
('Room heaters', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.room_heaters_electric, EpcEfficiency.POOR, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.appliance_thermostats, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 46
|
||||
('Room heaters', 'C', 'MainsGasNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.room_heaters_mains_gas, EpcEfficiency.AVERAGE, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.appliance_thermostats, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE
|
||||
),
|
||||
# 47 - water done from here
|
||||
('Room heaters', 'F', 'MainsGasNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.room_heaters_mains_gas, EpcEfficiency.POOR, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.appliance_thermostats, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE
|
||||
),
|
||||
('Room heaters', 'G', 'MainsGasNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.room_heaters_mains_gas, EpcEfficiency.POOR, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmer_and_appliance_thermostats, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE
|
||||
),
|
||||
('Room heaters', 'G', 'MainsGasNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.room_heaters_mains_gas, EpcEfficiency.POOR, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.appliance_thermostats, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE
|
||||
),
|
||||
('Room heaters', 'G', 'SmokelessCoal', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.room_heaters_smokeless_fuel, EpcEfficiency.VERY_POOR, EpcFuel.smokeless_coal,
|
||||
EpcHeatingControls.appliance_thermostats, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE
|
||||
),
|
||||
('Storage heaters', 'A', 'ElectricityNotCommunity', 'Optimal'): (
|
||||
EpcHeatingSystems.electric_storage_heaters, EpcEfficiency.AVERAGE, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.automatic_charge_control, EpcEfficiency.AVERAGE,
|
||||
EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE
|
||||
),
|
||||
('Storage heaters', 'A', 'ElectricityNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.electric_storage_heaters, EpcEfficiency.AVERAGE, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.manual_charge_control, EpcEfficiency.POOR,
|
||||
EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE
|
||||
),
|
||||
('Warm Air (not heat pump)', 'G', 'ElectricityNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.warm_air_electricaire, EpcEfficiency.GOOD, EpcFuel.electricity_not_community,
|
||||
EpcHeatingControls.programmer_and_atleast_two_room_thermostats, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE
|
||||
),
|
||||
('Warm Air (not heat pump)', 'G', 'MainsGasNotCommunity', 'Sub Optimal'): (
|
||||
EpcHeatingSystems.warm_air_mains_gas, EpcEfficiency.GOOD, EpcFuel.mains_gas_not_community,
|
||||
EpcHeatingControls.programmer_and_atleast_two_room_thermostats, EpcEfficiency.GOOD,
|
||||
EpcHotWaterSystems.electric_immersion_off_peak, EpcEfficiency.AVERAGE
|
||||
)
|
||||
}
|
||||
|
||||
example = list(heating_map.keys())[25]
|
||||
|
||||
example_data = data[
|
||||
(data["Heating"] == example[0]) & (data["Boiler Efficiency"] == example[1]) & (data["Main Fuel"] == example[2]) & (
|
||||
data["Controls Adequacy"] == example[3])
|
||||
# Apply the mapping
|
||||
data[
|
||||
[
|
||||
"landlord_heating_description",
|
||||
"landlord_heating_efficiency",
|
||||
"landlord_fuel_type",
|
||||
"landlord_heating_controls_description",
|
||||
"landlord_heating_controls_efficiency",
|
||||
"landlord_hot_water_system_description",
|
||||
"landlord_hot_water_efficiency"
|
||||
]
|
||||
|
||||
print(example_data["UPRN"].values.tolist())
|
||||
|
||||
agg_tuples = {
|
||||
(row['Heating'], row['Boiler Efficiency'], row['Main Fuel']): None for _, row in agg.iterrows()
|
||||
}
|
||||
epcs = pd.read_csv("/Users/khalimconn-kowlessar/Downloads/domestic-E08000003-Manchester/certificates.csv")
|
||||
|
||||
epcs[epcs["LODGEMENT_DATE"] > "2025-07-01"]["WINDOWS_DESCRIPTION"].value_counts()
|
||||
epcs[epcs["LODGEMENT_DATE"] > "2025-07-01"]["GLAZED_AREA"].value_counts()
|
||||
|
||||
epcs[
|
||||
(epcs["MAINHEAT_DESCRIPTION"] == "Boiler and radiators, mains gas")
|
||||
]["MAINHEAT_ENERGY_EFF"].value_counts()
|
||||
|
||||
z = data[data["Address 1"].str.lower().str.contains("133, mayo")]
|
||||
|
||||
# ------------ Fuel ------------
|
||||
|
||||
# ------------ Heating Controls ------------
|
||||
] = data[
|
||||
[
|
||||
"Heating",
|
||||
"Boiler Efficiency",
|
||||
"Main Fuel",
|
||||
"Controls Adequacy"
|
||||
]
|
||||
].progress_apply(tuple, axis=1).map(heating_map).progress_apply(pd.Series)
|
||||
|
||||
# ------------ Floor Area ------------
|
||||
# TODO: Convert everything to values
|
||||
|
||||
# Variables we want to map
|
||||
# 'Org Ref', 'Address 1', 'Address 2', 'Address 3', 'Postcode',
|
||||
# 'Glazing', 'Heating',
|
||||
# 'Boiler Efficiency', 'Main Fuel', 'Controls Adequacy', 'UPRN',
|
||||
# 'Total Floor Area (m2)'
|
||||
|
||||
|
||||
data["Glazing"].value_counts()
|
||||
|
||||
data["Glazing"].value_counts()
|
||||
# This is just a rename
|
||||
data = data.rename(
|
||||
columns={"Total Floor Area (m2)": "landlord_total_floor_area_m2"}
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue