{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "import re\n",
    "\n",
    "from dmf_control_board_firmware.calibrate.impedance import TEST_LOADS\n",
    "from dmf_control_board_firmware.chip_test.plot import plot_capacitance_summary\n",
    "from ipywidgets import SelectMultiple\n",
    "from path_helpers import path\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib as mpl\n",
    "import numpy as np\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Choose data files to merge data from"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Get current working directory.\n",
    "pwd = path(os.getcwd())\n",
    "\n",
    "start_name_i = len('channel-impedances-')\n",
    "data_paths = [(f.name[start_name_i:], f)\n",
    "              for f in\n",
    "              sorted(pwd.parent.walkfiles('channel-impedances*.h5'),\n",
    "                     key=lambda v: -v.mtime)]\n",
    "selection = SelectMultiple(options=data_paths,\n",
    "                           selected_labels=[data_paths[0][0]])\n",
    "selection"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Merge impedance data frames from selected files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "frames = []\n",
    "\n",
    "# Load `channel_impedances` frame from selected files.\n",
    "for hdf_path_i in selection.value:\n",
    "    match = re.search(r'\\[(?P<tag>.*)\\]', hdf_path_i)\n",
    "    if not match:\n",
    "        continue\n",
    "    df_channel_impedances_i = pd.read_hdf(str(hdf_path_i),\n",
    "                                          '/channel_impedances')\n",
    "    df_channel_impedances_i.insert(0, 'tag', match.group('tag'))\n",
    "    frames.append(df_channel_impedances_i)\n",
    "    \n",
    "# Merge frames.\n",
    "df_channel_impedances = pd.concat(frames)\n",
    "\n",
    "# Load electrode/channel mapping and device geometry information\n",
    "# (e.g., electrode shapes).\n",
    "hdf_store = pd.HDFStore(str(hdf_path_i), 'r')\n",
    "data = {k[1:]: hdf_store[k] for k in ['/shapes',\n",
    "                                      '/device/electrodes_by_channel',\n",
    "                                      '/device/channels_by_electrode']}\n",
    "hdf_store.close()\n",
    "data['channel_impedances'] = df_channel_impedances"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "--------------------------------------------------"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Compare to loads on test board"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "TEST_LOADS_40 = TEST_LOADS\n",
    "TEST_LOADS_120 = pd.Series(np.tile(TEST_LOADS_40[::2], 6),\n",
    "                           index=range(3 * TEST_LOADS_40.shape[0]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n0joZdd9S97ZS5XvolnydRNlW/ueA9XK9qu9zx10vH8nX/zmSXp7fzsnv+5Kkn+izvPtVuIIqv+8E\nZVN1vq+NeVanFfrh2vjbB2cr++X8S7Tx89x+ZQe2Nyk7q9M52DhM2c9XN+br5z352C5TdtZob58x\nWr4+rpD0d8ou53yvsssXL1X2M+Ol+ccflPTH+fOOUvZzIOvl4PXS8+x88cYbVU+ZmR2j7FTp2ZKO\nze++Q9lliyvKzlh9vsfzPizpHe7+idL975N0urs/oXT/EyRd6O4vyT9+oaQ3KTv1/Ggze0tpEe9w\n92+a2aOV/bD7bmWTpk9Sdsp3n6QrJT3P3X+xz+f2tPy5P1B26eNvKNvB3a7s8szfUnZZ4x5J/8Xd\nv2Bmj1J2SeTVyr4ZP+MHv73CXvV/64V+bbuyb5ahz1P2zf94d7/5EJY3rK0qO+varx3f53MvvrXE\nU5X9z+0Wd18ws9PU520namo/qmw7vX7E562PU9m14P2ec7qyM8O9PrdiG/aWGu91918q35+3nm+3\nMW7L347jPe7+0kksL28jf35m9hxlv/W7yd2vLrX1txqpsT1H2S9iPjvG88YZZ6XnKZvrcqu7f9vM\njtLGW6nsUfZD2bW+8TYrvyvp6cr2w1dJui5/Xq9WfF7x7VmK7Shlv+A6VdJ1pdfsjKXXax7qOIvP\nKy7vnMI4B72NzOuUXZrTWMvH2tnnNr68Ki1/+5yXSbrds7fPeYWyudMryqZCvFi931pn3HaZsh8m\nO+2XJL1S2fSFv8zb7RWeV3Wclyn75Wmvz6/cym8ddKK63zro88rfOsjMflh93laopnaksu/lv8rb\n4/N2Qp/nvXiMcZZf8zZJ7yu1xyr7+wPF521TdhDZ9XZSyq4qOuDu+1ViZj8t6ZvufmPp/odJ+n1J\nb3T3A6W2VdkvuC/PPz5a2UHq6e7+k2a2pbSYb7j7d83skZJ+UtnBxPO18fPc15TtH+bd/YryGPNl\nbFK2Tbiyv25+urLvj69K+nNlByHblB3kvNvdv59/Xx+r7IDkoLfZGnO9PFTZ31+osl4eomyf22+9\nfN3dH6h5vZym7CB06Hpx99Ver7n+2hygxWVmr3T3y+pq5ftL/1OsdVmH2N6n7A+M3KKD315hn7Lf\ngsx6+46y38yO0spvLXGassmmP6Ps8oqj1fttJ+pqg5ZXpf2qst9U3XmIyyo+r/yWGlJ2pveT+Wt8\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1369b870>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "channel_capacitance = (df_channel_impedances.groupby('channel_i')\n",
    "                       ['capacitance'].mean()) / TEST_LOADS_120\n",
    "fig, axis_bar = plt.subplots(figsize=(15, 6))\n",
    "\n",
    "with mpl.style.context(['ggplot']):\n",
    "    axis = channel_capacitance.plot(kind='bar')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
