Data Quality API¶
This is the focused API entry point for standardized gaze measurement quality. The functions remain vendor-neutral; Gazepoint-specific adaptation belongs in gp3tools.
Validation and canonical report¶
eyeprocesspy.validate_gaze_quality_inputs(data, x='gaze_x', y='gaze_y', time=None, target_x=None, target_y=None, by=None, unit='degrees', time_unit='ms', unit_column=None)
¶
Validate structural inputs without dropping or repairing observations.
eyeprocesspy.create_gaze_quality_report(data, x='gaze_x', y='gaze_y', time='timestamp_ms', target_x='target_x', target_y='target_y', valid=None, missing_reason=None, by=None, unit='degrees', output_unit=None, geometry=None, time_unit='ms', nominal_sampling_hz=None, bcea_probability=0.68, max_gap_ms=None, thresholds=None, preprocessing_spec=None, event_detector=None, aoi_specification=None, quality_rules=None, model_specification=None, software_version=None, unit_column=None)
¶
Create a manuscript-ready report; thresholds only flag rows for review.
Accuracy and precision¶
eyeprocesspy.compute_gaze_accuracy(data, x='gaze_x', y='gaze_y', target_x='target_x', target_y='target_y', by=None, unit='degrees', output_unit=None, geometry=None)
¶
Compute target-referenced gaze accuracy for each requested analysis unit.
eyeprocesspy.compute_rms_s2s(data, x='gaze_x', y='gaze_y', time=None, by=None, unit='degrees', output_unit=None, geometry=None, dimension='2d', time_unit='ms', max_gap_ms=None)
¶
Compute RMS sample-to-sample displacement without bridging missing samples.
eyeprocesspy.compute_gaze_sd_precision(data, x='gaze_x', y='gaze_y', by=None, unit='degrees', output_unit=None, geometry=None)
¶
Compute spatial standard-deviation precision around a stable target.
eyeprocesspy.compute_bcea(data, x='gaze_x', y='gaze_y', by=None, probability=0.68, unit='degrees', output_unit=None, geometry=None)
¶
Compute bivariate contour ellipse area (BCEA) at an explicit probability.
eyeprocesspy.compute_gaze_precision(data, **kwargs)
¶
Return the distinct RMS-S2S, SD, and BCEA precision representations.
Sampling and data availability¶
eyeprocesspy.estimate_sampling_interval(data, time='timestamp_ms', by=None, time_unit='ms')
¶
eyeprocesspy.estimate_sampling_jitter(data, time='timestamp_ms', by=None, time_unit='ms')
¶
eyeprocesspy.estimate_effective_sampling_rate(data, time='timestamp_ms', by=None, time_unit='ms', nominal_sampling_hz=None, dropped_interval_factor=1.5, x=None, y=None, valid=None)
¶
eyeprocesspy.compute_valid_sample_fraction(data, x='gaze_x', y='gaze_y', valid=None, by=None)
¶
eyeprocesspy.compute_gaze_data_loss(data, x='gaze_x', y='gaze_y', time='timestamp_ms', valid=None, missing_reason=None, by=None, time_unit='ms')
¶
Interpretation and reporting¶
Use the methodological guide for equations, units, appropriate use, and interpretation boundaries. The worked validation example demonstrates six synthetic quality profiles, while the sensitivity example shows how to vary review rules without hiding exclusions. The reporting guideline provides manuscript-ready items and limitations.
The broader package API also exposes summarise_spatial_quality(), summarise_sampling_quality(), session/condition comparison helpers, focused plots, plot_gaze_quality_dashboard(), report_gaze_quality(), and simulate_gaze_quality_calibration().