esdalmaijer / PyGaze

an open-source, cross-platform toolbox for minimal-effort programming of eye tracking experiments
www.pygaze.org
GNU General Public License v3.0
671 stars 211 forks source link

pygaze_init: don't disable controls for saccade velocity and acceleration for EyeLink #76

Closed smathot closed 7 years ago

smathot commented 7 years ago

I noticed that, when selecting the EyeLink in the pygaze_init plugin for OpenSesame, the options for the saccade acceleration and velocity thresholds were disabled. I don't see any reason for this, so I changed it. However, maybe I forgot why I did this in the first place--so please check!

esdalmaijer commented 7 years ago

EyeLink is set to native event detection (happens in line 191-192 of pygaze_init.py), which uses the parameters that SR Research provides. The input for saccade velocity and acceleration is only used in PyGaze's custom event detection. Giving users the option to put these values in can create the illusion that they are actually used, which they are not. (Instead, one would have to change the EyeLink's settings.)

Note* on the difference between native and PyGaze: 'native' refers to how the tracker does event detection, 'pygaze' refers to PyGaze's custom algorithms. Some trackers, like the EyeLink, can do detection of fixations, saccades, and blinks. Other trackers do not do this, and therefore (to match EyeLink's functionality), PyGaze comes with built-in detection algorithms. These are designed to work with as little samples as possible, and are therefore very quick but also less precise. They are designed only for the purpose of gaze-contingent functionality, and it is strongly advised that you apply a more precise event detection algorithm in the analysis of your data. (See the PyGaze paper in Behavior Research Methods for some suggestions, and a more elaborate explanation.)

* I'm sure you know about this, @smathot; the note is there for reference purposes only.

smathot commented 7 years ago

Ah, thanks for clearing that up. I assumed that in the case of the EyeLink, these settings were applied to the native detection algorithm (which is possible). But I see now in libeyelink that they are actually not used at all, except for in the pygaze detection algorithm.

I'll undo the changes then.