fake_gaze_fixations#

pypillometry.signal.fake_gaze_fixations(duration, fs, fixation_duration_mean=300, fixation_duration_std=100, screen_bounds=((0, 1920), (0, 1080)), n_fixations=None, seed=None)[source]#

Generate step-function gaze positions (fixations with random locations and durations).

Creates gaze time series by: 1. Determining fixation times (random durations) 2. Selecting random fixation locations within screen bounds 3. Creating step functions for x and y coordinates

Parameters:
  • duration (float) – Duration in seconds

  • fs (float) – Sampling rate in Hz

  • fixation_duration_mean (float) – Mean fixation duration (ms)

  • fixation_duration_std (float) – Standard deviation of fixation duration (ms)

  • screen_bounds (tuple of tuples) – ((xmin, xmax), (ymin, ymax)) screen boundaries in pixels

  • n_fixations (int, optional) – Number of fixations (if None, determined by duration and mean fixation time); the fixation durations are scaled so that the fixations fill duration

  • seed (int, optional) – Random seed for reproducibility

Returns:

  • t (np.ndarray) – Time vector (ms)

  • x (np.ndarray) – X gaze positions (pixels)

  • y (np.ndarray) – Y gaze positions (pixels)

  • fixation_info (dict) – Fixation times, positions, durations

  • params (dict) – Parameters used for generation

Examples

>>> t, x, y, info, params = fake_gaze_fixations(duration=10, fs=1000, seed=42)
>>> print(f"Number of fixations: {len(info['fixation_times'])}")
Number of fixations: 34