diff --git a/projects/evaluation.tex b/projects/evaluation.tex index d3957dc..7b8b7af 100644 --- a/projects/evaluation.tex +++ b/projects/evaluation.tex @@ -1,10 +1,10 @@ -\documentclass[12pt,a4paper,landscape]{article} +\documentclass[10pt,a4paper,landscape]{article} \usepackage{pslatex} \usepackage{graphics} %%%%% page style %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\usepackage[left=10mm,right=10mm,top=10mm,bottom=10mm,headsep=0ex,headheight=0ex,footskip=0ex]{geometry} +\usepackage[left=5mm,right=5mm,top=10mm,bottom=10mm,headsep=0ex,headheight=0ex,footskip=0ex]{geometry} \pagestyle{empty} \newcommand{\rot}[1]{\rotatebox{90}{#1}\,\,} @@ -17,38 +17,40 @@ \begin{document} \sffamily -\section*{Scientific computing WS18/19} +\section*{Scientific computing WS\,20/21: Project score sheet} \noindent -\begin{tabular}{|p{0.16\textwidth}|p{0.1\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|l|l|} +\begin{tabular}{|p{0.15\textwidth}|p{0.10\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.019\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.018\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.02\textwidth}|l|l|} \hline -Name & Project & \multicolumn{5}{l|}{Project} & \multicolumn{3}{l|}{Figures} & \multicolumn{8}{l|}{Code} & Sum & Grade \rule{0.pt}{3ex} \\ - & & \rot{Understanding} & \rot{Presentation}\rot{Structure, didactics} & \rot{Completed} & \rot{Bonus:}\rot{Context} & \rot{Own ideas} & \rot{Readability}\rot{font size, etc.} & \rot{Labels, units, and}\rot{statistical measures} & \rot{Design} & \rot{Runs} & \rot{Names of}\rot{vars and funcs} & \rot{Style: white space}\rot{Spaghetti, structure} & \rot{Functions: used,}\rot{purpose, standalone} & \rot{Docu script} & \rot{Docu functions} & \rot{Figures saved} & \rot{Bonus:}\rot{Interesting code} & & \\ - & & 0--6 & 0--2 & 0--2 & 0, 1 & 0--2 & 0--2 & 0--2 & 0--2 & 0--2 & 0--2 & 0--2 & 0--3 & 0--2 & 0--2 & 0, 2 & 0--2 & 33 & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline +Name & Project & \multicolumn{3}{l|}{Project} & \multicolumn{3}{l|}{Figures$^1$} & \multicolumn{3}{l|}{Code} & \multicolumn{7}{l|}{Codestyle (7P)$^2$} & \multicolumn{2}{l|}{Documentation} & Sum & Grade \rule{0.pt}{3ex} \\ + & & \rot{Completed} & \rot{Presentation}\rot{Structure, didactics} & \rot{Bonus:}\rot{Context \& own ideas} & \rot{Readability}\rot{font size, etc.} & \rot{Labels, units, and}\rot{statistical measures} & \rot{Consitent design, size,}\rot{layout, color code} & \rot{Runs} & \rot{Figures saved} & \rot{Bonus:}\rot{Interesting code} & \rot{Inconsitent naming}\rot{of files \& functions} & \rot{Inconsistent naming}\rot{of variables} & \rot{Inconsistent use of}\rot{whitespace/empty lines} & \rot{Spaghetti code} & \rot{Non-modularized}\rot{code}& \rot{Mixed function}\rot{purpose}& \rot{Functions are not}\rot{standalone} & \rot{Main script} & \rot{Functions: purpose, }\rot{argument type \& shape,}\rot{function usage} & & \\ + & & 0--4 & 0--4 & 0--2 & 0--2 & 0--3 & 0--3 & 0--2 & 0, 1 & 0--2 & -1 & -1 & -1 & -1 & -1 & -1 & -1 & 0--1 & 0--3 & 30 & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline \end{tabular} +$^1$ see chapter 3: \emph{Graphical representation of scientific data}; $^2$ see chapter 4: \emph{Code style} for more information + \noindent -\begin{tabular}{|p{0.16\textwidth}|p{0.1\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|l|l|} +\begin{tabular}{|p{0.15\textwidth}|p{0.10\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.019\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.018\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.02\textwidth}|p{0.024\textwidth}|p{0.024\textwidth}|p{0.02\textwidth}|l|l|} \hline -Name & Project & \multicolumn{5}{l|}{Project} & \multicolumn{3}{l|}{Figures} & \multicolumn{8}{l|}{Code} & Sum & Grade \rule{0.pt}{3ex} \\ - & & \rot{Understanding} & \rot{Presentation}\rot{Structure, didactics} & \rot{Completed} & \rot{Bonus:}\rot{Context} & \rot{Own ideas} & \rot{Readability}\rot{font size, etc.} & \rot{Labels, units, and}\rot{statistical measures} & \rot{Design} & \rot{Runs} & \rot{Names of}\rot{vars and funcs} & \rot{Style: white space}\rot{Spaghetti, structure} & \rot{Functions: used,}\rot{purpose, standalone} & \rot{Docu script} & \rot{Docu functions} & \rot{Figures saved} & \rot{Bonus:}\rot{Interesting code} & & \\ - & & 0--6 & 0--2 & 0--2 & 0, 1 & 0--2 & 0--2 & 0--2 & 0--2 & 0--2 & 0--2 & 0--2 & 0--3 & 0--2 & 0--2 & 0, 2 & 0--2 & 33 & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline - \num & & & & & & & & & & & & & & & & & & & \\ \hline +Name & Project & \multicolumn{3}{l|}{Project} & \multicolumn{3}{l|}{Figures$^1$} & \multicolumn{3}{l|}{Code} & \multicolumn{7}{l|}{Codestyle (7P)$^2$} & \multicolumn{2}{l|}{Documentation} & Sum & Grade \rule{0.pt}{3ex} \\ + & & \rot{Completed} & \rot{Presentation}\rot{Structure, didactics} & \rot{Bonus:}\rot{Context \& own ideas} & \rot{Readability}\rot{font size, etc.} & \rot{Labels, units, and}\rot{statistical measures} & \rot{Consitent design, size,}\rot{layout, color code} & \rot{Runs} & \rot{Figures saved} & \rot{Bonus:}\rot{Interesting code} & \rot{Inconsitent naming}\rot{of files \& functions} & \rot{Inconsistent naming}\rot{of variables} & \rot{Inconsistent use of}\rot{whitespace/empty lines} & \rot{Spaghetti code} & \rot{Non-modularized}\rot{code}& \rot{Mixed function}\rot{purpose}& \rot{Functions are not}\rot{standalone} & \rot{Main script} & \rot{Functions: purpose, }\rot{argument type \& shape,}\rot{function usage} & & \\ + & & 0--4 & 0--4 & 0--2 & 0--2 & 0--3 & 0--3 & 0--2 & 0, 1 & 0--2 & -1 & -1 & -1 & -1 & -1 & -1 & -1 & 0--1 & 0--3 & 30 & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline + \num & & & & & & & & & & & & & & & & & & & & & \\ \hline \end{tabular} - +$^1$ see chapter 3: \emph{Graphical representation of scientific data}; $^2$ see chapter 4: \emph{Code style} for more information \end{document} diff --git a/projects/project_eyetracker/data/Genesis_VIII.png b/projects/project_eyetracker/data/Genesis_VIII.png new file mode 100644 index 0000000..d8add1a Binary files /dev/null and b/projects/project_eyetracker/data/Genesis_VIII.png differ diff --git a/projects/project_eyetracker/data/Genesis_XXXIX.png b/projects/project_eyetracker/data/Genesis_XXXIX.png new file mode 100644 index 0000000..cf25c64 Binary files /dev/null and b/projects/project_eyetracker/data/Genesis_XXXIX.png differ diff --git a/projects/project_eyetracker/data/export_data.py b/projects/project_eyetracker/data/export_data.py new file mode 100644 index 0000000..9af699e --- /dev/null +++ b/projects/project_eyetracker/data/export_data.py @@ -0,0 +1,29 @@ +import numpy as np +import scipy.io as sp +from IPython import embed + + +with open('corsi_VP19_eyedata.log') as f: + lines = f.readlines() + + eye_found = np.zeros((len(lines)-7,1)) + gaze_x = np.zeros(eye_found.shape) + gaze_y = np.zeros(eye_found.shape) + frame_time = np.zeros(eye_found.shape) + marker_time = np.zeros(eye_found.shape) + marker_count = np.zeros(eye_found.shape) + + for i in range(7,len(lines)): + line = lines[i].strip().split() + eye_found[i-7] = line[1] + gaze_x[i-7] = line[2] + gaze_y[i-7] = line[3] + frame_time[i-7] = line[10] + marker_time[i-7] = line[11] + marker_count[i-7] = line[9] + to_be_stored = {'eye_found': eye_found, 'gaze_x':gaze_x, 'gaze_y':gaze_y, + 'frame_time':frame_time, 'marker_time':marker_time, + 'marker_count':marker_count} + + sp.savemat('eye_tracking.mat', to_be_stored) + diff --git a/projects/project_eyetracker/data/eye_tracking.mat b/projects/project_eyetracker/data/eye_tracking.mat deleted file mode 100644 index 9aef1ba..0000000 Binary files a/projects/project_eyetracker/data/eye_tracking.mat and /dev/null differ diff --git a/projects/project_eyetracker/data/log_to_mat.py b/projects/project_eyetracker/data/log_to_mat.py new file mode 100644 index 0000000..530b647 --- /dev/null +++ b/projects/project_eyetracker/data/log_to_mat.py @@ -0,0 +1,39 @@ +import numpy as np +import scipy.io as spio +import glob +import os + +def export_file(filename): + frame_idx = [] + eye_found = [] + gaze_x = [] + gaze_y = [] + marker = [] + with open(filename, "r") as f: + for i, line in enumerate(f): + if i < 7: + continue + parts = line.strip().split() + frame_idx.append(int(parts[0])) + eye_found.append(int(parts[1])) + gaze_x.append(int(parts[2])) + gaze_y.append(int(parts[3])) + marker.append(int(parts[-4])) + + frame_idx = np.array(frame_idx) + eye_found = np.array(eye_found) + gaze_x = np.array(gaze_x) + gaze_y = np.array(gaze_y) + marker = np.array(marker) + to_be_stored = {'eye_found': eye_found, 'gaze_x':gaze_x, 'gaze_y':gaze_y, + 'frame_index':frame_idx, 'marker':marker} + outfile = filename.split(os.sep)[-1].split(".")[0] + ".mat" + spio.savemat(outfile, to_be_stored) + + +files = sorted(glob.glob(os.path.join(".", "*.log"))) + +for f in files: + print("exporting: ", f) + export_file(f) + diff --git a/projects/project_eyetracker/eyetracker.fdb_latexmk b/projects/project_eyetracker/eyetracker.fdb_latexmk new file mode 100644 index 0000000..e7dc4c3 --- /dev/null +++ b/projects/project_eyetracker/eyetracker.fdb_latexmk @@ -0,0 +1,121 @@ +# Fdb version 3 +["pdflatex"] 1612006735 "/Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.tex" "/Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.pdf" "eyetracker" 1612006736 + "../header.tex" 1611822933 1721 b4b359c75ebca4237084c34779ee2a8a "" + "../instructions.tex" 1612006493 2791 5d50eddfb19fcbb58a1725956903e859 "" + "/Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.aux" 1612006736 2070 ffb5982e823fdc578f307c478868ae46 "" + "/Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.tex" 1612006735 2267 456c23288bff611c59749f358de46b7a "" + "/usr/local/texlive/2020/texmf-dist/fonts/enc/dvips/base/8r.enc" 1165713224 4850 80dc9bab7f31fb78a000ccfed0e27cab "" + "/usr/local/texlive/2020/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/courier/pcrro7t.tfm" 1136768653 1116 3b5422ca7b3feeb8bd20316af67485c1 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/courier/pcrro8r.tfm" 1136768653 1544 4fb84cf2931ec523c2c6a08d939088ba "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm" 1136768653 1408 5937f58aa508ea2cea4901c07d10f5fe "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm" 1136768653 2172 fd0c924230362ff848a33632ed45dc23 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmb8r.tfm" 1136768653 4524 6bce29db5bc272ba5f332261583fee9c "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm" 1136768653 2124 2601a75482e9426d33db523edf23570a "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm" 1136768653 4408 25b74d011a4c66b7f212c0cc3c90061b "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm" 1136768653 2288 f478fc8fed18759effb59f3dad7f3084 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmri8r.tfm" 1136768653 4640 532ca3305aad10cc01d769f3f91f1029 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zpsycmrv.tfm" 1136768653 1028 3fa1c402c2554ead873d55fc7cf9e8b9 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zptmcmr.tfm" 1136768653 2172 1d00c2a0d10f23031be62329457a870c "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zptmcmrm.tfm" 1136768653 2020 e970c1df148989ada67768f62533fb70 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zpzccmry.tfm" 1136768653 1592 9cf7d6bd275cdad1ddc3affbde20c2cc "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/euler/eurm10.tfm" 1246382020 1228 9be37fdf0dc0e1f4df4af3594876d628 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/euler/eurm7.tfm" 1246382020 1228 22a83614922c993c1b2e124955a38ca1 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/euler/eurm9.tfm" 1246382020 1228 fa3508ca8cc32ad3715cc1fae8882e96 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm" 1246382020 916 f87d7c45f9c908e672703b83b72241a3 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm" 1246382020 928 2dc8d444221b7a635bb58038579b861a "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm" 1246382020 908 2921f8a10601f252058503cc6570e581 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm" 1246382020 940 228d6584342e91276bf566bcf9716b83 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmr12.tfm" 1136768653 1288 655e228510b4c2a1abe905c368440826 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/pslatex/pcrr7tn.tfm" 1136768653 1000 b1fede78e96e72ee6b5e3664d6798098 "" + "/usr/local/texlive/2020/texmf-dist/fonts/tfm/public/pslatex/pcrr8rn.tfm" 1136768653 1256 5678cf8cd2607900c94c5b03260620c2 "" + "/usr/local/texlive/2020/texmf-dist/fonts/type1/urw/courier/ucrr8a.pfb" 1136849748 45758 19968a0990191524e34e1994d4a31cb6 "" + "/usr/local/texlive/2020/texmf-dist/fonts/type1/urw/courier/ucrro8a.pfb" 1136849748 44404 ea3d9c0311883914133975dd62a9185c "" + "/usr/local/texlive/2020/texmf-dist/fonts/type1/urw/times/utmb8a.pfb" 1136849748 44729 811d6c62865936705a31c797a1d5dada "" + "/usr/local/texlive/2020/texmf-dist/fonts/type1/urw/times/utmr8a.pfb" 1136849748 46026 6dab18b61c907687b520c72847215a68 "" + "/usr/local/texlive/2020/texmf-dist/fonts/type1/urw/times/utmri8a.pfb" 1136849748 45458 a3faba884469519614ca56ba5f6b1de1 "" + "/usr/local/texlive/2020/texmf-dist/fonts/vf/adobe/courier/pcrro7t.vf" 1136768653 1348 83f3fb6f885de67cb91aba9ac0b7d8ac "" + "/usr/local/texlive/2020/texmf-dist/fonts/vf/adobe/times/ptmb7t.vf" 1136768653 1372 788387fea833ef5963f4c5bffe33eb89 "" + "/usr/local/texlive/2020/texmf-dist/fonts/vf/adobe/times/ptmr7t.vf" 1136768653 1380 0ea3a3370054be6da6acd929ec569f06 "" + "/usr/local/texlive/2020/texmf-dist/fonts/vf/adobe/times/ptmri7t.vf" 1136768653 1384 a9d8adaf491ce34e5fba99dc7bbe5f39 "" + "/usr/local/texlive/2020/texmf-dist/fonts/vf/public/pslatex/pcrr7tn.vf" 1136768653 1496 2db0315581145ac2fd4f0669ab265b14 "" + "/usr/local/texlive/2020/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b "" + "/usr/local/texlive/2020/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 "" + "/usr/local/texlive/2020/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b "" + "/usr/local/texlive/2020/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 "" + "/usr/local/texlive/2020/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b "" + "/usr/local/texlive/2020/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e "" + "/usr/local/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty" 1583617216 6501 4011d89d9621e0b0901138815ba5ff29 "" + "/usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifvtex.sty" 1572645307 1057 525c2192b5febbd8c1f662c9468335bb "" + "/usr/local/texlive/2020/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed "" + "/usr/local/texlive/2020/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 "" + "/usr/local/texlive/2020/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 "" + "/usr/local/texlive/2020/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty" 1576624944 13807 952b0226d4efca026f0e19dd266dcc22 "" + "/usr/local/texlive/2020/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1576624883 18552 1e1cc7b75da0dfaacce7cdcb27d306bf "" + "/usr/local/texlive/2020/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 "" + "/usr/local/texlive/2020/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/SIunits/SIunits.cfg" 1137109856 1339 e1c35ec7ca1a5a17ac67ecbdabb6990b "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/SIunits/SIunits.sty" 1196611627 24315 d4b7c746aadbeeadad3d915d486cc1b1 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1359763108 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/amsfonts/amssymb.sty" 1359763108 13829 94730e64147574077f8ecfea9bb69af4 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/amsfonts/umsa.fd" 1359763108 961 6518c6525a34feb5e8250ffa91731cff "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/amsfonts/umsb.fd" 1359763108 961 d02606146ba5601b5645f987c92e6193 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1523134290 2211 ca7ce284ab93c8eecdc6029dc5ccbd73 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsgen.sty" 1523134290 4161 7f6eb9092061a11f87d08ed13515b48d "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsmath.sty" 1580683321 85660 baee036978c7a91f4e2bba43f05e5945 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsopn.sty" 1523134290 4116 32e6abd27229755a83a8b7f18e583890 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amstext.sty" 1523134290 2432 8ff93b1137020e8f21930562a874ae66 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/atveryend/atveryend.sty" 1576191570 19336 ce7ae9438967282886b3b036cfad1e4d "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/base/article.cls" 1580683321 20023 e427dd9e17e239bf926ef3aab67fe35e "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/base/ifthen.sty" 1580683321 5159 892429808d9e0e2b3548aaefd9a06ed0 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/base/size12.clo" 1580683321 8447 5c4b8ee712f8e349df2722115bc8c513 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/doublestroke/dsfont.sty" 1137110062 230 7bc61880b468bfd38aedc173be7c3486 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/exam/exam.cls" 1513552338 282612 08a9755a8f51d31edf6b4124c9b710f9 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/geometry/geometry.sty" 1578002852 41601 9cf6c5257b1bc7af01a58859749dd37a "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics-def/pdftex.def" 1585083172 17448 c8e20d5f7e69b0cbecf82ab29daeebd9 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphics.sty" 1580683321 16932 04729abe63b66ec59ea56edcd722b058 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphicx.sty" 1580683321 9067 1b996612394a52e1efe89c8bfe8a5892 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty" 1580683321 2590 e3b24ff953e5b58d924f163d25380312 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/graphics/trig.sty" 1580683321 3976 d7fa7d81d2870d509d25b17d0245e735 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hpdftex.def" 1579642962 50630 3d9728faf8630190cf601ce2cbe470d9 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref.sty" 1579642962 238752 60dd338d71b6a4ab2192131f73dc908b "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/nameref.sty" 1579642962 13244 0070bcab7b5a88187847128d22faf4d8 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/pd1enc.def" 1579642962 14134 32b36577d311ddb6522413c7581ee968 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1575152344 22520 c4c2dab203104295e1e618be7e5c0f5b "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def" 1584044900 25398 19ae1e59d7f4a47fefb457d851f6f503 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.cfg" 1585170648 1830 e31effa752c61538383451ae21332364 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.sty" 1585170648 80964 64e57373f36316e4a09b517cbf1aba2e "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty" 1585170648 204271 bae5b2d457283e99567249c1990510be "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstmisc.sty" 1585170648 77022 ee25ce086f4a79d8cf73bac6f94c02a5 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty" 1574631863 19963 36fd8e818f9f0f32e2db8413d4970122 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/pslatex/pslatex.sty" 1137110627 10134 d237c4595fc396f83448a99dcf1331c4 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/psnfss/omlptmcm.fd" 1137110629 410 9192021592ce021f5236f40ea9cb5ee2 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/psnfss/omspzccm.fd" 1137110629 328 d517b7c860d57a2003a0a61e6bea8c93 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/psnfss/omxpsycm.fd" 1137110629 328 a75fc8c20c19f9a869a56a84f006da2b "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/psnfss/ot1ptmcm.fd" 1137110629 327 a287f1198bc35c2e45560f9504f84b3c "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1575674187 9715 b051d5b493d9fe5f4bc251462d039e5f "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/tools/bm.sty" 1580683321 12671 ace2aac118748ea10d1717448ecafbed "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 "" + "/usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/xcolor.sty" 1463002160 55589 34128738f682d033422ca125f82e5d62 "" + "/usr/local/texlive/2020/texmf-dist/web2c/texmf.cnf" 1583102494 39451 60d7debd9ef8ece44cbe965493576c2d "" + "/usr/local/texlive/2020/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1586288239 4811913 0be9a7e86c70a26e5e3042966bcd7097 "" + "/usr/local/texlive/2020/texmf-var/web2c/pdftex/pdflatex.fmt" 1598108249 2432461 c2c771ffb55f95731cecd47626233fb8 "" + "/usr/local/texlive/2020/texmf.cnf" 1586288231 577 d60164b4589a341208aff7a667fbbdcb "" + "eyetracker.aux" 1612006736 2070 ffb5982e823fdc578f307c478868ae46 "pdflatex" + "eyetracker.out" 1612006736 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex" + "eyetracker.tex" 1612006735 2267 456c23288bff611c59749f358de46b7a "" + (generated) + "eyetracker.pdf" + "eyetracker.log" + "eyetracker.aux" + "/Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.pdf" + "/Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.log" + "eyetracker.out" diff --git a/projects/project_eyetracker/eyetracker.fls b/projects/project_eyetracker/eyetracker.fls new file mode 100644 index 0000000..be584bb --- /dev/null +++ b/projects/project_eyetracker/eyetracker.fls @@ -0,0 +1,224 @@ +PWD /Users/jan/teaching/scicomp_projects/project_eyetracker +INPUT /usr/local/texlive/2020/texmf.cnf +INPUT /usr/local/texlive/2020/texmf-dist/web2c/texmf.cnf +INPUT /usr/local/texlive/2020/texmf-var/web2c/pdftex/pdflatex.fmt +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.tex +OUTPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.log +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/exam/exam.cls +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/exam/exam.cls +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/size12.clo +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/base/size12.clo +INPUT /usr/local/texlive/2020/texmf-dist/fonts/map/fontname/texfonts.map +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/cm/cmr12.tfm +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/../header.tex +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/../header.tex +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pslatex/pslatex.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pslatex/pslatex.sty +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/SIunits/SIunits.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/SIunits/SIunits.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/SIunits/SIunits.cfg +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/SIunits/SIunits.cfg +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/listings/lstlang1.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/bm.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/tools/bm.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/doublestroke/dsfont.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/doublestroke/dsfont.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.aux +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.aux +OUTPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.aux +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/psnfss/omspzccm.fd +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/psnfss/omspzccm.fd +INPUT /usr/local/texlive/2020/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/local/texlive/2020/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/local/texlive/2020/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.out +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.out +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.out +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.out +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.out +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.out +OUTPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.out +OUTPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.pdf +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/../instructions.tex +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/../instructions.tex +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/pslatex/pcrr7tn.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/courier/pcrro7t.tfm +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/psnfss/ot1ptmcm.fd +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/psnfss/ot1ptmcm.fd +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zptmcmr.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zptmcmr.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zptmcmr.tfm +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/psnfss/omlptmcm.fd +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/psnfss/omlptmcm.fd +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zptmcmrm.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zptmcmrm.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zptmcmrm.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zpzccmry.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zpzccmry.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zpzccmry.tfm +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/psnfss/omxpsycm.fd +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/psnfss/omxpsycm.fd +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zpsycmrv.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zpsycmrv.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/zpsycmrv.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/euler/eurm10.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/euler/eurm9.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/euler/eurm7.tfm +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsfonts/umsb.fd +INPUT /usr/local/texlive/2020/texmf-dist/tex/latex/amsfonts/umsb.fd +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/pslatex/pcrr7tn.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/vf/adobe/times/ptmb7t.vf +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmb8r.tfm +INPUT /usr/local/texlive/2020/texmf-var/fonts/map/pdftex/updmap/pdftex.map +INPUT /usr/local/texlive/2020/texmf-dist/fonts/vf/adobe/times/ptmr7t.vf +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/vf/adobe/times/ptmb7t.vf +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmb8r.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/vf/adobe/times/ptmri7t.vf +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmri8r.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/vf/public/pslatex/pcrr7tn.vf +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/pslatex/pcrr8rn.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/vf/adobe/courier/pcrro7t.vf +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/courier/pcrro8r.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/vf/adobe/times/ptmb7t.vf +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmb8r.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/vf/adobe/times/ptmr7t.vf +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/vf/adobe/times/ptmri7t.vf +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/times/ptmri8r.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/vf/public/pslatex/pcrr7tn.vf +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/adobe/symbol/psyr.tfm +INPUT /usr/local/texlive/2020/texmf-dist/fonts/tfm/public/pslatex/pcrr8rn.tfm +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.aux +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.out +INPUT /Users/jan/teaching/scicomp_projects/project_eyetracker/eyetracker.out +INPUT /usr/local/texlive/2020/texmf-dist/fonts/enc/dvips/base/8r.enc +INPUT /usr/local/texlive/2020/texmf-dist/fonts/type1/urw/courier/ucrr8a.pfb +INPUT /usr/local/texlive/2020/texmf-dist/fonts/type1/urw/courier/ucrro8a.pfb +INPUT /usr/local/texlive/2020/texmf-dist/fonts/type1/urw/times/utmb8a.pfb +INPUT /usr/local/texlive/2020/texmf-dist/fonts/type1/urw/times/utmr8a.pfb +INPUT /usr/local/texlive/2020/texmf-dist/fonts/type1/urw/times/utmri8a.pfb diff --git a/projects/project_eyetracker/eyetracker.synctex.gz b/projects/project_eyetracker/eyetracker.synctex.gz new file mode 100644 index 0000000..dfc3741 Binary files /dev/null and b/projects/project_eyetracker/eyetracker.synctex.gz differ diff --git a/projects/project_eyetracker/eyetracker.tex b/projects/project_eyetracker/eyetracker.tex index 017c368..66e7e20 100644 --- a/projects/project_eyetracker/eyetracker.tex +++ b/projects/project_eyetracker/eyetracker.tex @@ -2,8 +2,8 @@ \newcommand{\ptitle}{Eye tracker} \input{../header.tex} -\firstpagefooter{Supervisor: Jan Grewe}{phone: 29 74588}% -{email: jan.grewe@uni-tuebingen.de} +\firstpagefooter{Supervisor: Lukas Sonnenberg}{phone:}% +{email: lukas.sonnenberg@uni-tuebingen.de} \begin{document} @@ -12,33 +12,30 @@ %%%%%%%%%%%%%% Questions %%%%%%%%%%%%%%%%%%%%%%%%% \section*{Analysis of eye trajectories.} -In this project you will analyse eye-tracking data (courtesy of the -Mallot department). In this task the subject had to memorize the -positions of targets that can be only learned with active gaze -shifts. The eye movements during training and test are recorded. +In this project you will analyze eye-tracking data (courtesy of Gregor Hardiess, +Cognitive Neuroscience, Uni-T\"ubingen). In this task subjects were viewing +biblical images while their eye movements were recorded. + +In the accompanying datasets you find a subject's eye tracking data when viewing two different images +(\emph{Genesis\_VIII.png} and \emph{Genesis\_XXXIX.png}, files \verb+1_1.mat+ and \verb+1_2.mat+, respectively). Each \verb+mat+-file contains five variables: \verb+frame_index+, the \verb+gaze_x+ and \verb+gaze_y+ position (in pixel on the screen), a boolean vector \verb+eye_found+ telling whether the tracker could actually estimate the eye position, and a vector \verb+marker+. The \verb+marker+ is used to indicate sections in the data. 0 can be ignored, 1 marks the fixation period and 2 indicates the acutal trial. +The screen was 37.6\,cm wide and 30.1\,cm high and had a resolution of 1280\,x\,1024\,pixel. The distance between subject's eyes and the screen was 50\,cm. +The eyetracker recorded ey positions with 60\,Hz. The fixation point was shown at the center of the screen and can be used to compensate for possible offests in the \verb+gaze_x+ and \verb+gaze_y+ positions. \begin{questions} - \question In the accompanying dataset you find six variables. (i) - \textit{eye\_found} a logical array indicating whether the eye was - found by the tracker. (ii, iii) \textit{gaze\_x} and - \textit{gaze\_y} containing the x- and y-position of the gaze. They - relate to a screen with 1280x1024 pixel resolution. (iv) - \textit{frame\_time} containing time stamps for each frame. (v) - \textit{marker\_time} containing the time of the last marker. (vi) - \textit{marker\_count} the count of the markers. All entries with - the same marker belong to the same trial. + \question Familiarize yourself with the data. \begin{parts} - \part Cut the data in chunks belonging to the same trial. - \part Characterize the eye movements statistically, e.g. with eye - speed and/or accelerations. - \part Detect and correct the eye traces for instances in which the - eye was not correctly detected. Interpolate linearily in these sections. - \part Create a 'heatmap' plot of the eye-positions - for one or two (nice) trials. - \part Use the \verb+kmeans+ clustering function to - identify fixation points. Manually select a good number of cluster - centroids. + \part Cut the data in chunks belonging to the same period (fixation and free eye-movements). + \part Detect problems in the data (e.g. the eye was not found) and correct the eye traces. Interpolate linearily in these sections. + \end{parts} + + \question Characterize the eye movements statistically. + \begin{parts} + \part Calculate with eye speed and/or accelerations. + \part Create a 'heatmap' plot of the eye-positions. + \part Detect fixation points in the "free movement" part of the data. \end{parts} + + \question Compare the subject's behaviour when viewing the different scenes. \end{questions} \end{document} diff --git a/projects/project_eyetracker/solution/convert_indices_to_time.m b/projects/project_eyetracker/solution/convert_indices_to_time.m new file mode 100644 index 0000000..7171bd6 --- /dev/null +++ b/projects/project_eyetracker/solution/convert_indices_to_time.m @@ -0,0 +1,15 @@ +function [time] = convert_indices_to_time(indices, framerate) +% [time] = convert_indices_to_time(indices, frame_rate) +% +% Converts the vector of frame indices to time. The time vector will start +% at zero. +% +% Arguments: +% indices: vecor, the frame indices +% framerate:, scalar, the framerate in Hz +% +% Returns: +% time: vector, the time vector + +indices = indices - indices(1); +time = indices / framerate; \ No newline at end of file diff --git a/projects/project_eyetracker/solution/convert_pixel_to_meter.m b/projects/project_eyetracker/solution/convert_pixel_to_meter.m new file mode 100644 index 0000000..148b8d0 --- /dev/null +++ b/projects/project_eyetracker/solution/convert_pixel_to_meter.m @@ -0,0 +1,7 @@ +function [x, y] = convert_pixel_to_meter(x_pos, y_pos, width_m, height_m, width_pixel, height_pixel) + +x_resolution = width_m/width_pixel; +y_resolution = height_m/height_pixel; + +x = x_pos * x_resolution; +y = y_pos * y_resolution; \ No newline at end of file diff --git a/projects/project_eyetracker/solution/correct_eye_positions.m b/projects/project_eyetracker/solution/correct_eye_positions.m new file mode 100644 index 0000000..5a4860c --- /dev/null +++ b/projects/project_eyetracker/solution/correct_eye_positions.m @@ -0,0 +1,17 @@ +function [true_x, true_y] = correct_eye_positions(eye_x, eye_y, x_offset, y_offset) +% [true_x, true_y] = correct_eye_positions(eye_x, eye_y, x_offset, y_offset) +% +% Applies the measured offset between x- and y- fixation coordinates to +% correct the recorded x- and y- eye coordinates. +% +% Arguments: +% eye_x, eye_y: vector, the recorded x- and y-eye positions. +% x_offset, y_offset: scalar, the x- and y-offset between +% fixation point and eye position during fixation. +% +% Returns: +% true_x, true_y: vector, the corrected eye positions + + +true_x = eye_x + x_offset; +true_y = eye_y + y_offset; \ No newline at end of file diff --git a/projects/project_eyetracker/solution/fix_eye_lost.m b/projects/project_eyetracker/solution/fix_eye_lost.m new file mode 100644 index 0000000..e07f527 --- /dev/null +++ b/projects/project_eyetracker/solution/fix_eye_lost.m @@ -0,0 +1,22 @@ +function [new_x, new_y] = fix_eye_lost(x, y, frame_index, eye_found) +% [new_x, new_y] = fix_eye_lost(x, y, frame_index, eye_found) +% +% Fixes intervals in the data in which eye detection was lost. Function uses linear interpolation. +% +% Arguments: +% x, y: vector, the eye positions +% frame_indices: vector, same length as x and y, the frame +% indices (or times) +% eye_found: vector, ones and zeros indicate whether the eye was +% reliably found by the tracker or not. +% +% Returns: +% new_x, new_y: vectors of double, the new positions + +valid_x_positions = double(x(eye_found == 1)); +valid_y_positions = double(y(eye_found == 1)); + +valid_frame_indices = double(frame_index(eye_found == 1)); + +new_x = interp1(valid_frame_indices, valid_x_positions, double(frame_index)); +new_y = interp1(valid_frame_indices, valid_y_positions, double(frame_index)); diff --git a/projects/project_eyetracker/solution/get_fixation_offset.m b/projects/project_eyetracker/solution/get_fixation_offset.m new file mode 100644 index 0000000..a263275 --- /dev/null +++ b/projects/project_eyetracker/solution/get_fixation_offset.m @@ -0,0 +1,20 @@ +function [x_offset, y_offset] = get_fixation_offset(eye_x, eye_y, event_marker, fixation_event_marker, fixation_x, fixation_y) +% [x_offset, y_offset] = get_fixation_offset(eye_x_pos, eye_y_pos, event_marker, fixation_event_marker, fixation_x, fixation_y) +% +% Estimates the x, and y-offset between screen position and reported eye position while fixating +% +% Arguments: +% eye_x, eye_y: The eye positions reported by the tracker, vectors of coordinates +% event_marker: vector, the recorded event markers +% fixation_event_marker: scalar, the event marker that represents the fixation period +% fixation_x, fixation_y: scalar, the x and y position of the fixation cross on the screen +% +% Returns: +% x_offset, y_offset: scalar the deviation between reported x +% and y positions and the true positions. + +eye_fixation_x_pos = median(eye_x(event_marker == fixation_event_marker)); +eye_fixation_y_pos = median(eye_y(event_marker == fixation_event_marker)); + +x_offset = fixation_x - eye_fixation_x_pos; +y_offset = fixation_y - eye_fixation_y_pos; diff --git a/projects/project_eyetracker/solution/load_eye_tracking_data.m b/projects/project_eyetracker/solution/load_eye_tracking_data.m new file mode 100644 index 0000000..48df855 --- /dev/null +++ b/projects/project_eyetracker/solution/load_eye_tracking_data.m @@ -0,0 +1,21 @@ +function [frame_index, gaze_x, gaze_y, marker, eye_found] = load_eye_tracking_data(filename) +% [frame_index, gaze_x, gaze_y, marker, eye_found] = load_eye_tracking_data(filename) +% +% Loads the eyetracking data stored in the specified file. Raises an error, +% if the file was not found. +% +% Arguments: +% filename: string, the path to the data file +% +% Returns: +% frame_index: vector, the recorded frame numbers +% gaze_x, gaze_y: vector, the recorded x and y eye positions +% marker: vector, the recorded event marker +% eye_found: vector, 1, or zero values indicating whether or not +% the eye was actually detected by the tracker. + +if exist(filename, "file") ~= 2 + error("file %s does not exist or is no mat file", filename); +end + +load(filename, "gaze_x", "gaze_y", "frame_index", "marker", "eye_found") \ No newline at end of file diff --git a/projects/project_eyetracker/solution/main.m b/projects/project_eyetracker/solution/main.m new file mode 100644 index 0000000..217840f --- /dev/null +++ b/projects/project_eyetracker/solution/main.m @@ -0,0 +1,35 @@ +% Project Eyetracking +% Name: John Doe +% Matrikelnummer: 123456789 +clear +close all + +%% Definition of constants +framerate = 60; % Hz +screen_width = 0.376; % m +screen_height = 0.301; % m +screen_resolution_x = 1280; % pixel +screen_resolution_y = 1024; % pixel +fixation_x = screen_resolution_x/2; % position of fixation cross on screen +fixation_y = screen_resolution_y/2; % position of fixation cross on screen +fixation_marker = 1; % event marker for fixtion period +movement_marker = 2; % event marker for free movement period + +data_files = [fullfile("..", "data", "1_1.mat"), fullfile("..", "data", "1_5.mat")]; +scenes = [fullfile("..", "data", "Genesis_VIII.png"), fullfile("..", "data", "Genesis_XXXIX.png")]; + +%% Process files +for i = 1:length(data_files) + file = data_files(i); + scene = scenes(i); + + fprintf("processing: %s\n", file) + [frame_indices, x, y, event_marker, eye_found] = load_eye_tracking_data(file); + [x_offset, y_offset] = get_fixation_offset(x, y, event_marker, fixation_marker, fixation_x, fixation_y); + [true_x, true_y] = correct_eye_positions(x, y, x_offset, y_offset); + [true_x, true_y] = fix_eye_lost(true_x, true_y, frame_indices, eye_found); + time = convert_indices_to_time(frame_indices, framerate); + + fig = plot_image_position_overlay(true_x, true_y, time, scene); + saveas(fig, sprintf("test_%i", i), "pdf") +end \ No newline at end of file diff --git a/projects/project_eyetracker/solution/plot_image_position_overlay.m b/projects/project_eyetracker/solution/plot_image_position_overlay.m new file mode 100644 index 0000000..6004eff --- /dev/null +++ b/projects/project_eyetracker/solution/plot_image_position_overlay.m @@ -0,0 +1,20 @@ +function fig = plot_image_position_overlay(x, y, time, image) + +if length(x) ~= length(y) || length(y) ~= length(time) + error("Length of vectors x, y, and time does not match!"); +end +if ~exist(image, "file") + error("Image %s could not be found!", image); +end + +fig = figure(); +imshow(image) +hold on +scatter(x, y, [], time) +c = colorbar(); + +fig.PaperSize = [10.0, 10.0]; +fig.PaperPosition = [0., 0., 10.0, 10.0]; +c.Label.String = "time [s]"; +c.Label.FontSize = 9; +