{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Screen Latency Demo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Setup" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "import aopy\n", "import os\n", "import numpy as np\n", "from scipy import signal\n", "import matplotlib.pyplot as plt\n", "from datetime import date\n", "from db import dbfunctions as db\n", "\n", "blocks = [2621, 2622, 2623] #Block IDs to test\n", "data_dir = \"/data/raw\" # Directory of raw data to load\n", "pulses2avg = [2,10,10] # Number of pulses to average to calculate latency for each block. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Load data and calculate latency for each block" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Files in data_dir: {'hdf': 'hdf/test20210827_11_te2621.hdf', 'ecube': 'ecube/2021-08-27_BMI3D_te2621'}\n", "Warning: this bmi3d sync version is untested!\n", "Sync latency estimate: 0.0231 s\n", "Warning: last event (255) doesn't match bmi3d records (17)\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Block: 2621 Average Latency 38.2 ms\n", "\n", "\n", "Files in data_dir: {'hdf': 'hdf/test20210827_12_te2622.hdf', 'ecube': 'ecube/2021-08-27_BMI3D_te2622'}\n", "Warning: this bmi3d sync version is untested!\n", "Sync latency estimate: 0.0047 s\n", "Warning: last event (255) doesn't match bmi3d records (17)\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Block: 2622 Average Latency 32.256 ms\n", "\n", "\n", "Files in data_dir: {'hdf': 'hdf/test20210827_13_te2623.hdf', 'ecube': 'ecube/2021-08-27_BMI3D_te2623'}\n", "Warning: this bmi3d sync version is untested!\n", "Sync latency estimate: 0.0256 s\n", "Warning: last event (255) doesn't match bmi3d records (17)\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Block: 2623 Average Latency 34.012 ms\n", "\n", "\n" ] } ], "source": [ "# These methods are out of date\n", "for iblock, blockid in enumerate(blocks):\n", " files = aopy.data.get_filenames_in_dir(data_dir, blockid)\n", " print('Files in data_dir: ', files)\n", " data, metadata = aopy.preproc.parse_bmi3d(data_dir, files)\n", "\n", " # Clock timing\n", " clock_onsets = data['sync_clock']['timestamp']\n", " clock_timestamps, clock_values = aopy.preproc.get_edges_from_onsets(clock_onsets, 0.003)\n", " \n", " # Screen timing \n", " screen_values = data['measure_clock_offline']['value']\n", " screen_timestamps = data['measure_clock_offline']['timestamp']\n", " \n", " # Prepare data for plotting\n", " events = [clock_values, screen_values]\n", " timestamps = [clock_timestamps, screen_timestamps]\n", " labels= ['clock', 'screen']\n", " \n", " # Plot clock timing and screen timing\n", " pulse_time_start = clock_onsets[2]\n", " aopy.visualization.plot_events_time(events, timestamps, labels)\n", " plt.title('Sync State FPS: '+str(metadata['sync_state_fps']), fontsize=16)\n", " plt.xlim((pulse_time_start-0.05, pulse_time_start+.05))\n", " plt.show()\n", " \n", " # Calculate latency\n", " latency = np.empty(pulses2avg[iblock])\n", " latency[:] = np.nan\n", " \n", " for ipulse in range(pulses2avg[iblock]):\n", " clock_time = clock_onsets[ipulse*2]\n", " screen_time,_ = aopy.preproc.get_closest_value(clock_time, screen_timestamps[screen_timestamps>clock_time], radius=1)\n", " latency[ipulse] = screen_time - clock_time\n", " \n", " \n", " print('Block:', blockid, ' Average Latency ', np.round(1000*np.nanmean(latency),5), 'ms')\n", " \n", " print('\\n')" ] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:ryan_analysis]", "language": "python", "name": "conda-env-ryan_analysis-py" }, "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.9.6" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }