# Get the 2021 Belgian Grand Prix Racesession = tif1.get_session(2021, "Belgian Grand Prix", "Race")
No need to call session.load() - data is fetched lazily when you access it
3
Access lap data
Get lap times and information:
# Get all lapslaps = session.lapsprint(laps.head())# Get driver listprint(session.drivers_df)
4
Analyze telemetry
Access telemetry for specific laps:
# Get a specific driverver = session.get_driver("VER")# Get telemetry for lap 19lap = ver.get_lap(19)telemetry = lap.telemetryprint(telemetry[["Time", "Speed", "Throttle"]].head())
import tif1# Get all events for a yearevents = tif1.get_events(2024)print(events) # DataFrame with all 2024 races# Get sessions for a specific eventsessions = tif1.get_sessions(2024, "Monaco Grand Prix")print(sessions) # ['Practice 1', 'Practice 2', 'Practice 3', 'Qualifying', 'Race']
# Get a specific driver's dataham = session.get_driver("HAM")ham_laps = ham.laps# Get fastest lap for a driverfastest = ham.get_fastest_lap()print(f"Fastest lap: {fastest['LapTime'].iloc[0]}")# Get fastest lap telemetryfastest_tel = ham.get_fastest_lap_tel()print(fastest_tel[["Speed", "Throttle", "Brake"]].head())
# Filter laps by driverver_laps = laps.pick_driver("VER")# Get fastest laps per driverfastest_laps = session.get_fastest_laps(by_driver=True)# Filter by tire compoundsoft_laps = laps.pick_tyre("SOFT")# Exclude pit lapsracing_laps = laps.pick_wo_box()
# Get fastest laps for two driversver_fastest = session.get_driver("VER").get_fastest_lap()ham_fastest = session.get_driver("HAM").get_fastest_lap()# Get their telemetryver_tel = ver_fastest.get_telemetry()ham_tel = ham_fastest.get_telemetry()# Compare speedsimport matplotlib.pyplot as pltplt.plot(ver_tel["Distance"], ver_tel["Speed"], label="VER")plt.plot(ham_tel["Distance"], ham_tel["Speed"], label="HAM")plt.legend()plt.xlabel("Distance (m)")plt.ylabel("Speed (km/h)")plt.show()
Here’s a complete example that analyzes qualifying performance:
import tif1# Get qualifying sessionquali = tif1.get_session(2024, "Monaco Grand Prix", "Qualifying")# Get fastest lap per driver in Q3fastest_laps = quali.get_fastest_laps(by_driver=True)# Sort by lap timefastest_laps = fastest_laps.sort_values("LapTimeSeconds")# Display top 10print(fastest_laps[["Driver", "LapTime", "Compound", "Team"]].head(10))# Get pole position driverpole_driver = fastest_laps.iloc[0]["Driver"]pole_lap = fastest_laps.iloc[0]print(f"\nPole position: {pole_driver}")print(f"Time: {pole_lap['LapTime']}")print(f"Tire: {pole_lap['Compound']}")# Get pole lap telemetrypole_tel = quali.get_driver(pole_driver).get_lap( int(pole_lap['LapNumber'])).get_telemetry()# Analyze the pole lapmax_speed = pole_tel["Speed"].max()avg_throttle = pole_tel["Throttle"].mean()print(f"Max speed: {max_speed:.1f} km/h")print(f"Avg throttle: {avg_throttle:.1f}%")
Expected Output
Driver LapTime Compound Team0 VER 0 days 00:01:10.270 SOFT Red Bull Racing1 LEC 0 days 00:01:10.312 SOFT Ferrari2 SAI 0 days 00:01:10.345 SOFT Ferrari...Pole position: VERTime: 0 days 00:01:10.270000Tire: SOFTMax speed: 290.5 km/hAvg throttle: 73.2%
import tif1import loggingtif1.setup_logging(logging.DEBUG)# Your code here - detailed logs will be printedsession = tif1.get_session(2024, "Monaco Grand Prix", "Race")