diff --git a/source/tutorials/interpolate_and_concat.ipynb b/source/tutorials/interpolate_and_concat.ipynb index e0a170e..9a000de 100644 --- a/source/tutorials/interpolate_and_concat.ipynb +++ b/source/tutorials/interpolate_and_concat.ipynb @@ -6,14 +6,14 @@ "source": [ "# Interpolate data and concatenate streams\n", "\n", - "Informative as it is, raw Neon data is not always easy to work with. Different data streams (e.g., gaze, eye states, IMU) are sampled at different rates, don't necessarily share a common start timestamp, and within each stream data might not have been sampled at a constant rate. This tutorial demonstrates how to deal with these issues by interpolating data streams and concatenating them into a single DataFrame.\n", + "Raw Neon data is not always easy to work with. A data stream (e.g., gaze, eye states, IMU) might not have been sampled at a constant rate. Additionally, streams may have differing sampling rates and lack synchronized start timestamps. All of these issues add complexity to continuous data analysis and sensor fusion.\n", "\n", - "We will use the same ``boardView`` dataset as in the [previous tutorial](read_recording.ipynb)." + "This tutorial demonstrates how to deal with these issues by interpolating data streams and concatenating them into a single DataFrame. We will use the same ``boardView`` dataset as in the [previous tutorial](read_recording.ipynb)." ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -21,6 +21,7 @@ "from pyneon import get_sample_data, NeonRecording\n", "\n", "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", "\n", "recording_dir = (\n", " get_sample_data(\"boardView\")\n", @@ -38,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -52,18 +53,19 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Irregularly sampled data\n", - "Data points from each stream are indexed by `timestamp [ns]`, which denotes the UTC time of the sample in nanoseconds. But are these samples equally spaced in time? Let's take a look at the first few samples of each stream, where, due to device boot-up, the sampling may be irregular." + "## Irregular sampling in data streams\n", + "\n", + "Data points from each stream are indexed by `timestamp [ns]`, which denotes the UTC time of the sample in nanoseconds. Are these samples uniformly distributed over time? We can examine the initial samples from each stream to assess their distribution, where, due to device boot-up, the sampling may be irregular." ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { - "image/png": "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+lxljCu1F6YszpHziePkamO4en0l+R5Syixfifb29lbt2rUvu75v37565plntHbtWq1Zs0aRkZFq1aqVJCknJ0eStGDBAlWrVs1hu8t9ONHX11ebNm1SSkqKlixZolGjRikxMVEbNmxQQEBAodvMnDlTw4YN0xtvvKHmzZvL19dXr732mtatW3fFueXk5Khx48b65JNPCqwLDg6WdPHK9JAhQ7Ro0SLNmjVL//73v7V06VI1a9aswDaenp7O+9Blq39e/PPg2osn3KVlq+2uNIarKqvHuiTn4ipzLMkxXL0+VxmjJM8/V5ljSR8nxig79bnKGK5eX3GN4WQ2Y4y5ereLEhISdPLkSc2dO/eK/e677z75+/tr7dq1euCBBzRixAhJUnZ2toKDgzV16lT16dPnmgo+deqUAgICNGvWLN19991q166dYmJi9Pbbb9v7PP7449qxY4e+/fZbe1tsbKyOHTumzZs3S5IefvhhZWRk6Ouvv7b3mTp1qv71r38pPT1dfn5+RaqnefPm+tvf/qa33nrrqn2zsrLk7++vzMzMIo8PAACA0lPUvGb5SnRubq5++eUXx0Hc3VW5cmX78oABA9SpUyfl5eWpX79+9nZfX18NGzZMTz75pPLz83X77bcrMzNT3333nfz8/Bz6XjJ//nzt27dPd9xxhypVqqRvvvlG+fn5iomJkSRFRERo3bp1Sk9Pt99+UadOHX388cdavHixIiMjNWPGDG3YsEGRkZH2cSMiIrR48WKlpqYqKChI/v7+6tWrl1577TV17dpVL7zwgqpXr64DBw5o9uzZevrpp3X+/HlNmTJFXbp0UVhYmFJTU7Vnzx717dvX6mEEAABAWWYs6Nevn9HFu7sdHjExMQ798vPzTXh4uPnf//3fAmPk5+ebN99808TExJjy5cub4OBgEx8fb1asWFHoPletWmVat25tKlWqZLy8vMwtt9xiZs2aZV+fmppqmjVrZry8vIwks3//fnP27FmTkJBg/P39TUBAgBk0aJB55plnTIMGDezbHT161MTFxRkfHx8jySxfvtwYY0xGRobp27evqVy5svH09DRRUVFm4MCBJjMz0/zyyy+mW7duJjQ01Hh4eJjw8HAzatQok5eXV6Tjl5mZaSSZzMzMIvUHAABA6SpqXrN0O0dR5eTkqFq1akpKStLdd99d3MOXWdzOAQAA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", + "image/png": "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9PQs7lbKHOa+eDH/xYe5Lz7MffFi/guGDxYCAAAAFnElGgAAALCIEA0AAABYRIgGAAAALCJEAwAAABYRolGsXnvtNdlsNg0ePDjfMVOnTpXNZnN4VKhQoeiaLEVGjBiRay7r1q17xX1mz56tunXrqkKFCqpfv75++OGHIuq29LE6/xz7hevAgQPq06ePgoKC5OXlpfr162v9+vVX3CcxMVFNmjSRp6enateuralTpxZNs6WM1blPTEzMdezbbDYdPny4CLsuHSIjI/Ocy0GDBuW7D+d95/AbC1Fs1q1bpw8//FANGjS46lg/Pz8lJSXZl/m16QVXr149LVmyxL7s7p7/aWDVqlW69957NXr0aHXp0kWff/65evTooQ0bNuiGG24oinZLHSvzL3HsF5YTJ06odevWateunebPn6/g4GDt2rVLlSpVyneflJQUde7cWY888oimT5+uH3/8UQMGDFBYWJji4uKKsPuSrSBzf0lSUpLDb9ALCQm5lq2WSuvWrVN2drZ9eevWrYqNjVXPnj3zHM9533mEaBSLzMxM9e7dW5MnT9arr7561fE2m01VqlQpgs5KP3d3d6fncvz48erUqZOGDBkiSXrllVe0ePFivffee5o4ceK1bLPUsjL/Esd+YXn99dcVHh6uhIQE+7qoqKgr7jNx4kRFRUVp7NixkqTrrrtOK1as0Lhx4wjRFhRk7i8JCQlRQEDANeqsbAgODnZYfu2111SrVi21adMmz/Gc953H7RwoFoMGDVLnzp3VoUMHp8ZnZmYqIiJC4eHh6t69u7Zt23aNOyy9du3apapVq6pmzZrq3bu39u3bl+/Y1atX53qP4uLitHr16mvdZqllZf4ljv3CMnfuXDVr1kw9e/ZUSEiIGjdurMmTJ19xH47/wlGQub+kUaNGCgsLU2xsrFauXHmNOy39zp07p2nTpql///75fleL4955hGgUuZkzZ2rDhg0aPXq0U+NjYmI0ZcoUffvtt5o2bZpycnLUqlUr/f7779e409KnefPmmjp1qhYsWKAPPvhAKSkpuvnmm5WRkZHn+MOHDys0NNRhXWhoKPclFpDV+efYLzx79uzRBx98oDp16mjhwoUaOHCgnnjiCX3yySf57pPf8Z+enq4zZ85c65ZLjYLMfVhYmCZOnKivvvpKX331lcLDw9W2bVtt2LChCDsvfb755hudPHlS8fHx+Y7hvG+BAYrQvn37TEhIiNm0aZN9XZs2bcyTTz7pdI1z586ZWrVqmX/961/XoMOy5cSJE8bPz8989NFHeW4vX768+fzzzx3WTZgwwYSEhBRFe6Xe1eb/chz7BVe+fHnTsmVLh3WPP/64adGiRb771KlTx4waNcph3bx584wkc/r06WvSZ2lUkLnPyy233GL69OlTmK2VOR07djRdunS54hjO+87jSjSK1C+//KKjR4+qSZMmcnd3l7u7u5YtW6Z33nlH7u7uDh9+yE/58uXVuHFj7d69uwg6Lt0CAgIUHR2d71xWqVJFR44ccVh35MgR7tEtJFeb/8tx7BdcWFiYrr/+eod111133RVvp8nv+Pfz85OXl9c16bM0Ksjc5+XGG2/k2P8L9u7dqyVLlmjAgAFXHMd533mEaBSp9u3ba8uWLdq4caP90axZM/Xu3VsbN26Um5vbVWtkZ2dry5YtCgsLK4KOS7fMzEwlJyfnO5ctW7bUjz/+6LBu8eLFatmyZVG0V+pdbf4vx7FfcK1bt3b4KSeStHPnTkVEROS7D8d/4SjI3Odl48aNHPt/QUJCgkJCQtS5c+crjuO4t6C4L4UDl9/O0bdvX/P888/bl1966SWzcOFCk5ycbH755Rdzzz33mAoVKpht27YVQ7cl29NPP20SExNNSkqKWblypenQoYOpXLmyOXr0qDEm99yvXLnSuLu7mzFjxpjt27eb4cOHm/Lly5stW7YU10so0azOP8d+4Vm7dq1xd3c3I0eONLt27TLTp083FStWNNOmTbOPef75503fvn3ty3v27DEVK1Y0Q4YMMdu3bzcTJkwwbm5uZsGCBcXxEkqsgsz9uHHjzDfffGN27dpltmzZYp588klTrlw5s2TJkuJ4CSVedna2qVGjhnnuuedybeO8X3CEaBS7y0N0mzZtzP33329fHjx4sKlRo4bx8PAwoaGh5u9//7vZsGFD0TdaCtx9990mLCzMeHh4mGrVqpm7777b7N6927798rk3xpgvvvjCREdHGw8PD1OvXj0zb968Iu669LA6/xz7heu7774zN9xwg/H09DR169Y1kyZNcth+//33mzZt2jisW7p0qWnUqJHx8PAwNWvWNAkJCUXXcClide5ff/11U6tWLVOhQgUTGBho2rZta/7zn/8Ucdelx8KFC40kk5SUlGsb5/2C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", "text/plain": [ "
" ] @@ -73,22 +75,29 @@ } ], "source": [ - "# Take the first 0.5 seconds of gaze data\n", - "gaze_begin = gaze.crop(0, 0.5, by=\"time\")\n", + "# Take the first 0.3 seconds of gaze data\n", + "gaze_begin = gaze.crop(0, 0.3, by=\"time\")\n", "# And the corresponding eye states and IMU data\n", "eye_states_begin = eye_states.restrict(gaze_begin)\n", "imu_begin = imu.restrict(gaze_begin)\n", "\n", "\n", "# Define a function to plot the timestamps of the gaze, eye states, and IMU data\n", - "def plot_timestamps(gaze, eye_states, imu):\n", + "def plot_timestamps(gaze, eye_states, imu, concat_stream=None):\n", " _, ax = plt.subplots(figsize=(8, 2))\n", " ax.scatter(gaze.ts, np.ones_like(gaze.ts), s=5)\n", " ax.scatter(eye_states.ts, np.ones_like(eye_states.ts) * 2, s=5)\n", " ax.scatter(imu.ts, np.ones_like(imu.ts) * 3, s=5)\n", - " ax.set_yticks([1, 2, 3])\n", - " ax.set_yticklabels([\"Gaze\", \"Eye states\", \"IMU\"])\n", - " ax.set_ylim(0.5, 3.5)\n", + " # If a concatenated stream (explained later) is provided, plot its timestamps as well\n", + " if concat_stream is not None:\n", + " ax.scatter(concat_stream.ts, np.ones_like(concat_stream.ts) * 4, s=5)\n", + " ax.set_yticks([1, 2, 3, 4])\n", + " ax.set_yticklabels([\"Gaze\", \"Eye states\", \"IMU\", \"Concatenated\"])\n", + " ax.set_ylim(0.5, 4.5)\n", + " else:\n", + " ax.set_yticks([1, 2, 3])\n", + " ax.set_yticklabels([\"Gaze\", \"Eye states\", \"IMU\"])\n", + " ax.set_ylim(0.5, 3.5)\n", " ax.set_xlabel(\"Timestamp (ns)\")\n", " plt.show()\n", "\n", @@ -100,17 +109,19 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "As apparent from the figure above, in addition to the apparently later onset of IMU data, during the first 0.5 seconds of the recording the data suffers from dropouts and irregular sampling. While this is a common issue for the first few samples due to device boot-up, it could also happen at any time during the recording. For example, even in the middle of a recording (5 - 5.5 seconds), some irregular sampling might still be observed:" + "As shown in the figure above, in addition to the apparently later onset of IMU data, the first 0.3 second of gaze and eye states data indeed suffers from dropouts.\n", + "\n", + "In addition to dropouts, irregular sampling may also occur, especially for IMU data from our experience. For example, it can be observed in the middle of this recording (5 - 5.3 seconds):" ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { - "image/png": "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t09+fn723oKCgnT+/HklJycrKChI8fHxiouLU+fOnTVx4kQdO3Ys33rDhw9Xamqq/XX48OFr9l1kqjWTlHOH3PbfZYvri6KGM+Z09f6o7Rq1S+vxuHp/1HbtOW/m2q7enyvNWRpquwDLd6J9fHxUs2bNfLf36dNHw4YN09q1a7VmzRpFRUXpzjvvlCRlZGRIkhYuXKjKlSs77JffmxP9/Py0efNmrVixQkuXLtWIESOUkJCgDRs2KDAwMM995syZoyFDhujNN99Us2bN5Ofnp9dff13r1q276rFlZGSoYcOG+uijj3JtCwkJkXT5zvSgQYO0ePFizZ07V//617+0bNkyNW3aNNc+Xl5eznvT5Z3/uPzfQ2svf8HlLFtdXxQ1nDGnq/dHbdeoXVqPx9X7o7Zrz3kz13b1/lxpTlev7QJsxhhz7WGXxcfH68yZM5o/f/5Vx91///0KCAjQ2rVr9dBDD2n48OGSpPT0dIWEhGjatGnq3bv3dTV89uxZBQYGau7cubrnnnvUrl07xcTE6J133rGPeeqpp7Rz505999139nVt27bVyZMntWXLFknSY489pmPHjunrr7+2j5k2bZr++c9/KiUlRf7+/gXqp1mzZvrb3/6mt99++5pj09LSFBAQoNTU1ALXBwAAQMkpaF6zfCc6MzNTx48fdyzi4aEKFSrYl/v3769OnTopKytLffv2ta/38/PTkCFD9Mwzzyg7O1t33HGHUlNT9eOPP8rf399hbI4FCxZo//79uuuuu1S+fHl98803ys7OVkxMjCQpMjJS69atU0pKiv3xi1q1aunDDz/UkiVLFBUVpVmzZmnDhg2Kioqy142MjNSSJUuUlJSk4OBgBQQEqGfPnnr99dfVtWtXvfzyy6pSpYoOHjyoefPm6bnnntPFixc1depUdenSReHh4UpKStLevXvVp08fq6cRAAAApZmxoG/fvkaXn+52eMXExDiMy87ONhEREeb//u//ctXIzs42b731lomJiTFlypQxISEhJi4uzvzwww95zrlq1SrTsmVLU758eePt7W1uu+02M3fuXPv2pKQk07RpU+Pt7W0kmQMHDpjz58+b+Ph4ExAQYAIDA82AAQPMsGHDTL169ez7nThxwsTGxhpfX18jySxfvtwYY8yxY8dMnz59TIUKFYyXl5epXr26efTRR01qaqo5fvy46dat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mTPnmuf0r6ZOnapWrVrJ399fNptNZ86cyTVmz5496tq1qypUqCB/f3/dcccdWr58uaV5CNEAUELy+p/DX18JCQmaOHGiZs6c6dQ+S0uQHz16tLp27arIyMgiqde+fXuVKVNGH330UZHUQ9E7e/as6tWrp0mTJl3X/gcOHFDXrl31v//7v9qyZYuWLFmikydP6p577sl3n4SEBMXHx1+1pzvuuEPjxo0rcB/z5s3TsWPH7K/t27fL3d1d3bt3t4+Jjo7Wu+++q19++UWrV69WZGSk2rVrp99//12StHv3bmVnZ2vKlCnasWOHJkyYoPfff1/PP/+8w1xPP/20/v3vf+uNN97Q7t279dVXX6lx48b27StXrlRsbKy++eYbbdq0Sa1bt1bnzp31888/OxxjQc/7F198oZ9++knh4eEO648ePaq2bduqZs2aWrdunRYvXqwdO3bkeW4TExMdzo/Vn0fnzp1T+/btc52Lv+rUqZMuXbqk77//Xps2bVK9evXUqVMnHT9+vOATGQBAiTh27Jj99dZbbxl/f3+Hdenp6c5u0RhjTN++fU3Xrl2d3cZVnT171vj7+5u1a9cWad13333XNGrUqEhronhIMl988YXDuvPnz5t//OMfJjw83JQrV840btzYLF++3L79008/NR4eHiYrK8u+7quvvjI2m81cuHAhz3lGjhxp+vbte81+Dhw4YCSZn3/+2fKxTJgwwfj5+ZmMjIx8x6SmphpJ5ttvv813zGuvvWaioqLsyzt37jQeHh5m9+7dlvq59dZbzUsvvZTntrzOe45ff/3VVK5c2Wzfvt1ERESYCRMm2LdNmTLFVKxY0eHcb9u2zUgye/fuLVD9HPPnzzf169c3Xl5eJioqyiQkJJiLFy/mGrd8+XIjyZw+fdph/e+//24kmZUrV9rXpaWlGUlm2bJlV537r7gTDQAlpFKlSvZXQECAbDabwzpfX99cd4FbtWqlp556SoMHD1b58uUVGhqqadOm6ezZs3r44Yfl5+enmjVratGiRQ5zbd++XR06dJCvr69CQ0PVu3dvnTx50r79s88+U926deXt7a3g4GC1bdtWZ8+eVUJCgj744AN9+eWX9jvkK1askCT985//VHR0tMqVK6fq1avrxRdf1MWLF+01ExISdPvtt2vGjBmqVq2afH199cQTTygrK0uvvfaaKlWqpIoVKzr8VbJ0+Q795MmT1aFDB3l7e6t69er67LPPrnouv/nmG3l5ealp06b2dStWrJDNZtN3332nRo0aqVy5cmrevLmSkpLsY7Zu3arWrVvLz89P/v7+atiwoTZu3Gjf3rlzZ23cuFHJycnXvqBwOU8++aTWrl2rOXPmaNu2berevbvat2+vvXv3SpIaNmwoNzc3JSYmKisrS6mpqZo1a5batm2rMmXKOK3v6dOn64EHHpCPj0+e2y9cuKCpU6cqICBA9erVy7dOamqqgoKC7Mtff/21qlevrgULFigqKkqRkZHq37+/Tp06lW+N7OxspaenO9QpiOzsbPXu3VtDhw5VnTp1cm3PzMyUp6en3Nz+f/T09vaWJK1evdph7MCBA1WhQgU1btxYM2bM0OVsfdmqVavUp08fPf3009q5c6emTJmimTNn5vq5cjXBwcGKiYnRhx9+qLNnz+rSpUuaMmWKKlasqIYNGxb8oAsctwEARSYxMdEEBATkWn/lXeCWLVsaPz8/M2rUKLNnzx4zatQo4+7ubjp06GCmTp1q9uzZYwYMGGCCg4PN2bNnjTHGnD592oSEhJjhw4ebXbt2mc2bN5vY2FjTunVrY4wxR48eNR4eHmb8+PHmwIEDZtu2bWbSpEkmPT3dpKenmx49epj27dvb75BnZmYaY4wZNWqU+fHHH82BAwfMV199ZUJDQ824cePsvY4cOdL4+vqa++67z+zYscN89dVXxtPT08TFxZmnnnrK7N6928yYMcNIMj/99JN9P0kmODjYTJs2zSQlJZl//etfxt3d3ezcuTPf8zdo0CDTvn17h3U5d52aNGliVqxYYXbs2GHuvPNO07x5c/uYOnXqmF69epldu3aZPXv2mE8++cRs2bLFoU5oaKhJTEy8+gWE0+mKO5YHDx407u7u5siRIw7j2rRpY4YPH25fXrFihalYsaJxd3c3kkyzZs1y3an8q+K+E71u3Tojyaxbty7Xtq+//tr4+PgYm81mwsPDzfr16/Ots3fvXuPv72+mTp1qX/f3v//deHl5mSZNmpiVK1ea5cuXm9tvv93+syAv48aNM+XLlze//fZbntuvPO85xowZY2JjY012drYxxuS6E719+3bj4eFhXnvtNZOZmWlOnTpl7r33XiPJjBkzxj7u5ZdfNqtXrzabN282r776qvHy8jITJ060b2/Tpo3DeGOMmTVrlgkLC8vVU353oo0x5vDhw6Zhw4bGZrMZd3d3ExYWZjZv3pzvecnzXFgaDQAoElZC9B133GFfvnTpkvHx8TG9e/e2rzt27JiRZH+0YdSoUaZdu3YOdQ8fPmwkmaSkJLNp0yYjyaSkpOTZW0Ef53j99ddNw4YN7csjR4405cqVM2lpafZ1cXFxJjIy0uGvcGNiYszYsWPty5LM448/7lC7SZMmZsCAAfnO3bVrV9OvXz+HdTn/w/zrX3cvXLjQSDJ//vmnMcYYPz8/M3PmzKseV/369U1CQsJVx8D5rgxzCxYsMJKMj4+Pw8vDw8P06NHDGHP5e6VWrVpm6NChZvPmzeaHH34wLVu2NG3atLGHv5UrVzrsX6ZMGePh4eGwbvbs2bn6ud4Q/dhjj5m6devmuS0jI8Ps3bvXrF271vTr189ERkbmGW5//fVXU6NGDfPII484rH/00Uft3/c5cr7/83rE46OPPjLlypW76iMNeYXojRs3mtDQUIdfYK4M0Tn1Q0NDjbu7u/H09DRDhgwxoaGh5tVXX813vhdffNFUqVLFvlyhQgVTtmxZh+tRtmxZI8l+IyFHfiE6OzvbdOnSxXTo0MGsXr3abNq0yQwYMMBUrlzZHD16NN9eruRR8HvWAABnuO222+x/dnd3V3BwsOrWrWtfFxoaKkk6ceKEpMuPLCxfvly+vr65aiUnJ6tdu3Zq06aN6tatq7i4OLVr10733Xefypcvf9U+5s6dq7ffflvJycnKyMjQpUuX5O/v7zAmMjJSfn5+Dr25u7s7/BVuaGiovdcczZo1y7V8tU85+PPPP1W2bNk8t/31fIWFhUm6fG6qVaumZ599Vv3797f/FX737t1Vo0YNh/29vb117ty5fOeGa8rIyJC7u7s2bdokd3d3h2053wuTJk1SQECAXnvtNfu22bNnq2rVqlq3bp2aNm2qRo0aOXztvf322zpy5IjDGwdzvucK6+zZs5ozZ45efvnlPLf7+PioZs2aqlmzppo2bapatWpp+vTpGj58uH3M0aNH1bp1azVv3lxTp0512D8sLEweHh6Kjo62r7vlllskSYcOHVJMTIx9/Zw5c9S/f399+umnatu2raXjWLVqlf17LEdWVpb+8Y9/6K233rJ/+slDDz2khx56SL/99pt8fHxks9k0fvx4Va9ePd/aTZo00ahRo5SZmSkvLy9lZGTopZdeyvPNoPn9TLjS999/rwULFuj06dP2n2Hvvfeeli1bpg8++EDDhg0rUB1CNAC4uCuf1bTZbA7rbDabJNk/mi0jI0OdO3fO89MCwsLC5O7urmXLlmnNmjVaunSp3nnnHb3wwgtat26doqKi8uxh7dq16tmzp1566SXFxcUpICBAc+bM0Ztvvmmp15x1hf0YuQoVKuj06dN5brvauUlISNBDDz2khQsXatGiRRo5cqTmzJmju+++277PqVOnFBISUqj+UPLq16+vrKwsnThxQnfeeWeeY86dO+fwC50ke+DO+Rrx9vZWzZo17duDgoKUlpbmsK6ofPrpp8rMzFSvXr0KND47O1uZmZn25SNHjqh169Zq2LChEhMTcx1bixYtdOnSJSUnJ9t/WdyzZ48kKSIiwj7u448/Vr9+/TRnzhyHj9krqN69e+cK3nFxcerdu7cefvjhXONzfgmZMWOGypYtq9jY2Hxrb9myReXLl5eXl5ckqUGDBkpKSirU9cj5JfnK8+Xm5mbpZxMhGgBuMA0aNNDnn3+uyMhIeXjk/WPeZrOpRYsWatGihUaMGKGIiAh98cUXevbZZ+Xp6amsrCyH8WvWrFFERIReeOEF+7qDBw8WWc8//fST+vTp47Bcv379fMfXr19fs2fPvq65oqOjFR0drWeeeUYPPvigEhMT7SH6/PnzSk5OvurccJ6MjAzt27fPvnzgwAFt2bJFQUFBio6OVs+ePdWnTx+9+eabql+/vn7//Xd99913uu2229SxY0d17NhREyZM0Msvv6wHH3xQ6enpev755xUREXHd1/zUqVM6dOiQjh49Kkn2N7LmvGFYkvr06aPKlStr7NixDvtOnz5d3bp1U3BwsMP6s2fPavTo0erSpYvCwsJ08uRJTZo0SUeOHLF/DN6RI0fUqlUrRURE6I033rB/9F3O3JLUtm1bNWjQQP369dNbb72l7OxsDRw4ULGxsfa70//5z3/Ut29fTZw4UU2aNLF/xJu3t7cCAgKued6rVaum4ODgXMdQpkwZVapUyeFu97vvvqvmzZvL19dXy5Yt09ChQ/Xqq68qMDBQ0uU3Qv72229q2rSpypYtq2XLlmnMmDEaMmSIvcaIESPUqVMnVatWTffdd5/c3Ny0detWbd++Xa+88ook6fjx4zp+/Li9519++UV+fn6qVq2agoKC1KxZM5UvX159+/bViBEj5O3trWnTpunAgQPWfoko8IMfAIAiY+WZ6KefftphTF7PGuovzykeOXLEhISEmPvuu8+sX7/e7Nu3zyxevNjEx8ebS5cumZ9++smMHj3abNiwwRw8eNB88sknxtPT03zzzTfGGGNGjx5tqlWrZnbv3m1+//13c+HCBfPll18aDw8P8/HHH5t9+/aZiRMnmqCgIIdjGDlypKlXr95VjyevY5JkKlSoYKZPn26SkpLMiBEjjJubm9mxY0e+52/btm3Gw8PDnDp1yr4ur+cff/75ZyPJHDhwwJw7d84MHDjQLF++3KSkpJjVq1ebGjVqmOeee86hhq+vb65nK+Eacq7xla+cN/5duHDBjBgxwkRGRpoyZcqYsLAwc/fdd5tt27bZa3z88cemfv36xsfHx4SEhJguXbqYXbt25Tvntd5YmJiYmGdPI0eOtI9p2bJlrhq7d+82kszSpUtz1fzzzz/N3XffbcLDw42np6cJCwszXbp0cXhjYX7zXhntjhw5Yu655x7j6+trQkNDTXx8vPnjjz8cervaOS3Iec9LXj+nevfubYKCgoynp6e57bbbzIcffuiwfdGiReb22283vr6+xsfHx9SrV8+8//77Du+pMMaYxYsXm+bNmxtvb2/j7+9vGjdu7PCGypEjR+bZ71/fMLxhwwbTrl07ExQUZPz8/EzTpk3tPwMLihANAE5QnCHaGGP27Nlj7r77bhMYGGi8vb1N7dq1zeDBg012drbZuXOniYuLMyEhIcbLy8tER0ebd955x77viRMnTGxsrPH19TWS7J+zO3ToUBMcHGx8fX3N/fffbyZMmFBkIXrSpEkmNjbWeHl5mcjISDN37tx8ztz/17hxY/P+++/bl68VojMzM80DDzxgqlatajw9PU14eLh58skn7W86NObym7z+/ve/X3NuALAZ85cP3wMAoITZbDZ98cUXlv9VsoULF2ro0KHavn17rmcbr8fJkycVExOjjRs35vtsOADk4JloAECp1LFjR+3du1dHjhxR1apVC10vJSVF7733HgEaQIFwJxoA4FTXeycaAJyJO9EAAKfiXg6A0qjwD5EBAAAANxlCNAAAAGARIRoAAACwiBANAAAAWESIBgAAACwiRAMAAAAWEaIBAAAAiwjRAAAAgEWEaAAAAMCi/wfigZkyahmYNgAAAABJRU5ErkJggg==", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtEAAADZCAYAAADmBWxDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAuyUlEQVR4nO3deVxU9foH8M/AyLAMA4KAqKwqWObuVdFMvILQdW2xTVEy62aWem9a2qK4opapleVSYqmpWea+m+SaG+EuKoKau6ksmqDM8/vDy/k1ssihgRmYz/v1mleec77nmWe+HE4fDmcGjYgIiIiIiIioxOws3QARERERUUXDEE1EREREpBJDNBERERGRSgzRREREREQqMUQTEREREanEEE1EREREpBJDNBERERGRSgzRREREREQqaS3dgC0xGo24cOECXF1dodFoLN0OERERET1ARJCVlYUaNWrAzq7o680M0eXowoUL8PPzs3QbRERERPQQ586dQ61atYrczhBdjlxdXQHc/6IYDAYLd0NERERED8rMzISfn5+S24rCEF2O8m/hMBgMDNFEREREVuxht97yjYVERERERCoxRBMRERERqcQQTURERESkEkM0EREREZFKDNFERERERCoxRBMRERERqcQQTURERESkEkM0EREREZFKDNFERERERCoxRBMRERERqcQQTURERESkEkM0EREREZFKDNFERERERCoxRBMRERERqcQQTURERESkEkM0EREREZFKDNFERERERCoxRBMRERERqWQzITo2Nhbdu3dX/q3RaPD6668XGDdgwABoNBrExsYq68LDwzF48OACY+fOnQt3d/eyaZiIiIiIrJbNhOgH+fn5YdGiRfjzzz+VdXfu3MF3330Hf39/C3ZGRERERNZOa+kGLKVp06ZITU3F0qVL0bNnTwDA0qVL4e/vj6CgIAt3V37uGe9h9qHZSLqchKY+TfFqg1ehtSv+sFC7j7U+hzXWsIYeyrtuWda21mOvvPYpCVutay3fa5Z4PWV9jNvq+dscNWzlPGsNtc3BejqxgL59+yIhIUEJ0XPmzMHLL7+MxMREs9TPyclBTk6OspyZmWmWuuY0+9BsfJn8JQSC3Rd3AwD6N+pv1n2s9TmssYY19FDedcuytrUee+W1T0nYal1r+V6zxOsp62PcVs/f5qhhK+dZa6htDjZ7OwcA9OrVC9u3b8eZM2dw5swZ7NixA7169TJb/fj4eLi5uSkPPz8/s9U2l6TLSRAIAEAgSLqcZPZ9rPU5rLGGNfRQ3nXLsra1HnvltU9J2Gpda/les8TrKetj3FbP3+aoYSvnWWuobQ42HaK9vLzQqVMnzJ07FwkJCejUqROqVatmtvrDhw9HRkaG8jh37pzZaptLU5+m0EADANBAg6Y+Tc2+j7U+hzXWsIYeyrtuWda21mOvvPYpCVutay3fa5Z4PWV9jNvq+dscNWzlPGsNtc3Bpm/nAO7f0vHmm28CAKZPn17oGIPBgIyMjALrb968CTc3tyJr63Q66HQ68zRaRl5t8CoAmNxvZO59rPU5rLGGNfRQ3nXLsra1HnvltU9J2Gpda/les8TrKetj3FbP3+aoYSvnWWuobQ4aERFLN1EeYmNjcfPmTSxbtszk33l5efD394dGo8GZM2dgb2+P7t27w93dHXPnzgUADB06FBs2bMCBAwdMavbu3RsXL17Exo0bS9RDZmYm3NzckJGRAYPBYO6XSERERER/U0nzms1fiba3t8exY8eUfxemf//++PzzzzFw4ED069cPOp0Oq1evxsKFC7Fy5crybJeIiIiIrIDNh2gAD70qHBwcjK1bt+L9999HREQEcnNzUa9ePSxZsgTR0dHl1CURERERWQubuZ3DGvB2DiIiIiLrVtK8ZtOfzkFEREREVBoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUqqQnRsbCw0Gk2BR3R0dFn191Dh4eEYPHiw6v1iY2PRvXt3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IiIqXyXNa6pu5yip7Oxs1KxZEwkJCXj66afNXb7C4u0cRERERNatzG7nKI7RaMS1a9cwefJkuLu7o2vXruYsT0RERERkFcwaos+ePYugoCDUqlULc+fOhVZr1vJERERERFbBrCk3MDAQZXB3CBERERGRVVH9x1aIiIiIiGwdQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKQSQzQRERERkUoM0UREREREKjFEExERERGpxBBNRERERKRSpQnRly5dwqBBg1CnTh04OjrCx8cHbdq0wZdffonbt29buj0iIiIiqkS0lm7AHE6fPo02bdrA3d0d48ePR4MGDaDT6XDo0CHMmjULNWvWRNeuXS3dJhERERFVEhoREUs38XdFR0fjyJEjOH78OFxcXApsFxFoNBp88sknSEhIwOnTp+Hh4YEuXbpg0qRJ0Ov1AIDw8HD88ssvBfZPS0tDYGAgbt68iSFDhmD58uXIyclB8+bNMWXKFDRq1KhEfWZmZsLNzQ0ZGRkwGAx/70U/xL08I6ZvScXe9Ov4R6AHBrSvDa19wV88lGScLdSq6P1zLmyrVkXv31prVfT+ORe2Vaui92/uuTCnkua1Cn8l+o8//sCGDRswfvz4QgM0AGg0GgCAnZ0dPv30UwQFBeH06dN444038M477+CLL74AACxduhS5ubnKfgMGDMCRI0fg4+MDAOjRowecnJywdu1auLm5YebMmejQoQNOnDgBDw+PAs+bk5ODnJwcZTkzM9Nsr/thpm9JxdRNJyAAdpy6BgAYFFG3VONsoVZF759zYVu1Knr/1lqrovfPubCtWhW9f3PPhSVU+HuiT506BRFBaGioyfpq1apBr9dDr9fj3XffBQAMHjwY7du3R2BgIP75z39i7Nix+P7775V9PDw8UL16dVSvXh0LFy7Ezz//jBUrVsDJyQnbt2/Hnj17sGTJEjRv3hx169bFxx9/DHd3d/zwww+F9hYfHw83Nzfl4efnV3YT8YC96deR/ysG+d9yacfZQq2K3j/nwrZqVfT+rbVWRe+fc2FbtSp6/+aeC0uo8CG6KHv27EFycjLq16+vXA3etGkTOnTogJo1a8LV1RUxMTH4448/CrzxcO3atRg2bBgWL16MkJAQAMCBAweQnZ0NT09PJZzr9XqkpaUhNTW10B6GDx+OjIwM5XHu3LmyfdF/8Y9AD2j+92/N/5ZLO84WalX0/jkXtlWrovdvrbUqev+cC9uqVdH7N/dcWEKFv52jTp060Gg0SElJMVkfHBwMAHBycgIApKeno3Pnzujfvz/GjRsHDw8PbN++Ha+88gpyc3Ph7OwMADh69CheeOEFTJgwAR07dlTqZWdnw9fXF4mJiQV6cHd3L7Q3nU4HnU5nhlep3oD2tQHA5B6i0o6zhVoVvX/OhW3Vquj9W2utit4/58K2alX0/s09F5ZQKd5YGBUVhSNHjiAlJaXAfdHh4eFo3Lgx2rZtixdffBF37tyBnd39C/Bjx47Fhx9+iBs3bsDd3R3Xrl1Dy5Yt0a5dO8yZM8ekzsaNG/Hkk0/i1KlTCAwMLFWf5fnGQiIiIiJSr6R5rVLczvHFF1/g3r17aN68ORYvXoxjx44hJSUF8+fPx/Hjx2Fvb486derg7t27+Oyzz3D69GnMmzcPM2bMMKnzzDPPwNnZGXFxcbh06ZLyyMvLQ0REBMLCwtC9e3ds2LAB6enp2LlzJ95//33s27fPQq+ciIiIiCyhUlyJBoCLFy9i/PjxWL16NX7//XfodDo8+uij6NGjB9544w04OztjypQp+Oijj3Dz5k088cQT6NmzJ3r37q1cic7/FI8H5X/EXVZWFt5//338+OOPuHr1KqpXr44nnngC8fHxJXrTIK9EExEREVm3kua1ShOiKwKGaCIiIiLrZlO3cxARERERlSeGaCIiIiIilRiiiYiIiIhUYogmIiIiIlKJIZqIiIiISCWGaCIiIiIilRiiiYiIiIhUYogmIiIiIlKJIZqIiIiISCWGaCIiIiIilRiiiYiIiIhUYogmIiIiIlKJIZqIiIiISCWGaCIiIiIilRiiiYiIiIhUYogmIiIiIlKJIZqIiIiISCWGaCIiIiIilbSWbsCWiAgAIDMz08KdEBEREVFh8nNafm4rCkN0OcrKygIA+Pn5WbgTIiIiIipOVlYW3NzcityukYfFbDIbo9GICxcuwNXVFRqNxtLtWExmZib8/Pxw7tw5GAwGS7djUzj3lsX5txzOvWVx/i2Hc6+eiCArKws1atSAnV3Rdz7zSnQ5srOzQ61atSzdhtUwGAz8hrYQzr1lcf4th3NvWZx/y+Hcq1PcFeh8fGMhEREREZFKDNFERERERCoxRFO50+l0GDlyJHQ6naVbsTmce8vi/FsO596yOP+Ww7kvO3xjIRERERGRSrwSTURERESkEkM0EREREZFKDNFERERERCoxRBMRERERqcQQTWVqwoQJ0Gg0GDx4cJFj5s6dC41GY/JwdHQsvyYribi4uALzWK9evWL3WbJkCerVqwdHR0c0aNAAa9asKaduKx+188/j3rzOnz+PXr16wdPTE05OTmjQoAH27dtX7D6JiYlo2rQpdDod6tSpg7lz55ZPs5WQ2vlPTEwscPxrNBpcunSpHLuu+AIDAwudxwEDBhS5D8/75sO/WEhlZu/evZg5cyYaNmz40LEGgwEpKSnKsi3/WfS/o379+ti0aZOyrNUW/S2+c+dOvPjii4iPj0fnzp3x3XffoXv37khKSsJjjz1WHu1WOmrmH+Bxby43btxAmzZt0L59e6xduxZeXl44efIkqlatWuQ+aWlp6NSpE15//XUsWLAAmzdvRr9+/eDr64uoqKhy7L7iK83850tJSTH5K3re3t5l2Wqls3fvXuTl5SnLhw8fRmRkJHr06FHoeJ73zYshmspEdnY2evbsidmzZ2Ps2LEPHa/RaFC9evVy6Kxy02q1JZ7HadOmITo6GkOHDgUAjBkzBhs3bsTnn3+OGTNmlGWblZaa+Qd43JvLxIkT4efnh4SEBGVdUFBQsfvMmDEDQUFBmDx5MgDgkUcewfbt2zFlyhSGaJVKM//5vL294e7uXkadVX5eXl4myxMmTEDt2rXRrl27QsfzvG9evJ2DysSAAQPQqVMnRERElGh8dnY2AgIC4Ofnh27duuHIkSNl3GHldPLkSdSoUQPBwcHo2bMnzp49W+TYXbt2Ffj6REVFYdeuXWXdZqWlZv4BHvfmsmLFCjRv3hw9evSAt7c3mjRpgtmzZxe7D49/8ynN/Odr3LgxfH19ERkZiR07dpRxp5Vbbm4u5s+fj759+xb5Wy0e9+bFEE1mt2jRIiQlJSE+Pr5E40NDQzFnzhwsX74c8+fPh9FoROvWrfH777+XcaeVS8uWLTF37lysW7cOX375JdLS0tC2bVtkZWUVOv7SpUvw8fExWefj48N7EktJ7fzzuDef06dP48svv0TdunWxfv169O/fHwMHDsQ333xT5D5FHf+ZmZn4888/y7rlSqU08+/r64sZM2bgxx9/xI8//gg/Pz+Eh4cjKSmpHDuvXJYtW4abN28iNja2yDE875uZEJnR2bNnxdvbWw4cOKCsa9eunQwaNKjENXJzc6V27drywQcflEGHtuPGjRtiMBjkq6++KnR7lSpV5LvvvjNZN336dPH29i6P9iq9h83/g3jcl16VKlUkLCzMZN1bb70lrVq1KnKfunXryvjx403WrV69WgDI7du3y6TPyqo081+YJ554Qnr16mXO1mxKx44dpXPnzsWO4XnfvHglmsxq//79uHLlCpo2bQqtVgutVotffvkFn376KbRarckbIIpSpUoVNGnSBKdOnSqHjisvd3d3hISEFDmP1atXx+XLl03WXb58mffomsnD5v9BPO5Lz9fXF48++qjJukceeaTY22mKOv4NBgOcnJzKpM/KqjTzX5gWLVrw+C+lM2fOYNOmTejXr1+x43jeNy+GaDKrDh064NChQ0hOTlYezZs3R8+ePZGcnAx7e/uH1sjLy8OhQ4fg6+tbDh1XXtnZ2UhNTS1yHsPCwrB582aTdRs3bkRYWFh5tFfpPWz+H8TjvvTatGlj8iknAHDixAkEBAQUuQ+Pf/MpzfwXJjk5mcd/KSUkJMDb2xudOnUqdhyPezOz9KVwqvwevJ0jJiZGhg0bpiyPGjVK1q9fL6mpqbJ//3554YUXxNHRUY4cOWKBbiuut99+WxITEyUtLU127NghERERUq1aNbly5YqIFJz3HTt2iFarlY8//liOHTsmI0eOlCpVqsihQ4cs9RIqNLXzz+PefPbs2SNarVbGjRsnJ0+elAULFoizs7PMnz9fGTNs2DCJiYlRlk+fPi3Ozs4ydOhQOXbsmEyfPl3s7e1l3bp1lngJFVpp5n/KlCmybNkyOXnypBw6dEgGDRokdnZ2smnTJku8hAotLy9P/P395d133y2wjef9ssUQTWXuwRDdrl076dOnj7I8ePBg8ff3FwcHB/Hx8ZF//etfkpSUVP6NVnDPP/+8+Pr6ioODg9SsWVOef/55OXXqlLL9wXkXEfn+++8lJCREHBwcpH79+rJ69epy7rryUDv/PO7Na+XKlfLYY4+JTqeTevXqyaxZs0y29+nTR9q1a2eybsuWLdK4cWNxcHCQ4OBgSUhIKL+GKxm18z9x4kSpXbu2ODo6ioeHh4SHh8vPP/9czl1XDuvXrxcAkpKSUmAbz/tlSyMiYumr4UREREREFQnviSYiIiIiUokhmoiIiIhIJYZoIiIiIiKVGKKJiIiIiFRiiCYiIiIiUokhmoiIiIhIJYZoIiIiIiKVGKKJiKxIbGwsunfvbuk2KoQ//vgD3t7eSE9PN0u9devWoXHjxjAajWapR+a3detWdOnSBTVq1IBGo8GyZctU11i/fj1atWoFV1dXeHl54Zlnnvlbx9DSpUvRsWNHeHp6QqPRIDk5+aH7hIeHQ6PRFHj89c92x8XFoV69enBxcUHVqlURERGB3bt3K9vT09PxyiuvICgoCE5OTqhduzZGjhyJ3Nxck+cSEXz88ccICQmBTqdDzZo1MW7cOJP+IyMj4eXlBYPBgLCwMKxfv96khtp5f/3116HRaDB16lST9UlJSYiMjIS7uzs8PT3x2muvITs722RMYfOyaNGih87pX82aNQvh4eEwGAzQaDS4efNmgTEnTpxAt27dUK1aNRgMBjz++OPYsmWLqudhiCYiKieF/c/hr4+4uDhMmzYNc+fOtWifFSXIjxs3Dt26dUNgYKBZ6kVHR6NKlSpYsGCBWeqR+d26dQuNGjXC9OnTS7V/WloaunXrhn/+859ITk7G+vXrce3aNTz99NNF7hMXF4fY2Nhie3r88ccxceLEEvexdOlSXLx4UXkcPnwY9vb26NGjhzImJCQEn3/+OQ4dOoTt27cjMDAQHTt2xNWrVwEAx48fh9FoxMyZM3HkyBFMmTIFM2bMwHvvvWfyXIMGDcJXX32Fjz/+GMePH8eKFSvQokULZfvWrVsRGRmJNWvWYP/+/Wjfvj26dOmC3377zeQ1lnTef/rpJ/z666+oUaOGyfoLFy4gIiICderUwe7du7Fu3TocOXKk0LlNSEgwmR+156Pbt28jOjq6wFz8VefOnXHv3j38/PPP2L9/Pxo1aoTOnTvj0qVLJX8iC//FRCIim3Hx4kXlMXXqVDEYDCbrsrKyLN2iiNz/E83dunWzdBvFunXrlhgMBtm1a5dZ637++efSvHlzs9aksgFAfvrpJ5N1d+7ckbfffltq1Kghzs7O0qJFC9myZYuyfcmSJaLVaiUvL09Zt2LFCtFoNJKbm1vo84wcObLAn84uTFpamgCQ3377TfVrmTJliri6ukp2dnaRYzIyMgSAbNq0qcgxkyZNkqCgIGX56NGjotVq5fjx46r6efTRR2XUqFGFbits3vP9/vvvUrNmTTl8+LAEBATIlClTlG0zZ84Ub29vk7k/ePCgAJCTJ0+WqH6+ZcuWSZMmTUSn00lQUJDExcXJ3bt3C4zbsmWLAJAbN26YrL969aoAkK1btyrrMjMzBYBs3Lix2Of+K16JJiIqJ9WrV1cebm5u0Gg0Juv0en2Bq8Dh4eF46623MHjwYFStWhU+Pj6YPXs2bt26hZdffhmurq6oU6cO1q5da/Jchw8fxpNPPgm9Xg8fHx/ExMTg2rVryvYffvgBDRo0gJOTEzw9PREREYFbt24hLi4O33zzDZYvX65cIU9MTAQAvPvuuwgJCYGzszOCg4Px4Ycf4u7du0rNuLg4NG7cGHPmzIG/vz/0ej3eeOMN5OXlYdKkSahevTq8vb1NfpUM3L9C/+WXX+LJJ5+Ek5MTgoOD8cMPPxQ7l2vWrIFOp0OrVq2UdYmJidBoNNi8eTOaN28OZ2dntG7dGikpKcqYAwcOoH379nB1dYXBYECzZs2wb98+ZXuXLl2wb98+pKamPvwLSlbnzTffxK5du7Bo0SIcPHgQPXr0QHR0NE6ePAkAaNasGezs7JCQkIC8vDxkZGRg3rx5iIiIQJUqVSzW99dff40XXngBLi4uhW7Pzc3FrFmz4ObmhkaNGhVZJyMjAx4eHsryypUrERwcjFWrViEoKAiBgYHo168frl+/XmQNo9GIrKwskzolYTQaERMTg6FDh6J+/foFtufk5MDBwQF2dv8fPZ2cnAAA27dvNxk7YMAAVKtWDS1atMCcOXNwP1vft23bNvTu3RuDBg3C0aNHMXPmTMydO7fAeaU4np6eCA0Nxbfffotbt27h3r17mDlzJry9vdGsWbOSv+gSx20iIjKbhIQEcXNzK7D+wavA7dq1E1dXVxkzZoycOHFCxowZI/b29vLkk0/KrFmz5MSJE9K/f3/x9PSUW7duiYjIjRs3xMvLS4YPHy7Hjh2TpKQkiYyMlPbt24uIyIULF0Sr1conn3wiaWlpcvDgQZk+fbpkZWVJVlaWPPfccxIdHa1cIc/JyRERkTFjxsiOHTskLS1NVqxYIT4+PjJx4kSl15EjR4per5dnn31Wjhw5IitWrBAHBweJioqSt956S44fPy5z5swRAPLrr78q+wEQT09PmT17tqSkpMgHH3wg9vb2cvTo0SLnb+DAgRIdHW2yLv+qU8uWLSUxMVGOHDkibdu2ldatWytj6tevL7169ZJjx47JiRMn5Pvvv5fk5GSTOj4+PpKQkFD8F5AsDg9csTxz5ozY29vL+fPnTcZ16NBBhg8friwnJiaKt7e32NvbCwAJCwsrcKXyr8r6SvTu3bsFgOzevbvAtpUrV4qLi4toNBqpUaOG7Nmzp8g6J0+eFIPBILNmzVLW/fvf/xadTictW7aUrVu3ypYtW6Rx48bKuaAwEydOlKpVq8rly5cL3f7gvOcbP368REZGitFoFBEpcCX68OHDotVqZdKkSZKTkyPXr1+XZ555RgDI+PHjlXGjR4+W7du3S1JSkkyYMEF0Op1MmzZN2d6hQweT8SIi8+bNE19f3wI9FXUlWkTk3Llz0qxZM9FoNGJvby++vr6SlJRU5LwUOheqRhMRkVmoCdGPP/64snzv3j1xcXGRmJgYZd3FixcFgHJrw5gxY6Rjx44mdc+dOycAJCUlRfbv3y8AJD09vdDeSno7x0cffSTNmjVTlkeOHCnOzs6SmZmprIuKipLAwECTX+GGhoZKfHy8sgxAXn/9dZPaLVu2lP79+xf53N26dZO+ffuarMv/H+Zff929evVqASB//vmniIi4urrK3Llzi31dTZo0kbi4uGLHkOU9GOZWrVolAMTFxcXkodVq5bnnnhOR+98rdevWlaFDh0pSUpL88ssv0q5dO+nQoYMS/rZu3Wqyf5UqVUSr1Zqsmz9/foF+ShuiX3vtNWnQoEGh27Kzs+XkyZOya9cu6du3rwQGBhYabn///XepXbu2vPLKKybrX331VeX7Pl/+939ht3gsWLBAnJ2di72lobAQvW/fPvHx8TH5AebBEJ1f38fHR+zt7cXBwUGGDBkiPj4+MmHChCKf78MPP5RatWopy9WqVRNHR0eTr4ejo6MAUC4k5CsqRBuNRunatas8+eSTsn37dtm/f7/0799fatasKRcuXCiylwdpS37NmoiILKFhw4bKv+3t7eHp6YkGDRoo63x8fAAAV65cAXD/loUtW7ZAr9cXqJWamoqOHTuiQ4cOaNCgAaKiotCxY0c8++yzqFq1arF9LF68GJ9++ilSU1ORnZ2Ne/fuwWAwmIwJDAyEq6urSW/29vYmv8L18fFRes0XFhZWYLm4Tzn4888/4ejoWOi2v86Xr68vgPtz4+/vj//+97/o16+f8iv8Hj16oHbt2ib7Ozk54fbt20U+N1mn7Oxs2NvbY//+/bC3tzfZlv+9MH36dLi5uWHSpEnKtvnz58PPzw+7d+9Gq1at0Lx5c5Nj79NPP8X58+dN3jiY/z33d926dQuLFi3C6NGjC93u4uKCOnXqoE6dOmjVqhXq1q2Lr7/+GsOHD1fGXLhwAe3bt0fr1q0xa9Ysk/19fX2h1WoREhKirHvkkUcAAGfPnkVoaKiyftGiRejXrx+WLFmCiIgIVa9j27ZtyvdYvry8PLz99tuYOnWq8uknL730El566SVcvnwZLi4u0Gg0+OSTTxAcHFxk7ZYtW2LMmDHIycmBTqdDdnY2Ro0aVeibQYs6Jzzo559/xqpVq3Djxg3lHPbFF19g48aN+OabbzBs2LAS1WGIJiKycg/eq6nRaEzWaTQaAFA+mi07OxtdunQp9NMCfH19YW9vj40bN2Lnzp3YsGEDPvvsM7z//vvYvXs3goKCCu1h165d6NmzJ0aNGoWoqCi4ublh0aJFmDx5sqpe89f93Y+Rq1atGm7cuFHotuLmJi4uDi+99BJWr16NtWvXYuTIkVi0aBGeeuopZZ/r16/Dy8vrb/VH5a9JkybIy8vDlStX0LZt20LH3L592+QHOgBK4M4/RpycnFCnTh1lu4eHBzIzM03WmcuSJUuQk5ODXr16lWi80WhETk6Osnz+/Hm0b98ezZo1Q0JCQoHX1qZNG9y7dw+pqanKD4snTpwAAAQEBCjjFi5ciL59+2LRokUmH7NXUjExMQWCd1RUFGJiYvDyyy8XGJ//Q8icOXPg6OiIyMjIImsnJyejatWq0Ol0AICmTZsiJSXlb3098n9IfnC+7OzsVJ2bGKKJiCqZpk2b4scff0RgYCC02sJP8xqNBm3atEGbNm0wYsQIBAQE4KeffsJ///tfODg4IC8vz2T8zp07ERAQgPfff19Zd+bMGbP1/Ouvv6J3794my02aNClyfJMmTTB//vxSPVdISAhCQkLwn//8By+++CISEhKUEH3nzh2kpqYW+9xkOdnZ2Th16pSynJaWhuTkZHh4eCAkJAQ9e/ZE7969MXnyZDRp0gRXr17F5s2b0bBhQ3Tq1AmdOnXClClTMHr0aLz44ovIysrCe++9h4CAgFJ/za9fv46zZ8/iwoULAKC8kTX/DcMA0Lt3b9SsWRPx8fEm+3799dfo3r07PD09TdbfunUL48aNQ9euXeHr64tr165h+vTpOH/+vPIxeOfPn0d4eDgCAgLw8ccfKx99l//cABAREYGmTZuib9++mDp1KoxGIwYMGIDIyEjl6vR3332HPn36YNq0aWjZsqXyEW9OTk5wc3N76Lz7+/vD09OzwGuoUqUKqlevbnK1+/PPP0fr1q2h1+uxceNGDB06FBMmTIC7uzuA+2+EvHz5Mlq1agVHR0ds3LgR48ePx5AhQ5QaI0aMQOfOneHv749nn30WdnZ2OHDgAA4fPoyxY8cCAC5duoRLly4pPR86dAiurq7w9/eHh4cHwsLCULVqVfTp0wcjRoyAk5MTZs+ejbS0NHU/RJT4xg8iIjIbNfdEDxo0yGRMYfca4i/3KZ4/f168vLzk2WeflT179sipU6dk3bp1EhsbK/fu3ZNff/1Vxo0bJ3v37pUzZ87I999/Lw4ODrJmzRoRERk3bpz4+/vL8ePH5erVq5KbmyvLly8XrVYrCxculFOnTsm0adPEw8PD5DWMHDlSGjVqVOzrKew1AZBq1arJ119/LSkpKTJixAixs7OTI0eOFDl/Bw8eFK1WK9evX1fWFXb/42+//SYAJC0tTW7fvi0DBgyQLVu2SHp6umzfvl1q164t77zzjkkNvV5f4N5Ksg75X+MHH/lv/MvNzZURI0ZIYGCgVKlSRXx9feWpp56SgwcPKjUWLlwoTZo0ERcXF/Hy8pKuXbvKsWPHinzOh72xMCEhodCeRo4cqYxp165dgRrHjx8XALJhw4YCNf/880956qmnpEaNGuLg4CC+vr7StWtXkzcWFvW8D0a78+fPy9NPPy16vV58fHwkNjZW/vjjD5PeipvTksx7YQo7T8XExIiHh4c4ODhIw4YN5dtvvzXZvnbtWmncuLHo9XpxcXGRRo0ayYwZM0zeUyEism7dOmndurU4OTmJwWCQFi1amLyhcuTIkYX2+9c3DO/du1c6duwoHh4e4urqKq1atVLOgSXFEE1EZAFlGaJFRE6cOCFPPfWUuLu7i5OTk9SrV08GDx4sRqNRjh49KlFRUeLl5SU6nU5CQkLks88+U/a9cuWKREZGil6vFwDK5+wOHTpUPD09Ra/Xy/PPPy9TpkwxW4iePn26REZGik6nk8DAQFm8eHERM/f/WrRoITNmzFCWHxaic3Jy5IUXXhA/Pz9xcHCQGjVqyJtvvqm86VDk/pu8/v3vfz/0uYmINCJ/+fA9IiKicqbRaPDTTz+p/qtkq1evxtChQ3H48OEC9zaWxrVr1xAaGop9+/YVeW84EVE+3hNNREQVUqdOnXDy5EmcP38efn5+f7teeno6vvjiCwZoIioRXokmIiKLKu2VaCIiS+KVaCIisiheyyGiiujv30RGRERERGRjGKKJiIiIiFRiiCYiIiIiUokhmoiIiIhIJYZoIiIiIiKVGKKJiIiIiFRiiCYiIiIiUokhmoiIiIhIJYZoIiIiIiKV/g+cVImj9fNWNAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -120,7 +131,7 @@ } ], "source": [ - "gaze_middle = gaze.crop(5, 5.5, by=\"time\")\n", + "gaze_middle = gaze.crop(5, 5.3, by=\"time\")\n", "eye_states_middle = eye_states.restrict(gaze_middle)\n", "imu_middle = imu.restrict(gaze_middle)\n", "\n", @@ -131,21 +142,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Some irregular sampling in the IMU data is observed in this segment of the recording as well. How frequent are these irregularities? Let's take a look at the distribution of the time differences between consecutive samples, and compare them to the expected time difference for a regular, nominal (as specified by Pupil Labs) sampling rate." + "How frequent are these irregularities? We now examine the distribution of the time differences between consecutive samples, and compare them to the expected time difference for a regular, nominal (as specified by Pupil Labs) sampling rate." ] }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Nominal sampling frequency of gaze: 200 Hz. Actual: 199.36 Hz\n", - "Nominal sampling frequency of eye states: 200 Hz. Actual: 199.36 Hz\n", - "Nominal sampling frequency of IMU: 110 Hz. Actual: 113.88 Hz\n" + "Nominal sampling frequency of gaze: 200 Hz. Actual: 199.4 Hz\n", + "Nominal sampling frequency of eye states: 200 Hz. Actual: 199.4 Hz\n", + "Nominal sampling frequency of IMU: 110 Hz. Actual: 113.9 Hz\n" ] }, { @@ -162,15 +173,15 @@ "source": [ "print(\n", " f\"Nominal sampling frequency of gaze: {gaze.sampling_freq_nominal} Hz. \"\n", - " f\"Actual: {gaze.sampling_freq_effective:.2f} Hz\"\n", + " f\"Actual: {gaze.sampling_freq_effective:.1f} Hz\"\n", ")\n", "print(\n", " f\"Nominal sampling frequency of eye states: {eye_states.sampling_freq_nominal} Hz. \"\n", - " f\"Actual: {eye_states.sampling_freq_effective:.2f} Hz\"\n", + " f\"Actual: {eye_states.sampling_freq_effective:.1f} Hz\"\n", ")\n", "print(\n", " f\"Nominal sampling frequency of IMU: {imu.sampling_freq_nominal} Hz. \"\n", - " f\"Actual: {imu.sampling_freq_effective:.2f} Hz\"\n", + " f\"Actual: {imu.sampling_freq_effective:.1f} Hz\"\n", ")\n", "\n", "fig, axs = plt.subplots(3, 1, tight_layout=True)\n", @@ -199,7 +210,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "For gaze and eye states data, the empirical distribution of time differences is close to the expected value (though with some integer multiples of the nominal sampling rate, which hints at possible eye video frame drops). For IMU data, the distribution is much wider." + "For gaze and eye states data, the empirical distribution of time differences is close to the expected value. However, some integer multiples of the nominal sampling rate suggest possible eye video frame drops. For IMU data, the distribution is much wider." ] }, { @@ -208,55 +219,65 @@ "source": [ "## Interpolating data streams\n", "\n", - "Given the presence of irregular sampling, if you want to perform analyses that assume continuous data streams, interpolation is necessary. PyNeon uses the `scipy.interpolate.interp1d` [(API reference)](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp1d.html) function to interpolate data streams. For instances of `NeonStream`, we can call `interpolate()` which returns a copy of the object with the data interpolated with the default parameters." + "Given the presence of irregular sampling, if you want to perform analyses that assume continuous data streams, interpolation is necessary. PyNeon uses the `scipy.interpolate.interp1d` [(API reference)](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp1d.html) function to interpolate data streams. The `interpolate()` method of `NeonStream` creates a new object with interpolated data.\n", + "\n", + "With the default parameters, the interpolated data will have the same start timestamp as the original data, and the sampling rate is set to the nominal sampling frequency specified by Pupil Labs (200 Hz for gaze and eye states, 110 Hz for IMU)." ] }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Nominal sampling frequency of gaze: 200 Hz. Actual (after interpolation): 200.03 Hz\n", + "Nominal sampling frequency of gaze: 200 Hz. Actual (after interpolation): 200.0 Hz\n", "Only one unique time difference: [5000000]\n", - "The new gaze stream is uniformly sampled: True\n" + "The new gaze stream is uniformly sampled: True\n", + "gaze x [px] float64\n", + "gaze y [px] float64\n", + "worn Int32\n", + "fixation id Int32\n", + "blink id Int32\n", + "azimuth [deg] float64\n", + "elevation [deg] float64\n", + "dtype: object\n" ] } ], "source": [ - "# Resample to the nominal sampling frequency\n", + "# Interpolate to the nominal sampling frequency\n", "gaze_resampled = gaze.interpolate()\n", "\n", "# Three ways you can check if the resampling was successful:\n", "# 1. Compare the effective sampling frequency to the nominal sampling frequency\n", "print(\n", " f\"Nominal sampling frequency of gaze: {gaze_resampled.sampling_freq_nominal} Hz. \"\n", - " f\"Actual (after interpolation): {gaze_resampled.sampling_freq_effective:.2f} Hz\"\n", + " f\"Actual (after interpolation): {gaze_resampled.sampling_freq_effective:.1f} Hz\"\n", ")\n", "# 2. Check the number of unique time differences\n", "print(f\"Only one unique time difference: {np.unique(gaze_resampled.ts_diff)}\")\n", "# 3. Call the `is_uniformly_sampled` property (boolean)\n", "print(\n", " f\"The new gaze stream is uniformly sampled: {gaze_resampled.is_uniformly_sampled}\"\n", - ")" + ")\n", + "print(gaze_resampled.data.dtypes)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "In the above example, we resampled the gaze data with default parameters, which means that the resampled data will have the same start and timestamps as the original data, and the sampling rate is set to the nominal sampling frequency (200 Hz, as specified by Pupil Labs). Notice that resampling would not change the data type of the columns. For example, the `bool`-type `worn` column and the integer-type `fixation_id` column are preserved.\n", - "nominal sampling rate (you can also customize by passing the `new_ts` argument).\n", + "Note that after intepolation, the data types of the columns are preserved.\n", "\n", "Alternatively, one can also resample the gaze data to any desired timestamps by specifying the `new_ts` parameter. This is especially helpful when synchronizing different data streams. For example, we can resample the gaze data (~200Hz) to the timestamps of the IMU data (~110Hz)." ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -270,12 +291,58 @@ } ], "source": [ - "print(f\"Original gaze data length: {gaze.data.shape[0]}\")\n", - "print(f\"Original IMU data length: {imu.data.shape[0]}\")\n", + "print(f\"Original gaze data length: {len(gaze)}\")\n", + "print(f\"Original IMU data length: {len(imu)}\")\n", "gaze_resampled_to_imu = gaze.interpolate(new_ts=imu.ts)\n", - "print(\n", - " f\"Gaze data length after resampling to IMU: {gaze_resampled_to_imu.data.shape[0]}\"\n", - ")" + "print(f\"Gaze data length after resampling to IMU: {len(gaze_resampled_to_imu)}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By default, float-type data is interpolated using the `'cubic'` method. We are examine its behavior by comparing interpolated data with the raw data." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "gaze_resampled_begin = gaze_resampled.restrict(gaze_begin)\n", + "\n", + "fig, ax = plt.subplots(figsize=(8, 2))\n", + "sns.lineplot(\n", + " ax=ax,\n", + " data=gaze_begin.data,\n", + " x=gaze_begin.ts,\n", + " y=\"gaze x [px]\",\n", + " marker=\"o\",\n", + " label=\"Raw\",\n", + ")\n", + "sns.lineplot(\n", + " ax=ax,\n", + " data=gaze_resampled_begin.data,\n", + " x=gaze_resampled_begin.ts,\n", + " y=\"gaze x [px]\",\n", + " marker=\"^\",\n", + " alpha=0.6,\n", + " label=\"Interpolated\",\n", + ")\n", + "plt.legend()\n", + "plt.show()" ] }, { @@ -284,14 +351,16 @@ "source": [ "## Concatenating different streams\n", "\n", - "Based on the resampling method, it is then possible to concatenate different streams into a single DataFrame by resampling them to common timestamps. The method `concat_streams()` provides such functionality. It takes a list of stream names and resamples them to common timestamps, defined by the latest start and earliest end timestamps of the streams. The news ampling frequency can either be directly specified or taken from the lowest/highest sampling frequency of the streams.\n", + "There might be cases where you want to concatenate different streams into a single one to facilitate further analysis (e.g., [epoching](epoching.ipynb)). This is possible by interpolating the streams' data to common timestamps and concatenating them into a single DataFrame.\n", "\n", - "In the following example, we will concatenate the gaze, eye states, and IMU streams into a single DataFrame using the default parameters (e.g., using the lowest sampling frequency of the streams)." + "The method `concat_streams()` of `NeonRecording` provides such functionality. It takes a list of stream names and resamples them to common timestamps, defined by the latest start and earliest end timestamps of the streams. The new sampling frequency can either be directly specified or taken from the lowest/highest sampling frequency of the streams.\n", + "\n", + "In the following example, we concatenate the gaze, eye states, and IMU streams into a single DataFrame using the default parameters." ] }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -347,121 +416,116 @@ "1732621490634923070 0.395728 -0.085207 -0.154411 0.901275 \n", "1732621490644013979 0.395683 -0.085190 -0.154403 0.901297 \n", "\n", - "[5 rows x 34 columns]\n" + "[5 rows x 34 columns]\n", + "Index(['gaze x [px]', 'gaze y [px]', 'worn', 'fixation id', 'blink id',\n", + " 'azimuth [deg]', 'elevation [deg]', 'pupil diameter left [mm]',\n", + " 'pupil diameter right [mm]', 'eyeball center left x [mm]',\n", + " 'eyeball center left y [mm]', 'eyeball center left z [mm]',\n", + " 'eyeball center right x [mm]', 'eyeball center right y [mm]',\n", + " 'eyeball center right z [mm]', 'optical axis left x',\n", + " 'optical axis left y', 'optical axis left z', 'optical axis right x',\n", + " 'optical axis right y', 'optical axis right z', 'gyro x [deg/s]',\n", + " 'gyro y [deg/s]', 'gyro z [deg/s]', 'acceleration x [g]',\n", + " 'acceleration y [g]', 'acceleration z [g]', 'roll [deg]', 'pitch [deg]',\n", + " 'yaw [deg]', 'quaternion w', 'quaternion x', 'quaternion y',\n", + " 'quaternion z'],\n", + " dtype='object')\n" ] } ], "source": [ "concat_stream = recording.concat_streams([\"gaze\", \"eye_states\", \"imu\"])\n", - "print(concat_stream.data.head())" + "print(concat_stream.data.head())\n", + "print(concat_stream.data.columns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "We show an exemplary sampling of eye, imu and concatenated data below. It can be seen that imu data has subsequent missing values which can in turn be interpolated" + "We show an exemplary sampling of eye, imu and concatenated data below. It can be seen that the concatenated data is regularly sampled at the nominal sampling rate of IMU." ] }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 10, "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'time_to_ts' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[36], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m start_time \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m5\u001b[39m\n\u001b[0;32m 2\u001b[0m end_time \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m5.3\u001b[39m\n\u001b[1;32m----> 3\u001b[0m start_ts \u001b[38;5;241m=\u001b[39m \u001b[43mtime_to_ts\u001b[49m(start_time, concat_stream)\n\u001b[0;32m 4\u001b[0m end_ts \u001b[38;5;241m=\u001b[39m time_to_ts(end_time, concat_stream)\n\u001b[0;32m 6\u001b[0m raw_gaze_data_slice \u001b[38;5;241m=\u001b[39m gaze\u001b[38;5;241m.\u001b[39mdata[\n\u001b[0;32m 7\u001b[0m (gaze\u001b[38;5;241m.\u001b[39mdata[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtimestamp [ns]\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m start_ts) \u001b[38;5;241m&\u001b[39m (gaze\u001b[38;5;241m.\u001b[39mdata[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtimestamp [ns]\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m<\u001b[39m\u001b[38;5;241m=\u001b[39m end_ts)\n\u001b[0;32m 8\u001b[0m ]\n", - "\u001b[1;31mNameError\u001b[0m: name 'time_to_ts' is not defined" - ] + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAusAAADZCAYAAACZ1H6yAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA3IklEQVR4nO3deVxUZfs/8M8AOgwMwyYgKLKoaLmipqLm8ghCP9cWbXEjl57MysotsxQtxUpzScolhVwSs9LKfUlyXwlzRUUQc81UFjVQ5vr94cP5NrIINDKH8fN+veYV5z73fZ3r3GeYLs7cM2pEREBERERERKpjY+kEiIiIiIiocCzWiYiIiIhUisU6EREREZFKsVgnIiIiIlIpFutERERERCrFYp2IiIiISKVYrBMRERERqRSLdSIiIiIilbKzdAJkXkajERcuXICTkxM0Go2l0yEiIiKi+4gIsrKy4OPjAxub4u+ds1i3MhcuXICvr6+l0yAiIiKiBzh37hyqV69ebB8W61bGyckJwL2LbzAYLJwNEREREd0vMzMTvr6+St1WHBbrViZ/6YvBYGCxTkRERKRiJVmyzA+YEhERERGpFIt1IiIiIiKVYrFORERERKRSLNaJiIiIiFSKxToRERERkUqxWCciIiIiUikW60REREREKsVinYiIiIhIpVisExERERGpFIt1IiIiIiKVYrFORERERKRSLNZVLi0tDRqNBklJSZZOhYiIiIjKWZmK9UuXLuGNN95AYGAgtFotfH190bVrV2zZssXc+ZVZVFQUGjdubJFjs8AmIiIiInOwK+2AtLQ0tG7dGi4uLvj000/RoEED3LlzBxs2bMDQoUNx4sSJh5EnEREREdEjp9R31l977TVoNBrs27cPzz77LIKCglCvXj2888472LNnDwAgPT0d3bt3h16vh8FgQK9evXD58mUlRv5d78WLF8Pf3x/Ozs544YUXkJWVpfQxGo345JNPUKtWLWi1WtSoUQOTJk1S9o8ePRpBQUFwcHBAYGAgPvjgA9y5cwcAEBcXhwkTJuDQoUPQaDTQaDSIi4sDANy4cQODBg2Ch4cHDAYD/vOf/+DQoUOlym39+vVo06YNXFxc4O7uji5duiAlJUXZHxAQAAAIDg6GRqNB+/btlX1fffUVHnvsMdjb26Nu3br44osvTOZ33759CA4Ohr29PZo1a4bf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ERERkfXQiJTgU6NUYWRmZsLZ2RkZGRkwGAyWToeIiIiI7lOaeq3Ud9aJiIiIiKh8sFgnIiIiIlIpFutERERERCrFYp2IiIiISKVYrBMRERERqRSLdSIiIiIilWKxTkRERESkUizWiYiIiIhUisU6EREREZFKsVgnIiIiIlIpFutERERERCrFYp2IiIiISKVYrBMRERERqRSLdSIiIiIilWKxTkRERESkUizWiYiIiIhUisU6EREREZFKsVgnIiIiIlIpFutERERERCrFYp2IiIiISKVYrBMRERERqRSLdSIiIiIilWKxTkRERESkUizWiYiIiIhUisU6EREREZFKsVgnIiIiIlIpFutERERERCrFYt2MIiMj0aNHD+VnjUaDV199tUC/oUOHQqPRIDIyUmlr37493nrrrQJ94+Li4OLi8nASJiIiIiJVY7H+EPn6+iI+Ph63b99W2v7++2988803qFGjhgUzIyIiIqKKwM7SCVizJk2aICUlBT/88AN69+4NAPjhhx9Qo0YNBAQEWDi78nPXeBfzD89H4uVENPFqgsENBsPOpvinXmnHlMcxyjrGnOOtJQdLxFZTztb0O1ESFS2uuWJbU4yyxKno/c093tpiWEPchx3bXNSVjRUaMGAAYmNjlWJ94cKFePnll5GQkGCW+Dk5OcjJyVG2MzMzzRLXnOYfno8vk76EQLD34l4AwJBGQ8w6pjyOUdYx5hxvLTlYIraacram34mSqGhxzRXbmmKUJU5F72/u8dYWwxriPuzY5sJlMA9Znz59sGPHDpw9exZnz57Fzp070adPH7PFj46OhrOzs/Lw9fU1W2xzSbycCIEAAASCxMuJZh9THsco6xhzjreWHCwRW005W9PvRElUtLjmim1NMcoSp6L3N/d4a4thDXEfdmxzYbH+kHl4eKBz586Ii4tDbGwsOnfujCpVqpgt/pgxY5CRkaE8zp07Z7bY5tLEqwk00AAANNCgiVcTs48pj2OUdYw5x1tLDpaIraacrel3oiQqWlxzxbamGGWJU9H7m3u8tcWwhrgPO7a5cBlMORgwYABef/11AEBMTEyhfQwGAzIyMgq037hxA87OzkXG1mq10Gq15kn0IRncYDAAmKwHM/eY8jhGWceYc7y15GCJ2GrK2Zp+J0qiosU1V2xrilGWOBW9v7nHW1sMa4j7sGObi0ZExNJJ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lpYGg8FQonxCQkLwxBNPYNasWQ/sm5mZCWdnZ2RkZJQ4PhERERGVn9LUa6q8s56Tk4NLly6ZtNnZ2aFKlSrK9qBBg9ClSxfk5eWhf//+SruTkxNGjBiBt99+G0ajEW3atEFGRgZ27twJg8Fg0jff6tWrcebMGbRt2xaurq5Yu3YtjEYj6tSpAwDw9/fH3r17kZaWpixbqV27NhYtWoQNGzYgICAAixcvxv79+xEQEKDE9ff3x4YNG5CcnAx3d3c4Ozujd+/e+PTTT9G9e3dMnDgR1atXx9mzZ/HDDz9g1KhRuHPnDubNm4du3brBx8cHycnJOHXqFPr162fuaSYiIiIitROV6d+/v+DeKn+TR506dUz6GY1G8fPzk//3//5fgRhGo1FmzJghderUkUqVKomHh4eEh4fLr7/+Wugxt2/fLu3atRNXV1fR6XTSsGFDWb58ubI/OTlZWrZsKTqdTgBIamqq/P333xIZGSnOzs7i4uIiQ4YMkXfffVcaNWqkjLty5YqEhYWJXq8XALJ161YREbl48aL069dPqlSpIlqtVgIDA2Xw4MGSkZEhly5dkh49eoi3t7dUrlxZ/Pz8ZNy4cZKXl1ei+cvIyBAAkpGRUaL+RERERFS+SlOvqW4ZTEllZ2ejWrVqiI2NxTPPPGPpdFSDy2CIiIiI1K3CL4MpjtFoxNWrVzFt2jS4uLigW7dulk6JiIiIiOihqHDFenp6OgICAlC9enXExcXBzq7CnQIRERERUYlUuErX398fFXTlDhERERFRqajyH0UiIiIiIiIW60REREREqsVinYiIiIhIpVisExERERGpFIt1IiIiIiKVYrFORERERKRSLNaJiIiIiFSKxToRERERkUqxWCciIiIiUikW60REREREKsVinYiIiIhIpVisExERERGpFIt1IiIiIiKVYrFORERERKRSLNaJiIiIiFSKxToRERERkUqxWCciIiIiUikW60REREREKsVinYiIiIhIpVisExERERGpFIt1IiIiIiKVYrFORERERKRSLNaJiIiIiFSKxToRERERkUqxWC+FS5cuYdiwYahVqxbs7e3h5eWF1q1b48svv8StW7csnR4RERERWRk7SydQUZw5cwatW7eGi4sLJk+ejAYNGkCr1eLw4cOYN28eqlWrhm7dulk6TSIiIiKyIhoREUsnURFERETg6NGj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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "start_time = 5\n", - "end_time = 5.3\n", - "start_ts = time_to_ts(start_time, concat_stream)\n", - "end_ts = time_to_ts(end_time, concat_stream)\n", - "\n", - "raw_gaze_data_slice = gaze.data[\n", - " (gaze.data[\"timestamp [ns]\"] >= start_ts) & (gaze.data[\"timestamp [ns]\"] <= end_ts)\n", - "]\n", - "raw_eye_states_data_slice = eye_states.data[\n", - " (eye_states.data[\"timestamp [ns]\"] > start_ts)\n", - " & (eye_states.data[\"timestamp [ns]\"] <= end_ts)\n", - "]\n", - "raw_imu_data_slice = imu.data[\n", - " (imu.data[\"timestamp [ns]\"] >= start_ts) & (imu.data[\"timestamp [ns]\"] <= end_ts)\n", - "]\n", - "concat_data_slice = concat_stream[\n", - " (concat_stream[\"timestamp [ns]\"] >= start_ts)\n", - " & (concat_stream[\"timestamp [ns]\"] <= end_ts)\n", - "]\n", - "\n", - "# plot all data in the same scatter plot\n", - "plt.figure(figsize=(15, 4))\n", - "plt.scatter(\n", - " raw_gaze_data_slice[\"timestamp [ns]\"],\n", - " np.zeros_like(raw_gaze_data_slice[\"timestamp [ns]\"]) + 2,\n", - " label=\"Raw gaze data\",\n", - " color=\"red\",\n", - ")\n", - "plt.scatter(\n", - " raw_eye_states_data_slice[\"timestamp [ns]\"],\n", - " np.zeros_like(raw_eye_states_data_slice[\"timestamp [ns]\"]) + 1,\n", - " label=\"Raw eye states data\",\n", - " color=\"orange\",\n", - ")\n", - "plt.scatter(\n", - " raw_imu_data_slice[\"timestamp [ns]\"],\n", - " np.zeros_like(raw_imu_data_slice[\"timestamp [ns]\"]),\n", - " label=\"Raw IMU data\",\n", - " color=\"blue\",\n", - ")\n", - "plt.scatter(\n", - " concat_data_slice[\"timestamp [ns]\"],\n", - " np.zeros_like(concat_data_slice[\"timestamp [ns]\"]) - 1,\n", - " label=\"Concatenated data\",\n", - " color=\"green\",\n", - ")\n", - "# set x-ticks with higher frequency and add gridlines\n", - "plt.xticks(concat_data_slice[\"timestamp [ns]\"], labels=None)\n", - "plt.yticks([])\n", - "plt.grid()\n", - "plt.legend()" + "concat_stream_middle = concat_stream.restrict(gaze_middle)\n", + "plot_timestamps(gaze_middle, eye_states_middle, imu_middle, concat_stream_middle)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "A linear interpolation allows us to estimate missing values. In the end, the concatenated dataframe combines all continuous data into one central location" + "Despite different sampling from the original streams, the concatenated data still respects the original values of the data. For example, the `gaze x [px]` and `acceleration x [g]` data from the raw and concatenated stream are quite comparable." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# plot imu data and interpolated data in same plot\n", - "plt.figure(figsize=(16, 3))\n", - "plt.scatter(\n", - " raw_imu_data_slice[\"time [s]\"],\n", - " raw_imu_data_slice[\"acceleration z [g]\"],\n", - " label=\"Raw imu data\",\n", - " color=\"blue\",\n", + "fig, axs = plt.subplots(2, 1, figsize=(8, 4), tight_layout=True)\n", + "sns.lineplot(\n", + " ax=axs[0],\n", + " data=gaze_middle.data,\n", + " x=gaze_middle.ts,\n", + " y=\"gaze x [px]\",\n", + " marker=\"o\",\n", + " label=\"Raw gaze\",\n", ")\n", - "plt.plot(\n", - " concat_data_slice[\"time [s]\"],\n", - " concat_data_slice[\"acceleration z [g]\"],\n", - " label=\"Interpolated imu data\",\n", - " color=\"green\",\n", + "sns.lineplot(\n", + " ax=axs[0],\n", + " data=concat_stream_middle.data,\n", + " x=concat_stream_middle.ts,\n", + " y=\"gaze x [px]\",\n", + " marker=\"^\",\n", + " label=\"Concatenated\",\n", ")\n", - "plt.legend()" + "sns.lineplot(\n", + " ax=axs[1],\n", + " data=imu_middle.data,\n", + " x=imu_middle.ts,\n", + " y=\"acceleration x [g]\",\n", + " marker=\"o\",\n", + " label=\"Raw IMU\",\n", + ")\n", + "sns.lineplot(\n", + " ax=axs[1],\n", + " data=concat_stream_middle.data,\n", + " x=concat_stream_middle.ts,\n", + " y=\"acceleration x [g]\",\n", + " marker=\"^\",\n", + " label=\"Concatenated\",\n", + ")\n", + "plt.legend()\n", + "plt.show()" ] } ],