Skip to content

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().