{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pylab as plt\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import os"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Load sweep_summary.txt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "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>Folder</th>\n",
       "      <th>P1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Toggle-Switch_sweep_1/Toggle-Switch_301</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Toggle-Switch_sweep_1/Toggle-Switch_302</td>\n",
       "      <td>1.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Toggle-Switch_sweep_1/Toggle-Switch_303</td>\n",
       "      <td>1.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Toggle-Switch_sweep_1/Toggle-Switch_304</td>\n",
       "      <td>1.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Toggle-Switch_sweep_1/Toggle-Switch_305</td>\n",
       "      <td>1.8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Toggle-Switch_sweep_1/Toggle-Switch_306</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Toggle-Switch_sweep_1/Toggle-Switch_307</td>\n",
       "      <td>2.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Toggle-Switch_sweep_1/Toggle-Switch_308</td>\n",
       "      <td>2.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Toggle-Switch_sweep_1/Toggle-Switch_309</td>\n",
       "      <td>2.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>Toggle-Switch_sweep_1/Toggle-Switch_310</td>\n",
       "      <td>2.8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>Toggle-Switch_sweep_1/Toggle-Switch_311</td>\n",
       "      <td>3.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                     Folder   P1\n",
       "0   Toggle-Switch_sweep_1/Toggle-Switch_301  1.0\n",
       "1   Toggle-Switch_sweep_1/Toggle-Switch_302  1.2\n",
       "2   Toggle-Switch_sweep_1/Toggle-Switch_303  1.4\n",
       "3   Toggle-Switch_sweep_1/Toggle-Switch_304  1.6\n",
       "4   Toggle-Switch_sweep_1/Toggle-Switch_305  1.8\n",
       "5   Toggle-Switch_sweep_1/Toggle-Switch_306  2.0\n",
       "6   Toggle-Switch_sweep_1/Toggle-Switch_307  2.2\n",
       "7   Toggle-Switch_sweep_1/Toggle-Switch_308  2.4\n",
       "8   Toggle-Switch_sweep_1/Toggle-Switch_309  2.6\n",
       "9   Toggle-Switch_sweep_1/Toggle-Switch_310  2.8\n",
       "10  Toggle-Switch_sweep_1/Toggle-Switch_311  3.0"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# folder where all simulations are stored\n",
    "sim_root = '/Users/alvarok/morpheus/'\n",
    "\n",
    "# folder where sweep results are stored (subfolder of sim_root)\n",
    "sweep_folder = 'Toggle-Switch_sweep_1'\n",
    "# read sweep_summary into dataframe\n",
    "df = pd.read_csv(os.path.join(sim_root, sweep_folder, 'sweep_data.csv'), sep='\\t')\n",
    "# show first lines of dataframe\n",
    "df.head(11)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Read data from logger.txt files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": false
   },
   "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>a1</th>\n",
       "      <th>u</th>\n",
       "      <th>v</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.0</td>\n",
       "      <td>0.111766</td>\n",
       "      <td>1.997089</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.2</td>\n",
       "      <td>0.134037</td>\n",
       "      <td>1.995470</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.4</td>\n",
       "      <td>0.157009</td>\n",
       "      <td>1.992558</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.6</td>\n",
       "      <td>0.180414</td>\n",
       "      <td>1.988452</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.8</td>\n",
       "      <td>0.204422</td>\n",
       "      <td>1.983187</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2.0</td>\n",
       "      <td>0.231394</td>\n",
       "      <td>1.974142</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2.2</td>\n",
       "      <td>2.188340</td>\n",
       "      <td>0.174287</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2.4</td>\n",
       "      <td>2.393905</td>\n",
       "      <td>0.135948</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2.6</td>\n",
       "      <td>2.596634</td>\n",
       "      <td>0.108135</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2.8</td>\n",
       "      <td>2.798080</td>\n",
       "      <td>0.087240</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    a1         u         v\n",
       "0  1.0  0.111766  1.997089\n",
       "1  1.2  0.134037  1.995470\n",
       "2  1.4  0.157009  1.992558\n",
       "3  1.6  0.180414  1.988452\n",
       "4  1.8  0.204422  1.983187\n",
       "5  2.0  0.231394  1.974142\n",
       "6  2.2  2.188340  0.174287\n",
       "7  2.4  2.393905  0.135948\n",
       "8  2.6  2.596634  0.108135\n",
       "9  2.8  2.798080  0.087240"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def get_data(folder):\n",
    "    # filename\n",
    "    fn = os.path.join(sim_root, folder, 'logger.csv')\n",
    "    # get data into dataframe\n",
    "    df_temp = pd.read_csv(fn, sep='\\t')\n",
    "    # get time at end of logtime\n",
    "    maxtime = df_temp['time'].max() \n",
    "    # get x,y values of last time step\n",
    "    df_temp = df_temp[df_temp['time'] == maxtime]\n",
    "    # return x,y values as numpy array\n",
    "    return df_temp[['u', 'v']].values[0]\n",
    "\n",
    "results = []\n",
    "# for each row in the dataframe\n",
    "for i, row in df.iterrows():\n",
    "    # get the folder\n",
    "    folder = row['Folder']\n",
    "    # get parameter value\n",
    "    parameter = row['P1']\n",
    "    # get data from logger.txt (see above)\n",
    "    data = get_data(folder)\n",
    "    # add to results list\n",
    "    results.append( [parameter, data[0], data[1]] )\n",
    "\n",
    "# convert results list to pandas dataframe\n",
    "df_results = pd.DataFrame(results, columns=['a1', 'u', 'v'])\n",
    "# show first lines of dataframe\n",
    "df_results.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Plot data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f89e8666550>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot x vs a1\n",
    "plt.plot(df_results['a1'], df_results['u'], '.-', label='u')\n",
    "# plot y vs a1\n",
    "plt.plot(df_results['a1'], df_results['v'], '.-', label='v')\n",
    "plt.xlabel('a1')\n",
    "plt.grid()\n",
    "plt.ylim(bottom=0)\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "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.8.8"
  },
  "toc": {
   "colors": {
    "hover_highlight": "#DAA520",
    "running_highlight": "#FF0000",
    "selected_highlight": "#FFD700"
   },
   "moveMenuLeft": true,
   "nav_menu": {
    "height": "66px",
    "width": "252px"
   },
   "navigate_menu": true,
   "number_sections": true,
   "sideBar": true,
   "threshold": 4,
   "toc_cell": false,
   "toc_section_display": "block",
   "toc_window_display": false,
   "widenNotebook": false
  },
  "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": 1
}
