自作の fastf1 便利ライブラリ
fastf1 という、F1 のデータを取得して加工できる python のツールがあります。便利なのですが、都度 matplotlib の使い方を調べてグラフ化するのも面倒なので、グラフ作成の処理はライブラリ化して、必要なパラメータだけ変更できるようにすることで、各セッション後にスムーズに分析できるのでは、と思って自作のライブラリを作りました。
自分の備忘もかねて、簡単に使い方を紹介してみます。まずは準備部分です。なお、GitHub リポジトリにexample.ipynb
というファイルで使用例の Jupiter Notebook を用意してあります。これで各メソッドの実行方法と、実行例を見ることもできます。
実行前準備
上記リポジトリをクローンし、そのディレクトリへ移動します。その状態でまずは依存するライブラリをインストールします。
そのうえで、自作ライブラリをインストールします。
セッション読み込み
各グラフを作成する際には、「セッション」を指定する必要があります。セッションは、開催年、グランプリ名、セッション名 (レースや予選など) ごとに分かれるので、それらを指定する形になります。
自作のライブラリはローカルパスに保存しているので、そのままでは実行パスに含まれず、ライブラリを見つけられないのでパスを追加したうえでインポートします。
load_session_o
メソッドでセッションを読み込みます。戻り値はセッションオブジェクトです。なので、これを変数にセットして、以降の処理で使う形になります。引数s
で指定するセッション名として使用できるのは、1 ~ 5 の数値 (FP1 が 1、FP2 が 2・・・レースが 5。ただしスプリント開催の場合は予選が 2、スプリントシュートアウトが 3、スプリントレースが 4、と少し変則的)、または以下の文字。
- Race: ‘R’
- Qualify: ‘Q’
- Sprint: ‘S’
- Sprint Shootout: ‘SQ’
- FP1 ~ FP3: ‘FP1’, ‘FP2’, ‘FP3’
ただ、多少異なる文字で指定しても、fastf1 側で適当に処理してくれます。’R’ ではなく ‘Race’ と指定しても大丈夫です。その分、スプリントシュートアウトを指定しようとして ‘SS’ とやってしまうと、スプリントと判定されて意図しないセッションになる場合もあるので、読みだす際のログを見て意図したセッションになっているかは確認したほうがよさそうです。なお、グランプリ名もある程度適当に判定してくれます。日本GPなら ‘Japan’ や ‘suzuka’ でも大丈夫です。
キャッシュは存在するディレクトリを指定する必要があります。この引数は省略可能で、省略した場合はカレントディレクトリのcache
ディレクトリを使用します。
これで実行すると、
このようにログが流れ、最後にFinished loading data for xx drivers:
に続けてセッションにデータのあるカーナンバーが表示されれば完了です。あとはsession_race
変数を使って、さまざまなグラフ作成メソッドを実行していきます。