mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
modifying detecting logic
This commit is contained in:
parent
bb2164ccf8
commit
d06791db18
1 changed files with 77 additions and 48 deletions
|
|
@ -993,64 +993,93 @@ class AssetList:
|
|||
raise NotImplementedError("Need to implement the case for non-intrusives")
|
||||
|
||||
# If we have non-intrusives completed, we can use this to identify work types
|
||||
######################################################
|
||||
# Empty cavity:
|
||||
######################################################
|
||||
# 1) Has been flagged on the non-intrusives as being a cavity wall, empty or partially filled
|
||||
# 2) The age is before 1995
|
||||
# 3) We don't remove anything that haas access issues yet
|
||||
|
||||
if self.non_intrusives_present:
|
||||
######################################################
|
||||
# Empty cavity:
|
||||
######################################################
|
||||
# 1) Has been flagged on the non-intrusives as being a cavity wall, empty or partially filled
|
||||
# 2) The age is before 1995
|
||||
# 3) We don't remove anything that haas access issues yet
|
||||
self.standardised_asset_list["non_intrusive_indicates_empty_cavity"] = (
|
||||
(~self.standardised_asset_list[self.STANDARD_PROPERTY_TYPE].isin(["bedsit"])) &
|
||||
non_intrusives_wall_filter = (
|
||||
(self.standardised_asset_list['non-intrusives: Construction'] == "CAVITY") &
|
||||
self.standardised_asset_list['non-intrusives: Insulated'].isin(["EMPTY", "PARTIAL"]) &
|
||||
(self.standardised_asset_list[self.STANDARD_YEAR_BUILT] <= 2002) &
|
||||
(
|
||||
self.standardised_asset_list[
|
||||
self.EPC_API_DATA_NAMES["current-energy-efficiency"]
|
||||
] <= self.EMPTY_CAVITY_SAP_THRESHOLD
|
||||
self.standardised_asset_list['non-intrusives: Insulated'].isin(["EMPTY", "PARTIAL"])
|
||||
)
|
||||
elif self.old_format_non_intrusives_present:
|
||||
non_intrusives_wall_filter = (
|
||||
self.standardised_asset_list['non-intrusives: WFT Findings'].isin(
|
||||
[
|
||||
"EMPTY CAVITY", "Partial fill"
|
||||
]
|
||||
)
|
||||
)
|
||||
# Let's also flag work that looks eligible without the SAP filter
|
||||
self.standardised_asset_list["non_intrusive_indicates_empty_cavity_no_sap_filter"] = (
|
||||
(~self.standardised_asset_list[self.STANDARD_PROPERTY_TYPE].isin(["bedsit"])) &
|
||||
(self.standardised_asset_list['non-intrusives: Construction'] == "CAVITY") &
|
||||
self.standardised_asset_list['non-intrusives: Insulated'].isin(["EMPTY", "PARTIAL"]) &
|
||||
(self.standardised_asset_list[self.STANDARD_YEAR_BUILT] <= 2002)
|
||||
)
|
||||
else:
|
||||
raise NotImplementedError("need to implement the case for non-intrusives")
|
||||
|
||||
# If non_intrusive_indicates_empty_cavity is True,
|
||||
# set non_intrusive_indicates_empty_cavity_no_sap_filter to False
|
||||
self.standardised_asset_list["non_intrusive_indicates_empty_cavity_no_sap_filter"] = np.where(
|
||||
self.standardised_asset_list["non_intrusive_indicates_empty_cavity"],
|
||||
False,
|
||||
self.standardised_asset_list["non_intrusive_indicates_empty_cavity_no_sap_filter"]
|
||||
self.standardised_asset_list["non_intrusive_indicates_empty_cavity"] = (
|
||||
(~self.standardised_asset_list[self.STANDARD_PROPERTY_TYPE].isin(["bedsit"])) &
|
||||
non_intrusives_wall_filter &
|
||||
(self.standardised_asset_list[self.STANDARD_YEAR_BUILT] <= 2002) &
|
||||
(
|
||||
self.standardised_asset_list[
|
||||
self.EPC_API_DATA_NAMES["current-energy-efficiency"]
|
||||
] <= self.EMPTY_CAVITY_SAP_THRESHOLD
|
||||
)
|
||||
)
|
||||
|
||||
self.standardised_asset_list["epc_indicates_empty_cavity"] = (
|
||||
self.standardised_asset_list[self.EPC_API_DATA_NAMES["walls-description"]].str.lower().isin(
|
||||
self.EPC_NO_WALL_INSULATION_DESCRIPTIONS
|
||||
) & (
|
||||
self.standardised_asset_list["epc_year_upper_bound"] <= 1995
|
||||
) & (
|
||||
~self.standardised_asset_list[self.ATTRIBUTE_EPC_PRE_YEAR_THRESHOLD]
|
||||
) & (
|
||||
self.standardised_asset_list[
|
||||
self.EPC_API_DATA_NAMES["current-energy-efficiency"]] <= self.EMPTY_CAVITY_SAP_THRESHOLD
|
||||
)
|
||||
)
|
||||
# Let's also flag work that looks eligible without the SAP filter
|
||||
self.standardised_asset_list["non_intrusive_indicates_empty_cavity_no_sap_filter"] = (
|
||||
(~self.standardised_asset_list[self.STANDARD_PROPERTY_TYPE].isin(["bedsit"])) &
|
||||
non_intrusives_wall_filter &
|
||||
(self.standardised_asset_list[self.STANDARD_YEAR_BUILT] <= 2002)
|
||||
)
|
||||
|
||||
# If the EPC is esimtated, we defer to the non-intrusives
|
||||
self.standardised_asset_list["epc_indicates_empty_cavity"] = np.where(
|
||||
(
|
||||
self.standardised_asset_list["epc_indicates_empty_cavity"] &
|
||||
~self.standardised_asset_list["non_intrusive_indicates_empty_cavity"] &
|
||||
self.standardised_asset_list["estimated"]
|
||||
),
|
||||
False,
|
||||
self.standardised_asset_list["epc_indicates_empty_cavity"]
|
||||
# If non_intrusive_indicates_empty_cavity is True,
|
||||
# set non_intrusive_indicates_empty_cavity_no_sap_filter to False
|
||||
self.standardised_asset_list["non_intrusive_indicates_empty_cavity_no_sap_filter"] = np.where(
|
||||
self.standardised_asset_list["non_intrusive_indicates_empty_cavity"],
|
||||
False,
|
||||
self.standardised_asset_list["non_intrusive_indicates_empty_cavity_no_sap_filter"]
|
||||
)
|
||||
|
||||
self.standardised_asset_list["epc_indicates_empty_cavity"] = (
|
||||
self.standardised_asset_list[self.EPC_API_DATA_NAMES["walls-description"]].str.lower().isin(
|
||||
self.EPC_NO_WALL_INSULATION_DESCRIPTIONS
|
||||
) & (
|
||||
self.standardised_asset_list["epc_year_upper_bound"] <= 1995
|
||||
) & (
|
||||
~self.standardised_asset_list[self.ATTRIBUTE_EPC_PRE_YEAR_THRESHOLD]
|
||||
) & (
|
||||
self.standardised_asset_list[
|
||||
self.EPC_API_DATA_NAMES["current-energy-efficiency"]] <= self.EMPTY_CAVITY_SAP_THRESHOLD
|
||||
)
|
||||
)
|
||||
|
||||
# If the EPC is esimtated, we defer to the non-intrusives
|
||||
self.standardised_asset_list["epc_indicates_empty_cavity"] = np.where(
|
||||
(
|
||||
self.standardised_asset_list["epc_indicates_empty_cavity"] &
|
||||
~self.standardised_asset_list["non_intrusive_indicates_empty_cavity"] &
|
||||
self.standardised_asset_list["estimated"]
|
||||
),
|
||||
False,
|
||||
self.standardised_asset_list["epc_indicates_empty_cavity"]
|
||||
)
|
||||
|
||||
|
||||
if self.non_intrusives_present:
|
||||
|
||||
|
||||
if self.non_intrusives_present:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
######################################################
|
||||
# Extraction
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue