Classes
Classify ([isLibrary]) |
Analysis methods for imhr.processing.preprocesing. |
imhr.Webgazer.classify.
Classify
(isLibrary=False)[source]¶Bases: object
Analysis methods for imhr.processing.preprocesing.
Methods
Methods
Acceleration (time, data_x[, data_y]) |
Calculate the acceleration (deg/sec/sec) for data points in d_x and (optionally) d_y, using the time numpy array for time delta information. |
Velocity (time, config, d_x[, d_y]) |
Calculate the instantaneous velocity (degrees / second) for data points in d_x and (optionally) d_y, using the time numpy array for time delta information. |
VisualAngle (g_x, g_y, config) |
Convert pixel eye-coordinates to visual angle. |
hmm (data, filter_type, config) |
Hidden Makov Model, adapted from https://gitlab.com/nslr/nslr-hmm. |
idt (data, dis_threshold, dur_threshold) |
Identification with Dispersion Threshold. |
ivt (data, v_threshold, config) |
Identification with Velocity Threshold. |
savitzky_golay (y, window_size, order[, …]) |
Smooth (and optionally differentiate) data with a Savitzky-Golay filter. |
simple (df, missing, maxdist, mindur) |
Detects fixations, defined as consecutive samples with an inter-sample distance of less than a set amount of pixels (disregarding missing data). |
Acceleration (time, data_x[, data_y]) |
Calculate the acceleration (deg/sec/sec) for data points in d_x and (optionally) d_y, using the time numpy array for time delta information. |
Velocity (time, config, d_x[, d_y]) |
Calculate the instantaneous velocity (degrees / second) for data points in d_x and (optionally) d_y, using the time numpy array for time delta information. |
VisualAngle (g_x, g_y, config) |
Convert pixel eye-coordinates to visual angle. |
hmm (data, filter_type, config) |
Hidden Makov Model, adapted from https://gitlab.com/nslr/nslr-hmm. |
idt (data, dis_threshold, dur_threshold) |
Identification with Dispersion Threshold. |
ivt (data, v_threshold, config) |
Identification with Velocity Threshold. |
savitzky_golay (y, window_size, order[, …]) |
Smooth (and optionally differentiate) data with a Savitzky-Golay filter. |
simple (df, missing, maxdist, mindur) |
Detects fixations, defined as consecutive samples with an inter-sample distance of less than a set amount of pixels (disregarding missing data). |
VisualAngle
(g_x, g_y, config)[source]¶Convert pixel eye-coordinates to visual angle.
Parameters: |
|
---|
Notes
Velocity
(time, config, d_x, d_y=None)[source]¶Calculate the instantaneous velocity (degrees / second) for data points in d_x and (optionally) d_y, using the time numpy array for time delta information.
Parameters: |
|
---|
Notes
Numpy arrays time, d_x, and d_y must all be 1D arrays of the same length. If both d_x and d_y are provided, then the euclidian distance between each set of points is calculated and used in the velocity calculation. Time must be in seconds.msec units, while d_x and d_y are expected to be in visual degrees. If the position traces are in pixel coordinate space, use the VisualAngleCalc class to convert the data into degrees.
Acceleration
(time, data_x, data_y=None)[source]¶Calculate the acceleration (deg/sec/sec) for data points in d_x and (optionally) d_y, using the time numpy array for time delta information.
Parameters: |
|
---|
savitzky_golay
(y, window_size, order, deriv=0, rate=1)[source]¶Smooth (and optionally differentiate) data with a Savitzky-Golay filter.
The Savitzky-Golay filter removes high frequency noise from data. It has the advantage of preserving the original shape and features of the signal better than other types of filtering approaches, such as moving averages techniques.
Parameters: |
|
---|---|
Returns: |
|
Notes
The Savitzky-Golay is a type of low-pass filter, particularly suited for smoothing noisy data. The main idea behind this approach is to make for each point a least-square fit with a polynomial of high order over a odd-sized window centered at the point. For more information, see: http://wiki.scipy.org/Cookbook/SavitzkyGolay.
Examples
>>> t = np.linspace(-4, 4, 500)
>>> y = np.exp( -t**2 ) + np.random.normal(0, 0.05, t.shape)
>>> ysg = savitzky_golay(y, window_size=31, order=4)
>>> import matplotlib.pyplot as plt
>>> plt.plot(t, y, label='Noisy signal')
>>> plt.plot(t, np.exp(-t**2), 'k', lw=1.5, label='Original signal')
>>> plt.plot(t, ysg, 'r', label='Filtered signal')
>>> plt.legend()
>>> plt.show()
References
[1] | A. Savitzky, Golay, M. (1964). Smoothing and Differentiation of Data by Simplified Least Squares Procedures. Analytical Chemistry. 36(8), pp 1627-1639. |
[2] | S.A. Teukolsky, W.T. Vetterling, B.P. Flannery Numerical Recipes 3rd Edition: The Art of Scientific Computing. W.H. Press,Cambridge University Press ISBN-13: 9780521880688. |
ivt
(data, v_threshold, config)[source]¶Identification with Velocity Threshold.
In the I-VT model, the velocity value is computed for every eye position sample. The velocity value is then compared to the threshold. If the sampled velocity is less than the threshold, the corresponding eye-position sample is marked as part of a fixation, otherwise it is marked as a part of a saccade.
Parameters: |
|
---|---|
Returns: |
|
Notes
From https://github.com/ecekt/eyegaze. Formula from: https://dl.acm.org/citation.cfm?id=355028
hmm
(data, filter_type, config)[source]¶Hidden Makov Model, adapted from https://gitlab.com/nslr/nslr-hmm.
Parameters: |
|
---|---|
Attributes: |
|
Notes
References
[1] | Pekkanen, J., & Lappi, O. (2017). A new and general approach to signal denoising and eye movement classification based on segmented linear regression. Scientific Reports, 7(1). doi:10.1038/s41598-017-17983-x. |
idt
(data, dis_threshold, dur_threshold)[source]¶Identification with Dispersion Threshold.
Parameters: |
|
---|---|
Returns: |
|
Notes
The I-DT algorithm has two parameters: a dispersion threshold and the length of a time window in which the dispersion is calculated. The length of the time window is often set to the minimum duration of a fixation, which is around 100-200 ms.
simple
(df, missing, maxdist, mindur)[source]¶Detects fixations, defined as consecutive samples with an inter-sample distance of less than a set amount of pixels (disregarding missing data).
Parameters: |
|
---|---|
Returns: |
|
Notes
From https://github.com/esdalmaijer/PyGazeAnalyser/blob/master/pygazeanalyser/detectors.py