gaze_interpolation: interpolate gaze points in small gaps

Usage Arguments Examples

Usage

1
gaze_interpolation(data, maxGapLength)

Arguments

data
maxGapLength

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
##---- Should be DIRECTLY executable !! ----
##-- ==>  Define data, use random,
##--	or do  help(data=index)  for the standard data sets.

## The function is currently defined as
function (data, maxGapLength) 
{
    lastValid <- 0
    for (i in 1:nrow(data)) {
        if (!is.na(data$Validity[i])) {
            lastValid <- i
        }
        else if ((i < length(data$Validity)) & (!is.na(data$Validity[i + 
            1])) & (lastValid > 0)) {
            if ((data$Timestamp[i + 1] - data$Timestamp[lastValid] <= 
                maxGapLength)) {
                for (j in (lastValid + 1):i) {
                  s <- (j - lastValid)/((i + 1) - lastValid)
                  t <- data$GazePointX[i + 1] - data$GazePointX[lastValid]
                  t2 <- data$GazePointY[i + 1] - data$GazePointY[lastValid]
                  data$GazePointX[j] <- s * t + data$GazePointX[lastValid]
                  data$GazePointY[j] <- s * t2 + data$GazePointY[lastValid]
                  t <- data$EyeLocX[i + 1] - data$EyeLocX[lastValid]
                  t2 <- data$EyeLocY[i + 1] - data$EyeLocY[lastValid]
                  t3 <- data$EyeLocZ[i + 1] - data$EyeLocZ[lastValid]
                  data$EyeLocX[j] <- s * t + data$EyeLocX[lastValid]
                  data$EyeLocY[j] <- s * t2 + data$EyeLocY[lastValid]
                  data$EyeLocZ[j] <- s * t3 + data$EyeLocZ[lastValid]
                  t <- data$Timestamp[i + 1] - data$Timestamp[lastValid]
                  data$Timestamp[j] <- s * t + data$Timestamp[lastValid]
                  data$Validity[i] <- 0
                }
            }
        }
    }
    return(data)
  }

rwoldford/EyeFixR documentation built on May 12, 2019, 4:37 a.m.