Skip to main content

A package to process x, y, z, roll, pitch, yaw data.

Project description

rotation-plots3d

A package written in Python 3.12 to assist with generating 3D plots and statistical analysis of time series X, Y, Z, roll, pitch, yaw data.

3D Scatterplot

Description

This package contains methods to generate 3D plots of x, y, z, roll, pitch, yaw data and analyze for repeatability of measurements using a gage repeatability method. It will also generate a stats dataframe for the x, y, z, roll, pitch, yaw and x-prime, y-prime, and z-prime axes.

Installation

To install this python package locally, please use:
pip install rotation-plots3d

Basic Usage

The following examples provide a high-level summary of how to use the API.

Instantitating the OTA Class

Create the ObjectTrackingAnimation class and run the format_raw_data() method.

from rotation_plots3d import ObjectTrackingAnimation

ota = ObjectTrackingAnimation(input_path='files', graph_title="My Creative Title")

Load Data and Create a Graph

ota.load() # loads data into the class as an attribute
ota.create_graph('example.csv','1')
# will generate a plot of the example.csv file located in the output_path directory.

Run Statistics on Data

import os

files = os.listdir('files')

# create a list of every output file repeated by the number
# of dataranges per file. In this case 8x.
filenames = []
for file in files:
    filenames += 8 * [file]

# indicate which device to track for each file. In this case, it is
# device "1" for every file.
device = ['1'] * len(filenames)

# for each file, create a list of start and stop time ranges
datarange = [[0,3],[3,6],[6,9],[9,12],[145,150],[150,155],[155,160],[160,165]]

# create the stats dataframe
df = ota.stats_dataframe(filename=filenames,device=device,datarange=datarange)

print(df)
#    Parameter                                               mean  ... angle_of_shift_degrees_vs_initial  angle_of_shift_degrees_vs_initial_error
# 0          X                                           2.401588  ...                               NaN                                      NaN
# 1          X                                           2.401905  ...                               NaN                                      NaN
# 2          X                                           2.402598  ...                               NaN                                      NaN
# 3          X                                           2.403336  ...                               NaN                                      NaN
# 4          X                                           2.391486  ...                               NaN                                      NaN
# ..       ...                                                ...  ...                               ...                                      ...
# 3    z_prime  [0.6388455401133175, 0.00028297720143531126, -...  ...                          0.057028                                 0.000948
# 4    z_prime  [0.6446987414563102, 0.002794264889296324, -0....  ...                          0.405209                                 0.000726
# 5    z_prime  [0.6440696849596658, 0.0028438830124556712, -0...  ...                          0.362399                                 0.000474
# 6    z_prime  [0.6499854657845796, -0.0005017454685925038, -...  ...                          0.781513                                 0.175948
# 7    z_prime  [0.6443998187565277, 0.0021319551787689173, -0...  ...                          0.372250                                 0.013982

# generate gage repeatability reports
ota.gage_repeatability(filename=filenames,device=device,datarange=datarange)

# will return 6 matplotlib plots and print the following to the console:
#                     StdDev (SD)  StudyVar (6*SD)  % Study Var
# Source                                                       
# Gage Repeatability     0.000256         0.001539     6.922392
# Part to Part           0.003696         0.022175    99.760115
# Total variation        0.003705         0.022228   100.000000

# Automotive Industry Action Group (AIAG) measurement system assessment:
# -------------------
# Total Gage Repeatability factor: 6.922
# <10% --> Acceptable measurement system

gage_R

Authors and acknowledgment

John Glauber
johnbglauber@gmail.com

This software relies heavily upon the Plotly package and the pyPETB package. A huge thanks to those teams for creating such awesome tools.

License

MIT.

Project status

In development.

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

rotation_plots3d-0.0.1.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rotation_plots3d-0.0.1-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file rotation_plots3d-0.0.1.tar.gz.

File metadata

  • Download URL: rotation_plots3d-0.0.1.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for rotation_plots3d-0.0.1.tar.gz
Algorithm Hash digest
SHA256 e900dfaef119b8b3f67aae6c16c7fcefddfd6d52531cfe575175a130fa15f8cf
MD5 a21f7c820b1d965f6eeee298bebe10c3
BLAKE2b-256 c2642f9907008958242cec9bf29f5cf16380c055e7bfa3632f24944c1755b421

See more details on using hashes here.

File details

Details for the file rotation_plots3d-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for rotation_plots3d-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1c91e96ba5b183bc6a2287332d2910e883cddfb0ae80a0a7d1b2c86ba2654921
MD5 657dccdbb19d35a0d777a13679985962
BLAKE2b-256 f6622bdd8500563f72366888cd07c22387c186bb13fec60382f134bc054cdad7

See more details on using hashes here.

Supported by

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