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