correct retrofit results to apply costs and co2 to all scenariosa

This commit is contained in:
Guille Gutierrez 2023-08-03 12:38:19 -04:00
parent b06a1d3d53
commit b96617bb21

View File

@ -38,65 +38,64 @@ class RetrofitResults(Resource, Config):
return Response(json.dumps({'result': 'succeed', 'results': results}), status=200, headers=token) return Response(json.dumps({'result': 'succeed', 'results': results}), status=200, headers=token)
# deserialize the response to return pure json # deserialize the response to return pure json
scenario = next(iter(results))
for building_results in results[scenario]: for scenario in results:
values = [] for building_results in results[scenario]:
building_info = self.database.building(building_results['building'], user_id, application_id, scenario) values = []
results_dictionary = {} building_info = self.database.building(building_results['building'], user_id, application_id, scenario)
archetype = self.energy_systems_catalog.get_entry(building_info.system_name) results_dictionary = {}
for value in building_results['insel meb']: archetype = self.energy_systems_catalog.get_entry(building_info.system_name)
key = next(iter(value)) for value in building_results['insel meb']:
values.append({key: json.loads(str(value[key]))}) key = next(iter(value))
results_dictionary[key] = json.loads(str(value[key])) values.append({key: json.loads(str(value[key]))})
building_results['insel meb'] = values results_dictionary[key] = json.loads(str(value[key]))
mockup_building = Building(building_info, results_dictionary, archetype) building_results['insel meb'] = values
life_cycle = Cost(mockup_building, retrofit_scenario=scenario).life_cycle mockup_building = Building(building_info, results_dictionary, archetype)
life_cycle = Cost(mockup_building, retrofit_scenario=scenario).life_cycle
operational_co2 = Co2Emission(mockup_building).operational_co2 operational_co2 = Co2Emission(mockup_building).operational_co2
global_capital_costs = life_cycle[f'Scenario {scenario}']['global_capital_costs'] global_capital_costs = life_cycle[f'Scenario {scenario}']['global_capital_costs']
global_operational_costs = life_cycle[f'Scenario {scenario}']['global_operational_costs'] global_operational_costs = life_cycle[f'Scenario {scenario}']['global_operational_costs']
global_capital_incomes = life_cycle[f'Scenario {scenario}']['global_capital_incomes'] global_capital_incomes = life_cycle[f'Scenario {scenario}']['global_capital_incomes']
global_maintenance_costs = life_cycle[f'Scenario {scenario}']['global_maintenance_costs'] global_maintenance_costs = life_cycle[f'Scenario {scenario}']['global_maintenance_costs']
building_results['costs'] = { building_results['costs'] = {
'total_capital_costs_skin': life_cycle[f'Scenario {scenario}']['total_capital_costs_skin'], 'total_capital_costs_skin': life_cycle[f'Scenario {scenario}']['total_capital_costs_skin'],
'total_capital_costs_systems': life_cycle[f'Scenario {scenario}']['total_capital_costs_systems'], 'total_capital_costs_systems': life_cycle[f'Scenario {scenario}']['total_capital_costs_systems'],
'end_of_life_costs': life_cycle[f'Scenario {scenario}']['end_of_life_costs'], 'end_of_life_costs': life_cycle[f'Scenario {scenario}']['end_of_life_costs'],
'total_operational_costs': life_cycle[f'Scenario {scenario}']['total_operational_costs'], 'total_operational_costs': life_cycle[f'Scenario {scenario}']['total_operational_costs'],
'total_maintenance_costs': life_cycle[f'Scenario {scenario}']['total_maintenance_costs'], 'total_maintenance_costs': life_cycle[f'Scenario {scenario}']['total_maintenance_costs'],
'operational_incomes': life_cycle[f'Scenario {scenario}']['operational_incomes'], 'operational_incomes': life_cycle[f'Scenario {scenario}']['operational_incomes'],
'capital_incomes': life_cycle[f'Scenario {scenario}']['capital_incomes'], 'capital_incomes': life_cycle[f'Scenario {scenario}']['capital_incomes'],
'global_capital_costs': { 'global_capital_costs': {
'B2010_opaque_walls': global_capital_costs['B2010_opaque_walls'].tolist(), 'B2010_opaque_walls': global_capital_costs['B2010_opaque_walls'].tolist(),
'B2020_transparent': global_capital_costs['B2020_transparent'].tolist(), 'B2020_transparent': global_capital_costs['B2020_transparent'].tolist(),
'B3010_opaque_roof': global_capital_costs['B3010_opaque_roof'].tolist(), 'B3010_opaque_roof': global_capital_costs['B3010_opaque_roof'].tolist(),
'B10_superstructure': global_capital_costs['B10_superstructure'].tolist(), 'B10_superstructure': global_capital_costs['B10_superstructure'].tolist(),
'D3020_heat_generating_systems': global_capital_costs['D3020_heat_generating_systems'].tolist(), 'D3020_heat_generating_systems': global_capital_costs['D3020_heat_generating_systems'].tolist(),
'D3030_cooling_generation_systems': global_capital_costs['D3030_cooling_generation_systems'].tolist(), 'D3030_cooling_generation_systems': global_capital_costs['D3030_cooling_generation_systems'].tolist(),
'D3080_other_hvac_ahu': global_capital_costs['D3080_other_hvac_ahu'].tolist(), 'D3080_other_hvac_ahu': global_capital_costs['D3080_other_hvac_ahu'].tolist(),
'D5020_lighting_and_branch_wiring': global_capital_costs['D5020_lighting_and_branch_wiring'].tolist(), 'D5020_lighting_and_branch_wiring': global_capital_costs['D5020_lighting_and_branch_wiring'].tolist(),
'D301010_photovoltaic_system': global_capital_costs['D301010_photovoltaic_system'].tolist(), 'D301010_photovoltaic_system': global_capital_costs['D301010_photovoltaic_system'].tolist(),
}, },
'global_end_of_life_costs': life_cycle[f'Scenario {scenario}']['global_end_of_life_costs']['End_of_life_costs'].tolist(), 'global_end_of_life_costs': life_cycle[f'Scenario {scenario}']['global_end_of_life_costs']['End_of_life_costs'].tolist(),
'global_operational_costs': { 'global_operational_costs': {
'fixed_costs_electricity_peak': global_operational_costs['Fixed_costs_electricity_peak'].tolist(), 'fixed_costs_electricity_peak': global_operational_costs['Fixed_costs_electricity_peak'].tolist(),
'fixed_costs_electricity_monthly': global_operational_costs['Fixed_costs_electricity_monthly'].tolist(), 'fixed_costs_electricity_monthly': global_operational_costs['Fixed_costs_electricity_monthly'].tolist(),
'variable_costs_electricity': global_operational_costs['Variable_costs_electricity'].tolist(), 'variable_costs_electricity': global_operational_costs['Variable_costs_electricity'].tolist(),
'fixed_costs_gas': global_operational_costs['Fixed_costs_gas'].tolist(), 'fixed_costs_gas': global_operational_costs['Fixed_costs_gas'].tolist(),
'variable_costs_gas': global_operational_costs['Variable_costs_gas'].tolist() 'variable_costs_gas': global_operational_costs['Variable_costs_gas'].tolist()
}, },
'global_maintenance_costs': { 'global_maintenance_costs': {
'heating_maintenance': global_maintenance_costs['Heating_maintenance'].tolist(), 'heating_maintenance': global_maintenance_costs['Heating_maintenance'].tolist(),
'cooling_maintenance': global_maintenance_costs['Cooling_maintenance'].tolist(), 'cooling_maintenance': global_maintenance_costs['Cooling_maintenance'].tolist(),
'pv_maintenance': global_maintenance_costs['PV_maintenance'].tolist(), 'pv_maintenance': global_maintenance_costs['PV_maintenance'].tolist(),
}, },
'global_operational_incomes': life_cycle[f'Scenario {scenario}']['global_operational_incomes']['Incomes electricity'].tolist(), 'global_operational_incomes': life_cycle[f'Scenario {scenario}']['global_operational_incomes']['Incomes electricity'].tolist(),
'global_capital_incomes': { 'global_capital_incomes': {
'subsidies_construction': global_capital_incomes['Subsidies construction'].tolist(), 'subsidies_construction': global_capital_incomes['Subsidies construction'].tolist(),
'subsidies_hvac': global_capital_incomes['Subsidies HVAC'].tolist(), 'subsidies_hvac': global_capital_incomes['Subsidies HVAC'].tolist(),
'subsidies_pv': global_capital_incomes['Subsidies PV'].tolist() 'subsidies_pv': global_capital_incomes['Subsidies PV'].tolist()
}
} }
} building_results['operational_co2'] = operational_co2
print(operational_co2)
building_results['operational_co2'] = operational_co2
return Response(json.dumps({'result': 'succeed', 'results': results}), status=200, headers=token) return Response(json.dumps({'result': 'succeed', 'results': results}), status=200, headers=token)