Skip to content

Instantly share code, notes, and snippets.

@romanroibu
Last active September 11, 2019 13:39
Show Gist options
  • Save romanroibu/682a42c51c11c40fc4b4b9761201b5db to your computer and use it in GitHub Desktop.
Save romanroibu/682a42c51c11c40fc4b4b9761201b5db to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import glob\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"pd.options.display.float_format = '{:.10f}'.format"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Visualizing the timestamps"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [],
"source": [
"def plot_timestamps(file_path):\n",
" timestamps = np.load(file_path)\n",
" plt.figure(figsize=(16, 5))\n",
" plt.plot(np.arange(1, len(timestamps)+1), timestamps)\n",
" plt.title(file_path)\n",
" info_ts = np.concatenate([timestamps[:10], timestamps[-10:]])\n",
" info = \"\\n\".join([f\"{t}\" for t in info_ts])\n",
" plt.figtext(0.93, 0.2, info)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1152x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plot_timestamps(\"000/world_timestamps.npy\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# External surface start timestamp"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</th>\n",
" <th>video_names</th>\n",
" <th>start</th>\n",
" <th>end</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>bbak4n.mp4</td>\n",
" <td>1564673415.2106528282</td>\n",
" <td>1564673417.6056475639</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>lwad1s.mp4</td>\n",
" <td>1564673426.3244435787</td>\n",
" <td>1564673426.3508408070</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>sx90.mp4</td>\n",
" <td>1564673430.7819437981</td>\n",
" <td>1564673434.3778469563</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>si1092.mp4</td>\n",
" <td>1564673438.8689768314</td>\n",
" <td>1564673442.7388029099</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>bbaf1p.mp4</td>\n",
" <td>1564673445.6598351002</td>\n",
" <td>1564673448.4787063599</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>5</td>\n",
" <td>1015_IEO_DIS_LO.mp4</td>\n",
" <td>1564673453.8151605129</td>\n",
" <td>1564673453.8341023922</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Unnamed: 0 video_names start end\n",
"0 0 bbak4n.mp4 1564673415.2106528282 1564673417.6056475639\n",
"1 1 lwad1s.mp4 1564673426.3244435787 1564673426.3508408070\n",
"2 2 sx90.mp4 1564673430.7819437981 1564673434.3778469563\n",
"3 3 si1092.mp4 1564673438.8689768314 1564673442.7388029099\n",
"4 4 bbaf1p.mp4 1564673445.6598351002 1564673448.4787063599\n",
"5 5 1015_IEO_DIS_LO.mp4 1564673453.8151605129 1564673453.8341023922"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"time_info_csv = pd.read_csv('time_info.csv')\n",
"time_info_csv"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"External surface start time (system time) = 1564673415.2106528\n"
]
}
],
"source": [
"external_surface_start_time_system = time_info_csv[\"start\"][0]\n",
"\n",
"print(f\"External surface start time (system time) = {external_surface_start_time_system}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Pupil video start timestamps"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'Recording Name': '2019_08_01',\n",
" 'Start Date': '01.08.2019',\n",
" 'Start Time': '16:29:59',\n",
" 'Start Time (System)': '1564673399.0627248',\n",
" 'Start Time (Synced)': '25454.939254324',\n",
" 'Recording UUID': '1132d09e-654e-4caf-a947-ee839be16dbd',\n",
" 'Duration Time': '00:00:59',\n",
" 'World Camera Frames': '1685',\n",
" 'World Camera Resolution': '1280x720',\n",
" 'Capture Software Version': '1.13.29',\n",
" 'Data Format Version': 'v1.14',\n",
" 'System Info': 'User: jwan19, Platform: Linux, Machine: eowyn.doc.ic.ac.uk, Release: 4.15.0-50-generic, Version: #54-Ubuntu SMP Mon May 6 18:46:08 UTC 2019'}"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"info_csv = pd.read_csv('000/info.csv')\n",
"info_csv = dict(zip(info_csv['key'], info_csv[\"value\"]))\n",
"info_csv"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Pupil video start time (system time) = 1564673399.0627248\n",
"Pupil video start time (synced time) = 25454.939254324\n"
]
}
],
"source": [
"pupil_video_start_time_system = float(info_csv[\"Start Time (System)\"])\n",
"pupil_video_start_time_synced = float(info_csv[\"Start Time (Synced)\"])\n",
"\n",
"print(f\"Pupil video start time (system time) = {pupil_video_start_time_system}\")\n",
"print(f\"Pupil video start time (synced time) = {pupil_video_start_time_synced}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Pupil surface start timestamp"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>world_index</th>\n",
" <th>world_timestamp</th>\n",
" <th>surface_name</th>\n",
" <th>event_type</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>234</td>\n",
" <td>25463.0017260000</td>\n",
" <td>Surface 1</td>\n",
" <td>enter</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1585</td>\n",
" <td>25508.2742770000</td>\n",
" <td>Surface 1</td>\n",
" <td>exit</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" world_index world_timestamp surface_name event_type\n",
"0 234 25463.0017260000 Surface 1 enter\n",
"1 1585 25508.2742770000 Surface 1 exit"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"surface_events_csv = pd.read_csv(\"000/exports/000/surfaces/surface_events.csv\")\n",
"surface_events_csv"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Pupil surface start time (synced time) = 25463.001726\n"
]
}
],
"source": [
"pupil_surface_start_time_synced = list(surface_events_csv[surface_events_csv[\"event_type\"] == \"enter\"][\"world_timestamp\"])[0]\n",
"\n",
"print(f\"Pupil surface start time (synced time) = {pupil_surface_start_time_synced}\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Calculating the offsets"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First, we calculate the offset between the time when the video starts and the time the surface first appears."
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"8.062471675999404"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pupil_surface_start_time_synced - pupil_video_start_time_synced"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The approx. `8` second offset is consistent with the video.\n",
"\n",
"Then, we check the offset between surface start recorded externally and surface start reported internally."
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Offset between surface start recorded externally and surface start reported internally = 8.085456371307373\n"
]
}
],
"source": [
"pupil_surface_start_time_synced + (pupil_video_start_time_system - pupil_video_start_time_synced)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment