Giter VIP home page Giter VIP logo

scripts's Introduction

Script Documentation

This README contains information about what is contained in each script file, what it does, and how to call/use the function.

##Data Analysis Scripts These scripts are meant to be used with log files created by the CANCorder.

IMPORTANT NOTE

Many of these scripts rely on the dictionary variable returned by file_to_variables to be called "dict". See file_to_variables example on proper procedure for obtaining this variable.

###Python Scripts ####file_to_variables.py Contains a single function which takes in a log file in .csv format and outputs the data in the file in a dictionary along with a array of possible keys for the dictionary

Example

keys, dict = file_to_variables("log1.csv")

Look through the keys array to find the data to want to work with. In this case I'll choose "MotorTemp". To view MotorTemp data in this case: dict['MotorTemp']

This function will also output information involving the error in data for the log if it's from the CANCorder. This error is based off the times between rows. The higher the error, the higher the data loss or data not recorded/missed

####plot_tritium.py

Contains a single function which plots data over top of errors and limits found in the dictionary file passed in as an input. This function has a lot of flexibility. It has the capability of plotting multiple variables on the same x axis and multiple variables on the same y axis. Errors and limits can be toggled on and off if one or both don't want to be seen.

plot_tritium(dictionary, headers_to_plot, headers, scales = [], toggleLimits = 1, toggleErrors = 1):

Inputs: - dictionary -- Dictionary object returned from file_to_variables(f) - headers_to_plot -- Header names in dictionary to plot over limits and errors. Can also pass an array of data to plot instead if it's the same size as arrays in the dictionary - headers -- Python list returned from file_to_variables(f) - scales -- Values to scale each data header by. 1 scalar value per 2 headers. If no scalars are passed, they default to 0 - toggleLimits -- 1 to display limits in the plot, 0 to not - toggleErrors -- 1 to display errors, 0 to not

Example function call where dict is a variable returned from file_to_variables and 'Runtime', 'MotorVelocity', and 'MotorTemp' are keys in the dictionary:

plot_tritium(dict, ['Runtime','MotorVelocity','Runtime','MotorTemp'], keys, [-1,1])

In this case, we are passing in 'dict' which is the dictionary returned by file_to_variables, an array of keys from the dictionary we want to plot in [X1, Y1, X2, Y2] format, the list of keys returned from file_to_variables, and a scale you want to perform on each XY pair passed. We are plotting Runtime vs. MotorVelocity and MotorTemp and inverting the Runtime vs. MotorVelocity line that is plotted.

####datalogging_delays.py Plots the difference in runtime values between each row in the log file.

####gps_location.py 3D plot of where the motorcycle travelled. Neat to look at if GPS works well.

####heartbeats.py Quick method of determining if any of the CAN nodes dropped off the bus. If all the heartbeats stop rising at once, that means the CANCorder dropped off the bus and did not put itself back on.

####polinas_script.py Script made for the plot that Polina always wanted to see during testing. Plots MotorTemp as blue, Power as red, MotorVelocity as green.

####rpm_current.py Plots runtime vs MotorVelocity and throttle input using tritium_plot. As a note, the legend may get in the way due to how the data is passed in. Requires the keys passed from file_to_variables to be named "headers"

####runtime_heartbeat.py Better script to use to determine if the heartbeats stopped for any CAN nodes. Graphs times vs heartbeats so that the exact drop time can be seen.

####scoop_pressure.py A script which plots the pressure in the motor scoop and the current motor velocity.

####thermal_limit.py Used to determine if there was a thermal limit and at what motor speed and temp. Uses samples instead of runtime since there is a slight offset when using runtime as X.

####Fit_to_model_demo.py Simply a demo showing how the curve_fit function works.

####Aero_model.py Script that displays the aero model for a run.

####thermal_model.py Displays the thermal model for a particular run or multiple runs.

###MATLAB Scripts These scripts currently may or may not work due to issues with MATLAB reading in large CSV files.

####file_to_variables.m Identical to the Python script.

####plot_tritium.m Identical to the Python script.

scripts's People

Contributors

aaronbeekay avatar somuchhat avatar lordnathan0 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.