Easily pull telemetry data and create beautiful visualizations for analysis.

Overview

  This repository is a work in progress. Anything and everything is subject to change.

Porpo


Table of Contents


General Information

Porpo is a python application that utilizes the FastF1 package to easily pull specific data and generate visualizations for analysis.

Note: Python3 (v.3.8 or greater) is required.

Getting Started

Currently, there is not a simple way to run the program. However, getting it up and running is very easy, regardless of platform.

Install Dependencies:

pip3 install fastf1
pip3 install PySimpleGUI

There are 2 methods of execution:

/scripts/gui.py to begin using the application with a GUI. (Recommended)

/scripts/main.py to begin using the application in CLI.

Usage

Porpo allows you to individually set all the variables for evaluation.

You start by selecting the year the Grand Prix took place.

Then select the Grand Prix you want.

Then select the session from the Grand Prix.

Note: No GP has all sessions.

Next, select the driver you'd like to evaluate.

Now decide if you're going to evaluate the full session, or a specific lap, or easily select the fastest lap set by your chosen driver.

Check the FastF1 documentation to see everything that is available for each option.

The last step is to select which variables you want displayed on the axes (X and Y).

Be aware that although you can select any available data as either variable, some combinations may not perform as expected - or at all.

The plot will show up in a new window, and automatically save to your export directory when the graph is closed.

If you're unsure where your export directory is, the default is:

~/Documents/F1 Data Analysis/Export/

 

To change this directory, edit the save_path variable in scripts/gui.py

  save_path = '~/Documents/F1 Data Analysis/Export/'

Specific Lap

You can easily pull and visualize data for a single lap of a session.

VER_SpeedL_Bah

Max Verstappen speed on Lap 54 of the 2022 Bahrain GP. We can see he was losing power throughout the lap, up until the moment he completely lost power, and went into the pitlane.

Fastest Lap

By default, you can quickly do analysis of the fastest lap set by the selected driver during a session.

VER_SpeedF_Bah

Max Verstappen speed on the fastest lap he set in 2022 Bahrain GP. We can the difference between this lap and lap 54, when he retired.

Session

You can also quickly do an analysis of a driver's performance through an entire session.

VER_SpeedF_Bah

Max Verstappen laptime over the course of the Imola GP. We can see as the track began to dry, laptimes began to fall very quickly.
You might also like...
A Sklearn-like Framework for Hyperparameter Tuning and AutoML in Deep Learning projects. Finally have the right abstractions and design patterns to properly do AutoML. Let your pipeline steps have hyperparameter spaces. Enable checkpoints to cut duplicate calculations. Go from research to production environment easily. sequitur is a library that lets you create and train an autoencoder for sequential data in just two lines of code
sequitur is a library that lets you create and train an autoencoder for sequential data in just two lines of code

sequitur sequitur is a library that lets you create and train an autoencoder for sequential data in just two lines of code. It implements three differ

A project which aims to protect your privacy using inexpensive hardware and easily modifiable software
A project which aims to protect your privacy using inexpensive hardware and easily modifiable software

Protecting your privacy using an ESP32, an IR sensor and a python script This project, which I personally call the "never-gonna-catch-me-in-the-act-ev

Easily benchmark PyTorch model FLOPs, latency, throughput, max allocated memory and energy consumption

⏱ pytorch-benchmark Easily benchmark model inference FLOPs, latency, throughput, max allocated memory and energy consumption Install pip install pytor

Create Data & AI apps in 20 lines of code with Shimoku

Install with: pip install shimoku-api-python Start with: from os import getenv import shimoku_api_python.client as Shimoku

IPATool-py: download ipa easily

IPATool-py Python version of IPATool! Installation pip3 install -r requirements.txt Usage Quickstart: download app with specific bundleId into DIR: p

Tracking Pipeline helps you to solve the tracking problem more easily
Tracking Pipeline helps you to solve the tracking problem more easily

Tracking_Pipeline Tracking_Pipeline helps you to solve the tracking problem more easily I integrate detection algorithms like: Yolov5, Yolov4, YoloX,

This application explain how we can easily integrate Deepface framework with Python Django application

deepface_suite This application explain how we can easily integrate Deepface framework with Python Django application install redis cache install requ

A Python script that creates subtitles of a given length from text paragraphs that can be easily imported into any Video Editing software such as FinalCut Pro for further adjustments.
A Python script that creates subtitles of a given length from text paragraphs that can be easily imported into any Video Editing software such as FinalCut Pro for further adjustments.

Text to Subtitles - Python This python file creates subtitles of a given length from text paragraphs that can be easily imported into any Video Editin

Comments
  • UnboundLocalError: local variable 'self' referenced before assignment

    UnboundLocalError: local variable 'self' referenced before assignment

    Gets a error code. How can i look at the exported data? Only thing i find under the exported track is filenames that ends with .ff1pkl Example: cardata.ff1pkl, driverinfo.ff1pkl And the error code is: UnboundLocalError: local variable 'self' referenced before assignment

    opened by jeveli 12
  • Cache directory does not exist

    Cache directory does not exist

    This is what I'm getting.

    C:\Users\james\Desktop\GitHub\porpo\scripts>python gui.py Traceback (most recent call last): File "C:\Users\james\Desktop\GitHub\porpo\scripts\gui.py", line 9, in class Dirs(): File "C:\Users\james\Desktop\GitHub\porpo\scripts\gui.py", line 28, in Dirs fastf1.Cache.enable_cache(cache_path) File "C:\Users\james\AppData\Local\Programs\Python\Python310\lib\site-packages\fastf1\api.py", line 133, in enable_cache raise NotADirectoryError("Cache directory does not exist! Please check for typos or create it first.") NotADirectoryError: Cache directory does not exist! Please check for typos or create it first.

    C:\Users\james\Desktop\GitHub\porpo\scripts>python main.py Traceback (most recent call last): File "C:\Users\james\Desktop\GitHub\porpo\scripts\main.py", line 8, in fastf1.Cache.enable_cache('venv/F1/Cache/') File "C:\Users\james\AppData\Local\Programs\Python\Python310\lib\site-packages\fastf1\api.py", line 133, in enable_cache raise NotADirectoryError("Cache directory does not exist! Please check for typos or create it first.") NotADirectoryError: Cache directory does not exist! Please check for typos or create it first.

    opened by DrMurgz 1
Releases(v1.4.2-beta.stable)
  • v1.4.2-beta.stable(Jul 28, 2022)

  • v1.4.1-beta.stable(Jul 27, 2022)

  • v1.4.0-beta.stable(Jul 27, 2022)

    What's Changed

    • fixed cache error by @dawesry in https://github.com/dawesry/porpo/pull/26
    • fixed driver spec lap error by @dawesry in https://github.com/dawesry/porpo/pull/27
    • fixed export error by @dawesry in #29

    Full Changelog: https://github.com/dawesry/porpo/compare/v1.3.0-beta.stable...v1.4.0-beta.stable

    Source code(tar.gz)
    Source code(zip)
  • v2.3.0-alpha.nightly(May 24, 2022)

    What's Changed

    • Nightly by @dtech-auto in https://github.com/dtech-auto/porpo/pull/23
    • fixed single driver full session error by @dtech-auto in https://github.com/dtech-auto/porpo/pull/24
    • stability update by @dtech-auto in https://github.com/dtech-auto/porpo/pull/25

    Full Changelog: https://github.com/dtech-auto/porpo/compare/v1.2.2-beta.stable...v2.3.0-alpha.nightly

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0-beta.stable(May 24, 2022)

    What's Changed

    • Nightly by @dtech-auto in https://github.com/dtech-auto/porpo/pull/23
    • fixed single driver full session error by @dtech-auto in https://github.com/dtech-auto/porpo/pull/24
    • stability update by @dtech-auto in https://github.com/dtech-auto/porpo/pull/25

    Full Changelog: https://github.com/dtech-auto/porpo/compare/v1.2.2-beta.stable...v1.3.0-beta.stable

    Source code(tar.gz)
    Source code(zip)
  • v2.2.1-alpha.nightly(May 23, 2022)

    What's Changed

    • Fixed single driver plot error by @dtech-auto

    Full Changelog: https://github.com/dtech-auto/porpo/compare/v2.2.0-alpha.nightly...v2.2.1-alpha.nightly

    Source code(tar.gz)
    Source code(zip)
  • v2.2.0-alpha.nightly(May 23, 2022)

    What's Changed

    • drivercomp working - fastest only by @dtech-auto in https://github.com/dtech-auto/porpo/pull/19

    Full Changelog: https://github.com/dtech-auto/porpo/compare/v2.1.2-alpha.nightly...v2.2.0-alpha.nightly

    Source code(tar.gz)
    Source code(zip)
  • v2.1.2-alpha.nightly(May 23, 2022)

    Added compare - non functioning

    What's Changed

    • update README.md by @dtech-auto in https://github.com/dtech-auto/porpo/pull/15
    • Update gui.py by @dtech-auto in https://github.com/dtech-auto/porpo/pull/18

    Full Changelog: https://github.com/dtech-auto/porpo/compare/v1.0.2-beta.stable...v2.1.2-alpha.nightly

    Source code(tar.gz)
    Source code(zip)
  • v1.2.2-beta.stable(May 23, 2022)

    What's Changed

    GUI Updates

    • GUI Stability Updates by @dtech-auto in https://github.com/dtech-auto/porpo/pull/16

    New Features

    • NEW! Compare every driver, or a custom few, using the new Driver Compare feature! by @dtech-auto in https://github.com/dtech-auto/porpo/pull/21

    Bug Fixes

    • General bug fixes by @dtech-auto in https://github.com/dtech-auto/porpo/pull/22

    Full Changelog: https://github.com/dtech-auto/porpo/compare/v2.2.1-alpha.nightly...v1.2.2-beta.stable

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0-beta.stable(May 21, 2022)

    What's Changed

    • update README.md by @dtech-auto in https://github.com/dtech-auto/porpo/pull/15
    • update gui --STABLE by @dtech-auto in https://github.com/dtech-auto/porpo/pull/16

    Full Changelog: https://github.com/dtech-auto/porpo/compare/v1.1.2-alpha.stable...v1.1.0-beta.stable

    Source code(tar.gz)
    Source code(zip)
  • v1.0.2-beta.stable(May 21, 2022)

    What's Changed

    • Nightly by @dtech-auto in https://github.com/dtech-auto/porpo/pull/10
    • Nightly by @dtech-auto in https://github.com/dtech-auto/porpo/pull/13
    • fixed issue #11 by @dtech-auto in https://github.com/dtech-auto/porpo/pull/14

    Full Changelog: https://github.com/dtech-auto/porpo/compare/v2.1.1-alpha.nightly...v1.1.2-alpha.stable

    Source code(tar.gz)
    Source code(zip)
  • v2.1.1-alpha.nightly(May 20, 2022)

    What's Changed

    • updated directory by @dtech-auto in https://github.com/dtech-auto/porpo/pull/6

    Full Changelog: https://github.com/dtech-auto/porpo/compare/v2.1.0-alpha.nightly...v2.1.1-alpha.nightly

    Source code(tar.gz)
    Source code(zip)
  • v2.1.0-alpha.nightly(May 20, 2022)

  • v2.0.0-alpha.nightly(May 20, 2022)

  • v1.0.1-beta.stable(May 20, 2022)

  • v1.0.0-beta.stable(May 20, 2022)

  • v1.1.0-alpha.stable(May 19, 2022)

  • v1.1.0-alpha.nightly(May 19, 2022)

  • v1.0.0-alpha.nightly(May 18, 2022)

    What's Changed

    • Nightly by @dtech-auto in https://github.com/dtech-auto/porpo/pull/5

    Full Changelog: https://github.com/dtech-auto/porpo/compare/v1.0.0-alpha...v1.0.0-alpha.nightly

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-alpha(May 17, 2022)

    What's Changed

    • Directory cleaning by @dtech-auto in https://github.com/dtech-auto/F1DataAnalysis/pull/3
    • Nightly by @dtech-auto in https://github.com/dtech-auto/F1DataAnalysis/pull/4

    New Contributors

    • @dtech-auto made their first contribution in https://github.com/dtech-auto/F1DataAnalysis/pull/3

    Full Changelog: https://github.com/dtech-auto/F1DataAnalysis/commits/v1.0.0-alpha

    Source code(tar.gz)
    Source code(zip)
Owner
Ryan Dawes
Ryan Dawes
TensorFlow implementation for Bayesian Modeling and Uncertainty Quantification for Learning to Optimize: What, Why, and How

Bayesian Modeling and Uncertainty Quantification for Learning to Optimize: What, Why, and How TensorFlow implementation for Bayesian Modeling and Unce

Shen Lab at Texas A&M University 8 Sep 02, 2022
[Preprint] "Bag of Tricks for Training Deeper Graph Neural Networks A Comprehensive Benchmark Study" by Tianlong Chen*, Kaixiong Zhou*, Keyu Duan, Wenqing Zheng, Peihao Wang, Xia Hu, Zhangyang Wang

Bag of Tricks for Training Deeper Graph Neural Networks: A Comprehensive Benchmark Study Codes for [Preprint] Bag of Tricks for Training Deeper Graph

VITA 101 Dec 29, 2022
A clean and robust Pytorch implementation of PPO on continuous action space.

PPO-Continuous-Pytorch I found the current implementation of PPO on continuous action space is whether somewhat complicated or not stable. And this is

XinJingHao 56 Dec 16, 2022
Library of deep learning models and datasets designed to make deep learning more accessible and accelerate ML research.

Tensor2Tensor Tensor2Tensor, or T2T for short, is a library of deep learning models and datasets designed to make deep learning more accessible and ac

12.9k Jan 09, 2023
Python implementation of "Multi-Instance Pose Networks: Rethinking Top-Down Pose Estimation"

MIPNet: Multi-Instance Pose Networks This repository is the official pytorch python implementation of "Multi-Instance Pose Networks: Rethinking Top-Do

Rawal Khirodkar 57 Dec 12, 2022
Multispectral Object Detection with Yolov5

Multispectral-Object-Detection Intro Official Code for Cross-Modality Fusion Transformer for Multispectral Object Detection. Multispectral Object Dete

Richard Fang 121 Jan 01, 2023
This project uses ViT to perform image classification tasks on DATA set CIFAR10.

Vision-Transformer-Multiprocess-DistributedDataParallel-Apex Introduction This project uses ViT to perform image classification tasks on DATA set CIFA

Kaicheng Yang 3 Jun 03, 2022
Kaggle Lyft Motion Prediction for Autonomous Vehicles 4th place solution

Lyft Motion Prediction for Autonomous Vehicles Code for the 4th place solution of Lyft Motion Prediction for Autonomous Vehicles on Kaggle. Discussion

44 Jun 27, 2022
Semantic Segmentation Architectures Implemented in PyTorch

pytorch-semseg Semantic Segmentation Algorithms Implemented in PyTorch This repository aims at mirroring popular semantic segmentation architectures i

Meet Shah 3.3k Dec 29, 2022
A simple implementation of Kalman filter in single object tracking

kalman-filter-in-single-object-tracking A simple implementation of Kalman filter in single object tracking https://www.bilibili.com/video/BV1Qf4y1J7D4

130 Dec 26, 2022
A PyTorch implementation of Mugs proposed by our paper "Mugs: A Multi-Granular Self-Supervised Learning Framework".

Mugs: A Multi-Granular Self-Supervised Learning Framework This is a PyTorch implementation of Mugs proposed by our paper "Mugs: A Multi-Granular Self-

Sea AI Lab 62 Nov 08, 2022
The self-supervised goal reaching benchmark introduced in Discovering and Achieving Goals via World Models

Lexa-Benchmark Codebase for the self-supervised goal reaching benchmark introduced in 'Discovering and Achieving Goals via World Models'. Setup Create

1 Oct 14, 2021
Api's bulid in Flask perfom to manage Todo Task.

Citymall-task Api's bulid in Flask perfom to manage Todo Task. Installation Requrements : Python: 3.10.0 MongoDB create .env file with variables DB_UR

Aisha Tayyaba 1 Dec 17, 2021
Certis - Certis, A High-Quality Backtesting Engine

Certis - Backtesting For y'all Certis is a powerful, lightweight, simple backtes

Yeachan-Heo 46 Oct 30, 2022
Code of the paper "Performance-Efficiency Trade-offs in Unsupervised Pre-training for Speech Recognition"

SEW (Squeezed and Efficient Wav2vec) The repo contains the code of the paper "Performance-Efficiency Trade-offs in Unsupervised Pre-training for Speec

ASAPP Research 67 Dec 01, 2022
Your interactive network visualizing dashboard

Your interactive network visualizing dashboard Documentation: Here What is Jaal Jaal is a python based interactive network visualizing tool built usin

Mohit 177 Jan 04, 2023
Clean and readable code for Decision Transformer: Reinforcement Learning via Sequence Modeling

Minimal implementation of Decision Transformer: Reinforcement Learning via Sequence Modeling in PyTorch for mujoco control tasks in OpenAI gym

Nikhil Barhate 104 Jan 06, 2023
LBK 20 Dec 02, 2022
Ranking Models in Unlabeled New Environments (iccv21)

Ranking Models in Unlabeled New Environments Prerequisites This code uses the following libraries Python 3.7 NumPy PyTorch 1.7.0 + torchivision 0.8.1

14 Dec 17, 2021
A JAX implementation of Broaden Your Views for Self-Supervised Video Learning, or BraVe for short.

BraVe This is a JAX implementation of Broaden Your Views for Self-Supervised Video Learning, or BraVe for short. The model provided in this package wa

DeepMind 44 Nov 20, 2022