set up uploader class for non-intrusives and built portfolio for non-intrusive VE

This commit is contained in:
Khalim Conn-Kowlessar 2024-06-25 17:14:57 +01:00
parent de50ba13a5
commit 8fcae893c7
6 changed files with 44 additions and 4 deletions

2
.idea/Model.iml generated
View file

@ -7,7 +7,7 @@
<sourceFolder url="file://$MODULE_DIR$/open_uprn" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/recommendations" isTestSource="false" />
</content>
<orderEntry type="jdk" jdkName="Python 3.10 (model_data)" jdkType="Python SDK" />
<orderEntry type="jdk" jdkName="Python 3.10 (backend)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PyNamespacePackagesService">

2
.idea/misc.xml generated
View file

@ -3,7 +3,7 @@
<component name="Black">
<option name="sdkName" value="Python 3.10 (backend)" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (model_data)" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (backend)" project-jdk-type="Python SDK" />
<component name="PythonCompatibilityInspectionAdvertiser">
<option name="version" value="3" />
</component>

View file

@ -355,7 +355,8 @@ async def trigger_plan(body: PlanTriggerRequest):
p.get_components(cleaned, photo_supply_lookup, floor_area_decile_thresholds)
p.get_spatial_data(uprn_filenames)
# Call Google Solar API
solar_performance = solar_api_client.get(longitude=p.spatial["longitude"], latitude=p.spatial["latitude"])
# TODO: Complete me
# solar_performance = solar_api_client.get(longitude=p.spatial["longitude"], latitude=p.spatial["latitude"])
logger.info("Getting components and epc recommendations")
recommendations = {}

View file

@ -1,6 +1,11 @@
import pandas as pd
from utils.s3 import save_csv_to_s3
from datetime import datetime
from etl.non_intrusive_surveys.upload.UploadNonIntrusives import UploadNonIntrusives
PORTFOLIO_ID = 82
USER_ID = 8
def app():
"""
@ -72,3 +77,37 @@ def app():
uprn_lookup=uprn_lookup,
survey_date=datetime.strptime('2024-06-21', '%Y-%m-%d')
)
non_intrusive.upload()
# We can create the asset list from the uprn lookup
asset_list = [
{
"uprn": x["uprn"],
"address": f"{x['House Number']} {x['Address Line 1']}",
"postcode": x["Postcode"]
}
for x in uprn_lookup
]
asset_list = pd.DataFrame(asset_list)
# Store the asset list in s3
filename = f"{USER_ID}/{PORTFOLIO_ID}/non_intrusives.csv"
save_csv_to_s3(
dataframe=asset_list,
bucket_name="retrofit-plan-inputs-dev",
file_name=filename
)
body = {
"portfolio_id": str(PORTFOLIO_ID),
"housing_type": "Private",
"goal": "Increase EPC",
"goal_value": "A",
"trigger_file_path": filename,
"already_installed_file_path": "",
"patches_file_path": "",
"non_invasive_recommendations_file_path": "",
"budget": None,
}
print(body)

View file

@ -146,5 +146,4 @@ class UploadNonIntrusives:
logger.info("Uploading non-intrusive notes to the database")
session = sessionmaker(bind=db_engine)()
upload_non_intrusive_survey_notes(session=session, non_invasive_notes=non_invasive_notes, batch_size=500)

View file

@ -316,6 +316,7 @@ class Recommendations:
expected_adjusted_energy = AnnualBillSavings.adjust_energy_to_metered(
epc_energy_consumption=expected_heat_demand,
current_epc_rating=property_instance.data["current-energy-rating"],
total_floor_area=property_instance.floor_area
)
adjusted_heat_demand_change = (