Spaces:
Runtime error
Runtime error
File size: 1,530 Bytes
b543474 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
from shiny import module, ui, render, reactive, event, App
import fastf1 as ff1
import numpy as np
# UI
@module.ui
def plot1_ui():
return ui.ouput_plot("gear_1")
# Server
@module.server
def plot1_server():
@reactive.Calc
# Get required data for driver 1 based on selection
def get_data_1():
try:
ui.notification_show("Data takes a couple seconds to load.", duration=3, type = 'default')
f1_session = ff1.get_session(int(input.year()), input.track_select(), input.session_type())
f1_session.load()
# Check if user input == fastest driver
if input.driver1_select() == "Fastest driver":
lap = f1_session.laps.pick_fastest()
else:
laps_driver = f1_session.laps.pick_driver(input.driver1_select())
lap = laps_driver.pick_fastest()
tel = lap.get_telemetry()
driver = lap['Driver']
#converting data to numpy data tables
x = np.array(tel['X'].values)
y = np.array(tel['Y'].values)
points = np.array([x, y]).T.reshape(-1, 1, 2)
segments = np.concatenate([points[:-1], points[1:]], axis=1)
gear = tel['nGear'].to_numpy().astype(float)
lap_time = lap['LapTime']
return segments, gear, driver, lap_time
except Exception:
ui.notification_show("Data not available. Select another track or driver.", duration=10, type = 'error') |