mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-30 13:10:47 +00:00
debugging optimisation with ventilation, when ventilation already exists
This commit is contained in:
parent
8dbd69eef9
commit
bd15ce65c2
2 changed files with 19 additions and 15 deletions
|
|
@ -170,7 +170,7 @@ async def trigger_plan(body: PlanTriggerRequest):
|
||||||
# Property recommendations
|
# Property recommendations
|
||||||
p.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds)
|
p.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds)
|
||||||
|
|
||||||
recommender = Recommendations(property_instance=p, materials=materials)
|
recommender = Recommendations(property_instance=p, materials=materials, exclusions=body.exclusions)
|
||||||
property_recommendations, property_representative_recommendations = recommender.recommend()
|
property_recommendations, property_representative_recommendations = recommender.recommend()
|
||||||
|
|
||||||
if not property_recommendations:
|
if not property_recommendations:
|
||||||
|
|
@ -196,6 +196,7 @@ async def trigger_plan(body: PlanTriggerRequest):
|
||||||
)
|
)
|
||||||
|
|
||||||
model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at)
|
model_api = ModelApi(portfolio_id=body.portfolio_id, timestamp=created_at)
|
||||||
|
# model_api.MODEL_PREFIXES = ["sap_change_predictions"]
|
||||||
|
|
||||||
all_predictions = {
|
all_predictions = {
|
||||||
"sap_change_predictions": pd.DataFrame(),
|
"sap_change_predictions": pd.DataFrame(),
|
||||||
|
|
@ -274,14 +275,15 @@ async def trigger_plan(body: PlanTriggerRequest):
|
||||||
if any(x in [r["type"] for r in solution] for x in [
|
if any(x in [r["type"] for r in solution] for x in [
|
||||||
"internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation"
|
"internal_wall_insulation", "external_wall_insulation", "cavity_wall_insulation"
|
||||||
]):
|
]):
|
||||||
ventilation_rec = [
|
ventilation_rec = next(
|
||||||
r for r in recommendations_with_impact if r[0]["type"] == "mechanical_ventilation"
|
(r[0] for r in recommendations_with_impact if r[0]["type"] == "mechanical_ventilation"),
|
||||||
][0]
|
None
|
||||||
|
|
||||||
selected_recommendations = set(
|
|
||||||
list(selected_recommendations) + [ventilation_rec[0]["recommendation_id"]]
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# If a matching recommendation was found, add its ID to the selected recommendations
|
||||||
|
if ventilation_rec:
|
||||||
|
selected_recommendations.add(ventilation_rec["recommendation_id"])
|
||||||
|
|
||||||
# We check if the selected recommendation is wall ventilation and if so, we make sure
|
# We check if the selected recommendation is wall ventilation and if so, we make sure
|
||||||
# mechanical ventilation is selected
|
# mechanical ventilation is selected
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -67,11 +67,19 @@ class Recommendations:
|
||||||
property_recommendations.append(self.wall_recomender.recommendations)
|
property_recommendations.append(self.wall_recomender.recommendations)
|
||||||
phase += 1
|
phase += 1
|
||||||
|
|
||||||
|
if "roof_insulation" not in self.exclusions:
|
||||||
|
self.roof_recommender.recommend(phase=phase)
|
||||||
|
if self.roof_recommender.recommendations:
|
||||||
|
property_recommendations.append(self.roof_recommender.recommendations)
|
||||||
|
phase += 1
|
||||||
|
|
||||||
# Ventilation recommendations
|
# Ventilation recommendations
|
||||||
# We only produce a ventilation recommendation if the property is recommended to have wall or roof
|
# We only produce a ventilation recommendation if the property is recommended to have wall or roof
|
||||||
# insulation
|
# insulation
|
||||||
# We will not attribute a SAP impact to the ventilation recommendation, since we've seen that this has no
|
# We will not attribute a SAP impact to the ventilation recommendation, since we've seen that this
|
||||||
# real impact on the SAP score. Therefore, we don't need to include phasing for ventilation. If we have any
|
# has no
|
||||||
|
# real impact on the SAP score. Therefore, we don't need to include phasing for ventilation. If we
|
||||||
|
# have any
|
||||||
# wall or roof recommendations, we will ensure that ventilation is included in the simulation
|
# wall or roof recommendations, we will ensure that ventilation is included in the simulation
|
||||||
if "ventilation" not in self.exclusions:
|
if "ventilation" not in self.exclusions:
|
||||||
if self.wall_recomender.recommendations or self.roof_recommender.recommendations:
|
if self.wall_recomender.recommendations or self.roof_recommender.recommendations:
|
||||||
|
|
@ -79,12 +87,6 @@ class Recommendations:
|
||||||
if self.ventilation_recomender.recommendation:
|
if self.ventilation_recomender.recommendation:
|
||||||
property_recommendations.append(self.ventilation_recomender.recommendation)
|
property_recommendations.append(self.ventilation_recomender.recommendation)
|
||||||
|
|
||||||
if "roof_insulation" not in self.exclusions:
|
|
||||||
self.roof_recommender.recommend(phase=phase)
|
|
||||||
if self.roof_recommender.recommendations:
|
|
||||||
property_recommendations.append(self.roof_recommender.recommendations)
|
|
||||||
phase += 1
|
|
||||||
|
|
||||||
if "floor_insulation" not in self.exclusions:
|
if "floor_insulation" not in self.exclusions:
|
||||||
self.floor_recommender.recommend(phase=phase)
|
self.floor_recommender.recommend(phase=phase)
|
||||||
if self.floor_recommender.recommendations:
|
if self.floor_recommender.recommendations:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue