Cizz22 4 months ago
parent e67347e95e
commit d108b14970

@ -132,10 +132,10 @@ async def import_aro_project(*, db_session: DbSession, aeros_project_in: AerosPr
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=str(e) status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=str(e)
) )
await _initialize_default_project_data( # await _initialize_default_project_data(
db_session=db_session, # db_session=db_session,
project_name=filename # project_name=filename
) # )
async def fetch_aro_record(*, db_session: DbSession): async def fetch_aro_record(*, db_session: DbSession):
stmt = select(AerosProject).order_by(desc(AerosProject.updated_at)).limit(1) stmt = select(AerosProject).order_by(desc(AerosProject.updated_at)).limit(1)

@ -102,7 +102,7 @@ async def run_simulations(
db_session=db_session, simulation_id=simulation_id, sim_data=sim_data, is_saved=True, eq_update=results db_session=db_session, simulation_id=simulation_id, sim_data=sim_data, is_saved=True, eq_update=results
) )
await calculate_plant_eaf(db_session=db_session, simulation_id=simulation_id, is_default=simulation_in.IsDefault) await calculate_plant_eaf(db_session=db_session, simulation_id=simulation_id, is_default=simulation_in.IsDefault, konkin_offset=simulation_in.Konkin_offset)
result = await update_contribution_bulk_mappings(db_session=db_session, simulation_id=simulation_id) result = await update_contribution_bulk_mappings(db_session=db_session, simulation_id=simulation_id)

@ -17,6 +17,7 @@ class SimulationInput(BaseModel):
SimulationName: str = "DefaultSimulation" SimulationName: str = "DefaultSimulation"
CustomInput: dict = {} CustomInput: dict = {}
IsDefault:bool = False IsDefault:bool = False
Konkin_offset: Optional[int] = 0
class SimulationNode(BaseModel): class SimulationNode(BaseModel):
id: UUID id: UUID

@ -989,6 +989,7 @@ async def create_simulation(*, db_session: DbSession, simulation_in: SimulationI
# Check if is default # Check if is default
if simulation_in.IsDefault: if simulation_in.IsDefault:
prev_simulation = await get_default_simulation(db_session=db_session) prev_simulation = await get_default_simulation(db_session=db_session)
if prev_simulation:
prev_simulation.is_default = False prev_simulation.is_default = False
await db_session.commit() await db_session.commit()

@ -248,7 +248,7 @@ async def create_calc_result_object(
async def calculate_plant_eaf( async def calculate_plant_eaf(
db_session: DbSession, simulation_id: UUID, is_default: bool db_session: DbSession, simulation_id: UUID, is_default: bool, konkin_offset: Optional[int] = 0
): ):
"""Calculate overall plant EAF from individual node results.""" """Calculate overall plant EAF from individual node results."""
plant_calc_data = await get_plant_calc_result( plant_calc_data = await get_plant_calc_result(
@ -268,10 +268,11 @@ async def calculate_plant_eaf(
plot_data=plant_plot_data.timestamp_outs plot_data=plant_plot_data.timestamp_outs
) )
if is_default: if konkin_offset > 0:
eaf_konkin = calculate_eaf_konkin( eaf_konkin = calculate_eaf_konkin(
plot_data=plant_plot_data.timestamp_outs, plot_data=plant_plot_data.timestamp_outs,
periode_time=plant_calc_data.total_uptime + plant_calc_data.total_downtime periode_time=int(plant_calc_data.total_uptime + plant_calc_data.total_downtime),
konkin_offset=konkin_offset
) )
plant_calc_data.eaf_konkin = eaf_konkin plant_calc_data.eaf_konkin = eaf_konkin
@ -284,3 +285,7 @@ async def calculate_plant_eaf(
plant_calc_data.derating_hours = derated_hours plant_calc_data.derating_hours = derated_hours
await db_session.commit() await db_session.commit()
return eaf, derated_hours, efficiency_uptime return eaf, derated_hours, efficiency_uptime
# async def calculate_eaf_konkin_pnat(
# db_session
# )

@ -44,11 +44,11 @@ def calculate_eaf(
raise raise
def calculate_eaf_konkin( def calculate_eaf_konkin(
plot_data, periode_time plot_data, periode_time, konkin_offset
): ):
maxHours = periode_time maxHours = periode_time
hourly_data = create_time_series_data(plot_data, max_hours=maxHours) hourly_data = create_time_series_data(plot_data, max_hours=maxHours)
filtered_data = filter_by_month(hourly_data, start_month=3, end_month=15) filtered_data = filter_by_month(hourly_data, start_month=konkin_offset, end_month=(12+konkin_offset))
if not filtered_data: if not filtered_data:
return { return {
@ -113,10 +113,14 @@ def filter_by_month(hourly_data, start_month, end_month):
""" """
# Convert months to hours (assuming 730 hours per month on average) # Convert months to hours (assuming 730 hours per month on average)
hours_per_month = 730 # 24 * 30.4 (average days per month) hours_per_month = 730 # 24 * 30.4 (average days per month)
total_hours = len(hourly_data)
start_hour = (start_month - 1) * hours_per_month + 1 start_hour = (start_month - 1) * hours_per_month + 1
end_hour = end_month * hours_per_month end_hour = end_month * hours_per_month
if end_hour >= total_hours:
end_hour = total_hours
filtered_data = [] filtered_data = []
for data in hourly_data: for data in hourly_data:
if start_hour <= data['hour'] <= end_hour: if start_hour <= data['hour'] <= end_hour:

@ -19,6 +19,9 @@ from tkinter.constants import E
async def get_model_data(*, db_session: DbSession, simulation_id: Optional[UUID]): async def get_model_data(*, db_session: DbSession, simulation_id: Optional[UUID]):
if simulation_id:
simulation = await get_simulation_by_id(db_session=db_session, simulation_id=simulation_id)
else:
simulation = await get_default_simulation(db_session=db_session) simulation = await get_default_simulation(db_session=db_session)
if not simulation: if not simulation:

Loading…
Cancel
Save