Skip to main content
Ctrl+K

pypillometry

  • Getting started
  • User guide
  • Tutorials
  • API reference
  • Experimental features
  • Development
  • GitHub
  • PyPI
  • Getting started
  • User guide
  • Tutorials
  • API reference
  • Experimental features
  • Development
  • GitHub
  • PyPI

Section Navigation

  • Data classes
    • EyeData
    • EyeDataDict
    • MaskPolicy
    • FakeEyeData
    • keephistory
    • QualityReport
    • QualityMetric
    • Table
    • RecordDict
  • Pupil methods (d.pupil)
    • PupilNamespace
  • Gaze methods (d.gaze)
    • GazeNamespace
  • Pipelines
    • crop
    • downsample
    • scale
    • unscale
    • merge_eyes
    • reset_time
    • mask_intervals
    • interpolate_intervals
    • exclude_intervals
    • keep_intervals
    • remove_intervals
    • merge_masks
    • clear_layer
    • set_blinks
    • set_events
    • add_events
    • set_experimental_setup
    • drop_data
    • drop_original
    • fill_time_discontinuities
    • Step
    • Pipeline
  • Events and intervals
    • Events
    • Epochs
    • Intervals
    • ClockSync
    • concat_intervals
    • sync_clocks
  • Segmented data
    • SegmentedEyeData
    • concat_segments
    • group_segments
    • SegmentedPupilNamespace
    • SegmentedGazeNamespace
  • Plotting (d.plot)
  • Reading and writing data
    • read_eyelink
    • read_file
    • write_file
    • download
    • fetch_url
    • local_copy
    • load_study_local
    • load_study_osf
    • get_osf_project_files
    • osf_authenticate
    • get_figshare_files
    • fetch_figshare_file
    • get_available_datasets
    • get_example_data
    • get_rlmw_002
    • get_rlmw_002_short
    • get_rlmw_010_edf
    • get_nback_001
  • Signal processing
    • butter_lowpass
    • butter_lowpass_filter
    • lowpass_filter_iterative
    • smooth_window
    • downsample
    • zscale
    • bspline
    • baseline_envelope
    • baseline_envelope_iter_bspline
    • baseline_pupil_model
    • velocity_savgol
    • detect_blinks_velocity
    • detect_blinks_zero
    • blink_onsets_mahot
    • pupil_kernel
    • pupil_kernel_t
    • pupil_get_max_duration
    • plot_prf
    • pupil_build_design_matrix
    • pupil_response
    • pupil_response_coverage
    • pupilresponse_nnls
    • pupil_signal_quality
    • pupil_eye_offset
    • fake_pupil_baseline
    • fake_gaze_fixations
    • add_measurement_noise
    • generate_foreshortening_data
  • Geometry and gaze
    • ExperimentalSetup
    • SpatialCalibration
    • ForeshorteningCalibration
    • ROI
    • CircularROI
    • RectangularROI
  • Units
    • Quantity
    • Unit
    • parse_time
    • parse_distance
    • parse_angle
  • Viewer, settings and logging
    • view
    • tweak
    • set_default_inplace
    • get_default_inplace
    • logging_set_level
    • logging_get_level
    • logging_disable
    • logging_enable
    • loglevel
    • nologging
    • initialize_logging
  • API reference
  • Signal processing
  • detect_blinks_velocity

detect_blinks_velocity#

pypillometry.signal.detect_blinks_velocity(sy, smooth_winsize, vel_onset, vel_offset, min_onset_len=5, min_offset_len=5, min_blink_samples=1, max_blink_samples=None)[source]#

Detect blinks as everything between a fast downward and a fast upward-trending PD-changes.

Uses asymmetric Savitzky-Golay velocity estimation to handle NaN values properly: - Backward-looking velocity for onset detection (so future NaN doesn’t affect the estimate) - Forward-looking velocity for offset detection (so past NaN doesn’t affect the estimate)

This works similarly to blink_onsets_mahot().

Parameters:
  • sy (np.ndarray) – pupil data (can contain NaN or zeros for missing values)

  • smooth_winsize (int) – size of the Savitzky-Golay window in samples (odd)

  • vel_onset (float) – velocity-threshold to detect the onset of the blink; in units per sample (negative value)

  • vel_offset (float) – velocity-threshold to detect the offset of the blink; in units per sample (positive value)

  • min_onset_len (int) – number of consecutive samples that must cross the threshold to detect an onset (runs must have at least min_onset_len samples)

  • min_offset_len (int) – number of consecutive samples that must cross the threshold to detect an offset (runs must have at least min_offset_len samples)

  • min_blink_samples (int) – minimum duration of a blink in samples; offsets that would create shorter intervals are skipped during matching (to avoid spurious short offsets stealing real onsets)

  • max_blink_samples (int or None) – maximum duration of a blink in samples; an onset without an offset within this many samples is not a blink and is dropped (otherwise it would be paired with an arbitrarily distant offset); None means no limit

Return type:

np.ndarray

Returns:

array (nblinks x 2) of blink onset/offset sample indices (both inclusive); the offset is the last sample of the matching offset run, or the last sample of sy if no offset was found after the last onset (and max_blink_samples allows it); empty array if no blinks were found

previous

velocity_savgol

next

detect_blinks_zero

On this page
  • detect_blinks_velocity()
Edit on GitHub
Show Source

© Copyright 2020-2026, Matthias Mittner.

Created using Sphinx 9.2.0.

Built with the PyData Sphinx Theme 0.24.0.