help with iohub hdf5 data file missing high speed eye tracking data

213 views
Skip to first unread message

Linus Sun

unread,
Sep 1, 2015, 2:40:43 PM9/1/15
to psychopy-users

Hi Everyone (& Sol for his development of iohub):

I am trying to save high speed data from a remote SMI Hi-Speed (350Hz) eye tracker running version 2.2 of iViewX server (lowest version that works with python iXAPI API on Windows 7) with 1.82.01 psychopy.

I've successfully managed to get the iohub demo (iohub_extended\eyetracker\run.py) iohub to mostly work, in that I am able to show all 5 jpeg images and display the live raw eye position after calibration during acquisition of data. The things which stand out that doesn't work are validation (produces a psychopy error and crashes - and iViewX error message says unknown command received), and displaying text "press any key to continue experiment" which causes a memory error. 

However the big problem is that the hdf5 data file that is stored by iohub, only /data_collection/events/experiment/events stores events at 60Hz (the refresh of my monitor).

When I look into the /data_collection/events/eyetracker/ part of the hdf5 file, all of the events, MonocularEyeSampleEvent, BioncularEyeSampleEvent, saccade events, are completely empty. This is verified when I use the program HDFView (v2.11).

Any suggestions on how to make iohub automatically save these high speed eye tracker events?

Thanks,

Linus

My System Configuration:
MacPro(1,1) 8-core, running Bootcamp Windows 7 and psychopy 1.82.01
Intel pentium running IviewX 2.2 with SMI Hi-Speed (350Hz) monocular eye tracker.




Michael MacAskill

unread,
Sep 6, 2015, 10:46:46 PM9/6/15
to psychop...@googlegroups.com
Hi Linus,

Did you make any breakthrough with this? If not, I'd be happy to work through the issues with you. I've been intending to shift our own lab to using ioHub rather than our own custom Python code, and this would be a good prompt to get that done. We mainly use a 1250 Hz Hi-speed but also have the older 240/350 Hz version available so I'd be able to test your code on a similar system.

I seem to recall coming across a problem with only recording 60 Hz data with another SMI system when we were running a workshop at Lund. I'm sure it can be overcome.

Regards,

Michael

Sol Simpson

unread,
Sep 7, 2015, 1:47:52 PM9/7/15
to psychopy-users
Hi Linus,

First, sorry for the delay in my reply to you and anyone else that has posted an iohub related support request since June that is still outstanding. I took the summer off and did not check my emails or any user group postings. Over the next week I'll be going through and answering any outstanding iohub support questions that have been posted during this time period.
 
Back to your question: Can you email me the experiment folder that contains the psychopy script and any configuration files that iohub may be using (*.yaml). The folder you mention ("iohub_extended\eyetracker\run.py") sounds like an older example or something, so I am not sure how the example you are using configures the eye tracker and data streaming / saving. 

iohub can be configured to stream and/or save events from each supported device independently. It sounds like in the code you are using iohub has been configured to only stream data to your experiment in real-time, which you are using in your script to write the messages you mentioned once per screen refresh, but not to save the smi device data to the hdf5 file on disk. If this is the case, a simple change to the iohub configuration for the eye tracker device should fix the issue. 

Thank you,

Sol  
 

Jeremy Gray

unread,
Sep 7, 2015, 3:28:49 PM9/7/15
to psychop...@googlegroups.com
Hey Sol!

Good to hear you took some time off, and great to have you back :-)

--Jeremy

Richard Höchenberger

unread,
Sep 8, 2015, 3:04:37 AM9/8/15
to psychop...@googlegroups.com
On Mon, Sep 7, 2015 at 9:28 PM, Jeremy Gray <jrg...@gmail.com> wrote:
> Hey Sol!
>
> Good to hear you took some time off, and great to have you back :-)

I would like to second that. Welcome back! :)

Richard

Sol Simpson

unread,
Sep 21, 2015, 9:48:53 AM9/21/15
to psychopy-users
A very late "thanks guys". ;)

Sol Simpson

unread,
Sep 22, 2015, 10:17:01 AM9/22/15
to psychopy-users
Incase this helps anyone else, Linus has confirmed that changing the iohub eye tracker device settings fixed the sample saving issues. Here is a copy of the email outlining the issues needed to be fixed in his iohub device config file:

The following changes should fix the issue. Be sure to delete any hdf5 file in the script folder before testing.
 
1) Can you try changing the monitor_event_types setting that is in the 'eyetrackjer_configs/iviewx_config.yaml' file to the following, and remove the current setting value for that line.
 
monitor_event_types: [ BinocularEyeSampleEvent, ]

The SMI interface always saves binocular eye sample events, even if only one eye is being recorded, because the SMI C API that iohub uses also always sends binocular eye sample structures.
 
2) Also remove the setting for 'device_timer' completely from the same file; it is not used by the SMI system. So based on the file you sent, you would remove lines 26 - 35 of the file to get rid of this setting and it's associated comments.
 
I think you should then get binoc sample events in the hdf5 file when these changes have been made to the config file. 

Thanks. 
Reply all
Reply to author
Forward
0 new messages