Epävirallinen Formula 1 API

Liittynyt
21.10.2016
Viestejä
9 205
Tämähän oli kiinnostavan oloinen projekti. Mitähä kaikkea kivaa tällä keksis. En nyt tähän hätään parempaa alustusta keksi, mut päivittelen myöhemmin. Mut siis ideoita, ajatuksia ja tietty omia toteutuksia tästä: GitHub - theOehrly/Fast-F1

Onkos tolle ihan avointa rajapintaa olemassa (f1 siis)? Jos haluais jollain toisella kielellä värkätä? Tällöin otsikkoa ja tätä alustusta voisi muokata siihen suuntaan.

FastF1 is a python package for accessing and analyzing Formula 1 results, schedules, timing data and telemetry.

Compatibility
Timing data, car telemetry and position data is available for the 2018 and later seasons. Schedule information and session results are available for older seasons too. (limited to Ergast web api).

Data Sources
FastF1 uses data from F1's live timing service.

Data can be downloaded after a session. Alternatively, the actual live timing data can be recorded and the recording can be used as a data source.

Usually it is not necessary to record the live timing data. But there have been server issues in the past which resulted in the data being unavailable for download. Therefore, you only need to record live timing data if you want to benefit from the extra redundancy.
Ajatus tuli 2022 Brasilian GP:n ketjussa @Mörkön viestistä:
En malttanut jättää Perezin Monacon ajelua rauhaan, kun tajusin, että F1 tarjoilee autojen telemetriaa ja sitä voi käpistellä käyttäen vaikka GitHub - theOehrly/Fast-F1


Python:
from matplotlib import pyplot as plt
import fastf1
import fastf1.plotting
fastf1.Cache.enable_cache('cache')
fastf1.plotting.setup_mpl()
session = fastf1.get_session(2022, 'Monaco', 'Q')
session.load()
fastlaps= session.laps.pick_quicklaps()
lec_lap = session.laps.pick_driver('VER').pick_fastest()
per_lap = session.laps.pick_driver('PER').loc[73]
lec_tel = lec_lap.get_car_data().add_distance()
per_tel = per_lap.get_car_data().add_distance()
rbr_color = fastf1.plotting.team_color('RBR')
fer_color = fastf1.plotting.team_color('FER')
fig, axs = plt.subplots(2)
cnt=0
for iter,lap in fastlaps.iterlaps():
    cnt+=1
    flap=lap.get_car_data().add_distance()
    if iter != 1:
        axs[0].plot(flap['Distance'], flap['Throttle'], color="gray", label='_nolegend_')
        axs[1].plot(flap['Distance'], flap['Speed'], color="gray", label='_nolegend_')
    else:
        axs[0].plot(flap['Distance'], flap['Throttle'], color="gray", label='laps within 107% of lec')
        axs[1].plot(flap['Distance'], flap['Speed'], color="gray", label='laps within 107% of lec')
print(cnt)
axs[0].plot(lec_tel['Distance'], lec_tel['Throttle'], color=fer_color, label='lec')
axs[0].plot(per_tel['Distance'], per_tel['Throttle'], color=rbr_color, label='per')
axs[1].plot(lec_tel['Distance'], lec_tel['Speed'], color=fer_color, label='lec')
axs[1].plot(per_tel['Distance'], per_tel['Speed'], color=rbr_color, label='per')
axs[0].set_xlabel('Distance in m')
axs[0].set_ylabel('Throttle %')
axs[1].set_xlabel('Distance in m')
axs[1].set_ylabel('Speed in km/h')
axs[0].set_xlim(1000,1500)
axs[1].set_xlim(1000,1500)
axs[1].legend()
plt.suptitle(f"F1 2022 Monaco Quali Speeds and Throttle positions")
plt.show()

Jotain häikkää sillä kaasupolkimessa on ollu :rolleyes: user error vai mitä lie, mutta erittäin poikkeuksellisessa kohdassa käy kaasulla. Olispa parempaa dataa, tuo julkinen on vaihtelevalla, ~4 Hz, näytteenottotaajuudella. Yli 100 % menevä piikki Perezin kaasun kuvaajan lopussa on jonkinlainen virhesignaali, joka alkaa ajallisesti kauan feilauksen jälkeen.
Harmaalla merkittyjä, 107 % sisään nopeimmasta ajasta mahtuvia aikoja on 111 kappaletta. Myös jos huomioon otetaan kaikki kierrokset (inlap outlap jne.) ei vastaavaa näy sittenkään:
Mutta luotetaan, että FIA on tutkinu, Ferrari tuskin ois tajunnu vaatia tutkintaa, vaikka Perez olis soittanu Binottolle ja tunnustanu syntinsä :D
 
Viimeksi muokattu:
Toggle Sidebar

Statistiikka

Viestiketjut
239 647
Viestejä
4 197 273
Jäsenet
70 760
Uusin jäsen
Maakkkee

Hinta.fi

Ylös Bottom