[chronojump/shortsLibrary] Fixed last split time and mean speed



commit e68ee6cac8a469d884903af876e46003f328f774
Author: Xavier Padullés <testing chronojump org>
Date:   Fri Jan 15 18:33:57 2021 +0100

    Fixed last split time and mean speed

 r-scripts/scripts-util.R  |  1 +
 r-scripts/sprintEncoder.R | 36 ++++++++++++++++++++----------------
 2 files changed, 21 insertions(+), 16 deletions(-)
---
diff --git a/r-scripts/scripts-util.R b/r-scripts/scripts-util.R
index 0e5a7de7..7fd189ea 100644
--- a/r-scripts/scripts-util.R
+++ b/r-scripts/scripts-util.R
@@ -41,6 +41,7 @@ fixDatetime <- function(str)
 
 #Function to get the interpolated x at a given y
 interpolateXAtY <- function(X, Y, desiredY){
+    # print(paste("finding the X at desiredY:", desiredY))
         if(max(Y) < desiredY){
                 # print("desiredY is greater than max(Y)")
                 return(max(Y))
diff --git a/r-scripts/sprintEncoder.R b/r-scripts/sprintEncoder.R
index fd06d6bd..6f9924c1 100644
--- a/r-scripts/sprintEncoder.R
+++ b/r-scripts/sprintEncoder.R
@@ -46,7 +46,7 @@ assignOptions <- function(options) {
                 graphWidth     = as.numeric(options[8]),
                 graphHeight    = as.numeric(options[9]),
                 device         = options[10],
-               segmentMeters   = as.numeric(options[11]),
+               splitLength     = as.numeric(options[11]),
                 title          = options[12],
                 datetime       = options[13],
                 startAccel     = as.numeric(options[14]),
@@ -247,7 +247,7 @@ getSprintFromEncoder <- function(filename, testLength, Mass, Temperature = 25, H
 }
 
 plotSprintFromEncoder <- function(sprintRawDynamics, sprintFittedDynamics,
-                                 segmentMeters,
+                                 splitLength,
                                  title = "Test graph",
                                  subtitle = "",
                                  triggersOn = "",
@@ -327,9 +327,8 @@ plotSprintFromEncoder <- function(sprintRawDynamics, sprintFittedDynamics,
         #Plotting rawSpeed
         ylimits = c(0, sprintRawDynamics$rawVmax*1.05)
         xlimits =c(0, sprintRawDynamics$time[sprintRawDynamics$endSample])
-
-       #Calculing 5m lap times, this ca be configured as an exercise
-        splitPosition = min(sprintRawDynamics$testLength, segmentMeters)
+       #Calculing lap times, this ca be configured as an exercise
+        splitPosition = min(sprintRawDynamics$testLength, splitLength)
         splitTime = 
interpolateXAtY(sprintRawDynamics$time[sprintRawDynamics$startSample:sprintRawDynamics$endSample],
                                   
sprintRawDynamics$rawPosition[sprintRawDynamics$startSample:sprintRawDynamics$endSample],
                                   splitPosition)
@@ -337,12 +336,15 @@ plotSprintFromEncoder <- function(sprintRawDynamics, sprintFittedDynamics,
         meanForce =getMeanValue(sprintRawDynamics$time, sprintRawDynamics$rawForce, 
sprintRawDynamics$time[sprintRawDynamics$startSample], splitTime)
         meanPower =getMeanValue(sprintRawDynamics$time, sprintRawDynamics$rawPower, 
sprintRawDynamics$time[sprintRawDynamics$startSample], splitTime)
 
-        while(splitPosition[length(splitPosition)] + segmentMeters < sprintRawDynamics$testLength)
+        #while the next split position is within the testLength
+        while(splitPosition[length(splitPosition)] + splitLength < sprintRawDynamics$testLength)
         {
-                splitPosition = c(splitPosition, splitPosition[length(splitPosition)] + segmentMeters)
-                splitTime = c(splitTime, 
interpolateXAtY(sprintRawDynamics$time[sprintRawDynamics$startSample:sprintRawDynamics$endSample],
-                                                     
sprintRawDynamics$rawPosition[sprintRawDynamics$startSample:sprintRawDynamics$endSample],
-                                                     splitPosition[length(splitPosition)]))
+                splitPosition = c(splitPosition, splitPosition[length(splitPosition)] + splitLength)
+                print(paste("Going to interpolate at:", splitPosition[length(splitPosition)]))
+                splitTime = c(splitTime, interpolateXAtY(X = 
sprintRawDynamics$time[sprintRawDynamics$startSample:sprintRawDynamics$endSample],
+                                                     Y = 
sprintRawDynamics$rawPosition[sprintRawDynamics$startSample:sprintRawDynamics$endSample],
+                                                     desiredY = splitPosition[length(splitPosition)]))
+                
                 meanSpeed = c(meanSpeed, (splitPosition[length(splitPosition)] - 
splitPosition[length(splitPosition) -1]) /
                                       (splitTime[length(splitTime)] - splitTime[length(splitTime) -1]))
                 meanForce = c(meanForce, getMeanValue(sprintRawDynamics$time, sprintRawDynamics$rawForce,
@@ -351,9 +353,9 @@ plotSprintFromEncoder <- function(sprintRawDynamics, sprintFittedDynamics,
                                                       splitTime[length(splitTime) -1], 
splitTime[length(splitTime)]))
         }
         splitPosition = c(splitPosition, sprintRawDynamics$testLength)
-        splitTime = c(splitTime, 
interpolateXAtY(sprintRawDynamics$time[sprintRawDynamics$startSample:sprintRawDynamics$endSample],
-                                             
sprintRawDynamics$rawPosition[sprintRawDynamics$startSample:sprintRawDynamics$endSample],
-                                             sprintRawDynamics$testLength))
+        splitTime = c(splitTime, interpolateXAtY(X = 
sprintRawDynamics$time[sprintRawDynamics$startSample:length(sprintRawDynamics$rawPosition)],
+                                             Y = 
sprintRawDynamics$rawPosition[sprintRawDynamics$startSample:length(sprintRawDynamics$rawPosition)],
+                                             desiredY = sprintRawDynamics$testLength))
         meanSpeed = c(meanSpeed, (splitPosition[length(splitPosition)] - splitPosition[length(splitPosition) 
-1]) /
                               (splitTime[length(splitTime)] - splitTime[length(splitTime) -1]))
         
@@ -594,8 +596,10 @@ plotSprintFromEncoder <- function(sprintRawDynamics, sprintFittedDynamics,
        #triggers
         print("triggersOn on plot:")
         print(triggersOn)
-       abline(v=triggersOn, col="green")
-       abline(v=triggersOff, col="red")
+           abline(v=triggersOn, col="green")
+           print("triggersOff plot:")
+           print(triggersOff)
+           abline(v=triggersOff, col="red")
 
 
         plotSize = par("usr")
@@ -715,7 +719,7 @@ testEncoderCJ <- function(filename, testLength, mass, personHeight, tempC, start
                 # print("triggersOff in testEncoderCJ:")
                 print(op$triggersOffList)
                 plotSprintFromEncoder(sprintRawDynamic = sprintRawDynamics, sprintFittedDynamics = 
sprintFittedDynamics,
-                                     segmentMeters = op$segmentMeters,
+                                     splitLength = op$splitLength,
                                       title = op$title,
                                       subtitle = op$datetime,
                                      triggersOn = op$triggersOnList,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]