import simianpy as simi #pip install git+https://github.com/jselvan/simianpy.git@0.1.4 import matplotlib.pyplot as plt import pandas as pd hdf_path = 'Data.h5' hdf_kwargs = dict(path_or_buf=hdf_path, complib='blosc:lz4', complevel=9) eye_data_block = pd.read_hdf(hdf_path, 'ContinuousEyeDataVideo') eye_data_block_fix = pd.read_hdf(hdf_path, 'ContinuousEyeDataFixationSlide') detect_saccades_kwargs = dict(velocity_threshold=30,duration_threshold=pd.offsets.Milli(10)) detect_fixations_kwargs = dict(velocity_threshold=10,duration_threshold=pd.offsets.Milli(50),Filter=simi.signal.Smooth(11,'hamming')) video_keys = ['monkey','injection','condition','front','scrambled','treatment','video_file','block'] fixslide_keys = ['monkey','injection','treatment','fixation_slide','block'] saccade_data = pd.concat({idx: simi.analysis.DetectSaccades(data.reset_index().set_index('time').loc[:, ['eyeh','eyev']],**detect_saccades_kwargs) for idx, data in eye_data_block.groupby(video_keys)},names=video_keys) saccade_data = saccade_data.query('peak_radial_velocity<1500') saccade_data.to_hdf(key='saccade_data', **hdf_kwargs) fixslide_saccade_data = pd.concat({idx: simi.analysis.DetectSaccades(data.reset_index().set_index('time').loc[:, ['eyeh','eyev']],**detect_saccades_kwargs) for idx, data in eye_data_block_fix.groupby(fixslide_keys)},names=fixslide_keys) fixslide_saccade_data = fixslide_saccade_data.query('peak_radial_velocity<1500') fixslide_saccade_data.to_hdf(key='fixslide_saccade_data', **hdf_kwargs) fixation_data = pd.concat({idx: simi.analysis.DetectFixations(data.reset_index().set_index('time').loc[:, ['eyeh','eyev']],**detect_fixations_kwargs) for idx, data in eye_data_block.groupby(video_keys)},names=video_keys) fixation_data.to_hdf(key='fixation_data', **hdf_kwargs) fixslide_fixation_data = pd.concat({idx: simi.analysis.DetectFixations(data.reset_index().set_index('time').loc[:, ['eyeh','eyev']],**detect_fixations_kwargs) for idx, data in eye_data_block_fix.groupby(fixslide_keys)},names=fixslide_keys) fixslide_fixation_data.to_hdf(key='fixslide_fixation_data', **hdf_kwargs)