mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
def prepare_input_measures(property_recommendations, goal):
|
|
"""
|
|
Basic function to convert recommendations_to_upload to a format that is
|
|
suitable for the optimiser - large
|
|
:param property_recommendations: object containing the recommendations, created in the plan trigger api
|
|
:param goal: goal to be optimised for, should be one of the keys in gain_map. E.g. if the gain is SAP points,
|
|
the goal should reflect that desired gain
|
|
:return: Nested list of input measures
|
|
"""
|
|
|
|
goal_map = {
|
|
"Increasing EPC": "sap_points"
|
|
}
|
|
|
|
goal_key = goal_map[goal]
|
|
if not goal_key:
|
|
raise NotImplementedError("Not implemented this gain type - investigate me")
|
|
|
|
input_measures = []
|
|
for recs in property_recommendations:
|
|
|
|
if recs[0]["type"] == "solar_pv":
|
|
# if the recommendation is a solar recommendation with a battery, we exclude it from the optimisation.
|
|
recs = [r for r in recs if ~r["has_battery"]]
|
|
|
|
input_measures.append(
|
|
[
|
|
{
|
|
"id": rec["recommendation_id"],
|
|
"cost": rec["total"],
|
|
"gain": rec[goal_key],
|
|
"type": rec["type"]
|
|
}
|
|
for rec in recs
|
|
]
|
|
)
|
|
|
|
return input_measures
|