# Module eyekit.fixation

Defines the Fixation and FixationSequence objects, which are used to represent fixation data.

## Classes

 class Fixation (index: int, x: int, y: int, start: int, end: int, discarded: bool = False) 

Representation of a single fixation event. It is not usually necessary to create Fixation objects manually; they are created automatically during the instantiation of a FixationSequence.

### Instance variables

var x : int

X-coordinate of the fixation.

var y : int

Y-coordinate of the fixation.

var xy : tuple

XY-coordinates of the fixation.

var start : int

Start time of the fixation in milliseconds.

var end : int

End time of the fixation in milliseconds.

var duration : int

Duration of the fixation in milliseconds.

var discarded : bool

True if the fixation has been discarded, False otherwise.

var index

Index of the fixation in its parent FixationSequence

### Methods

 def discard(self) 

Mark this fixation as discarded. To completely remove the fixation, you should also call FixationSequence.purge().

 def serialize(self) 

Returns representation of the fixation as a tuple for serialization.

 class FixationSequence (sequence: list) 

Representation of a sequence of consecutive fixations, typically from a single trial.

Initialized with:

• sequence List of tuples of ints, or something similar, that conforms to the following structure: [(106, 540, 100, 200), (190, 536, 200, 300), ..., (763, 529, 1000, 1100)], where each tuple contains the X-coordinate, Y-coordinate, start time, and end time of a fixation.

### Instance variables

var start : int

Start time of the fixation sequence (in milliseconds).

var end : int

End time of the fixation sequence (in milliseconds).

var duration : int

Duration of the fixation sequence, incuding any gaps between fixations (in milliseconds).

### Methods

 def copy(self, include_discards=True) 

Returns a copy of the fixation sequence.

 def purge(self) 

Permanently removes all discarded fixations from the sequence, and reindexes the fixations.

 def iter_with_discards(self) 

Iterates over the fixation sequence including any discarded fixations. This is also the default behavior when iterating over a FixationSequence directly.

 def iter_without_discards(self) 

Iterates over the fixation sequence without any discarded fixations.

 def iter_pairs(self, include_discards=True) 

Iterate over fixations in consecutive pairs. This is useful if you want to compare consecutive fixations in some way. For example, if you wanted to detect when a fixation leaves an interest area, you might do something like this:

for curr_fxn, next_fxn in seq.iter_pairs():
if curr_fxn in interest_area and next_fxn not in interest_area:
print('A fixation has left the interest area')

 def serialize(self) 

Returns representation of the fixation sequence in simple list format for serialization.