Handling Gaze Events#

What you will learn in this tutorial:#

  • how to detect different events using different algorithms like IDT, IVT and microsaccades

  • how to compute event properties like peak velocity and amplitude

  • how to save and load your event data

Preparations#

At first we import pymovements as the alias pm for convenience.

[1]:
import pymovements as pm

Then we download a dataset ToyDataset and load its data:

[2]:
dataset = pm.Dataset('ToyDataset', path='data/ToyDataset')
dataset.download()
dataset.load()
INFO:pymovements.dataset.dataset:
        You are downloading the pymovements Toy Dataset. Please be aware that pymovements does not
        host or distribute any dataset resources and only provides a convenient interface to
        download the public dataset resources that were published by their respective authors.

        Please cite the referenced publication if you intend to use the dataset in your research.

Downloading http://github.com/aeye-lab/pymovements-toy-dataset/zipball/6cb5d663317bf418cec0c9abe1dde5085a8a8ebd/ to data/ToyDataset/downloads/pymovements-toy-dataset.zip
Checking integrity of pymovements-toy-dataset.zip
Extracting pymovements-toy-dataset.zip to data/ToyDataset/raw
100%|██████████| 23/23 [00:00<00:00, 341.33it/s]
[2]:
Dataset
  • DatasetDefinition
    DatasetDefinition
    • None
      None
    • dict (0 items)
      • dict (1 items)
        • dict (4 items)
          • list (5 items)
            • 'timestamp'
            • 'x'
            • (3 more)
          • dict (5 items)
            • Float64
              Float64
            • Float64
              Float64
            • (3 more)
          • (2 more)
      • None
        None
      • Experiment
        Experiment
        • EyeTracker
          EyeTracker
          • None
            None
          • None
            None
          • None
            None
          • None
            None
          • 1000
            1000
          • None
            None
          • None
            None
        • 1000
          1000
        • Screen
          Screen
          • 68
            68
          • 30.2
            30.2
          • 1024
            1024
          • 'upper left'
            'upper left'
          • 38
            38
          • 1280
            1280
          • 15.599386487782953
            15.599386487782953
          • -15.599386487782953
            -15.599386487782953
          • 12.508044410882546
            12.508044410882546
          • -12.508044410882546
            -12.508044410882546
      • None
        None
      • dict (1 items)
        • 'trial_{text_id:d}_{page_id:d}.csv'
          'trial_{text_id:d}_{page_id:d}.csv'
      • dict (1 items)
        • dict (2 items)
          • <class 'int'>
            <class 'int'>
          • <class 'int'>
            <class 'int'>
      • True
        True
      • 'pymovements Toy Dataset'
        'pymovements Toy Dataset'
      • dict (0 items)
        • 'ToyDataset'
          'ToyDataset'
        • list (2 items)
          • 'x'
          • 'y'
        • None
          None
        • list (1 items)
          • ResourceDefinition
            • 'gaze'
              'gaze'
            • 'pymovements-toy-dataset.zip'
              'pymovements-toy-dataset.zip'
            • 'trial_{text_id:d}_{page_id:d}.csv'
              'trial_{text_id:d}_{page_id:d}.csv'
            • dict (2 items)
              • <class 'int'>
                <class 'int'>
              • <class 'int'>
                <class 'int'>
            • '4da622457637a8181d86601fe17f3aa8'
              '4da622457637a8181d86601fe17f3aa8'
            • str
              'http://github.com/aeye-lab/pymovements-toy-dataset/zipball/6cb5d663317bf418cec0c9abe1dde5085a8a8ebd/'
        • 'timestamp'
          'timestamp'
        • 'ms'
          'ms'
        • None
          None
        • None
          None
      • list (0 items)
        • dict (1 items)
          • DataFrame (3 columns, 20 rows)
            shape: (20, 3)
            text_idpage_idfilepath
            i64i64str
            01"aeye-lab-pymovements-toy-datas…
            02"aeye-lab-pymovements-toy-datas…
            03"aeye-lab-pymovements-toy-datas…
            04"aeye-lab-pymovements-toy-datas…
            05"aeye-lab-pymovements-toy-datas…
            31"aeye-lab-pymovements-toy-datas…
            32"aeye-lab-pymovements-toy-datas…
            33"aeye-lab-pymovements-toy-datas…
            34"aeye-lab-pymovements-toy-datas…
            35"aeye-lab-pymovements-toy-datas…
        • list (20 items)
          • Gaze
            • DataFrame (6 columns, 17223 rows)
              shape: (17_223, 6)
              timestimuli_xstimuli_ytext_idpage_idpixel
              i64f64f64i64i64list[f64]
              1988145-1.0-1.001[206.8, 152.4]
              1988146-1.0-1.001[206.9, 152.1]
              1988147-1.0-1.001[207.0, 151.8]
              1988148-1.0-1.001[207.1, 151.7]
              1988149-1.0-1.001[207.0, 151.5]
              2005363-1.0-1.001[361.0, 415.4]
              2005364-1.0-1.001[358.0, 414.5]
              2005365-1.0-1.001[355.8, 413.8]
              2005366-1.0-1.001[353.1, 413.2]
              2005367-1.0-1.001[351.2, 412.9]
            • Events
              Events
              • DataFrame (6 columns, 0 rows)
                shape: (0, 6)
                text_idpage_idnameonsetoffsetduration
                i64i64stri64i64i64
              • list (2 items)
                • 'text_id'
                • 'page_id'
            • list (2 items)
              • 'text_id'
              • 'page_id'
            • Experiment
              Experiment
              • EyeTracker
                EyeTracker
                • None
                  None
                • None
                  None
                • None
                  None
                • None
                  None
                • 1000
                  1000
                • None
                  None
                • None
                  None
              • 1000
                1000
              • Screen
                Screen
                • 68
                  68
                • 30.2
                  30.2
                • 1024
                  1024
                • 'upper left'
                  'upper left'
                • 38
                  38
                • 1280
                  1280
                • 15.599386487782953
                  15.599386487782953
                • -15.599386487782953
                  -15.599386487782953
                • 12.508044410882546
                  12.508044410882546
                • -12.508044410882546
                  -12.508044410882546
          • Gaze
            • DataFrame (6 columns, 29799 rows)
              shape: (29_799, 6)
              timestimuli_xstimuli_ytext_idpage_idpixel
              i64f64f64i64i64list[f64]
              2008305-1.0-1.002[141.4, 153.6]
              2008306-1.0-1.002[141.1, 153.2]
              2008307-1.0-1.002[140.7, 152.8]
              2008308-1.0-1.002[140.6, 152.7]
              2008309-1.0-1.002[140.5, 152.6]
              2038099-1.0-1.002[273.8, 773.8]
              2038100-1.0-1.002[273.8, 774.1]
              2038101-1.0-1.002[273.9, 774.5]
              2038102-1.0-1.002[274.0, 774.4]
              2038103-1.0-1.002[274.0, 773.9]
            • Events
              Events
              • DataFrame (6 columns, 0 rows)
                shape: (0, 6)
                text_idpage_idnameonsetoffsetduration
                i64i64stri64i64i64
              • list (2 items)
                • 'text_id'
                • 'page_id'
            • list (2 items)
              • 'text_id'
              • 'page_id'
            • Experiment
              Experiment
              • EyeTracker
                EyeTracker
                • None
                  None
                • None
                  None
                • None
                  None
                • None
                  None
                • 1000
                  1000
                • None
                  None
                • None
                  None
              • 1000
                1000
              • Screen
                Screen
                • 68
                  68
                • 30.2
                  30.2
                • 1024
                  1024
                • 'upper left'
                  'upper left'
                • 38
                  38
                • 1280
                  1280
                • 15.599386487782953
                  15.599386487782953
                • -15.599386487782953
                  -15.599386487782953
                • 12.508044410882546
                  12.508044410882546
                • -12.508044410882546
                  -12.508044410882546
          • (18 more)
        • PosixPath('data/ToyDataset')
          PosixPath('data/ToyDataset')
        • DatasetPaths
          DatasetPaths
          • PosixPath('data/ToyDataset')
            PosixPath('data/ToyDataset')
          • PosixPath('data/ToyDataset/downloads')
            PosixPath('data/ToyDataset/downloads')
          • PosixPath('data/ToyDataset/events')
            PosixPath('data/ToyDataset/events')
          • PosixPath('data/ToyDataset/precomputed_events')
            PosixPath('data/ToyDataset/precomputed_events')
          • PosixPath
            PosixPath('data/ToyDataset/precomputed_reading_measures')
          • PosixPath('data/ToyDataset/preprocessed')
            PosixPath('data/ToyDataset/preprocessed')
          • PosixPath('data/ToyDataset/raw')
            PosixPath('data/ToyDataset/raw')
          • PosixPath('data/ToyDataset')
            PosixPath('data/ToyDataset')
        • list (0 items)
          • list (0 items)

            The dataset consist of gaze data in 20 files (check Dataset/gaze above). Every Gaze has some samples with six columns (check Gaze/samples): [time, stimuli_x, stimuli_y, text_id, page_id, pixel]. The Gaze/events DataFrame is empty so far. To be able to calculate events, we need to do some basic preprocessing, which will add new columns to the dataset samples DataFrame:

            • pix2deg(): adds position column with degrees from the screen center needed by the idt algorithm

            • pos2vel(): adds velocity column with gaze velocities needed by microsaccades and ivt algorithms

            [3]:
            
            dataset.pix2deg()
            dataset.pos2vel('smooth')
            dataset.gaze[0]
            
            [3]:
            
            Gaze
            • DataFrame (8 columns, 17223 rows)
              shape: (17_223, 8)
              timestimuli_xstimuli_ytext_idpage_idpixelpositionvelocity
              i64f64f64i64i64list[f64]list[f64]list[f64]
              1988145-1.0-1.001[206.8, 152.4][-10.697598, -8.852399][null, null]
              1988146-1.0-1.001[206.9, 152.1][-10.695183, -8.859678][null, null]
              1988147-1.0-1.001[207.0, 151.8][-10.692768, -8.866956][1.610194, -5.256267]
              1988148-1.0-1.001[207.1, 151.7][-10.690352, -8.869381][0.402548, -4.447465]
              1988149-1.0-1.001[207.0, 151.5][-10.692768, -8.874233][0.402561, -3.234462]
              2005363-1.0-1.001[361.0, 415.4][-6.932438, -2.386672][-63.266374, -21.085616]
              2005364-1.0-1.001[358.0, 414.5][-7.006376, -2.408998][-63.249652, -19.431326]
              2005365-1.0-1.001[355.8, 413.8][-7.060582, -2.426362][-60.359624, -15.710061]
              2005366-1.0-1.001[353.1, 413.2][-7.12709, -2.441245][null, null]
              2005367-1.0-1.001[351.2, 412.9][-7.173881, -2.448686][null, null]
            • Events
              Events
              • DataFrame (6 columns, 0 rows)
                shape: (0, 6)
                text_idpage_idnameonsetoffsetduration
                i64i64stri64i64i64
              • list (2 items)
                • 'text_id'
                • 'page_id'
            • list (2 items)
              • 'text_id'
              • 'page_id'
            • Experiment
              Experiment
              • EyeTracker
                EyeTracker
                • None
                  None
                • None
                  None
                • None
                  None
                • None
                  None
                • 1000
                  1000
                • None
                  None
                • None
                  None
              • 1000
                1000
              • Screen
                Screen
                • 68
                  68
                • 30.2
                  30.2
                • 1024
                  1024
                • 'upper left'
                  'upper left'
                • 38
                  38
                • 1280
                  1280
                • 15.599386487782953
                  15.599386487782953
                • -15.599386487782953
                  -15.599386487782953
                • 12.508044410882546
                  12.508044410882546
                • -12.508044410882546
                  -12.508044410882546

            Now every Gaze/samples DataFrame has two more columns: position and velocity which will be used by the event detection algorithms.

            Detecting Events#

            pymovements provides a range of event detection methods for several types of gaze events.

            See the reference for pymovements.events to get an overview of all the supported methods.

            For this tutorial we will use the I-DT and I-VT (idt and ivt) algorithms for detecting fixations and the microsaccades algorithm for detecting saccades.

            Let’s start with fixations detection using the idt algorithm with the dispersion_threshold equal to 2.7:

            [4]:
            
            dataset.detect_events('idt', dispersion_threshold=2.7)
            
            [4]:
            
            Dataset
            • DatasetDefinition
              DatasetDefinition
              • None
                None
              • dict (0 items)
                • dict (1 items)
                  • dict (4 items)
                    • list (5 items)
                      • 'timestamp'
                      • 'x'
                      • (3 more)
                    • dict (5 items)
                      • Float64
                        Float64
                      • Float64
                        Float64
                      • (3 more)
                    • (2 more)
                • None
                  None
                • Experiment
                  Experiment
                  • EyeTracker
                    EyeTracker
                    • None
                      None
                    • None
                      None
                    • None
                      None
                    • None
                      None
                    • 1000
                      1000
                    • None
                      None
                    • None
                      None
                  • 1000
                    1000
                  • Screen
                    Screen
                    • 68
                      68
                    • 30.2
                      30.2
                    • 1024
                      1024
                    • 'upper left'
                      'upper left'
                    • 38
                      38
                    • 1280
                      1280
                    • 15.599386487782953
                      15.599386487782953
                    • -15.599386487782953
                      -15.599386487782953
                    • 12.508044410882546
                      12.508044410882546
                    • -12.508044410882546
                      -12.508044410882546
                • None
                  None
                • dict (1 items)
                  • 'trial_{text_id:d}_{page_id:d}.csv'
                    'trial_{text_id:d}_{page_id:d}.csv'
                • dict (1 items)
                  • dict (2 items)
                    • <class 'int'>
                      <class 'int'>
                    • <class 'int'>
                      <class 'int'>
                • True
                  True
                • 'pymovements Toy Dataset'
                  'pymovements Toy Dataset'
                • dict (0 items)
                  • 'ToyDataset'
                    'ToyDataset'
                  • list (2 items)
                    • 'x'
                    • 'y'
                  • None
                    None
                  • list (1 items)
                    • ResourceDefinition
                      • 'gaze'
                        'gaze'
                      • 'pymovements-toy-dataset.zip'
                        'pymovements-toy-dataset.zip'
                      • 'trial_{text_id:d}_{page_id:d}.csv'
                        'trial_{text_id:d}_{page_id:d}.csv'
                      • dict (2 items)
                        • <class 'int'>
                          <class 'int'>
                        • <class 'int'>
                          <class 'int'>
                      • '4da622457637a8181d86601fe17f3aa8'
                        '4da622457637a8181d86601fe17f3aa8'
                      • str
                        'http://github.com/aeye-lab/pymovements-toy-dataset/zipball/6cb5d663317bf418cec0c9abe1dde5085a8a8ebd/'
                  • 'timestamp'
                    'timestamp'
                  • 'ms'
                    'ms'
                  • None
                    None
                  • None
                    None
                • list (20 items)
                  • Events
                    • DataFrame (6 columns, 56 rows)
                      shape: (56, 6)
                      text_idpage_idnameonsetoffsetduration
                      i64i64stri64i64i64
                      01"fixation"19881451988563418
                      01"fixation"19885641988750186
                      01"fixation"19887511989178427
                      01"fixation"19891791989436257
                      01"fixation"19894371989600163
                      01"fixation"20039292004090161
                      01"fixation"20040912004363272
                      01"fixation"20043642004883519
                      01"fixation"20048852005116231
                      01"fixation"20051172005298181
                    • list (2 items)
                      • 'text_id'
                      • 'page_id'
                  • Events
                    • DataFrame (6 columns, 94 rows)
                      shape: (94, 6)
                      text_idpage_idnameonsetoffsetduration
                      i64i64stri64i64i64
                      02"fixation"20083052008621316
                      02"fixation"20086222008821199
                      02"fixation"20088222009214392
                      02"fixation"20092152009433218
                      02"fixation"20094342009704270
                      02"fixation"20368402037175335
                      02"fixation"20371762037424248
                      02"fixation"20374622037644182
                      02"fixation"20376452037824179
                      02"fixation"20378252038103278
                    • list (2 items)
                      • 'text_id'
                      • 'page_id'
                  • (18 more)
                • dict (1 items)
                  • DataFrame (3 columns, 20 rows)
                    shape: (20, 3)
                    text_idpage_idfilepath
                    i64i64str
                    01"aeye-lab-pymovements-toy-datas…
                    02"aeye-lab-pymovements-toy-datas…
                    03"aeye-lab-pymovements-toy-datas…
                    04"aeye-lab-pymovements-toy-datas…
                    05"aeye-lab-pymovements-toy-datas…
                    31"aeye-lab-pymovements-toy-datas…
                    32"aeye-lab-pymovements-toy-datas…
                    33"aeye-lab-pymovements-toy-datas…
                    34"aeye-lab-pymovements-toy-datas…
                    35"aeye-lab-pymovements-toy-datas…
                • list (20 items)
                  • Gaze
                    • DataFrame (8 columns, 17223 rows)
                      shape: (17_223, 8)
                      timestimuli_xstimuli_ytext_idpage_idpixelpositionvelocity
                      i64f64f64i64i64list[f64]list[f64]list[f64]
                      1988145-1.0-1.001[206.8, 152.4][-10.697598, -8.852399][null, null]
                      1988146-1.0-1.001[206.9, 152.1][-10.695183, -8.859678][null, null]
                      1988147-1.0-1.001[207.0, 151.8][-10.692768, -8.866956][1.610194, -5.256267]
                      1988148-1.0-1.001[207.1, 151.7][-10.690352, -8.869381][0.402548, -4.447465]
                      1988149-1.0-1.001[207.0, 151.5][-10.692768, -8.874233][0.402561, -3.234462]
                      2005363-1.0-1.001[361.0, 415.4][-6.932438, -2.386672][-63.266374, -21.085616]
                      2005364-1.0-1.001[358.0, 414.5][-7.006376, -2.408998][-63.249652, -19.431326]
                      2005365-1.0-1.001[355.8, 413.8][-7.060582, -2.426362][-60.359624, -15.710061]
                      2005366-1.0-1.001[353.1, 413.2][-7.12709, -2.441245][null, null]
                      2005367-1.0-1.001[351.2, 412.9][-7.173881, -2.448686][null, null]
                    • Events
                      Events
                      • DataFrame (6 columns, 56 rows)
                        shape: (56, 6)
                        text_idpage_idnameonsetoffsetduration
                        i64i64stri64i64i64
                        01"fixation"19881451988563418
                        01"fixation"19885641988750186
                        01"fixation"19887511989178427
                        01"fixation"19891791989436257
                        01"fixation"19894371989600163
                        01"fixation"20039292004090161
                        01"fixation"20040912004363272
                        01"fixation"20043642004883519
                        01"fixation"20048852005116231
                        01"fixation"20051172005298181
                      • list (2 items)
                        • 'text_id'
                        • 'page_id'
                    • list (2 items)
                      • 'text_id'
                      • 'page_id'
                    • Experiment
                      Experiment
                      • EyeTracker
                        EyeTracker
                        • None
                          None
                        • None
                          None
                        • None
                          None
                        • None
                          None
                        • 1000
                          1000
                        • None
                          None
                        • None
                          None
                      • 1000
                        1000
                      • Screen
                        Screen
                        • 68
                          68
                        • 30.2
                          30.2
                        • 1024
                          1024
                        • 'upper left'
                          'upper left'
                        • 38
                          38
                        • 1280
                          1280
                        • 15.599386487782953
                          15.599386487782953
                        • -15.599386487782953
                          -15.599386487782953
                        • 12.508044410882546
                          12.508044410882546
                        • -12.508044410882546
                          -12.508044410882546
                  • Gaze
                    • DataFrame (8 columns, 29799 rows)
                      shape: (29_799, 8)
                      timestimuli_xstimuli_ytext_idpage_idpixelpositionvelocity
                      i64f64f64i64i64list[f64]list[f64]list[f64]
                      2008305-1.0-1.002[141.4, 153.6][-12.268583, -8.823284][null, null]
                      2008306-1.0-1.002[141.1, 153.2][-12.275749, -8.832989][null, null]
                      2008307-1.0-1.002[140.7, 152.8][-12.285302, -8.842695][-5.572617, -6.065816]
                      2008308-1.0-1.002[140.6, 152.7][-12.28769, -8.845121][-3.582268, -4.043733]
                      2008309-1.0-1.002[140.5, 152.6][-12.290078, -8.847547][-2.388085, -2.021821]
                      2038099-1.0-1.002[273.8, 773.8][-9.071149, 6.490168][1.21962, 1.635403]
                      2038100-1.0-1.002[273.8, 774.1][-9.071149, 6.497527][1.626175, 4.497406]
                      2038101-1.0-1.002[273.9, 774.5][-9.06871, 6.50734][1.626186, 1.635423]
                      2038102-1.0-1.002[274.0, 774.4][-9.066271, 6.504886][null, null]
                      2038103-1.0-1.002[274.0, 773.9][-9.066271, 6.492621][null, null]
                    • Events
                      Events
                      • DataFrame (6 columns, 94 rows)
                        shape: (94, 6)
                        text_idpage_idnameonsetoffsetduration
                        i64i64stri64i64i64
                        02"fixation"20083052008621316
                        02"fixation"20086222008821199
                        02"fixation"20088222009214392
                        02"fixation"20092152009433218
                        02"fixation"20094342009704270
                        02"fixation"20368402037175335
                        02"fixation"20371762037424248
                        02"fixation"20374622037644182
                        02"fixation"20376452037824179
                        02"fixation"20378252038103278
                      • list (2 items)
                        • 'text_id'
                        • 'page_id'
                    • list (2 items)
                      • 'text_id'
                      • 'page_id'
                    • Experiment
                      Experiment
                      • EyeTracker
                        EyeTracker
                        • None
                          None
                        • None
                          None
                        • None
                          None
                        • None
                          None
                        • 1000
                          1000
                        • None
                          None
                        • None
                          None
                      • 1000
                        1000
                      • Screen
                        Screen
                        • 68
                          68
                        • 30.2
                          30.2
                        • 1024
                          1024
                        • 'upper left'
                          'upper left'
                        • 38
                          38
                        • 1280
                          1280
                        • 15.599386487782953
                          15.599386487782953
                        • -15.599386487782953
                          -15.599386487782953
                        • 12.508044410882546
                          12.508044410882546
                        • -12.508044410882546
                          -12.508044410882546
                  • (18 more)
                • PosixPath('data/ToyDataset')
                  PosixPath('data/ToyDataset')
                • DatasetPaths
                  DatasetPaths
                  • PosixPath('data/ToyDataset')
                    PosixPath('data/ToyDataset')
                  • PosixPath('data/ToyDataset/downloads')
                    PosixPath('data/ToyDataset/downloads')
                  • PosixPath('data/ToyDataset/events')
                    PosixPath('data/ToyDataset/events')
                  • PosixPath('data/ToyDataset/precomputed_events')
                    PosixPath('data/ToyDataset/precomputed_events')
                  • PosixPath
                    PosixPath('data/ToyDataset/precomputed_reading_measures')
                  • PosixPath('data/ToyDataset/preprocessed')
                    PosixPath('data/ToyDataset/preprocessed')
                  • PosixPath('data/ToyDataset/raw')
                    PosixPath('data/ToyDataset/raw')
                  • PosixPath('data/ToyDataset')
                    PosixPath('data/ToyDataset')
                • list (0 items)
                  • list (0 items)

                    The detected events are added as rows with the name fixation to the event dataframe:

                    [5]:
                    
                    dataset.events[0]
                    
                    [5]:
                    
                    Events
                    • DataFrame (6 columns, 56 rows)
                      shape: (56, 6)
                      text_idpage_idnameonsetoffsetduration
                      i64i64stri64i64i64
                      01"fixation"19881451988563418
                      01"fixation"19885641988750186
                      01"fixation"19887511989178427
                      01"fixation"19891791989436257
                      01"fixation"19894371989600163
                      01"fixation"20039292004090161
                      01"fixation"20040912004363272
                      01"fixation"20043642004883519
                      01"fixation"20048852005116231
                      01"fixation"20051172005298181
                    • list (2 items)
                      • 'text_id'
                      • 'page_id'

                    As you can see, 56 fixations were found for the first file.

                    Now let’s try another algorithm ivt with velocity_threshold=20. Because we don’t want to mix fixations found by different algorithms we add name parameter with ‘fixation.ivt’

                    [6]:
                    
                    dataset.detect_events('ivt', velocity_threshold=20, name='fixation.ivt')
                    dataset.events[0]
                    
                    [6]:
                    
                    Events
                    • DataFrame (6 columns, 129 rows)
                      shape: (129, 6)
                      text_idpage_idnameonsetoffsetduration
                      i64i64stri64i64i64
                      01"fixation"19881451988563418
                      01"fixation"19885641988750186
                      01"fixation"19887511989178427
                      01"fixation"19891791989436257
                      01"fixation"19894371989600163
                      01"fixation.ivt"20041322004331199
                      01"fixation.ivt"20043992004687288
                      01"fixation.ivt"20047142004878164
                      01"fixation.ivt"20049312005109178
                      01"fixation.ivt"20051382005287149
                    • list (2 items)
                      • 'text_id'
                      • 'page_id'

                    Now we have additional rows with name=’fixations.ivt’.

                    Let’s try to use the microsaccades algorithm to detect fixations.

                    [7]:
                    
                    dataset.detect_events('microsaccades', minimum_duration=12)
                    
                    [7]:
                    
                    Dataset
                    • DatasetDefinition
                      DatasetDefinition
                      • None
                        None
                      • dict (0 items)
                        • dict (1 items)
                          • dict (4 items)
                            • list (5 items)
                              • 'timestamp'
                              • 'x'
                              • (3 more)
                            • dict (5 items)
                              • Float64
                                Float64
                              • Float64
                                Float64
                              • (3 more)
                            • (2 more)
                        • None
                          None
                        • Experiment
                          Experiment
                          • EyeTracker
                            EyeTracker
                            • None
                              None
                            • None
                              None
                            • None
                              None
                            • None
                              None
                            • 1000
                              1000
                            • None
                              None
                            • None
                              None
                          • 1000
                            1000
                          • Screen
                            Screen
                            • 68
                              68
                            • 30.2
                              30.2
                            • 1024
                              1024
                            • 'upper left'
                              'upper left'
                            • 38
                              38
                            • 1280
                              1280
                            • 15.599386487782953
                              15.599386487782953
                            • -15.599386487782953
                              -15.599386487782953
                            • 12.508044410882546
                              12.508044410882546
                            • -12.508044410882546
                              -12.508044410882546
                        • None
                          None
                        • dict (1 items)
                          • 'trial_{text_id:d}_{page_id:d}.csv'
                            'trial_{text_id:d}_{page_id:d}.csv'
                        • dict (1 items)
                          • dict (2 items)
                            • <class 'int'>
                              <class 'int'>
                            • <class 'int'>
                              <class 'int'>
                        • True
                          True
                        • 'pymovements Toy Dataset'
                          'pymovements Toy Dataset'
                        • dict (0 items)
                          • 'ToyDataset'
                            'ToyDataset'
                          • list (2 items)
                            • 'x'
                            • 'y'
                          • None
                            None
                          • list (1 items)
                            • ResourceDefinition
                              • 'gaze'
                                'gaze'
                              • 'pymovements-toy-dataset.zip'
                                'pymovements-toy-dataset.zip'
                              • 'trial_{text_id:d}_{page_id:d}.csv'
                                'trial_{text_id:d}_{page_id:d}.csv'
                              • dict (2 items)
                                • <class 'int'>
                                  <class 'int'>
                                • <class 'int'>
                                  <class 'int'>
                              • '4da622457637a8181d86601fe17f3aa8'
                                '4da622457637a8181d86601fe17f3aa8'
                              • str
                                'http://github.com/aeye-lab/pymovements-toy-dataset/zipball/6cb5d663317bf418cec0c9abe1dde5085a8a8ebd/'
                          • 'timestamp'
                            'timestamp'
                          • 'ms'
                            'ms'
                          • None
                            None
                          • None
                            None
                        • list (20 items)
                          • Events
                            • DataFrame (6 columns, 222 rows)
                              shape: (222, 6)
                              text_idpage_idnameonsetoffsetduration
                              i64i64stri64i64i64
                              01"fixation"19881451988563418
                              01"fixation"19885641988750186
                              01"fixation"19887511989178427
                              01"fixation"19891791989436257
                              01"fixation"19894371989600163
                              01"saccade"2004373200438512
                              01"saccade"2004688200470416
                              01"saccade"2004879200490122
                              01"saccade"2005110200512616
                              01"saccade"2005288200534557
                            • list (2 items)
                              • 'text_id'
                              • 'page_id'
                          • Events
                            • DataFrame (6 columns, 366 rows)
                              shape: (366, 6)
                              text_idpage_idnameonsetoffsetduration
                              i64i64stri64i64i64
                              02"fixation"20083052008621316
                              02"fixation"20086222008821199
                              02"fixation"20088222009214392
                              02"fixation"20092152009433218
                              02"fixation"20094342009704270
                              02"saccade"2036849203686112
                              02"saccade"2037161203718827
                              02"saccade"2037412203750391
                              02"saccade"2037638203765416
                              02"saccade"2037812203783018
                            • list (2 items)
                              • 'text_id'
                              • 'page_id'
                          • (18 more)
                        • dict (1 items)
                          • DataFrame (3 columns, 20 rows)
                            shape: (20, 3)
                            text_idpage_idfilepath
                            i64i64str
                            01"aeye-lab-pymovements-toy-datas…
                            02"aeye-lab-pymovements-toy-datas…
                            03"aeye-lab-pymovements-toy-datas…
                            04"aeye-lab-pymovements-toy-datas…
                            05"aeye-lab-pymovements-toy-datas…
                            31"aeye-lab-pymovements-toy-datas…
                            32"aeye-lab-pymovements-toy-datas…
                            33"aeye-lab-pymovements-toy-datas…
                            34"aeye-lab-pymovements-toy-datas…
                            35"aeye-lab-pymovements-toy-datas…
                        • list (20 items)
                          • Gaze
                            • DataFrame (8 columns, 17223 rows)
                              shape: (17_223, 8)
                              timestimuli_xstimuli_ytext_idpage_idpixelpositionvelocity
                              i64f64f64i64i64list[f64]list[f64]list[f64]
                              1988145-1.0-1.001[206.8, 152.4][-10.697598, -8.852399][null, null]
                              1988146-1.0-1.001[206.9, 152.1][-10.695183, -8.859678][null, null]
                              1988147-1.0-1.001[207.0, 151.8][-10.692768, -8.866956][1.610194, -5.256267]
                              1988148-1.0-1.001[207.1, 151.7][-10.690352, -8.869381][0.402548, -4.447465]
                              1988149-1.0-1.001[207.0, 151.5][-10.692768, -8.874233][0.402561, -3.234462]
                              2005363-1.0-1.001[361.0, 415.4][-6.932438, -2.386672][-63.266374, -21.085616]
                              2005364-1.0-1.001[358.0, 414.5][-7.006376, -2.408998][-63.249652, -19.431326]
                              2005365-1.0-1.001[355.8, 413.8][-7.060582, -2.426362][-60.359624, -15.710061]
                              2005366-1.0-1.001[353.1, 413.2][-7.12709, -2.441245][null, null]
                              2005367-1.0-1.001[351.2, 412.9][-7.173881, -2.448686][null, null]
                            • Events
                              Events
                              • DataFrame (6 columns, 222 rows)
                                shape: (222, 6)
                                text_idpage_idnameonsetoffsetduration
                                i64i64stri64i64i64
                                01"fixation"19881451988563418
                                01"fixation"19885641988750186
                                01"fixation"19887511989178427
                                01"fixation"19891791989436257
                                01"fixation"19894371989600163
                                01"saccade"2004373200438512
                                01"saccade"2004688200470416
                                01"saccade"2004879200490122
                                01"saccade"2005110200512616
                                01"saccade"2005288200534557
                              • list (2 items)
                                • 'text_id'
                                • 'page_id'
                            • list (2 items)
                              • 'text_id'
                              • 'page_id'
                            • Experiment
                              Experiment
                              • EyeTracker
                                EyeTracker
                                • None
                                  None
                                • None
                                  None
                                • None
                                  None
                                • None
                                  None
                                • 1000
                                  1000
                                • None
                                  None
                                • None
                                  None
                              • 1000
                                1000
                              • Screen
                                Screen
                                • 68
                                  68
                                • 30.2
                                  30.2
                                • 1024
                                  1024
                                • 'upper left'
                                  'upper left'
                                • 38
                                  38
                                • 1280
                                  1280
                                • 15.599386487782953
                                  15.599386487782953
                                • -15.599386487782953
                                  -15.599386487782953
                                • 12.508044410882546
                                  12.508044410882546
                                • -12.508044410882546
                                  -12.508044410882546
                          • Gaze
                            • DataFrame (8 columns, 29799 rows)
                              shape: (29_799, 8)
                              timestimuli_xstimuli_ytext_idpage_idpixelpositionvelocity
                              i64f64f64i64i64list[f64]list[f64]list[f64]
                              2008305-1.0-1.002[141.4, 153.6][-12.268583, -8.823284][null, null]
                              2008306-1.0-1.002[141.1, 153.2][-12.275749, -8.832989][null, null]
                              2008307-1.0-1.002[140.7, 152.8][-12.285302, -8.842695][-5.572617, -6.065816]
                              2008308-1.0-1.002[140.6, 152.7][-12.28769, -8.845121][-3.582268, -4.043733]
                              2008309-1.0-1.002[140.5, 152.6][-12.290078, -8.847547][-2.388085, -2.021821]
                              2038099-1.0-1.002[273.8, 773.8][-9.071149, 6.490168][1.21962, 1.635403]
                              2038100-1.0-1.002[273.8, 774.1][-9.071149, 6.497527][1.626175, 4.497406]
                              2038101-1.0-1.002[273.9, 774.5][-9.06871, 6.50734][1.626186, 1.635423]
                              2038102-1.0-1.002[274.0, 774.4][-9.066271, 6.504886][null, null]
                              2038103-1.0-1.002[274.0, 773.9][-9.066271, 6.492621][null, null]
                            • Events
                              Events
                              • DataFrame (6 columns, 366 rows)
                                shape: (366, 6)
                                text_idpage_idnameonsetoffsetduration
                                i64i64stri64i64i64
                                02"fixation"20083052008621316
                                02"fixation"20086222008821199
                                02"fixation"20088222009214392
                                02"fixation"20092152009433218
                                02"fixation"20094342009704270
                                02"saccade"2036849203686112
                                02"saccade"2037161203718827
                                02"saccade"2037412203750391
                                02"saccade"2037638203765416
                                02"saccade"2037812203783018
                              • list (2 items)
                                • 'text_id'
                                • 'page_id'
                            • list (2 items)
                              • 'text_id'
                              • 'page_id'
                            • Experiment
                              Experiment
                              • EyeTracker
                                EyeTracker
                                • None
                                  None
                                • None
                                  None
                                • None
                                  None
                                • None
                                  None
                                • 1000
                                  1000
                                • None
                                  None
                                • None
                                  None
                              • 1000
                                1000
                              • Screen
                                Screen
                                • 68
                                  68
                                • 30.2
                                  30.2
                                • 1024
                                  1024
                                • 'upper left'
                                  'upper left'
                                • 38
                                  38
                                • 1280
                                  1280
                                • 15.599386487782953
                                  15.599386487782953
                                • -15.599386487782953
                                  -15.599386487782953
                                • 12.508044410882546
                                  12.508044410882546
                                • -12.508044410882546
                                  -12.508044410882546
                          • (18 more)
                        • PosixPath('data/ToyDataset')
                          PosixPath('data/ToyDataset')
                        • DatasetPaths
                          DatasetPaths
                          • PosixPath('data/ToyDataset')
                            PosixPath('data/ToyDataset')
                          • PosixPath('data/ToyDataset/downloads')
                            PosixPath('data/ToyDataset/downloads')
                          • PosixPath('data/ToyDataset/events')
                            PosixPath('data/ToyDataset/events')
                          • PosixPath('data/ToyDataset/precomputed_events')
                            PosixPath('data/ToyDataset/precomputed_events')
                          • PosixPath
                            PosixPath('data/ToyDataset/precomputed_reading_measures')
                          • PosixPath('data/ToyDataset/preprocessed')
                            PosixPath('data/ToyDataset/preprocessed')
                          • PosixPath('data/ToyDataset/raw')
                            PosixPath('data/ToyDataset/raw')
                          • PosixPath('data/ToyDataset')
                            PosixPath('data/ToyDataset')
                        • list (0 items)
                          • list (0 items)

                            The detected events are added as rows with the name saccade to the event dataframe:

                            [8]:
                            
                            dataset.events[0]
                            
                            [8]:
                            
                            Events
                            • DataFrame (6 columns, 222 rows)
                              shape: (222, 6)
                              text_idpage_idnameonsetoffsetduration
                              i64i64stri64i64i64
                              01"fixation"19881451988563418
                              01"fixation"19885641988750186
                              01"fixation"19887511989178427
                              01"fixation"19891791989436257
                              01"fixation"19894371989600163
                              01"saccade"2004373200438512
                              01"saccade"2004688200470416
                              01"saccade"2004879200490122
                              01"saccade"2005110200512616
                              01"saccade"2005288200534557
                            • list (2 items)
                              • 'text_id'
                              • 'page_id'

                            Now there are three sets of events in the dataset.events DataFrame with different values in the ‘name’ column:

                            [9]:
                            
                            set(dataset.events[0].frame['name'])
                            
                            [9]:
                            
                            {'fixation', 'fixation.ivt', 'saccade'}
                            

                            Computing Event Properties#

                            pymovements provides a range of event properties.

                            See the reference for pymovements.events to get an overview of all the supported properties.

                            For this tutorial we will compute several properties of saccades.

                            We start out with the peak velocity:

                            [10]:
                            
                            dataset.compute_event_properties("peak_velocity")
                            
                            dataset.events[0]
                            
                            [10]:
                            
                            Events
                            • DataFrame (7 columns, 222 rows)
                              shape: (222, 7)
                              text_idpage_idnameonsetoffsetdurationpeak_velocity
                              i64i64stri64i64i64f64
                              01"fixation"19881451988563418200.144558
                              01"fixation"19885641988750186249.67823
                              01"fixation"19887511989178427211.598748
                              01"fixation"19891791989436257189.183243
                              01"fixation"19894371989600163255.077509
                              01"saccade"200437320043851270.374183
                              01"saccade"2004688200470416175.646379
                              01"saccade"2004879200490122209.46361
                              01"saccade"2005110200512616137.917594
                              01"saccade"2005288200534557352.550667
                            • list (2 items)
                              • 'text_id'
                              • 'page_id'

                            Check above that a new column with the name peak_velocity has appeared in the event DataFrame.

                            We can also pass a list of properties. Let’s add the amplitude and dispersion:

                            [11]:
                            
                            dataset.compute_event_properties(["amplitude", "dispersion"])
                            
                            dataset.events[0]
                            
                            [11]:
                            
                            Events
                            • DataFrame (9 columns, 222 rows)
                              shape: (222, 9)
                              text_idpage_idnameonsetoffsetdurationpeak_velocityamplitudedispersion
                              i64i64stri64i64i64f64f64f64
                              01"fixation"19881451988563418200.1445582.4928642.712569
                              01"fixation"19885641988750186249.678232.6511982.865026
                              01"fixation"19887511989178427211.5987482.5859062.779518
                              01"fixation"19891791989436257189.1832432.6143472.77424
                              01"fixation"19894371989600163255.0775092.5946512.729391
                              01"saccade"200437320043851270.3741830.70730.766684
                              01"saccade"2004688200470416175.6463791.8074851.875716
                              01"saccade"2004879200490122209.463612.9338183.086169
                              01"saccade"2005110200512616137.9175941.4053541.501217
                              01"saccade"2005288200534557352.55066714.68254116.101153
                            • list (2 items)
                              • 'text_id'
                              • 'page_id'

                            This way we can compute all of our desired properties in a single run.

                            Saving Event Data#

                            Saving your event data is as simple as:

                            [12]:
                            
                            dataset.save_events()
                            
                            [12]:
                            
                            Dataset
                            • DatasetDefinition
                              DatasetDefinition
                              • None
                                None
                              • dict (0 items)
                                • dict (1 items)
                                  • dict (4 items)
                                    • list (5 items)
                                      • 'timestamp'
                                      • 'x'
                                      • (3 more)
                                    • dict (5 items)
                                      • Float64
                                        Float64
                                      • Float64
                                        Float64
                                      • (3 more)
                                    • (2 more)
                                • None
                                  None
                                • Experiment
                                  Experiment
                                  • EyeTracker
                                    EyeTracker
                                    • None
                                      None
                                    • None
                                      None
                                    • None
                                      None
                                    • None
                                      None
                                    • 1000
                                      1000
                                    • None
                                      None
                                    • None
                                      None
                                  • 1000
                                    1000
                                  • Screen
                                    Screen
                                    • 68
                                      68
                                    • 30.2
                                      30.2
                                    • 1024
                                      1024
                                    • 'upper left'
                                      'upper left'
                                    • 38
                                      38
                                    • 1280
                                      1280
                                    • 15.599386487782953
                                      15.599386487782953
                                    • -15.599386487782953
                                      -15.599386487782953
                                    • 12.508044410882546
                                      12.508044410882546
                                    • -12.508044410882546
                                      -12.508044410882546
                                • None
                                  None
                                • dict (1 items)
                                  • 'trial_{text_id:d}_{page_id:d}.csv'
                                    'trial_{text_id:d}_{page_id:d}.csv'
                                • dict (1 items)
                                  • dict (2 items)
                                    • <class 'int'>
                                      <class 'int'>
                                    • <class 'int'>
                                      <class 'int'>
                                • True
                                  True
                                • 'pymovements Toy Dataset'
                                  'pymovements Toy Dataset'
                                • dict (0 items)
                                  • 'ToyDataset'
                                    'ToyDataset'
                                  • list (2 items)
                                    • 'x'
                                    • 'y'
                                  • None
                                    None
                                  • list (1 items)
                                    • ResourceDefinition
                                      • 'gaze'
                                        'gaze'
                                      • 'pymovements-toy-dataset.zip'
                                        'pymovements-toy-dataset.zip'
                                      • 'trial_{text_id:d}_{page_id:d}.csv'
                                        'trial_{text_id:d}_{page_id:d}.csv'
                                      • dict (2 items)
                                        • <class 'int'>
                                          <class 'int'>
                                        • <class 'int'>
                                          <class 'int'>
                                      • '4da622457637a8181d86601fe17f3aa8'
                                        '4da622457637a8181d86601fe17f3aa8'
                                      • str
                                        'http://github.com/aeye-lab/pymovements-toy-dataset/zipball/6cb5d663317bf418cec0c9abe1dde5085a8a8ebd/'
                                  • 'timestamp'
                                    'timestamp'
                                  • 'ms'
                                    'ms'
                                  • None
                                    None
                                  • None
                                    None
                                • list (20 items)
                                  • Events
                                    • DataFrame (9 columns, 222 rows)
                                      shape: (222, 9)
                                      text_idpage_idnameonsetoffsetdurationpeak_velocityamplitudedispersion
                                      i64i64stri64i64i64f64f64f64
                                      01"fixation"19881451988563418200.1445582.4928642.712569
                                      01"fixation"19885641988750186249.678232.6511982.865026
                                      01"fixation"19887511989178427211.5987482.5859062.779518
                                      01"fixation"19891791989436257189.1832432.6143472.77424
                                      01"fixation"19894371989600163255.0775092.5946512.729391
                                      01"saccade"200437320043851270.3741830.70730.766684
                                      01"saccade"2004688200470416175.6463791.8074851.875716
                                      01"saccade"2004879200490122209.463612.9338183.086169
                                      01"saccade"2005110200512616137.9175941.4053541.501217
                                      01"saccade"2005288200534557352.55066714.68254116.101153
                                    • list (2 items)
                                      • 'text_id'
                                      • 'page_id'
                                  • Events
                                    • DataFrame (9 columns, 366 rows)
                                      shape: (366, 9)
                                      text_idpage_idnameonsetoffsetdurationpeak_velocityamplitudedispersion
                                      i64i64stri64i64i64f64f64f64
                                      02"fixation"20083052008621316167.3438772.2830242.706135
                                      02"fixation"20086222008821199314.3969042.5788542.79657
                                      02"fixation"20088222009214392305.5259172.6128952.908934
                                      02"fixation"20092152009433218216.1952012.6122082.765062
                                      02"fixation"20094342009704270208.051322.5663052.70311
                                      02"saccade"203684920368611254.7431370.4721410.529715
                                      02"saccade"2037161203718827223.0561032.3586042.587752
                                      02"saccade"2037412203750391406.70144416.9486318.346458
                                      02"saccade"2037638203765416138.3827671.4116211.827761
                                      02"saccade"2037812203783018240.1932362.7393123.024326
                                    • list (2 items)
                                      • 'text_id'
                                      • 'page_id'
                                  • (18 more)
                                • dict (1 items)
                                  • DataFrame (3 columns, 20 rows)
                                    shape: (20, 3)
                                    text_idpage_idfilepath
                                    i64i64str
                                    01"aeye-lab-pymovements-toy-datas…
                                    02"aeye-lab-pymovements-toy-datas…
                                    03"aeye-lab-pymovements-toy-datas…
                                    04"aeye-lab-pymovements-toy-datas…
                                    05"aeye-lab-pymovements-toy-datas…
                                    31"aeye-lab-pymovements-toy-datas…
                                    32"aeye-lab-pymovements-toy-datas…
                                    33"aeye-lab-pymovements-toy-datas…
                                    34"aeye-lab-pymovements-toy-datas…
                                    35"aeye-lab-pymovements-toy-datas…
                                • list (20 items)
                                  • Gaze
                                    • DataFrame (8 columns, 17223 rows)
                                      shape: (17_223, 8)
                                      timestimuli_xstimuli_ytext_idpage_idpixelpositionvelocity
                                      i64f64f64i64i64list[f64]list[f64]list[f64]
                                      1988145-1.0-1.001[206.8, 152.4][-10.697598, -8.852399][null, null]
                                      1988146-1.0-1.001[206.9, 152.1][-10.695183, -8.859678][null, null]
                                      1988147-1.0-1.001[207.0, 151.8][-10.692768, -8.866956][1.610194, -5.256267]
                                      1988148-1.0-1.001[207.1, 151.7][-10.690352, -8.869381][0.402548, -4.447465]
                                      1988149-1.0-1.001[207.0, 151.5][-10.692768, -8.874233][0.402561, -3.234462]
                                      2005363-1.0-1.001[361.0, 415.4][-6.932438, -2.386672][-63.266374, -21.085616]
                                      2005364-1.0-1.001[358.0, 414.5][-7.006376, -2.408998][-63.249652, -19.431326]
                                      2005365-1.0-1.001[355.8, 413.8][-7.060582, -2.426362][-60.359624, -15.710061]
                                      2005366-1.0-1.001[353.1, 413.2][-7.12709, -2.441245][null, null]
                                      2005367-1.0-1.001[351.2, 412.9][-7.173881, -2.448686][null, null]
                                    • Events
                                      Events
                                      • DataFrame (9 columns, 222 rows)
                                        shape: (222, 9)
                                        text_idpage_idnameonsetoffsetdurationpeak_velocityamplitudedispersion
                                        i64i64stri64i64i64f64f64f64
                                        01"fixation"19881451988563418200.1445582.4928642.712569
                                        01"fixation"19885641988750186249.678232.6511982.865026
                                        01"fixation"19887511989178427211.5987482.5859062.779518
                                        01"fixation"19891791989436257189.1832432.6143472.77424
                                        01"fixation"19894371989600163255.0775092.5946512.729391
                                        01"saccade"200437320043851270.3741830.70730.766684
                                        01"saccade"2004688200470416175.6463791.8074851.875716
                                        01"saccade"2004879200490122209.463612.9338183.086169
                                        01"saccade"2005110200512616137.9175941.4053541.501217
                                        01"saccade"2005288200534557352.55066714.68254116.101153
                                      • list (2 items)
                                        • 'text_id'
                                        • 'page_id'
                                    • list (2 items)
                                      • 'text_id'
                                      • 'page_id'
                                    • Experiment
                                      Experiment
                                      • EyeTracker
                                        EyeTracker
                                        • None
                                          None
                                        • None
                                          None
                                        • None
                                          None
                                        • None
                                          None
                                        • 1000
                                          1000
                                        • None
                                          None
                                        • None
                                          None
                                      • 1000
                                        1000
                                      • Screen
                                        Screen
                                        • 68
                                          68
                                        • 30.2
                                          30.2
                                        • 1024
                                          1024
                                        • 'upper left'
                                          'upper left'
                                        • 38
                                          38
                                        • 1280
                                          1280
                                        • 15.599386487782953
                                          15.599386487782953
                                        • -15.599386487782953
                                          -15.599386487782953
                                        • 12.508044410882546
                                          12.508044410882546
                                        • -12.508044410882546
                                          -12.508044410882546
                                  • Gaze
                                    • DataFrame (8 columns, 29799 rows)
                                      shape: (29_799, 8)
                                      timestimuli_xstimuli_ytext_idpage_idpixelpositionvelocity
                                      i64f64f64i64i64list[f64]list[f64]list[f64]
                                      2008305-1.0-1.002[141.4, 153.6][-12.268583, -8.823284][null, null]
                                      2008306-1.0-1.002[141.1, 153.2][-12.275749, -8.832989][null, null]
                                      2008307-1.0-1.002[140.7, 152.8][-12.285302, -8.842695][-5.572617, -6.065816]
                                      2008308-1.0-1.002[140.6, 152.7][-12.28769, -8.845121][-3.582268, -4.043733]
                                      2008309-1.0-1.002[140.5, 152.6][-12.290078, -8.847547][-2.388085, -2.021821]
                                      2038099-1.0-1.002[273.8, 773.8][-9.071149, 6.490168][1.21962, 1.635403]
                                      2038100-1.0-1.002[273.8, 774.1][-9.071149, 6.497527][1.626175, 4.497406]
                                      2038101-1.0-1.002[273.9, 774.5][-9.06871, 6.50734][1.626186, 1.635423]
                                      2038102-1.0-1.002[274.0, 774.4][-9.066271, 6.504886][null, null]
                                      2038103-1.0-1.002[274.0, 773.9][-9.066271, 6.492621][null, null]
                                    • Events
                                      Events
                                      • DataFrame (9 columns, 366 rows)
                                        shape: (366, 9)
                                        text_idpage_idnameonsetoffsetdurationpeak_velocityamplitudedispersion
                                        i64i64stri64i64i64f64f64f64
                                        02"fixation"20083052008621316167.3438772.2830242.706135
                                        02"fixation"20086222008821199314.3969042.5788542.79657
                                        02"fixation"20088222009214392305.5259172.6128952.908934
                                        02"fixation"20092152009433218216.1952012.6122082.765062
                                        02"fixation"20094342009704270208.051322.5663052.70311
                                        02"saccade"203684920368611254.7431370.4721410.529715
                                        02"saccade"2037161203718827223.0561032.3586042.587752
                                        02"saccade"2037412203750391406.70144416.9486318.346458
                                        02"saccade"2037638203765416138.3827671.4116211.827761
                                        02"saccade"2037812203783018240.1932362.7393123.024326
                                      • list (2 items)
                                        • 'text_id'
                                        • 'page_id'
                                    • list (2 items)
                                      • 'text_id'
                                      • 'page_id'
                                    • Experiment
                                      Experiment
                                      • EyeTracker
                                        EyeTracker
                                        • None
                                          None
                                        • None
                                          None
                                        • None
                                          None
                                        • None
                                          None
                                        • 1000
                                          1000
                                        • None
                                          None
                                        • None
                                          None
                                      • 1000
                                        1000
                                      • Screen
                                        Screen
                                        • 68
                                          68
                                        • 30.2
                                          30.2
                                        • 1024
                                          1024
                                        • 'upper left'
                                          'upper left'
                                        • 38
                                          38
                                        • 1280
                                          1280
                                        • 15.599386487782953
                                          15.599386487782953
                                        • -15.599386487782953
                                          -15.599386487782953
                                        • 12.508044410882546
                                          12.508044410882546
                                        • -12.508044410882546
                                          -12.508044410882546
                                  • (18 more)
                                • PosixPath('data/ToyDataset')
                                  PosixPath('data/ToyDataset')
                                • DatasetPaths
                                  DatasetPaths
                                  • PosixPath('data/ToyDataset')
                                    PosixPath('data/ToyDataset')
                                  • PosixPath('data/ToyDataset/downloads')
                                    PosixPath('data/ToyDataset/downloads')
                                  • PosixPath('data/ToyDataset/events')
                                    PosixPath('data/ToyDataset/events')
                                  • PosixPath('data/ToyDataset/precomputed_events')
                                    PosixPath('data/ToyDataset/precomputed_events')
                                  • PosixPath
                                    PosixPath('data/ToyDataset/precomputed_reading_measures')
                                  • PosixPath('data/ToyDataset/preprocessed')
                                    PosixPath('data/ToyDataset/preprocessed')
                                  • PosixPath('data/ToyDataset/raw')
                                    PosixPath('data/ToyDataset/raw')
                                  • PosixPath('data/ToyDataset')
                                    PosixPath('data/ToyDataset')
                                • list (0 items)
                                  • list (0 items)

                                    All of the event data is saved into this directory:

                                    [13]:
                                    
                                    dataset.paths.events
                                    
                                    [13]:
                                    
                                    PosixPath('data/ToyDataset/events')
                                    

                                    Let’s confirm it by printing all files in this directory:

                                    [14]:
                                    
                                    print(list(dataset.paths.events.glob('*/*/*')))
                                    
                                    [PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_0_1.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_1_2.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_0_2.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_3_5.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_1_4.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_0_4.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_3_4.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_2_3.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_2_2.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_3_1.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_1_5.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_3_3.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_2_4.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_3_2.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_2_5.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_1_3.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_0_3.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_1_1.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_0_5.feather'), PosixPath('data/ToyDataset/events/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_2_1.feather')]
                                    

                                    All files have been saved into the Dataset.paths.events as files in Feather format.

                                    If we want to save the data into an alternative directory and also use a different file format like csv we can use the following:

                                    [15]:
                                    
                                    dataset.save_events(events_dirname='events_csv', extension='csv')
                                    
                                    [15]:
                                    
                                    Dataset
                                    • DatasetDefinition
                                      DatasetDefinition
                                      • None
                                        None
                                      • dict (0 items)
                                        • dict (1 items)
                                          • dict (4 items)
                                            • list (5 items)
                                              • 'timestamp'
                                              • 'x'
                                              • (3 more)
                                            • dict (5 items)
                                              • Float64
                                                Float64
                                              • Float64
                                                Float64
                                              • (3 more)
                                            • (2 more)
                                        • None
                                          None
                                        • Experiment
                                          Experiment
                                          • EyeTracker
                                            EyeTracker
                                            • None
                                              None
                                            • None
                                              None
                                            • None
                                              None
                                            • None
                                              None
                                            • 1000
                                              1000
                                            • None
                                              None
                                            • None
                                              None
                                          • 1000
                                            1000
                                          • Screen
                                            Screen
                                            • 68
                                              68
                                            • 30.2
                                              30.2
                                            • 1024
                                              1024
                                            • 'upper left'
                                              'upper left'
                                            • 38
                                              38
                                            • 1280
                                              1280
                                            • 15.599386487782953
                                              15.599386487782953
                                            • -15.599386487782953
                                              -15.599386487782953
                                            • 12.508044410882546
                                              12.508044410882546
                                            • -12.508044410882546
                                              -12.508044410882546
                                        • None
                                          None
                                        • dict (1 items)
                                          • 'trial_{text_id:d}_{page_id:d}.csv'
                                            'trial_{text_id:d}_{page_id:d}.csv'
                                        • dict (1 items)
                                          • dict (2 items)
                                            • <class 'int'>
                                              <class 'int'>
                                            • <class 'int'>
                                              <class 'int'>
                                        • True
                                          True
                                        • 'pymovements Toy Dataset'
                                          'pymovements Toy Dataset'
                                        • dict (0 items)
                                          • 'ToyDataset'
                                            'ToyDataset'
                                          • list (2 items)
                                            • 'x'
                                            • 'y'
                                          • None
                                            None
                                          • list (1 items)
                                            • ResourceDefinition
                                              • 'gaze'
                                                'gaze'
                                              • 'pymovements-toy-dataset.zip'
                                                'pymovements-toy-dataset.zip'
                                              • 'trial_{text_id:d}_{page_id:d}.csv'
                                                'trial_{text_id:d}_{page_id:d}.csv'
                                              • dict (2 items)
                                                • <class 'int'>
                                                  <class 'int'>
                                                • <class 'int'>
                                                  <class 'int'>
                                              • '4da622457637a8181d86601fe17f3aa8'
                                                '4da622457637a8181d86601fe17f3aa8'
                                              • str
                                                'http://github.com/aeye-lab/pymovements-toy-dataset/zipball/6cb5d663317bf418cec0c9abe1dde5085a8a8ebd/'
                                          • 'timestamp'
                                            'timestamp'
                                          • 'ms'
                                            'ms'
                                          • None
                                            None
                                          • None
                                            None
                                        • list (20 items)
                                          • Events
                                            • DataFrame (9 columns, 222 rows)
                                              shape: (222, 9)
                                              text_idpage_idnameonsetoffsetdurationpeak_velocityamplitudedispersion
                                              i64i64stri64i64i64f64f64f64
                                              01"fixation"19881451988563418200.1445582.4928642.712569
                                              01"fixation"19885641988750186249.678232.6511982.865026
                                              01"fixation"19887511989178427211.5987482.5859062.779518
                                              01"fixation"19891791989436257189.1832432.6143472.77424
                                              01"fixation"19894371989600163255.0775092.5946512.729391
                                              01"saccade"200437320043851270.3741830.70730.766684
                                              01"saccade"2004688200470416175.6463791.8074851.875716
                                              01"saccade"2004879200490122209.463612.9338183.086169
                                              01"saccade"2005110200512616137.9175941.4053541.501217
                                              01"saccade"2005288200534557352.55066714.68254116.101153
                                            • list (2 items)
                                              • 'text_id'
                                              • 'page_id'
                                          • Events
                                            • DataFrame (9 columns, 366 rows)
                                              shape: (366, 9)
                                              text_idpage_idnameonsetoffsetdurationpeak_velocityamplitudedispersion
                                              i64i64stri64i64i64f64f64f64
                                              02"fixation"20083052008621316167.3438772.2830242.706135
                                              02"fixation"20086222008821199314.3969042.5788542.79657
                                              02"fixation"20088222009214392305.5259172.6128952.908934
                                              02"fixation"20092152009433218216.1952012.6122082.765062
                                              02"fixation"20094342009704270208.051322.5663052.70311
                                              02"saccade"203684920368611254.7431370.4721410.529715
                                              02"saccade"2037161203718827223.0561032.3586042.587752
                                              02"saccade"2037412203750391406.70144416.9486318.346458
                                              02"saccade"2037638203765416138.3827671.4116211.827761
                                              02"saccade"2037812203783018240.1932362.7393123.024326
                                            • list (2 items)
                                              • 'text_id'
                                              • 'page_id'
                                          • (18 more)
                                        • dict (1 items)
                                          • DataFrame (3 columns, 20 rows)
                                            shape: (20, 3)
                                            text_idpage_idfilepath
                                            i64i64str
                                            01"aeye-lab-pymovements-toy-datas…
                                            02"aeye-lab-pymovements-toy-datas…
                                            03"aeye-lab-pymovements-toy-datas…
                                            04"aeye-lab-pymovements-toy-datas…
                                            05"aeye-lab-pymovements-toy-datas…
                                            31"aeye-lab-pymovements-toy-datas…
                                            32"aeye-lab-pymovements-toy-datas…
                                            33"aeye-lab-pymovements-toy-datas…
                                            34"aeye-lab-pymovements-toy-datas…
                                            35"aeye-lab-pymovements-toy-datas…
                                        • list (20 items)
                                          • Gaze
                                            • DataFrame (8 columns, 17223 rows)
                                              shape: (17_223, 8)
                                              timestimuli_xstimuli_ytext_idpage_idpixelpositionvelocity
                                              i64f64f64i64i64list[f64]list[f64]list[f64]
                                              1988145-1.0-1.001[206.8, 152.4][-10.697598, -8.852399][null, null]
                                              1988146-1.0-1.001[206.9, 152.1][-10.695183, -8.859678][null, null]
                                              1988147-1.0-1.001[207.0, 151.8][-10.692768, -8.866956][1.610194, -5.256267]
                                              1988148-1.0-1.001[207.1, 151.7][-10.690352, -8.869381][0.402548, -4.447465]
                                              1988149-1.0-1.001[207.0, 151.5][-10.692768, -8.874233][0.402561, -3.234462]
                                              2005363-1.0-1.001[361.0, 415.4][-6.932438, -2.386672][-63.266374, -21.085616]
                                              2005364-1.0-1.001[358.0, 414.5][-7.006376, -2.408998][-63.249652, -19.431326]
                                              2005365-1.0-1.001[355.8, 413.8][-7.060582, -2.426362][-60.359624, -15.710061]
                                              2005366-1.0-1.001[353.1, 413.2][-7.12709, -2.441245][null, null]
                                              2005367-1.0-1.001[351.2, 412.9][-7.173881, -2.448686][null, null]
                                            • Events
                                              Events
                                              • DataFrame (9 columns, 222 rows)
                                                shape: (222, 9)
                                                text_idpage_idnameonsetoffsetdurationpeak_velocityamplitudedispersion
                                                i64i64stri64i64i64f64f64f64
                                                01"fixation"19881451988563418200.1445582.4928642.712569
                                                01"fixation"19885641988750186249.678232.6511982.865026
                                                01"fixation"19887511989178427211.5987482.5859062.779518
                                                01"fixation"19891791989436257189.1832432.6143472.77424
                                                01"fixation"19894371989600163255.0775092.5946512.729391
                                                01"saccade"200437320043851270.3741830.70730.766684
                                                01"saccade"2004688200470416175.6463791.8074851.875716
                                                01"saccade"2004879200490122209.463612.9338183.086169
                                                01"saccade"2005110200512616137.9175941.4053541.501217
                                                01"saccade"2005288200534557352.55066714.68254116.101153
                                              • list (2 items)
                                                • 'text_id'
                                                • 'page_id'
                                            • list (2 items)
                                              • 'text_id'
                                              • 'page_id'
                                            • Experiment
                                              Experiment
                                              • EyeTracker
                                                EyeTracker
                                                • None
                                                  None
                                                • None
                                                  None
                                                • None
                                                  None
                                                • None
                                                  None
                                                • 1000
                                                  1000
                                                • None
                                                  None
                                                • None
                                                  None
                                              • 1000
                                                1000
                                              • Screen
                                                Screen
                                                • 68
                                                  68
                                                • 30.2
                                                  30.2
                                                • 1024
                                                  1024
                                                • 'upper left'
                                                  'upper left'
                                                • 38
                                                  38
                                                • 1280
                                                  1280
                                                • 15.599386487782953
                                                  15.599386487782953
                                                • -15.599386487782953
                                                  -15.599386487782953
                                                • 12.508044410882546
                                                  12.508044410882546
                                                • -12.508044410882546
                                                  -12.508044410882546
                                          • Gaze
                                            • DataFrame (8 columns, 29799 rows)
                                              shape: (29_799, 8)
                                              timestimuli_xstimuli_ytext_idpage_idpixelpositionvelocity
                                              i64f64f64i64i64list[f64]list[f64]list[f64]
                                              2008305-1.0-1.002[141.4, 153.6][-12.268583, -8.823284][null, null]
                                              2008306-1.0-1.002[141.1, 153.2][-12.275749, -8.832989][null, null]
                                              2008307-1.0-1.002[140.7, 152.8][-12.285302, -8.842695][-5.572617, -6.065816]
                                              2008308-1.0-1.002[140.6, 152.7][-12.28769, -8.845121][-3.582268, -4.043733]
                                              2008309-1.0-1.002[140.5, 152.6][-12.290078, -8.847547][-2.388085, -2.021821]
                                              2038099-1.0-1.002[273.8, 773.8][-9.071149, 6.490168][1.21962, 1.635403]
                                              2038100-1.0-1.002[273.8, 774.1][-9.071149, 6.497527][1.626175, 4.497406]
                                              2038101-1.0-1.002[273.9, 774.5][-9.06871, 6.50734][1.626186, 1.635423]
                                              2038102-1.0-1.002[274.0, 774.4][-9.066271, 6.504886][null, null]
                                              2038103-1.0-1.002[274.0, 773.9][-9.066271, 6.492621][null, null]
                                            • Events
                                              Events
                                              • DataFrame (9 columns, 366 rows)
                                                shape: (366, 9)
                                                text_idpage_idnameonsetoffsetdurationpeak_velocityamplitudedispersion
                                                i64i64stri64i64i64f64f64f64
                                                02"fixation"20083052008621316167.3438772.2830242.706135
                                                02"fixation"20086222008821199314.3969042.5788542.79657
                                                02"fixation"20088222009214392305.5259172.6128952.908934
                                                02"fixation"20092152009433218216.1952012.6122082.765062
                                                02"fixation"20094342009704270208.051322.5663052.70311
                                                02"saccade"203684920368611254.7431370.4721410.529715
                                                02"saccade"2037161203718827223.0561032.3586042.587752
                                                02"saccade"2037412203750391406.70144416.9486318.346458
                                                02"saccade"2037638203765416138.3827671.4116211.827761
                                                02"saccade"2037812203783018240.1932362.7393123.024326
                                              • list (2 items)
                                                • 'text_id'
                                                • 'page_id'
                                            • list (2 items)
                                              • 'text_id'
                                              • 'page_id'
                                            • Experiment
                                              Experiment
                                              • EyeTracker
                                                EyeTracker
                                                • None
                                                  None
                                                • None
                                                  None
                                                • None
                                                  None
                                                • None
                                                  None
                                                • 1000
                                                  1000
                                                • None
                                                  None
                                                • None
                                                  None
                                              • 1000
                                                1000
                                              • Screen
                                                Screen
                                                • 68
                                                  68
                                                • 30.2
                                                  30.2
                                                • 1024
                                                  1024
                                                • 'upper left'
                                                  'upper left'
                                                • 38
                                                  38
                                                • 1280
                                                  1280
                                                • 15.599386487782953
                                                  15.599386487782953
                                                • -15.599386487782953
                                                  -15.599386487782953
                                                • 12.508044410882546
                                                  12.508044410882546
                                                • -12.508044410882546
                                                  -12.508044410882546
                                          • (18 more)
                                        • PosixPath('data/ToyDataset')
                                          PosixPath('data/ToyDataset')
                                        • DatasetPaths
                                          DatasetPaths
                                          • PosixPath('data/ToyDataset')
                                            PosixPath('data/ToyDataset')
                                          • PosixPath('data/ToyDataset/downloads')
                                            PosixPath('data/ToyDataset/downloads')
                                          • PosixPath('data/ToyDataset/events')
                                            PosixPath('data/ToyDataset/events')
                                          • PosixPath('data/ToyDataset/precomputed_events')
                                            PosixPath('data/ToyDataset/precomputed_events')
                                          • PosixPath
                                            PosixPath('data/ToyDataset/precomputed_reading_measures')
                                          • PosixPath('data/ToyDataset/preprocessed')
                                            PosixPath('data/ToyDataset/preprocessed')
                                          • PosixPath('data/ToyDataset/raw')
                                            PosixPath('data/ToyDataset/raw')
                                          • PosixPath('data/ToyDataset')
                                            PosixPath('data/ToyDataset')
                                        • list (0 items)
                                          • list (0 items)

                                            Let’s confirm again by printing all the new files in this alternative directory:

                                            [16]:
                                            
                                            alternative_dirpath = dataset.path / 'events_csv'
                                            print(list(alternative_dirpath.glob('*/*/*')))
                                            
                                            [PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_2_2.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_2_5.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_3_1.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_2_1.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_1_1.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_3_3.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_3_2.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_3_4.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_1_3.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_2_3.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_0_5.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_0_2.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_1_4.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_2_4.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_0_3.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_1_5.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_1_2.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_0_4.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_0_1.csv'), PosixPath('data/ToyDataset/events_csv/aeye-lab-pymovements-toy-dataset-6cb5d66/data/trial_3_5.csv')]
                                            

                                            Loading Previously Computed Events Data#

                                            Let’s initialize a new dataset object from the same ToyDataset.

                                            [17]:
                                            
                                            preprocessed_dataset = pm.Dataset('ToyDataset', path='data/ToyDataset')
                                            

                                            When we load the dataset using load() without any parameters there will be no events loaded:

                                            [18]:
                                            
                                            preprocessed_dataset.load()
                                            
                                            [18]:
                                            
                                            Dataset
                                            • DatasetDefinition
                                              DatasetDefinition
                                              • None
                                                None
                                              • dict (0 items)
                                                • dict (1 items)
                                                  • dict (4 items)
                                                    • list (5 items)
                                                      • 'timestamp'
                                                      • 'x'
                                                      • (3 more)
                                                    • dict (5 items)
                                                      • Float64
                                                        Float64
                                                      • Float64
                                                        Float64
                                                      • (3 more)
                                                    • (2 more)
                                                • None
                                                  None
                                                • Experiment
                                                  Experiment
                                                  • EyeTracker
                                                    EyeTracker
                                                    • None
                                                      None
                                                    • None
                                                      None
                                                    • None
                                                      None
                                                    • None
                                                      None
                                                    • 1000
                                                      1000
                                                    • None
                                                      None
                                                    • None
                                                      None
                                                  • 1000
                                                    1000
                                                  • Screen
                                                    Screen
                                                    • 68
                                                      68
                                                    • 30.2
                                                      30.2
                                                    • 1024
                                                      1024
                                                    • 'upper left'
                                                      'upper left'
                                                    • 38
                                                      38
                                                    • 1280
                                                      1280
                                                    • 15.599386487782953
                                                      15.599386487782953
                                                    • -15.599386487782953
                                                      -15.599386487782953
                                                    • 12.508044410882546
                                                      12.508044410882546
                                                    • -12.508044410882546
                                                      -12.508044410882546
                                                • None
                                                  None
                                                • dict (1 items)
                                                  • 'trial_{text_id:d}_{page_id:d}.csv'
                                                    'trial_{text_id:d}_{page_id:d}.csv'
                                                • dict (1 items)
                                                  • dict (2 items)
                                                    • <class 'int'>
                                                      <class 'int'>
                                                    • <class 'int'>
                                                      <class 'int'>
                                                • True
                                                  True
                                                • 'pymovements Toy Dataset'
                                                  'pymovements Toy Dataset'
                                                • dict (0 items)
                                                  • 'ToyDataset'
                                                    'ToyDataset'
                                                  • list (2 items)
                                                    • 'x'
                                                    • 'y'
                                                  • None
                                                    None
                                                  • list (1 items)
                                                    • ResourceDefinition
                                                      • 'gaze'
                                                        'gaze'
                                                      • 'pymovements-toy-dataset.zip'
                                                        'pymovements-toy-dataset.zip'
                                                      • 'trial_{text_id:d}_{page_id:d}.csv'
                                                        'trial_{text_id:d}_{page_id:d}.csv'
                                                      • dict (2 items)
                                                        • <class 'int'>
                                                          <class 'int'>
                                                        • <class 'int'>
                                                          <class 'int'>
                                                      • '4da622457637a8181d86601fe17f3aa8'
                                                        '4da622457637a8181d86601fe17f3aa8'
                                                      • str
                                                        'http://github.com/aeye-lab/pymovements-toy-dataset/zipball/6cb5d663317bf418cec0c9abe1dde5085a8a8ebd/'
                                                  • 'timestamp'
                                                    'timestamp'
                                                  • 'ms'
                                                    'ms'
                                                  • None
                                                    None
                                                  • None
                                                    None
                                                • list (0 items)
                                                  • dict (1 items)
                                                    • DataFrame (3 columns, 20 rows)
                                                      shape: (20, 3)
                                                      text_idpage_idfilepath
                                                      i64i64str
                                                      01"aeye-lab-pymovements-toy-datas…
                                                      02"aeye-lab-pymovements-toy-datas…
                                                      03"aeye-lab-pymovements-toy-datas…
                                                      04"aeye-lab-pymovements-toy-datas…
                                                      05"aeye-lab-pymovements-toy-datas…
                                                      31"aeye-lab-pymovements-toy-datas…
                                                      32"aeye-lab-pymovements-toy-datas…
                                                      33"aeye-lab-pymovements-toy-datas…
                                                      34"aeye-lab-pymovements-toy-datas…
                                                      35"aeye-lab-pymovements-toy-datas…
                                                  • list (20 items)
                                                    • Gaze
                                                      • DataFrame (6 columns, 17223 rows)
                                                        shape: (17_223, 6)
                                                        timestimuli_xstimuli_ytext_idpage_idpixel
                                                        i64f64f64i64i64list[f64]
                                                        1988145-1.0-1.001[206.8, 152.4]
                                                        1988146-1.0-1.001[206.9, 152.1]
                                                        1988147-1.0-1.001[207.0, 151.8]
                                                        1988148-1.0-1.001[207.1, 151.7]
                                                        1988149-1.0-1.001[207.0, 151.5]
                                                        2005363-1.0-1.001[361.0, 415.4]
                                                        2005364-1.0-1.001[358.0, 414.5]
                                                        2005365-1.0-1.001[355.8, 413.8]
                                                        2005366-1.0-1.001[353.1, 413.2]
                                                        2005367-1.0-1.001[351.2, 412.9]
                                                      • Events
                                                        Events
                                                        • DataFrame (6 columns, 0 rows)
                                                          shape: (0, 6)
                                                          text_idpage_idnameonsetoffsetduration
                                                          i64i64stri64i64i64
                                                        • list (2 items)
                                                          • 'text_id'
                                                          • 'page_id'
                                                      • list (2 items)
                                                        • 'text_id'
                                                        • 'page_id'
                                                      • Experiment
                                                        Experiment
                                                        • EyeTracker
                                                          EyeTracker
                                                          • None
                                                            None
                                                          • None
                                                            None
                                                          • None
                                                            None
                                                          • None
                                                            None
                                                          • 1000
                                                            1000
                                                          • None
                                                            None
                                                          • None
                                                            None
                                                        • 1000
                                                          1000
                                                        • Screen
                                                          Screen
                                                          • 68
                                                            68
                                                          • 30.2
                                                            30.2
                                                          • 1024
                                                            1024
                                                          • 'upper left'
                                                            'upper left'
                                                          • 38
                                                            38
                                                          • 1280
                                                            1280
                                                          • 15.599386487782953
                                                            15.599386487782953
                                                          • -15.599386487782953
                                                            -15.599386487782953
                                                          • 12.508044410882546
                                                            12.508044410882546
                                                          • -12.508044410882546
                                                            -12.508044410882546
                                                    • Gaze
                                                      • DataFrame (6 columns, 29799 rows)
                                                        shape: (29_799, 6)
                                                        timestimuli_xstimuli_ytext_idpage_idpixel
                                                        i64f64f64i64i64list[f64]
                                                        2008305-1.0-1.002[141.4, 153.6]
                                                        2008306-1.0-1.002[141.1, 153.2]
                                                        2008307-1.0-1.002[140.7, 152.8]
                                                        2008308-1.0-1.002[140.6, 152.7]
                                                        2008309-1.0-1.002[140.5, 152.6]
                                                        2038099-1.0-1.002[273.8, 773.8]
                                                        2038100-1.0-1.002[273.8, 774.1]
                                                        2038101-1.0-1.002[273.9, 774.5]
                                                        2038102-1.0-1.002[274.0, 774.4]
                                                        2038103-1.0-1.002[274.0, 773.9]
                                                      • Events
                                                        Events
                                                        • DataFrame (6 columns, 0 rows)
                                                          shape: (0, 6)
                                                          text_idpage_idnameonsetoffsetduration
                                                          i64i64stri64i64i64
                                                        • list (2 items)
                                                          • 'text_id'
                                                          • 'page_id'
                                                      • list (2 items)
                                                        • 'text_id'
                                                        • 'page_id'
                                                      • Experiment
                                                        Experiment
                                                        • EyeTracker
                                                          EyeTracker
                                                          • None
                                                            None
                                                          • None
                                                            None
                                                          • None
                                                            None
                                                          • None
                                                            None
                                                          • 1000
                                                            1000
                                                          • None
                                                            None
                                                          • None
                                                            None
                                                        • 1000
                                                          1000
                                                        • Screen
                                                          Screen
                                                          • 68
                                                            68
                                                          • 30.2
                                                            30.2
                                                          • 1024
                                                            1024
                                                          • 'upper left'
                                                            'upper left'
                                                          • 38
                                                            38
                                                          • 1280
                                                            1280
                                                          • 15.599386487782953
                                                            15.599386487782953
                                                          • -15.599386487782953
                                                            -15.599386487782953
                                                          • 12.508044410882546
                                                            12.508044410882546
                                                          • -12.508044410882546
                                                            -12.508044410882546
                                                    • (18 more)
                                                  • PosixPath('data/ToyDataset')
                                                    PosixPath('data/ToyDataset')
                                                  • DatasetPaths
                                                    DatasetPaths
                                                    • PosixPath('data/ToyDataset')
                                                      PosixPath('data/ToyDataset')
                                                    • PosixPath('data/ToyDataset/downloads')
                                                      PosixPath('data/ToyDataset/downloads')
                                                    • PosixPath('data/ToyDataset/events')
                                                      PosixPath('data/ToyDataset/events')
                                                    • PosixPath('data/ToyDataset/precomputed_events')
                                                      PosixPath('data/ToyDataset/precomputed_events')
                                                    • PosixPath
                                                      PosixPath('data/ToyDataset/precomputed_reading_measures')
                                                    • PosixPath('data/ToyDataset/preprocessed')
                                                      PosixPath('data/ToyDataset/preprocessed')
                                                    • PosixPath('data/ToyDataset/raw')
                                                      PosixPath('data/ToyDataset/raw')
                                                    • PosixPath('data/ToyDataset')
                                                      PosixPath('data/ToyDataset')
                                                  • list (0 items)
                                                    • list (0 items)

                                                      But when we load it with the events=True parameter the events will be loaded:

                                                      [19]:
                                                      
                                                      preprocessed_dataset.load(events=True)
                                                      
                                                      [19]:
                                                      
                                                      Dataset
                                                      • DatasetDefinition
                                                        DatasetDefinition
                                                        • None
                                                          None
                                                        • dict (0 items)
                                                          • dict (1 items)
                                                            • dict (4 items)
                                                              • list (5 items)
                                                                • 'timestamp'
                                                                • 'x'
                                                                • (3 more)
                                                              • dict (5 items)
                                                                • Float64
                                                                  Float64
                                                                • Float64
                                                                  Float64
                                                                • (3 more)
                                                              • (2 more)
                                                          • None
                                                            None
                                                          • Experiment
                                                            Experiment
                                                            • EyeTracker
                                                              EyeTracker
                                                              • None
                                                                None
                                                              • None
                                                                None
                                                              • None
                                                                None
                                                              • None
                                                                None
                                                              • 1000
                                                                1000
                                                              • None
                                                                None
                                                              • None
                                                                None
                                                            • 1000
                                                              1000
                                                            • Screen
                                                              Screen
                                                              • 68
                                                                68
                                                              • 30.2
                                                                30.2
                                                              • 1024
                                                                1024
                                                              • 'upper left'
                                                                'upper left'
                                                              • 38
                                                                38
                                                              • 1280
                                                                1280
                                                              • 15.599386487782953
                                                                15.599386487782953
                                                              • -15.599386487782953
                                                                -15.599386487782953
                                                              • 12.508044410882546
                                                                12.508044410882546
                                                              • -12.508044410882546
                                                                -12.508044410882546
                                                          • None
                                                            None
                                                          • dict (1 items)
                                                            • 'trial_{text_id:d}_{page_id:d}.csv'
                                                              'trial_{text_id:d}_{page_id:d}.csv'
                                                          • dict (1 items)
                                                            • dict (2 items)
                                                              • <class 'int'>
                                                                <class 'int'>
                                                              • <class 'int'>
                                                                <class 'int'>
                                                          • True
                                                            True
                                                          • 'pymovements Toy Dataset'
                                                            'pymovements Toy Dataset'
                                                          • dict (0 items)
                                                            • 'ToyDataset'
                                                              'ToyDataset'
                                                            • list (2 items)
                                                              • 'x'
                                                              • 'y'
                                                            • None
                                                              None
                                                            • list (1 items)
                                                              • ResourceDefinition
                                                                • 'gaze'
                                                                  'gaze'
                                                                • 'pymovements-toy-dataset.zip'
                                                                  'pymovements-toy-dataset.zip'
                                                                • 'trial_{text_id:d}_{page_id:d}.csv'
                                                                  'trial_{text_id:d}_{page_id:d}.csv'
                                                                • dict (2 items)
                                                                  • <class 'int'>
                                                                    <class 'int'>
                                                                  • <class 'int'>
                                                                    <class 'int'>
                                                                • '4da622457637a8181d86601fe17f3aa8'
                                                                  '4da622457637a8181d86601fe17f3aa8'
                                                                • str
                                                                  'http://github.com/aeye-lab/pymovements-toy-dataset/zipball/6cb5d663317bf418cec0c9abe1dde5085a8a8ebd/'
                                                            • 'timestamp'
                                                              'timestamp'
                                                            • 'ms'
                                                              'ms'
                                                            • None
                                                              None
                                                            • None
                                                              None
                                                          • list (20 items)
                                                            • Events
                                                              • DataFrame (9 columns, 222 rows)
                                                                shape: (222, 9)
                                                                text_idpage_idnameonsetoffsetdurationpeak_velocityamplitudedispersion
                                                                i64i64stri64i64i64f64f64f64
                                                                01"fixation"19881451988563418200.1445582.4928642.712569
                                                                01"fixation"19885641988750186249.678232.6511982.865026
                                                                01"fixation"19887511989178427211.5987482.5859062.779518
                                                                01"fixation"19891791989436257189.1832432.6143472.77424
                                                                01"fixation"19894371989600163255.0775092.5946512.729391
                                                                01"saccade"200437320043851270.3741830.70730.766684
                                                                01"saccade"2004688200470416175.6463791.8074851.875716
                                                                01"saccade"2004879200490122209.463612.9338183.086169
                                                                01"saccade"2005110200512616137.9175941.4053541.501217
                                                                01"saccade"2005288200534557352.55066714.68254116.101153
                                                              • None
                                                                None
                                                            • Events
                                                              • DataFrame (9 columns, 366 rows)
                                                                shape: (366, 9)
                                                                text_idpage_idnameonsetoffsetdurationpeak_velocityamplitudedispersion
                                                                i64i64stri64i64i64f64f64f64
                                                                02"fixation"20083052008621316167.3438772.2830242.706135
                                                                02"fixation"20086222008821199314.3969042.5788542.79657
                                                                02"fixation"20088222009214392305.5259172.6128952.908934
                                                                02"fixation"20092152009433218216.1952012.6122082.765062
                                                                02"fixation"20094342009704270208.051322.5663052.70311
                                                                02"saccade"203684920368611254.7431370.4721410.529715
                                                                02"saccade"2037161203718827223.0561032.3586042.587752
                                                                02"saccade"2037412203750391406.70144416.9486318.346458
                                                                02"saccade"2037638203765416138.3827671.4116211.827761
                                                                02"saccade"2037812203783018240.1932362.7393123.024326
                                                              • None
                                                                None
                                                            • (18 more)
                                                          • dict (1 items)
                                                            • DataFrame (3 columns, 20 rows)
                                                              shape: (20, 3)
                                                              text_idpage_idfilepath
                                                              i64i64str
                                                              01"aeye-lab-pymovements-toy-datas…
                                                              02"aeye-lab-pymovements-toy-datas…
                                                              03"aeye-lab-pymovements-toy-datas…
                                                              04"aeye-lab-pymovements-toy-datas…
                                                              05"aeye-lab-pymovements-toy-datas…
                                                              31"aeye-lab-pymovements-toy-datas…
                                                              32"aeye-lab-pymovements-toy-datas…
                                                              33"aeye-lab-pymovements-toy-datas…
                                                              34"aeye-lab-pymovements-toy-datas…
                                                              35"aeye-lab-pymovements-toy-datas…
                                                          • list (20 items)
                                                            • Gaze
                                                              • DataFrame (6 columns, 17223 rows)
                                                                shape: (17_223, 6)
                                                                timestimuli_xstimuli_ytext_idpage_idpixel
                                                                i64f64f64i64i64list[f64]
                                                                1988145-1.0-1.001[206.8, 152.4]
                                                                1988146-1.0-1.001[206.9, 152.1]
                                                                1988147-1.0-1.001[207.0, 151.8]
                                                                1988148-1.0-1.001[207.1, 151.7]
                                                                1988149-1.0-1.001[207.0, 151.5]
                                                                2005363-1.0-1.001[361.0, 415.4]
                                                                2005364-1.0-1.001[358.0, 414.5]
                                                                2005365-1.0-1.001[355.8, 413.8]
                                                                2005366-1.0-1.001[353.1, 413.2]
                                                                2005367-1.0-1.001[351.2, 412.9]
                                                              • Events
                                                                Events
                                                                • DataFrame (9 columns, 222 rows)
                                                                  shape: (222, 9)
                                                                  text_idpage_idnameonsetoffsetdurationpeak_velocityamplitudedispersion
                                                                  i64i64stri64i64i64f64f64f64
                                                                  01"fixation"19881451988563418200.1445582.4928642.712569
                                                                  01"fixation"19885641988750186249.678232.6511982.865026
                                                                  01"fixation"19887511989178427211.5987482.5859062.779518
                                                                  01"fixation"19891791989436257189.1832432.6143472.77424
                                                                  01"fixation"19894371989600163255.0775092.5946512.729391
                                                                  01"saccade"200437320043851270.3741830.70730.766684
                                                                  01"saccade"2004688200470416175.6463791.8074851.875716
                                                                  01"saccade"2004879200490122209.463612.9338183.086169
                                                                  01"saccade"2005110200512616137.9175941.4053541.501217
                                                                  01"saccade"2005288200534557352.55066714.68254116.101153
                                                                • None
                                                                  None
                                                              • list (2 items)
                                                                • 'text_id'
                                                                • 'page_id'
                                                              • Experiment
                                                                Experiment
                                                                • EyeTracker
                                                                  EyeTracker
                                                                  • None
                                                                    None
                                                                  • None
                                                                    None
                                                                  • None
                                                                    None
                                                                  • None
                                                                    None
                                                                  • 1000
                                                                    1000
                                                                  • None
                                                                    None
                                                                  • None
                                                                    None
                                                                • 1000
                                                                  1000
                                                                • Screen
                                                                  Screen
                                                                  • 68
                                                                    68
                                                                  • 30.2
                                                                    30.2
                                                                  • 1024
                                                                    1024
                                                                  • 'upper left'
                                                                    'upper left'
                                                                  • 38
                                                                    38
                                                                  • 1280
                                                                    1280
                                                                  • 15.599386487782953
                                                                    15.599386487782953
                                                                  • -15.599386487782953
                                                                    -15.599386487782953
                                                                  • 12.508044410882546
                                                                    12.508044410882546
                                                                  • -12.508044410882546
                                                                    -12.508044410882546
                                                            • Gaze
                                                              • DataFrame (6 columns, 29799 rows)
                                                                shape: (29_799, 6)
                                                                timestimuli_xstimuli_ytext_idpage_idpixel
                                                                i64f64f64i64i64list[f64]
                                                                2008305-1.0-1.002[141.4, 153.6]
                                                                2008306-1.0-1.002[141.1, 153.2]
                                                                2008307-1.0-1.002[140.7, 152.8]
                                                                2008308-1.0-1.002[140.6, 152.7]
                                                                2008309-1.0-1.002[140.5, 152.6]
                                                                2038099-1.0-1.002[273.8, 773.8]
                                                                2038100-1.0-1.002[273.8, 774.1]
                                                                2038101-1.0-1.002[273.9, 774.5]
                                                                2038102-1.0-1.002[274.0, 774.4]
                                                                2038103-1.0-1.002[274.0, 773.9]
                                                              • Events
                                                                Events
                                                                • DataFrame (9 columns, 366 rows)
                                                                  shape: (366, 9)
                                                                  text_idpage_idnameonsetoffsetdurationpeak_velocityamplitudedispersion
                                                                  i64i64stri64i64i64f64f64f64
                                                                  02"fixation"20083052008621316167.3438772.2830242.706135
                                                                  02"fixation"20086222008821199314.3969042.5788542.79657
                                                                  02"fixation"20088222009214392305.5259172.6128952.908934
                                                                  02"fixation"20092152009433218216.1952012.6122082.765062
                                                                  02"fixation"20094342009704270208.051322.5663052.70311
                                                                  02"saccade"203684920368611254.7431370.4721410.529715
                                                                  02"saccade"2037161203718827223.0561032.3586042.587752
                                                                  02"saccade"2037412203750391406.70144416.9486318.346458
                                                                  02"saccade"2037638203765416138.3827671.4116211.827761
                                                                  02"saccade"2037812203783018240.1932362.7393123.024326
                                                                • None
                                                                  None
                                                              • list (2 items)
                                                                • 'text_id'
                                                                • 'page_id'
                                                              • Experiment
                                                                Experiment
                                                                • EyeTracker
                                                                  EyeTracker
                                                                  • None
                                                                    None
                                                                  • None
                                                                    None
                                                                  • None
                                                                    None
                                                                  • None
                                                                    None
                                                                  • 1000
                                                                    1000
                                                                  • None
                                                                    None
                                                                  • None
                                                                    None
                                                                • 1000
                                                                  1000
                                                                • Screen
                                                                  Screen
                                                                  • 68
                                                                    68
                                                                  • 30.2
                                                                    30.2
                                                                  • 1024
                                                                    1024
                                                                  • 'upper left'
                                                                    'upper left'
                                                                  • 38
                                                                    38
                                                                  • 1280
                                                                    1280
                                                                  • 15.599386487782953
                                                                    15.599386487782953
                                                                  • -15.599386487782953
                                                                    -15.599386487782953
                                                                  • 12.508044410882546
                                                                    12.508044410882546
                                                                  • -12.508044410882546
                                                                    -12.508044410882546
                                                            • (18 more)
                                                          • PosixPath('data/ToyDataset')
                                                            PosixPath('data/ToyDataset')
                                                          • DatasetPaths
                                                            DatasetPaths
                                                            • PosixPath('data/ToyDataset')
                                                              PosixPath('data/ToyDataset')
                                                            • PosixPath('data/ToyDataset/downloads')
                                                              PosixPath('data/ToyDataset/downloads')
                                                            • PosixPath('data/ToyDataset/events')
                                                              PosixPath('data/ToyDataset/events')
                                                            • PosixPath('data/ToyDataset/precomputed_events')
                                                              PosixPath('data/ToyDataset/precomputed_events')
                                                            • PosixPath
                                                              PosixPath('data/ToyDataset/precomputed_reading_measures')
                                                            • PosixPath('data/ToyDataset/preprocessed')
                                                              PosixPath('data/ToyDataset/preprocessed')
                                                            • PosixPath('data/ToyDataset/raw')
                                                              PosixPath('data/ToyDataset/raw')
                                                            • PosixPath('data/ToyDataset')
                                                              PosixPath('data/ToyDataset')
                                                          • list (0 items)
                                                            • list (0 items)

                                                              By default, the events directory and the feather extension will be chosen.

                                                              In case of alternative directory names or other file formats you can use the following:

                                                              [20]:
                                                              
                                                              preprocessed_dataset.load(
                                                                  events=True,
                                                                  events_dirname='events_csv',
                                                                  extension='csv',
                                                              )
                                                              dataset.events[0]
                                                              
                                                              [20]:
                                                              
                                                              Events
                                                              • DataFrame (9 columns, 222 rows)
                                                                shape: (222, 9)
                                                                text_idpage_idnameonsetoffsetdurationpeak_velocityamplitudedispersion
                                                                i64i64stri64i64i64f64f64f64
                                                                01"fixation"19881451988563418200.1445582.4928642.712569
                                                                01"fixation"19885641988750186249.678232.6511982.865026
                                                                01"fixation"19887511989178427211.5987482.5859062.779518
                                                                01"fixation"19891791989436257189.1832432.6143472.77424
                                                                01"fixation"19894371989600163255.0775092.5946512.729391
                                                                01"saccade"200437320043851270.3741830.70730.766684
                                                                01"saccade"2004688200470416175.6463791.8074851.875716
                                                                01"saccade"2004879200490122209.463612.9338183.086169
                                                                01"saccade"2005110200512616137.9175941.4053541.501217
                                                                01"saccade"2005288200534557352.55066714.68254116.101153
                                                              • list (2 items)
                                                                • 'text_id'
                                                                • 'page_id'

                                                              What you have learned in this tutorial:#

                                                              • detecting different events with different algorithms by using Dataset.detect_events()

                                                              • computing event properties by using Dataset.compute_event_properties()

                                                              • saving your preprocesed data using Dataset.save_preprocessed()

                                                              • load your preprocesed data using Dataset.load(events=True)

                                                              • using custom directory names by specifying preprocessed_dirname

                                                              • using other file formats than the default feather format by specifying extension