Skip to main content

No project description provided

Project description

Formula Data Processing Library

The python windarab loader

Unit Tests Coverage Report

Formula data processing library or fdplib for short is a library for accessing the custom text file format exported by Windarab by Bosch Motorsports

Installation

FDPLib requires tqdm (used as status bar for loading large data files) and Numpy (used to return data in numpy arrays)

To install FDPLib use pip:

python3 -m pip install fdplib

Usage

Common Usage

In order to use the main module of this library, import the fdplib module in your python code

import fdplib

A DarabData object can be created by passing the textfile name to the constructor

import fdplib.darab as darab
data = darab.DarabData("<FILENAME>.txt")

With this object, data can be easily accessed using the following methods. First, to get all of the variables in the dataset do data.list_vars()

The main method that you will use to interact with the data is data.get_var("<VARIABLE_NAME>") This method returns a list of all the datapoints associated with the variable. Likewise data.get_var_np("<VARIABLE_NAME>") returns a numpy array of the data. There is an optional boolean parameter called timeseries for both of the previously mentioned methods. If set to True this instead returns the data and the time values associated with it as a 2D array, much in the way matlab does.

More Advanced Usage

fdplib also has a feature rich class Track which can be used to analyze and breakdown lap data from the vehicle. To access this class do:

import fdplib.track_tools as tt
track = tt.Track("<FILENAME>.txt")

Using this class the following methods are available:

def plot_track_heatmap(self, t_bound: tuple = None, direct_arrow: bool = None,
                           heat_source: np.array = None) -> None:
        """plot a heatmap of speed from gps data in matplotlib"""
def coords_from_gps(self) -> np.array:
    """converts longitude and latitude data to x and y displacements
       coordinates from the first location coordinate"""
def coords_from_acc(self, ret_yaw: bool = False) -> np.array:
    """calculates the vehicles path from acceleration data provided by the IMU.
       If ret_yaw is true also return the corresponding yaw data."""
def plot_coords(self, coords: np.array) -> None:
    """plots x and y displacement coordinates"""
def radius_from_gps_coords(self, coords: np.array) -> np.array:
    """Calculates the radius of the current turn that the vehicle is in from gps data.
       This is done using a 3 points on a circle calculation and iterates through all the data passed"""
def get_lap_bounds(self, lap_num: int) -> np.array:
    """Calculate the indexs in the data corresponding to the (start,end) of
       the requested lap given by lap_num."""
def simulate(self) -> None: # pragma: no cover
    """Simulate lap data using pygame"""

Examples

example nmot data

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fdplib-2.7.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

fdplib-2.7-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file fdplib-2.7.tar.gz.

File metadata

  • Download URL: fdplib-2.7.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for fdplib-2.7.tar.gz
Algorithm Hash digest
SHA256 99c2386c6124f61b833f73c3ab65073922115460894983a00b8d76c9e638b86a
MD5 e3777ef180640c1cc418fe87153e44b7
BLAKE2b-256 fbc6e8e5a483f83758b743f98e08964624d1700011b54c4095367e8b590e4759

See more details on using hashes here.

File details

Details for the file fdplib-2.7-py3-none-any.whl.

File metadata

  • Download URL: fdplib-2.7-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for fdplib-2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 1b230ce046405c20e2ff6a08aae326ffd7156b8fdefa710f5dc128e56501d664
MD5 a6eaeac60098088cb52213a6f1b16b38
BLAKE2b-256 12ff0c202a2daae67d1a61af994f2527e2a62eae8b3caa4caa901aa9a48e1cde

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page