Data Analysis Tools

Over the years, we have developed a number of tools, many in [R]/Shiny that we use to analyze everything from RawData to our FootSteps Model.

Below are a few of the tools we’ve built to explore these datasets.

 

 

RunScribe Data Tool Support

You can request RawData access by emailing support@runscribe.com – letting me know what email address is associated with your account along with your intended use. Once RawData has been enabled for your account, you’ll need to enable it via the RS mobile app.

RawData is collected at 500Hz, resulting in file sizes that are far beyond what is typical for the consumer metrics. On-board flash memory will typically fill within 20min, and uploads can take upwards of an hour for ever 10min of collection.

After using the RS mobile app to upload the RawData collection, you will need to download the FIT files from the RS web dashboard. This can be done two different ways.

Via Run Detail:

or via your Profile:

Using the above RawData Tool …

  • Step 1 — Click Upload FIT checkbox
  • Step 2 — Click Browse button to Select FIT file to upload
  • Step 3 — Click FIT to CSV button to perform conversion
  • Step 4 — Click Load CSV button to select/load the converted CSV
  • Step 5 — Click Raw Data tab, then Download CSV to download converted CSV
  • Optional — use the Sliders to view data in the Plot tab
Once you’ve downloaded the RawData in CSV format, you’ll need to do a little scaling:

# Time in msec
Motion.Time <<- as.numeric(CSV_MotionData[,5]) / 4.0

Motion.Accel.X <<- as.numeric(CSV_MotionData[,8]) / (256*8.0) ;
Motion.Accel.Y <<- as.numeric(CSV_MotionData[,11]) / (256*8.0) ;
Motion.Accel.Z <<- as.numeric(CSV_MotionData[,14]) / (256*8.0) ;

Motion.Gyro.X <<- as.numeric(CSV_MotionData[,17]) / 16.384;
Motion.Gyro.Y <<- as.numeric(CSV_MotionData[,20]) / 16.384;
Motion.Gyro.Z <<- as.numeric(CSV_MotionData[,23]) / 16.384;

Motion.Mag.X <<- as.numeric(CSV_MotionData[,26]) / 32;
Motion.Mag.Y <<- as.numeric(CSV_MotionData[,29]) / 32;
Motion.Mag.Z <<- as.numeric(CSV_MotionData[,32]) / 32;

Motion.Quat.Q0 <<- as.numeric(CSV_MotionData[,35]) / 16384.0 ;
Motion.Quat.Q1 <<- as.numeric(CSV_MotionData[,38]) / 16384.0 ;
Motion.Quat.Q2 <<- as.numeric(CSV_MotionData[,41]) / 16384.0 ;
Motion.Quat.Q3 <<- as.numeric(CSV_MotionData[,44]) / 16384.0 ;