mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
113 lines
4.2 KiB
Python
113 lines
4.2 KiB
Python
from datatypes.epc.construction_age_band import EpcConstructionAgeBand
|
|
from datatypes.epc.walls import EpcWallDescriptions
|
|
|
|
|
|
def map_cavity_wall_insulation(age_band: EpcConstructionAgeBand):
|
|
if age_band.start_year() < 1976:
|
|
return EpcWallDescriptions.cavity_no_insulation_assumed
|
|
|
|
if age_band == EpcConstructionAgeBand.from_1976_to_1982:
|
|
return EpcWallDescriptions.cavity_partial_insulated_assumed
|
|
|
|
if age_band in EpcConstructionAgeBand.from_year_onwards(1983):
|
|
return EpcWallDescriptions.cavity_insulated_assumed
|
|
|
|
raise NotImplementedError(f"Age band {age_band} not handled for cavity wall as built insulation mapping")
|
|
|
|
|
|
def map_solid_wall_insulation(age_band: EpcConstructionAgeBand):
|
|
if age_band.start_year() < 1976:
|
|
return EpcWallDescriptions.solid_brick_no_insulation_assumed
|
|
|
|
if age_band == EpcConstructionAgeBand.from_1976_to_1982:
|
|
return EpcWallDescriptions.solid_brick_partial_insulated_assumed
|
|
|
|
if age_band in EpcConstructionAgeBand.from_year_onwards(1983):
|
|
return EpcWallDescriptions.solid_brick_insulated_assumed
|
|
|
|
raise NotImplementedError(
|
|
f"Age band {age_band.value} not handled for solid wall insulation mapping"
|
|
)
|
|
|
|
|
|
def map_timber_frame_wall_insulation(age_band: EpcConstructionAgeBand):
|
|
if age_band.start_year() < 1950:
|
|
return EpcWallDescriptions.timber_frame_no_insulation_assumed
|
|
|
|
if age_band.start_year() < 1976:
|
|
return EpcWallDescriptions.timber_frame_partial_insulated_assumed
|
|
|
|
if age_band in EpcConstructionAgeBand.from_year_onwards(1976):
|
|
return EpcWallDescriptions.timber_frame_insulated_assumed
|
|
|
|
raise NotImplementedError(
|
|
f"Age band {age_band.value} not handled for timber frame wall insulation mapping"
|
|
)
|
|
|
|
|
|
def map_system_build_wall_insulation(age_band: EpcConstructionAgeBand):
|
|
if age_band.start_year() < 1976:
|
|
return EpcWallDescriptions.system_no_insulation_assumed
|
|
|
|
if age_band == EpcConstructionAgeBand.from_1976_to_1982:
|
|
return EpcWallDescriptions.system_partial_insulated_assumed
|
|
|
|
if age_band in EpcConstructionAgeBand.from_year_onwards(1983):
|
|
return EpcWallDescriptions.system_insulated_assumed
|
|
|
|
raise NotImplementedError(
|
|
f"Age band {age_band.value} not handled for system build wall insulation mapping"
|
|
)
|
|
|
|
|
|
def map_granite_wall_insulation(age_band: EpcConstructionAgeBand):
|
|
if age_band.start_year() < 1976:
|
|
return EpcWallDescriptions.granite_whinstone_no_insulation_assumed
|
|
|
|
if age_band == EpcConstructionAgeBand.from_1976_to_1982:
|
|
return EpcWallDescriptions.granite_whinstone_partial_insulated_assumed
|
|
|
|
if age_band in EpcConstructionAgeBand.from_year_onwards(1983):
|
|
return EpcWallDescriptions.granite_whinestone_insulated_assumed
|
|
|
|
raise NotImplementedError(
|
|
f"Age band {age_band.value} not handled for granite wall insulation mapping"
|
|
)
|
|
|
|
|
|
def map_sandstone_wall_insulation(age_band: EpcConstructionAgeBand):
|
|
if age_band.start_year() < 1976:
|
|
return EpcWallDescriptions.sandstone_limestone_no_insulation_assumed
|
|
|
|
if age_band == EpcConstructionAgeBand.from_1976_to_1982:
|
|
return EpcWallDescriptions.sandstone_limestone_partial_insulated_assumed
|
|
|
|
if age_band in EpcConstructionAgeBand.from_year_onwards(1983):
|
|
return EpcWallDescriptions.sandstone_limestone_insulated_assumed
|
|
|
|
raise NotImplementedError(
|
|
f"Age band {age_band.value} not handled for sandstone wall insulation mapping"
|
|
)
|
|
|
|
|
|
def map_cob_wall_insulation(age_band: EpcConstructionAgeBand):
|
|
if age_band.start_year() < 1983:
|
|
return EpcWallDescriptions.cob_as_built_average
|
|
|
|
if age_band in EpcConstructionAgeBand.from_year_onwards(1983):
|
|
return EpcWallDescriptions.cob_as_built_good
|
|
|
|
raise NotImplementedError(
|
|
f"Age band {age_band.value} not handled for cob wall insulation mapping"
|
|
)
|
|
|
|
|
|
as_built_wall_classifiers = {
|
|
"Cavity": map_cavity_wall_insulation,
|
|
"Solid Brick": map_solid_wall_insulation,
|
|
"Timber Frame": map_timber_frame_wall_insulation,
|
|
"System": map_system_build_wall_insulation,
|
|
"Granite": map_granite_wall_insulation,
|
|
"Sandstone": map_sandstone_wall_insulation,
|
|
"Cob": map_cob_wall_insulation,
|
|
}
|