GlobalSpeedValidator class

Validate minimal movement speed.

The validation is of the average speed per trial. The validator can also interpolate the speed limit, i.e., impose the limit on the average speed from time=0 until any time point during the trial.

Methods and properties:

class trajtracker.validators.GlobalSpeedValidator(enabled=True, origin_coord=None, end_coord=None, axis=<ValidationAxis.y: 2>, grace_period=None, max_movement_time=None, milestones=None, show_guide=False)
__init__(enabled=True, origin_coord=None, end_coord=None, axis=<ValidationAxis.y: 2>, grace_period=None, max_movement_time=None, milestones=None, show_guide=False)

Constructor - invoked when you create a new object by writing GlobalSpeedValidator()

Parameters:
axis

The ValidationAxis on which speed is validated

  • ValidationAxis.x or ValidationAxis.y: limit the speed in the relevant axis.
  • ValidationAxis.xy: limit the diagonal speed
disable_event

The event on which the object should be disabled. This will work only when the object is registered to an EventManager

Type:Event
enable_event

The event on which the object should be enabled. This will work only when the object is registered to an EventManager

Type:Event
enabled

Whether the object is currently functioning or disabled

Type:bool
end_coord

The coordinate (x or y) in which the speed validation end (i.e., end-of-trial coordinate) The value of this attribute is a single number

get_expected_coord_at_time(time)

Return the minimnal coordinate (x or y, depending on axis) that should be obtained in a given time

grace_period

The grace period in the beginning of each trial, during which speed is not validated (in seconds).

guide

An object (trajtracker.validators.GlobalSpeedGuide) that takes care of showing a visual guide for the speed limit (read-only property)

guide_line_length

The length of the speed guide line (int)

guide_warning_time_delta

If the time difference between the mouse/finger current coordinate and the required coordinate is less than this value, the visual line guide will change its color.

log_level

Logging level of this object: trajtracker.log_none, log_error (default), log_warn, log_info, log_debug, log_trace

max_movement_time

The maximal duration of a trial (in seconds).

milestones

This attribute indicates how the overall speed limit (max_movement_time) should be interpolated.

By default, the interpolation is linear. But you can define several milestones - e.g., “mouse/finger must complete X% of the way within Y% of the trial’s total duration”. The milestones split the trials into sections and define the speed goal per section. Within each section, the interpolation is linear.

Each milestone is defined by the duration and distance of the relevant section, specified as the percentage out of the total trial duration / total movement distance. The durations and distances of all milestones must sum to 1.0 (= 100%).

This property is an array of milestones. Each of them is a GlobalSpeedValidator.Milestone object (but when setting the property value, you can use a (time, distance) tuple/list instead).

movement_started(time)

Called when the finger/mouse starts moving

origin_coord

The coordinate (x or y) in which the speed validation starts The value of this attribute is a single number

reset(time0=None)

Called when a trial starts - reset any previous movement

show_guide

Whether to visualize the speed limit as a moving line (bool).

Note: Even when this is TRUE, you need to present() the guide line (validator.guide.stimulus) yourself by putting it in a StimulusContainer

update_xyt(position, time_in_trial, time_in_session=None)

Validate movement.

Parameters:
  • time_in_trial – Time from start of trial
  • time_in_session – ignored
Returns:

None if all OK; ExperimentError object if error