Données oculométriques

Le Centre IRM est équipe d’un système EyeLink 1000 de SR-Research.

Cette page, réalisée avec l’aide précieuse de Thierry Chaminade, présente comment convertir les données issues du EyeLink 1000 et pouvoir disposer de données utilisables de la façon la plus simple et la plus robuste possible.

Pré-requis

Les fichiers générés par le logiciel de l’EyeLink sont au format EDF. Attention : il NE s’agit PAS de la version ouverte de ce format destiné au stockage de données médicales ou biologiques. Il s’agit d’une version « propriétaire » développée par SR-Research.

Afin de pouvoir convertir à partir du format EDF, il est nécessaire d’installer, sur la machine où doit être réalisée cette conversion, le « EyeLink Developers Kit ». Cette API (Application Programmer’s Interface) est disponible gratuitement sur les plateformes Win32/64, MacOS et Linux. Cependant, il faut s’inscrire sur le forum de SR-Research.

Conversion

Une fois l’API installée, on a accès à plusieurs ressources, dont un exécutable : edf2asc

  • sous Windows, celui est installé dans : Programmes (x86) \ SR Research \ EyeLink \ bin
  • sous MacOS et Linux, on pourra le trouver dans : / Applications / Eyelink / EDF_Access_API / Example,

C’est ce programme qui va permettre de convertir les fichiers EDF (incluant notamment de nombreuses parties binaires) en fichier ASC (ASCII) directement lisible par un éditeur de texte et donc via également des scripts programmés dans les langages les plus usités (notamment Python et Matlab).

Par ailleurs, l’API de SR-Research inclut une ressource précieuse et très complète : « EDF_Access_C_API_user_manual.pdf » qui documente toutes les fonctions de la bibliothèque

Pour les utilisateurs de Matlab, une ressource intéressante et précieuse peut être trouvée à cette adresse

https://github.com/uzh/edf-converter

En particulier, une classe edf2mat, qui possède sa propre fonction d’affichage du contenu de donnée. Cette fonction permettant rapidement de valider (approximativement) la lecture du fichier, mais pas un moyen de les analyser.

Un exemple de d’affichage de la fonction edf2mat

A titre d’illustration, voici un extrait d’un fichier ASC obtenu à partir d’un fichier EDF original :

Un exemple d’une conversion EDF -> ASC

On pourra notamment remarquer (entre autres) :

  • l’en-tête contenant les données de calibration
  • les colonnes stockant
    • les coordonnées des points de visée (gazing point) en coordonnées écran (en relation avec les données DISPLAY_COORDS » (ici : 0 0 1279 1023)
    • l’aire de la pupille (en nombre de pixels caméra)

On notera deux ressources fournies ici. Merci à Thierry Chaminade et Youssef Hmammouche

  • La classe edf2mat : edf2mat.m
  • Le script Python process_edf_file.py
    • Dans ce dernier, on notera la ligne la plus importante : os.system (« EDF_Access_API/Example/edf2asc -failsafe -t -miss NaN -y -v %s »%args. input_filename)

Bon traitements 🙂