{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "import matplotlib.mlab as mlab\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas\n", "import scipy\n", "import scipy.optimize" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The original data has 44 measurements, but 4 are duplicates where the same temperature was recorded at each corner. We remove these duplicate measurements and then vizualize the measurements." ] }, { "cell_type": "code", "collapsed": false, "input": [ "data = pandas.read_table('data/volcanodata.txt', names=('x', 'y', 't'), sep='\\s+')\n", "data = data.drop_duplicates()\n", "\n", "im = np.zeros((11, 11))\n", "for _, (x, y, t) in data.iterrows():\n", " im[x / 10, y / 10] = t\n", "plt.matshow(im.T, origin='lower')\n", "ticks = [''] + [str(10 * i * 2) for i in xrange(6)]\n", "plt.gca().set_xticklabels(ticks)\n", "plt.gca().set_yticklabels(ticks)\n", "plt.colorbar()\n", "plt.title('Temperature Measurements')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 2, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAdgAAAHMCAYAAAB2nrkUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtcFXX+P/DXcDHuiJfD4WKChaEk5o0MXAQVVsvFMC9J\nJaZFKhpIPTDNBDeE2HUREzByvVBK4q9cd3WtyBSVxVpScDNC3ZVUUk6piGGgAvP7gy+TR0DBwzDH\n4fV8PObx8Hzmcz6fzwzIe96fuQmiKIogIiKiDmWi9ACIiIjUiAGWiIhIBgywREREMmCAJSIikgED\nLBERkQzMlB4AERF1PZaCgFoZ2nVwcMDly5dlaLn9BN6mQ0REnU0QBMTL0G48AGMJa5wiJiIikgGn\niImISBFqD0Bq3z4iIjJS5koPQGacIiYiIpIBM1giIlKE2gMQM1giIiIZqP0AgoiIjBTPwRIREVG7\nMcAqzMTEpE3LBx98oPRQFZWQkIC///3vSg+jRXl5edLPafPmzS3WmTZtGkxMTGBpadm5g6MW5efn\nY8WKFaiqqlJ6KF2amQyLMTG28XQ5W7Zs0fucmZmJr776Cps2bdIr9/X17cxhGZ2EhASEhYVh0qRJ\nSg+lVRYWFti6dStmzZqlV3716lXs2rULFhYWygyMmmkKsC+++CLs7e2VHk6XpfYpYgZYhYWFhel9\nzs3Nxb///e9m5Wpy48YNmJmZwcSk7RMogiDI8vizmpqaDssqn3rqKfztb3/DhQsX4OTkJJV/8skn\nEEURv//97/H55593SF9Kqq2tVc3BgrE8Uo/UiVPE94lt27bh8ccfh7W1Nbp3746QkBB8//33enVm\nzZoFS0tL/PjjjwgJCYGdnR2cnZ2xatUqAEBpaSl+//vfw9bWFn369MH777+v9/2mqc7s7GzExcXB\n2dkZ1tbWCA4OxsmTJ5uN6dSpU3j22Weh0WhgYWEBb2/vZlOkt7b59ttv48EHH4SVlRXKy8tx8+ZN\nLF++HMOHD0ePHj1gZWWFkSNHYteuXXptmJiY4Pr168jKypKmYseMGQMAiI+PbzFQN/V78OBBqSwg\nIAADBgzAf/7zH4wZMwY2NjaYP38+gMY/tGlpafD29oalpSV69eqF559/Hj/++GMbf0LAxIkTYWNj\ng48++kivfOvWrXjyySfh4ODQ4ve++OILBAYGws7ODjY2NhgzZgwOHz6sV+fMmTOYP38+PD09YW1t\nDQcHB4SEhKCkpKRZexkZGRg0aBBsbGzQs2dPDB8+HJmZmdL6WbNmwd3dvdn3Nm/eDBMTE5w9e1Yq\nc3Nzw4QJE7B//36MHDkSlpaWSE5OBtB4oPT222/jkUcegYWFBZycnDBv3rxm065NbRw6dAgjRoyA\nlZUVvLy8pION3bt347HHHoOVlRW8vb2bbTsAXLhwAREREXB2doaFhQX69++PP//5z3p1fvjhB5iY\nmCA5ORkffPABPD09YWFhgcGDB+PLL7+U6sXHx2Pp0qUAAHd3d+l3qul35ejRo3jyySeh0WhgZWWF\nhx56COHh4fj1119b+OmRIThFTIp75513sHTpUjzzzDOYNWsWfvnlF2RkZMDPzw9Hjx6Fm5ubVLeh\noQETJkyAr68v/vznP2Pbtm2IjY2FtbU1EhMTMW3aNISGhmLDhg2YO3cufHx88Nhjj+n1l5ycjIaG\nBsTGxuLy5ctYs2YNAgMD8e2336JHjx4AgO+//x5+fn7QaDR47bXX0L17d+zevRuzZ89GVVUVoqKi\n9NpMSkqCiYkJFi1aBFEUYW1tjaqqKmRmZuLZZ5/FSy+9hF9//RVbt27F008/jU8//RTBwcEAgA8/\n/BCzZ8/GE088gYiICACAo6Oj1LYgCG3aj4Ig4MqVK/j973+PZ555BmFhYejevTsAYN68ediwYQNm\nzpyJBQsW4MKFC1i7di0KCgpQVFTUpmlECwsLPPPMM9i6dStiYmIAAOfPn0deXh5ycnKaHTgAQHZ2\nNmbOnIkxY8Zg5cqVqK+vx8aNGxEYGIiDBw/Cx8cHAFBYWIiDBw9iypQpcHNzw48//oj33nsP/v7+\n+O6776T9sWHDBixYsABTp07Fq6++ips3b+L48eP417/+hVdeeeWe9tl///tfTJkyBS+//DJeeukl\nPPjggwCA0NBQ7N+/Hy+//DIGDRqE//73v0hLS8ORI0dQUFAAMzMzqY3Tp0/j2Wefxcsvv4wXXngB\nq1evRmhoKN577z0sWbIECxYswAMPPIDk5GRMnjwZZ86cQbdu3QAAP/30E0aOHIn6+nrMnTsXTk5O\nOHjwIBYvXozz589j9erVemP+f//v/+HSpUuYO3cuLCwskJqaiqeffhpnz56Fg4MDnnnmGZw4cQI5\nOTlITU1Fr169AAADBgzAzz//jKCgIGg0GixevBgODg44e/Ysdu3aherqalhZWbVpvxEBAEQyKuHh\n4aKFhYX0+cyZM6KZmZm4YsUKvXoXLlwQu3fvLs6ZM0fvu4IgiAkJCVJZdXW1aGdnJwqCIG7cuFEq\nP3/+vGhmZiYuXLhQKtu/f78oCIKo1WrFqqoqqXzfvn2iIAji0qVLpbKgoCDRy8tLrKmp0RvX9OnT\nRXt7e/HatWt6bfbt21f89ddf9erW19eLN27c0Cu7ceOGOHDgQDEoKEiv3MLCQnzxxReb7a+4uDhR\nEIRm5U39HjhwQCobPXq0KAiCuHbtWr26//rXv0RBEMQPPvhAr/w///mPaG5uLr799tvN2m+pr5yc\nHPHLL78UBUEQv//+e1EURXHVqlVi9+7dxdra2mY/2+rqatHBwaHZdv3666+iu7u7OHbsWL2y2/3v\nf/8TLSwsxJUrV0plTz/9tDho0KA7jjc8PFx0c3NrVr5p0yZREATxzJkzUlnfvn1FQRDEXbt26dXd\nunWraGJiIubl5emV79mzRxQEQfzwww+btZGfny+VHTx4UBQEQTQ3NxdPnjwplW/fvl0UBEH85JNP\npLKXX35Z1Gq14k8//aTXV2xsrGhqair+8MMPoiiKYllZmSgIgtijRw/x4sWLUr3i4mJREAQxPT1d\nKktKSmq2raIoijt37hQFQRCPHDnSwp6jjgRA3CLDYkxhjVPERm7Hjh2or6/H9OnTcfHiRWkxMzOD\nj48P9u3b1+w7L730kvRva2trDBw4EObm5pg5c6ZU7uTkhD59+uD06dPNvj9z5kzY2dlJnwMDA+Hl\n5YU9e/YAACorK/Hll19i6tSpqK6u1hvX+PHjcfXqVXzzzTfN2rz9XKeJiQnMzRsvc7hx4wYuX76M\nqqoq+Pv748iRI/ewt+7O3NxcyoKbbN++HTY2Nhg/frzetjg5OeHhhx9ucR+3JjAwEM7OztLFa1u3\nbsXkyZPxwAMPNKv7xRdf4MqVKwgLC9Pr99q1axg7diwOHTqE+vp6ANDbd7/++isuXboEOzs7eHh4\n6O0re3t7nDt3rtn+N0SfPn0wceJEvbLt27ejf//+ePTRR/XGPmLECFhbWzfbZ4888gj8/Pykz02Z\n+ahRo+Dh4dGsvOn3UhRFfPzxx5g4cSIEQdDrKzg4GA0NDThw4IBeX1OnTkXPnj2lz4MHD4adnR3K\nysruuq1NMxW7du1CXV3dXeuT8Tt48CBCQkLg6uoKExMTZGVlNatz8uRJTJ48GQ4ODrC2tsawYcNQ\nWloqrb9+/ToWLlyI3r17w8bGBpMmTWrT6SNOERu5pnOfAwYMaHG9tbW13udu3brpTZ8CjX80tFot\nTE1N9crt7OxQWVnZrM1b/+DdWrZ//34AjedeRVHEihUrsGLFimZ1BUHAzz//rFf20EMPtTj+v/71\nr1i9ejVKS0v1LjhpzwVQ7eHs7CxNPTY5efIkqqurm+23JrfvtzsRBAHPPvsssrOzERYWhuLiYukc\n+O2afrZNU+EttXXlyhX07NkTtbW1WL58ObZs2YKKigq9ehqNRvr34sWL8eWXX8LHxwf9+vVDUFAQ\npk2bhsDAwDZvw+369evX4thPnDiB3r17t/id23/+TdPKTR544AE88MAD6NOnj155U4Br+r38+eef\nceXKFWzYsAEbNmxo1k9Lv2t9+/ZtVq+tL+EOCAjA5MmTsWLFCqSkpGD06NH4wx/+gLCwsGb/18hw\nnRGArl27Bm9vb4SHh2PmzJnNTo+UlZXBz88Ps2bNwvLly9G9e3eUlpbCxsZGqhMdHY1//OMf2LZt\nG3r06IGYmBhMnDgRR44cuePfKgZYI9fQ0AAA+Oyzz6RzWre6/Y9/a+fWWgsSYjuuomxqu2lMMTEx\nePLJJ1us++ijj+p9bulK3Y8++ggRERGYNGkSlixZAo1GAzMzM2zcuBHZ2dntGtPtmjK/27U0joaG\nBvTs2RM5OTktfqe9f1ife+45pKSkYMGCBXB2dpYuyGqpXwDIysqCi4tLi3WaZhKioqKwYcMGvPrq\nq/Dz84O9vT0EQUB0dLTUDtB4IHbixAl8+umn+Pzzz7F7925kZmbilVdewbp16wB03D7z8vLCmjVr\nWvxO03nNJq39/t3t97Jp28LCwjB79uwW6z788MPtavNuPv74YxQWFmL37t344osv8MorryAxMRFf\nf/213sEMGa4zbtOZMGECJkyYAADNbqEDgDfffBPjx4/Xu2ju1utaqqqqsHHjRmzevBljx44F0Hhd\nSN++fbF3795WD5ABBlij1/THo0+fPq1msR2tpSuGT548Kf3SNWU0pqamrQaPtsjJycFDDz2Ev/3t\nb3rlGzZsaBYEWgsKTVfmXr16VW9a+4cffmjzOB566CHs3bsXPj4+eket92rIkCHw9PREXl6edLFT\nS5p+tr169brrfszJyUF4eDhSUlL0yi9fvtwsi7SyssIzzzyDZ555BvX19QgPD0dmZiaWL18OJycn\nODg44MqVK836aM8+e/jhh3HkyBEEBga2+YKpe9G7d2/Y2dnh5s2bBv2u3e5uYx4xYgRGjBiBFStW\n4LPPPsOTTz6Jv/71r9LVx6QODQ0N2L17N9544w2MHz9eumj09ddfx7Rp0wAAR44cwc2bN/UCqaur\nKwYMGICCgoI7BliegzVCt/7nnzJlCszMzBAXF9fiEfjFixdb/e69+uCDD/Rutdi3bx9KSkqko0CN\nRoMxY8bg/fffR3l5ebPv3z5l1xozMzOIoqi3XadPn24WcIHGLLKlKb6m6exbz/nV1dXhvffea9MY\nAGDGjBloaGhAfHx8s3WiKOLSpUttbqtJSkoK4uPjMW/ePL3yW38+48ePR/fu3ZGQkIAbN240a+PW\n/WhmZqaXqQKNMwAXLlzQK7t9rKamphg0aBCA36ZdPTw8UFVVheLiYqledXU1srKy2vz78+yzz0Kn\n0yEtLa3Zurq6uhYD+L0wNTXFlClT8Le//Q1FRUXN1ldVVd3TudKmWYnbf6euXLnS7P/ZkCFDpHXU\nscxlWNrjp59+QnV1NRITEzF+/Hjs3bsXM2bMwHPPPSddc1JRUQFTU1O98/pA450MOp3uju0zgzVC\nt/4Hd3Nzw5/+9CfExMRg5MiRCA0NRY8ePXDmzBns2bMHI0eOlKb+bv9ua23erVyr1cLPzw9z5sxB\nZWUlUlNTodVq8dprr0l11q1bBz8/P3h7e+Pll1/Gww8/jIsXL+Lo0aPIzc1t0yPoQkJCsGPHDoSE\nhOAPf/gDfvzxR6xbtw6enp56f/wBYPjw4di7dy/+8pe/wMXFBY6OjggMDERwcDDc3Nzw0ksvobS0\nFBYWFnecXm5pe0eNGoVXX30VKSkpOHbsGMaPHw8rKyuUlZVh586deOmllxAbG3vX7bnV+PHjMX78\n+Dv2b2Njg/fffx8zZszA4MGD8dxzz8HR0RHl5eXYv38/bGxspP/kISEh+OCDD2BnZwcvLy8UFxdj\n+/bt6Nevn16bwcHBcHR0hJ+fH7RarXTrjLe3NwYOHAig8YDijTfeQGhoKKKionDjxg1s2rRJ6rst\nnnvuOezYsQNRUVE4cOAA/P39pVt6PvnkE6SkpEgZQGvaOmX7zjvv4MCBA9Lv5KOPPoqrV6/i+PHj\n2LFjB/73v//dder29r5GjBgBAFi6dCmeffZZdOvWDWPHjsXWrVuRnp6OyZMno1+/fqipqcGmTZtg\nZmaGKVOmtGm8dP9oOmh9+umnER0dDQDw9vbGN998g7S0tFZPgbUVA6yREQShWRYRHR2N/v37Y9Wq\nVUhKSkJdXR1cXV0xatQovSuGW/ruvZQvXrwYpaWlWLVqFSorKzFq1CisXbtWugcWgHT16h//+Eds\n3boVP//8M3r16gUvLy/85S9/adZPS2bOnImffvoJ69atw969e+Hh4YHU1FScOnUKx44d06u7Zs0a\nzJs3D/Hx8bh27RoCAgIQGBgIU1NT7Ny5E5GRkYiPj0evXr0wZ84c+Pv7N5u6aW17ASA1NRXDhg1D\nRkYG4uLiYGJigj59+mD8+PEIDQ1t8Ttt2ca79T9lyhS4uLggMTERq1evxq+//gpnZ2c8/vjjej/b\nNWvWwNzcHDk5OaiursaIESPw+eef4/XXX9drc+7cucjOzsaaNWtw9epVuLi4YM6cOVi2bJlUp3v3\n7vj73/+ORYsWYfHixXB1dUV0dDTs7OyanedsbbsEQcDHH3+MtWvXYvPmzdizZw8eeOABuLm54YUX\nXsDvfve7NrXRFr169cLXX3+NhIQE7Ny5E++//z4cHBzQv39/rFixotUHeNypr8cffxwJCQnIzMzE\n7NmzIYoi9u/fj4CAAHzzzTfYvn07KioqYGdnh6FDhyI9PV26wpk6TkcEoP/833IvevXqBTMzM+ng\ns4mnp6d0TYZWq0V9fT0uXbqkl8VWVFTA39//ju0LYnuuciFVy8vLw5gxY7Bt27a7Zh9ERIYQBAF7\nZGj3SbQ+O2Jra4v09HS9Wxb9/Pzw0EMP6b1Q5YUXXkBlZSV2796NqqoqaDQabN68GTNmzAAAlJeX\no2/fvvjss88QFBTU6liYwRIRkSI64yria9eu4dSpUwAap4TPnDmD4uJi9OzZE3369EFsbCymTZuG\n3/3udwgMDMT+/fuRk5Mjvb3L3t4ec+bMQWxsLDQajXSbzuDBgzFu3Lg79s2LnIiISBGd8SziwsJC\nDB06FEOHDkVtbS3i4uIwdOhQxMXFAQAmTZqE999/H6tWrYK3tzfS09Px4YcfShd1Ao2nkEJDQzF9\n+nSMGjUKdnZ22LVr111Pc3CKmCR5eXkYO3YsPvroI04RE5GsBEHAfhnaDYTxvCWJAZaIiDqdIAjI\nl6HdUTCeAMspYiIiIhmoJsBmZGTA3d0dlpaWGD58OPLz5Tg2Mg5JSUkYMWIE7O3todFoEBISgu++\n+65Zvfj4eLi4uMDKygqBgYEtvjtUDZpehbdw4UK9crVv/4ULFxAeHg6NRgNLS0t4eXnpvf8WUPc+\nqKurw9KlS9GvXz9YWlqiX79+eOutt5o98lFN+6AtD66/2/be64Pr5aD298GqIsDm5OQgOjoay5Yt\nQ3FxMXx9fTFhwgScO3dO6aHJ4sCBA1iwYAEOHz6Mffv2wczMDOPGjdN7cH9ycjJSUlKQlpaGwsJC\naDQaBAUFobq6WsGRd7yvvvoK69evh7e3t94FB2rf/itXrsDPz6/xVoc9e1BaWoq0tDS9By6ofR8k\nJiYiMzMTa9euxYkTJ7BmzRpkZGQgKSlJqqO2fdD04Po1a9bA0tKy2UU2bdne6Oho7NixA9u2bcOh\nQ4dw9epVTJw4sdmTwqgDdMY78eTm4+MjRkRE6JV5eHiIS5YsUWhEnau6ulo0NTUVd+/eLYqiKDY0\nNIharVZMTEyU6tTU1Ii2trZiZmamUsPscFeuXBEfeughMS8vTwwICJDebdsVtn/JkiXiqFGjWl3f\nFfbBxIkTxVmzZumVzZw5U5w4caIoiurfBzY2NmJWVpb0uS3be+XKFbFbt25idna2VOfcuXOiiYmJ\n+Pnnn3fe4MXG98EekWExprB232ewN27cwNGjR5s9tSc4OBgFBQUKjapzXb16FQ0NDdITbcrKyqDT\n6fT2iYWFBfz9/VW1TyIiIjB16lSMHj1a76KGrrD9O3fuhI+PD6ZPnw5HR0cMGTIE6enp0vqusA8m\nTJiAffv24cSJEwCAkpIS7N+/H0899RSArrEPbtWW7b3bg+s7m9qniI1tPO128eJF1NfXN3uXp0aj\nafbeTLWKiorCkCFD8MQTTwCAtN0t7ZPz5893+vjksH79epw+fVp67vCtU2VdYftPnz6NjIwMxMTE\nYOnSpSgqKpLOQUdGRnaJfTB//nyUl5djwIABMDMzQ11dHZYtW4a5c+cC6Bq/B7dqy/Ya8uB6ar/7\nPsB2dTExMSgoKEB+fn6bn4d7vztx4gTefPNN5OfnS+/+FG97K09r1LD9QOMTaXx8fLBy5UoAwODB\ng3Hq1Cmkp6cjMjLyjt9Vyz549913sWnTJmzbtg1eXl4oKipCVFQU3NzcWn13bBO17IO2Mtbt7Ywn\nOSnpvp8i7tWrF0xNTZsdfel0Ojg5OSk0qs6xaNEi5OTkYN++fXovCNZqtQDQ4j5pWnc/O3z4MC5e\nvAgvLy+Ym5vD3NwcBw8eREZGBrp16ya97Fut2w8Azs7OLT6g/OzZswDU/zsAACtXrsTSpUsxbdo0\neHl54fnnn0dMTIx0kVNX2Ae3asv23vrg+ltVVFSocp8o7b4PsN26dcOwYcOQm5urV/7FF1/A19dX\noVHJLyoqSgqu/fv311vn7u4OrVart09qa2uRn5+vin0SGhqK48eP49ixYzh27BiKi4sxfPhwzJgx\nA8XFxfDw8FD19gONDygvLS3VKzt58qR0oKX23wGgcdbCxET/T5iJiYk0k9EV9sGt2rK9w4YNg7m5\nuV6d8vJylJaWKrJP1H4O1ngutzJATk6O2K1bN/Gvf/2rWFJSIr766quira2tePbsWaWHJov58+eL\ndnZ24r59+8QLFy5IS3V1tVQnOTlZtLe3F3fs2CF+++234vTp00UXFxe9OmoyevRoccGCBdJntW9/\nYWGhaG5uLq5cuVI8deqUuH37dtHe3l7MyMiQ6qh9H7z88suiq6ur+M9//lMsKysTd+zYIfbu3Vt8\n/fXXpTpq2wfV1dViUVGRWFRUJFpZWYl//OMfxaKiIulvXVu2d968eaKrq6u4d+9e8ejRo2JAQIA4\nZMgQsaGhoVO3BYB4UobFmMKa8YzEQBkZGaKbm5v4wAMPiMOHDxcPHTqk9JBkIwiCaGJiIgqCoLes\nWLFCr158fLzo5OQkWlhYiAEBAeJ3332n0Ijld+ttOk3Uvv3//Oc/xcGDB4sWFhbiI488Iq5du7ZZ\nHTXvg+rqavG1114T3dzcREtLS7Ffv37im2++KV6/fl2vnpr2wf79+6X/77f+DXjxxRelOnfb3uvX\nr4sLFy4Ue/bsKVpZWYkhISFieXl5Z2+KCEAsk2ExpgDLZxETEVGnEwQB5TK06wo+i5iIiEjVjO6c\nMBERdQ1qD0DMYImIiGSg9gMIIiIyUuZyRKA6Gdq8RwywRESkCDMG2M4jDAoAjh9QehhERARg9GNA\nXpFxXJF7PzKq23QEQQB2GzCcrfHAc/H3/PVPnnry3vvuIJMXfGrQ9+P/DcT7GDiIfxj4fUPV373K\nncRfBeLtDGtjvcLPgjf09dd5AAIMbMPNwO8bavIDhn0/qQ5YYmAKYTfSsO8bbKVhX4/fAMTPuffv\nC6Pku+VFEAT8at3x7Vpd4206REREqmZUU8RERNR1yHIO1oioK4MdFKD0CBQX4KL0CJQXYODUohq4\nKT0AIzBKXX/d7knAEKVH0LWp6/jBO0DpESiOAZYBFmCABYDfMcAiYKjSI7gzWW7TMSIq3zwiIjJa\npkoPQF48xiMiIpIBM1giIlKGyiMQM1giIiIZqPz4gYiIjJbKI9AdM9iDBw8iJCQErq6uMDExQVZW\nVrM68fHxcHFxgZWVFQIDA1FSUqK3/vr161i4cCF69+4NGxsbTJo0CT/+aOhzaoiIiIzbHQPstWvX\n4O3tjTVr1sDS0rLxUYa3SE5ORkpKCtLS0lBYWAiNRoOgoCBUV1dLdaKjo7Fjxw5s27YNhw4dwtWr\nVzFx4kQ0NDTIs0VERHR/MJNhMSJ3HM6ECRMwYcIEAMCsWbP01omiiNTUVCxZsgShoaEAgKysLGg0\nGmRnZyMiIgJVVVXYuHEjNm/ejLFjxwIAPvzwQ/Tt2xd79+5FcHCwDJtERET3Bd6m07KysjLodDq9\nIGlhYQF/f38UFBQAAI4cOYKbN2/q1XF1dcWAAQOkOkRERGp0zwl1RUUFAMDR0VGvXKPR4Pz581Id\nU1NT9OzZU6+Oo6MjdDrdvXZNRERqYGRTuh1Nls27/Vxtu2yN/+3fgwL4+EMiok6SdxTIK1J6FOpx\nzwFWq9UCAHQ6HVxdXaVynU4nrdNqtaivr8elS5f0stiKigr4+/u33LAB73MlIqJ7FzBU//nFKzbJ\n3KHKM9h7Pgfr7u4OrVaL3Nxcqay2thb5+fnw9fUFAAwbNgzm5uZ6dcrLy1FaWirVISIiUqM7Hj9c\nu3YNp06dAgA0NDTgzJkzKC4uRs+ePdGnTx9ER0cjMTERnp6e8PDwQEJCAmxtbREWFgYAsLe3x5w5\ncxAbGwuNRoMePXogJiYGgwcPxrhx4+TfOiIiMl4qv4r4jgG2sLAQY8aMAdB4XjUuLg5xcXGYNWsW\nNm7ciNjYWNTU1CAyMhKVlZUYOXIkcnNzYW1tLbWRmpoKMzMzTJ8+HTU1NRg3bhy2bNli2HlaIiK6\n/6l8ilgQRVFUehBNBEEAdis3nE+eelKxvptMXvCp0kMA/qFw//UK9w9g/Xll+zeGZ525Kdz/ZCN4\nr6/dSIUHsFLZ7oVRjc88kKVtQYA4XIZ2v5FvzO2l8uMHIiIyWiqPQHybDhERkQwYYImISBmmMiy3\nactLa5q88sorMDExwV/+8he98nt9aQ0DLBERqdbdXlrT5OOPP0ZhYSGcnZ2b1bnXl9aofAaciIiM\nVidEoDu9tKbJmTNnEB0djS+//BLjx4/XW2fIS2uYwRIRkTKM4HV1dXV1mDFjBt566y088sgjzdYb\n8tIaBlhrE3nvAAAgAElEQVQiIuqy4uLioNFo8Morr7S43pCX1nCKmIiIlNEBESjvcuNyT9/Ny0NW\nVhaKi4v1yjvqPlpmsEREdN8K6AHEP/zb0h4HDhzAhQsX4OTkBHNzc5ibm+PMmTNYvHgxHnzwQQD6\nL625VUVFhfRim9YwwBIRkTI64TadO5k/fz6+/fZbHDt2DMeOHUNxcTGcnZ0RExODL7/8EoBhL60x\nviliG+W6fkYYf/dKsjOGMRAp78XrSo8AwAFluy/3W6HsAHCPc69G5G4vrendu7defXNzc2i1Wnh4\neAAw7KU1zGCJiEgZnXAVcWFhIYYOHYqhQ4eitrYWcXFxGDp0KOLi4to8zNTUVISGhmL69OkYNWoU\n7OzssGvXrru+tMb4Hvafp+BwAt5Vrm8iotuUi8pmsK7CZXkf9j9ZhnZ3GM/D/pnBEhERycD4zsES\nEVHXoPIXrjODJSIikgEzWCIiUobKIxAzWCIiIhmo/PiBiIiMlsojkMo3j4iIjBYvciIiIqL2YgZL\nRETKUHkEYgZLREQkA5UfPxARkdFSeQRiBktERCQDlR8/EBGR0VJ5BFL55hERkdHibTpERETUXsxg\niYhIGSqPQMxgiYiIZKDy4wciIjJaKo9AzGCJiIhkoPLjByIiMloqv4qYAZaIiJSh8gjEKWIiIiIZ\nqPz4gYiIjJbKIxAzWCIiIhmo/PiBiIiMlsojEDNYIiIiGaj8+IGIiIwWb9MhIiKSgcojEKeIiYiI\nZGB8xw+zlB4AEZFxcFlzWekhyMv4IlCHYgZLREQkA5UfPxARkdHiRU5EREQyUHkE4hQxERGRDFR+\n/EBEREZL5RGIGSwREZEMVH78QERERkvlFzkxgyUiIpIBM1giIlKGyiOQyjePiIiMlsojEKeIiYiI\nZGBwgK2rq8PSpUvRr18/WFpaol+/fnjrrbdQX1+vVy8+Ph4uLi6wsrJCYGAgSkpKDO2aiIjuZ2Yy\nLLc5ePAgQkJC4OrqChMTE2RlZUnr6urqsHjxYgwePBg2NjZwdnbGc889h3Pnzum1cf36dSxcuBC9\ne/eGjY0NJk2ahB9//PGum2dwgE1MTERmZibWrl2LEydOYM2aNcjIyEBSUpJUJzk5GSkpKUhLS0Nh\nYSE0Gg2CgoJQXV1taPdEREStunbtGry9vbFmzRpYWlpCEAS9dUVFRVi2bBmKiorw97//HefOncP4\n8eP1ksTo6Gjs2LED27Ztw6FDh3D16lVMnDgRDQ0Nd+xbEEVRNGTwf/jDH9CrVy9s2rRJKgsPD8fl\ny5exa9cuiKIIZ2dnvPrqq1iyZAkAoLa2FhqNBqtWrUJERMRvgxEEwM2g4Rjmh3eV65uI6DZiapSi\n/QvRgIEhovW2BQHiDhnandz6mG1tbZGeno6ZM2e2+v3vv/8eXl5e+Pbbb+Hl5YWqqipoNBps3rwZ\nM2bMAACUl5ejb9+++PTTTxEcHNxqWwZnsBMmTMC+fftw4sQJAEBJSQn279+Pp556CgBQVlYGnU6n\nNwgLCwv4+/ujoKDA0O6JiIg6TFVVFQDAwcEBAHDkyBHcvHlTL4a5urpiwIABd41hBl/DNX/+fJSX\nl2PAgAEwMzNDXV0dli1bhrlz5wIAKioqAACOjo5639NoNDh//ryh3RMR0f3KyK4ivnHjBl577TWE\nhITA2dkZQGMMMzU1Rc+ePfXqOjo6QqfT3bE9gzfv3XffxaZNm7Bt2zZ4eXmhqKgIUVFRcHNzw+zZ\ns+/43VvnwiWV8b/92yIAsAwwdIhERNQGeaeAvP92YocdEGDz/tO4GKqurg7PP/88rl69it27dxve\nIDpg81auXIlly5Zh2rRpAAAvLy+cOXMGSUlJmD17NrRaLQBAp9PB1dVV+p5Op5PW6XGIN3RIRER0\nDwI8GpcmKz5XbixtFeDduDRZkd3+Nurq6jBjxgx89913yMvLk6aHAUCr1aK+vh6XLl3Sy2IrKirg\n7+9/x3YNPgcriiJMTPSbMTExkU4yu7u7Q6vVIjc3V1pfW1uL/Px8+Pr6Gto9ERHdr0xlWNrp5s2b\nmD59Oo4fP479+/dDo9HorR82bBjMzc31Ylh5eTlKS0vvGsMMzmCffvppvPPOO3B3d8fAgQNRVFSE\n1atXIzw8HEDjNHB0dDQSExPh6ekJDw8PJCQkwNbWFmFhYYZ2T0RE1Kpr167h1KlTAICGhgacOXMG\nxcXF6NmzJ5ydnTF16lR888030l0vTdcNde/eHRYWFrC3t8ecOXMQGxsLjUaDHj16ICYmBoMHD8a4\ncePu2LfBt+lcu3YNcXFx+OSTT6DT6eDk5IQZM2Zg+fLl6Natm1RvxYoVyMzMRGVlJUaOHIn09HQM\nHDhQfzC8TYeISKL623S+lKHdsfpjzsvLw5gxY37r8//WzZo1C3FxcXB3d9crb7J582bpdp4bN27g\n9ddfR3Z2NmpqajBu3DhkZGTAxcXlzmMxNMB2JAZYIqLfMMDeQ7tj5RtzexnZRdJERNRlqDwCqXzz\niIjIaPGF60RERNRezGCJiEgZKo9AzGCJiIhkoPLjByIiMloqj0DMYImIiGSg8uMHIiIyWiqPQCrf\nPCIiMlq8TYeIiIjay+gyWHFbC++I7STCyDWK9U1EdDshQOlH/sn899joIlDHYgZLREQkA5UfPxAR\nkdFSeQRiBktERCQDlR8/EBGR0VL5VcQMsEREpAyVRyBOERMREclA5ccPRERktFQegZjBEhERyUDl\nxw9ERGS0VB6BmMESERHJQOXHD0REZKxE3qZDRETU8epVHoE4RUxERCQDlR8/EBGRsWIGS0RERO2m\n8uMHIiIyVnWmcuR4DTK0eW+YwRIREcmAGSwRESmi3kyOEHRDhjbvDQMsEREpot5U3TfCcoqYiIhI\nBsxgiYhIEfUqf+M6M1giIiIZMIMlIiJF1DGDJSIiovZiBktERIqoV3kIUvfWERGR0eJFTkRERNRu\nzGCJiEgRzGCJiIio3ZjBEhGRIpjBEhER3acOHjyIkJAQuLq6wsTEBFlZWc3qxMfHw8XFBVZWVggM\nDERJSYne+uvXr2PhwoXo3bs3bGxsMGnSJPz444937dv4Mth/KD0AIiLjUPVoN0X7t5e5/c540MS1\na9fg7e2N8PBwzJw5E4Ig6K1PTk5GSkoKsrKy0L9/f/zxj39EUFAQTpw4ARsbGwBAdHQ0/vGPf2Db\ntm3o0aMHYmJiMHHiRBw5cgQmJq3nqYIoiqKsW9cOgiBAXKpg/4lrlOuciOg2VXWvK9q/vdlNyBUi\nBEHAcfGhDm/3UeF/rY7Z1tYW6enpmDlzJgBAFEU4Ozvj1VdfxZIlSwAAtbW10Gg0WLVqFSIiIlBV\nVQWNRoPNmzdjxowZAIDy8nL07dsXn376KYKDg1sdC6eIiYioSyorK4NOp9MLkhYWFvD390dBQQEA\n4MiRI7h586ZeHVdXVwwYMECq0xrjmyImIqIuQemLnCoqKgAAjo6OeuUajQbnz5+X6piamqJnz556\ndRwdHaHT6e7YPgMsERHdtwrzfsU3eb92eLu3n6u9FwywRESkiI7IYIcG2GJogK30+b0Vl9v8Xa1W\nCwDQ6XRwdXWVynU6nbROq9Wivr4ely5d0stiKyoq4O/vf8f2eQ6WiIi6JHd3d2i1WuTm5kpltbW1\nyM/Ph6+vLwBg2LBhMDc316tTXl6O0tJSqU5rmMESEZEiOus2nVOnTgEAGhoacObMGRQXF6Nnz57o\n06cPoqOjkZiYCE9PT3h4eCAhIQG2trYICwsDANjb22POnDmIjY2FRqORbtMZPHgwxo0bd8e+GWCJ\niEgRnfG6usLCQowZMwZA43nVuLg4xMXFYdasWdi4cSNiY2NRU1ODyMhIVFZWYuTIkcjNzYW1tbXU\nRmpqKszMzDB9+nTU1NRg3Lhx2LJly13P0/I+2Fv7532wRGRE1H4f7GHxsQ5v9wmhWLYxtxczWCIi\nUoTSt+nIjRc5ERERyaBDAuyFCxcQHh4OjUYDS0tLeHl54eDBg3p17vYwZSIi6lrqYdrhizExOMBe\nuXIFfn5+EAQBe/bsQWlpKdLS0qDRaKQ6TQ9TTktLQ2FhITQaDYKCglBdXW1o90REdJ9Se4A1+Bzs\nn/70J7i4uGDz5s1SWd++faV/i6KI1NRULFmyBKGhoQCArKwsaDQaZGdnIyIiwtAhEBERGR2DM9id\nO3fCx8cH06dPh6OjI4YMGYL09HRpfVsepkxERF1PHUw7fDEmBgfY06dPIyMjAw8//DByc3MRFRWF\nN954Qwqyd3qYctM6IiIitTF4irihoQE+Pj5YuXIlAGDw4ME4deoU0tPTERkZecfvtnSTbvwt10YF\n9G1ciIhIfofyGpB/oPPuIe2MB00oyeCtc3Z2xsCBA/XKPD09cfbsWQBte5jyreLv/OxkIiKSye8C\nTPC7gN8+v/N2g2JjUQODp4j9/PxQWlqqV3by5Em4ubkBaNvDlImIqOvhVcR3sWjRIvj6+iIxMRHT\npk1DUVER1q5di6SkJACN08B3e5gyERF1PcYWEDuawQF2+PDh2LlzJ5YuXYq3334bffv2RUJCAubN\nmyfVacvDlImIiNSED/u/tX8+7J+IjIjaH/b/iTihw9t9RvjUaB72z2cRExERyUDd10gTEZHRUvtt\nOsxgiYiIZKDuwwciIjJavIqYiIhIBmoPsJwiJiIikgEzWCIiUoSxvf2mozGDJSIikgEzWCIiUgRv\n0yEiIqJ2M7rDh59X2ijXeaJyXRMR3S7HdLrCI9gia+tqv4rY6AIsERF1DWoPsJwiJiIikgEzWCIi\nUgQzWCIiImo3ZrBERKQIPmiCiIiI2o0ZLBERKULtD5pQ99YREZHR4kVORERE1G7MYImISBHMYImI\niKjdmMESEZEieJsOERERtRszWCIiUgRv0yEiIpIBL3IiIiKidmMGS0REimAGS0REdJ+qq6vD0qVL\n0a9fP1haWqJfv3546623UF9fr1cvPj4eLi4usLKyQmBgIEpKSgzumwGWiIgUUQ/TDl9ul5iYiMzM\nTKxduxYnTpzAmjVrkJGRgaSkJKlOcnIyUlJSkJaWhsLCQmg0GgQFBaG6utqg7eMUMRERqVZhYSFC\nQkLw1FNPAQAefPBBTJw4EV9//TUAQBRFpKamYsmSJQgNDQUAZGVlQaPRIDs7GxEREffcNzNYIiJS\nRB1MO3y53YQJE7Bv3z6cOHECAFBSUoL9+/dLAbesrAw6nQ7BwcHSdywsLODv74+CggKDto8ZLBER\nKaIz7oOdP38+ysvLMWDAAJiZmaGurg7Lli3D3LlzAQAVFRUAAEdHR73vaTQanD9/3qC+GWCJiOi+\ndS7vNMrzTre6/t1338WmTZuwbds2eHl5oaioCFFRUXBzc8Ps2bPv2LYgCAaNjQGWiIgU0RG36TgH\neMA5wEP6/PWKL/XWr1y5EsuWLcO0adMAAF5eXjhz5gySkpIwe/ZsaLVaAIBOp4Orq6v0PZ1OJ627\nVzwHS0REqiWKIkxM9EOdiYkJRFEEALi7u0Or1SI3N1daX1tbi/z8fPj6+hrUNzNYIiJSRGc8aOLp\np5/GO++8A3d3dwwcOBBFRUVYvXo1wsPDATROA0dHRyMxMRGenp7w8PBAQkICbG1tERYWZlDfDLBE\nRKRaq1evhp2dHSIjI6HT6eDk5ISIiAgsX75cqhMbG4uamhpERkaisrISI0eORG5uLqytrQ3qWxCb\n8mQjIAgCfhJtFOtfI6xUrG8iotu9LxYq2n+EsAVyhQhBEBAhpnZ4u+8L0bKNub2YwRIRkSLU/ro6\nXuREREQkA3UfPhARkdFS+9t0jC7Aajx+UbD3dxXsm4hInynq716JjJbRBVgiIuoa1J7B8hwsERGR\nDJjBEhGRItSewTLAEhGRIlp6vZyacIqYiIhIBsxgiYhIEXzQBBEREbWbug8fiIjIaKn9IidmsERE\nRDJgBktERIpQewbLAEtERIrgbTrtkJSUBBMTEyxcuFCvPD4+Hi4uLrCyskJgYCBKSko6slsiIiKj\n02EB9quvvsL69evh7e0NQRCk8uTkZKSkpCAtLQ2FhYXQaDQICgpCdXV1R3VNRET3oXqYdfhiTDok\nwFZVVeH555/Hpk2b4ODgIJWLoojU1FQsWbIEoaGh8PLyQlZWFn755RdkZ2d3RNdERERGqUMCbERE\nBKZOnYrRo0dDFEWpvKysDDqdDsHBwVKZhYUF/P39UVBQ0BFdExHRfaoeph2+GBOD8+n169fj9OnT\nUkZ66/RwRUUFAMDR0VHvOxqNBufPnze0ayIiuo8ZW0DsaAYF2BMnTuDNN99Efn4+TE0bd5QoinpZ\nbGtuDcR6LsX/9m/LAMAqwJAhEhFRG5Xm6XAi7yelh6EaBgXYw4cP4+LFi/Dy8pLK6uvrcejQIWRm\nZuL48eMAAJ1OB1dXV6mOTqeDVqttudGe8YYMiYiI7pFngCM8A36bcfzHiuOy9sfbdO4gNDQUx48f\nx7Fjx3Ds2DEUFxdj+PDhmDFjBoqLi+Hh4QGtVovc3FzpO7W1tcjPz4evr6/BgyciIjJWBmWw9vb2\nsLe31yuzsrKCg4MDBg4cCACIjo5GYmIiPD094eHhgYSEBNja2iIsLMyQromI6D5nbLfVdLQO3zpB\nEPTOr8bGxqKmpgaRkZGorKzEyJEjkZubC2tr647umoiIyGgIYluuSOokgiAADys4nP++q1zfRES3\n2SB+pWj/c4SP2nTR6r0QBAE+4oEOb/ffwmjZxtxe6s7PiYjIaKn9Nh2+ro6IiEgGzGCJiEgRzGCJ\niIio3ZjBEhGRIvigCSIiImo3ZrBERKQIPmiCiIhIBrzIiYiIiNqNGSwRESlC7Rms8QVYTwX7/q+C\nfRMR3WbO1myFR/CRwv3f34wvwBIRUZfA23SIiIio3ZjBEhGRInibDhERkQzUfpETp4iJiEjVLly4\ngPDwcGg0GlhaWsLLywsHDx7UqxMfHw8XFxdYWVkhMDAQJSUlBvfLAEtERIqoh2mHL7e7cuUK/Pz8\nIAgC9uzZg9LSUqSlpUGj0Uh1kpOTkZKSgrS0NBQWFkKj0SAoKAjV1dUGbR+niImISLX+9Kc/wcXF\nBZs3b5bK+vbtK/1bFEWkpqZiyZIlCA0NBQBkZWVBo9EgOzsbERER99w3M1giIlJEfYNphy+327lz\nJ3x8fDB9+nQ4OjpiyJAhSE9Pl9aXlZVBp9MhODhYKrOwsIC/vz8KCgoM2j4GWCIiUq3Tp08jIyMD\nDz/8MHJzcxEVFYU33nhDCrIVFRUAAEdHR73vaTQaad294hQxEREpou6m/FcRNzQ0wMfHBytXrgQA\nDB48GKdOnUJ6ejoiIyPv+F1BEAzqmwGWiIgUUV9veAiqO/gv1B/6V6vrnZ2dMXDgQL0yT09PnD17\nFgCg1WoBADqdDq6urlIdnU4nrbtXDLBERHTfMvP3g5m/n/T5ZuKf9db7+fmhtLRUr+zkyZNwc3MD\nALi7u0Or1SI3NxfDhg0DANTW1iI/Px+rVq0ybGwGfZuIiOge1XfCFPGiRYvg6+uLxMRETJs2DUVF\nRVi7di2SkpIANE4DR0dHIzExEZ6envDw8EBCQgJsbW0RFhZmUN8MsEREpFrDhw/Hzp07sXTpUrz9\n9tvo27cvEhISMG/ePKlObGwsampqEBkZicrKSowcORK5ubmwtrY2qG9BFEXR0A3oKIIgABMVHM7u\nd5Xrm4jodlteVbb/5wXIFSIEQUC3S1Ud3u6Nnvayjbm9eJsOERGRDDhFTEREiuiM23SUxABLRESK\naOiA23SMGaeIiYiIZKDuwwciIjJeKp8iZgZLREQkA2awRESkjHpmsERERNROzGCJiEgZNw17W42x\nY4AlIiJl1Cs9AHlxipiIiEgGzGCJiEgZN5UegLyYwRIREcmAGSwRESmD52CJiIiovZjBEhGRMlR+\nDtb4AuxwBfverWDfRES3efS5QkX7P/68zB1wipiIiIjay/gyWCIi6hpUPkXMDJaIiEgGzGCJiEgZ\nPAdLRERE7cUMloiIlKHyc7AMsEREpAxOERMREVF7MYMlIiJlqHyKmBksERGRDJjBEhGRMngO9s6S\nkpIwYsQI2NvbQ6PRICQkBN99912zevHx8XBxcYGVlRUCAwNRUlJiaNdERERGy+AAe+DAASxYsACH\nDx/Gvn37YGZmhnHjxqGyslKqk5ycjJSUFKSlpaGwsBAajQZBQUGorq42tHsiIrpf3ZRhMSIGTxF/\n9tlnep8//PBD2Nvbo6CgAE899RREUURqaiqWLFmC0NBQAEBWVhY0Gg2ys7MRERFh6BCIiOh+xCni\n9rl69SoaGhrg4OAAACgrK4NOp0NwcLBUx8LCAv7+/igoKOjo7omIiIxCh1/kFBUVhSFDhuCJJ54A\nAFRUVAAAHB0d9eppNBqcP3++o7snIqL7hZFN6Xa0Dg2wMTExKCgoQH5+PgRBuGv9Fuvsj//t324B\ngHtARw2PiIjuoDrvCK7lHVF6GKrRYQF20aJF2L59O/bv3w83NzepXKvVAgB0Oh1cXV2lcp1OJ63T\nExjfUUMiIqJ2sAkYBpuAYdLnn1f8Vd4OeQ727qKiopCTk4N9+/ahf//+euvc3d2h1WqRm5srldXW\n1iI/Px++vr4d0T0REd2PeBXxnUVGRmLLli3YuXMn7O3tpXOutra2sLa2hiAIiI6ORmJiIjw9PeHh\n4YGEhATY2toiLCzM4A0gIiIyRgYH2HXr1kEQBIwdO1avPD4+HsuXLwcAxMbGoqamBpGRkaisrMTI\nkSORm5sLa2trQ7snIqL7lcqniA0OsA0NDW2qFxcXh7i4OEO7IyIiui/wWcRERKQMIztn2tH4Nh0i\nIiIZMIMlIiJlqPwcLDNYIiJShgK36SQlJcHExAQLFy7UK5fjjW8MsERE1CV89dVXWL9+Pby9vfWe\nJCjXG98YYImISBn1MiytqKqqwvPPP49NmzZJL6MB0OyNb15eXsjKysIvv/yC7OxsgzaPAZaIiFQv\nIiICU6dOxejRoyGKolQu5xvfeJETEREpo5Nu01m/fj1Onz4tZaS3Tg/L+cY3BlgiIrp/leUBP+S1\nuvrEiRN48803kZ+fD1NTUwCN08K3ZrGtactb4e6EAZaIiJRR1wFt9AloXJocWKG3+vDhw7h48SK8\nvLyksvr6ehw6dAiZmZk4fvw4gHa88a0djC/Axscr2HkPBfsmItJ3fMkIpYcgr44IsHcRGhoKHx8f\n6bMoinjxxRfRv39/LF26FB4eHtIb34YNa3xVX9Mb31atWmVQ38YXYImIiDqIvb097O3t9cqsrKzg\n4OCAgQMHAoBsb3xjgCUiImV0QgbbEkEQ9M6vyvXGN0Fsy5neTtK4wUq+cYdTxERkRN54Vdn+3xHa\ndDHQvRAEAXhdhrZXyTfm9mIGS0REylAog+0sfNAEERGRDJjBEhGRMlSewTLAEhGRMlQeYDlFTERE\nJANmsEREpAxmsERERNRezGCJiEgZzGCJiIiovZjBEhGRMlSewTLAEhGRMlQeYDlFTEREJANmsERE\npAxmsERERNRezGCJiEgZzGCJiIiovZjBEhGRMlSewTLAEhGRMlQeYDlFTEREJANmsEREpAxmsERE\nRNRezGCJiEgZzGCJiIiovZjBEhGRMlSewTLAEhGRMlQeYDlFTEREJANmsEREpAxmsERERNRezGCJ\niEgZKs9gjS/AlsYr13eacl03Gb32M6WHgAMTxis7AK2y3QMAFN4FeLZM4QEAiHZXtv/3lO0eANBd\n4f7zFe6fDGJ8AZaIiLoGZrBEREQyUHmA5UVOREREMmAGS0REymAGS0RERO3FDJaIiJTBDJaIiIja\nixksEREpo17pAciLAZaIiJTBKWIiIiJqr04LsBkZGXB3d4elpSWGDx+O/Hw+A4yIqEu7KcNiRDol\nwObk5CA6OhrLli1DcXExfH19MWHCBJw7d64zuicioi4qKSkJI0aMgL29PTQaDUJCQvDdd981qxcf\nHw8XFxdYWVkhMDAQJSUlBvfdKQE2JSUFL774IubMmYNHHnkE7777LpycnLBu3brO6J6IiIxRvQzL\nbQ4cOIAFCxbg8OHD2LdvH8zMzDBu3DhUVlZKdZKTk5GSkoK0tDQUFhZCo9EgKCgI1dXVBm2e7AH2\nxo0bOHr0KIKDg/XKg4ODUVBQIHf3RETUhX322WcIDw/HwIED8eijj+LDDz/Ezz//LMUfURSRmpqK\nJUuWIDQ0FF5eXsjKysIvv/yC7Oxsg/qWPcBevHgR9fX1cHR01CvXaDSoqKiQu3siIjJWCpyDvXr1\nKhoaGuDg4AAAKCsrg06n00sCLSws4O/vb3ASaHy36ayN/+3fPgHA4wEKDYSIqIu5kgdU5XVefwrc\nphMVFYUhQ4bgiSeeAAAp0WspCTx//rxBfckeYHv16gVTU1PodDq9cp1OBycnp+ZfWBgv95CIiKgl\n3QMalybnVig1krarzwMa8tpUNSYmBgUFBcjPz4cgCHet35Y6dyL7FHG3bt0wbNgw5Obm6pV/8cUX\n8PX1lbt7IiIyVnUdsIgBgBD/29KKRYsWIScnB/v27YObm5tUrtVqAaDFJLBp3b3qlKuIY2JisHnz\nZmzYsAHff/89oqKiUFFRgblz53ZG90RE1IVFRUVJwbV///5669zd3aHVavWSwNraWuTn5xucBHbK\nOdhp06bh0qVLSEhIwIULFzBo0CDs2bMHffr06YzuiYjIGHXCOdjIyEhs2bIFO3fuhL29vXTO1dbW\nFtbW1hAEAdHR0UhMTISnpyc8PDyQkJAAW1tbhIWFGdR3p13kNG/ePMybN6+zuiMiIsK6desgCALG\njh2rVx4fH4/ly5cDAGJjY1FTU4PIyEhUVlZi5MiRyM3NhbW1tUF9G99VxERERB2koaGhTfXi4uIQ\nFxfXoX3zYf9EREQyYIAlIiKSAQMsERGRDBhgiYiIZMAAS0REJAN1Bdiv85QegeKu5P1H6SEo70Ke\n0neFDr0AAAMWSURBVCMwAl8pPQDl1ecpPQLlXclTegR3oe43rqsrwP47T+kRKI4BFkBFntIjMAIM\nsG19Pq2qdeaD+6kZ3gdLREQKUeB1Op1IXRksERGRkRBEURSVHkSTgIAAHDhwQOlhEBERgNGjRyMv\nL0+WthtfBVclQ8v2MJawZlQBloiIuoauEGB5DpaIiBSi7nOwDLBERKQQ47qtpqPxIiciIiIZMIMl\nIiKFMIMlIiKidmIGS0REClH3RU7MYImIiGTADJaIiBSi7nOwDLBERKQQThETERFROzGDJSIihah7\nipgZLBERkQyYwRIRkUJ4DpaIiIjaiRksEREpRN3nYBlgiYhIIZwiJiIionZiBktERApR9xQxM1gi\nIiIZMIMlIiKF8BwsERERtRMzWCIiUoi6z8EywBIRkULUHWA5RUxERCQDZrBERKQQXuRERERE7cQM\nloiIFMJzsERERNROzGCJiEgh6j4HywBLREQK4RQxERHRfS0jIwPu7u6wtLTE8OHDkZ+fL3ufDLBE\nRKSQOhmW5nJychAdHY1ly5ahuLgYvr6+mDBhAs6dOyfjtgGCKIqirD0QERHdRhAEAOtlaPll3B7W\nHn/8cTz22GPIzMyUyvr3748pU6YgMTFRhjE0YgZLREQKuSnDou/GjRs4evQogoOD9cqDg4NRUFAg\nx0ZJGGCJiEi1Ll68iPr6ejg6OuqVazQaVFRUyNo3ryImIiKFdMRtOqf+bzE+DLBERKSQjrhNx+3/\nliaf6a3t1asXTE1NodPp9Mp1Oh2cnJw6oP/WcYqYiIhUq1u3bhg2bBhyc3P1yr/44gv4+vrK2jcz\nWCIiUkjnPMkpJiYGL7zwAnx8fODr64v33nsPFRUVmDt3rqz9MsASEZGqTZs2DZcuXUJCQgIuXLiA\nQYMGYc+ePejTp4+s/fI+WCIi6nSN98EmyNDysmb3wSqF52CJiIhkwCliIiJSiLrfpsMpYiIi6nSN\nU8Qdz8HBAZcvX5al7fZiBktERJ2uK+R2PAdLREQkAwZYIiIiGTDAEhERyYABloiISAYMsERERDL4\n/3wEEVdJNTJEAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define the model." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def temperature(x, y, b_params):\n", " \"\"\"T(x, y | t0, t1, x0, y0, lamda)\"\"\"\n", " t0, t1, x0, y0, lam = b_params\n", " return t0 + (t1 - t0) * np.exp(-(((x - x0)**2 + (y - y0)**2) / (2 * lam**2)))\n", "\n", "sigma = 30.0" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Find the optimal parameters." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def chisquare_temperature(b_params):\n", " return np.sum(((data.t - temperature(data.x, data.y, b_params)) / sigma)**2)\n", "\n", "b_params_guess = [0, 200, 60, 60, 30]\n", "results = scipy.optimize.minimize(chisquare_temperature, b_params_guess)\n", "b_params_opt = results.x\n", "b_opt_cov = np.linalg.inv(0.5 * np.linalg.inv(results.hess_inv))\n", "\n", "print \"Optimal parameters:\", zip(['t0', 't1', 'x0', 'y0', 'lambda'], b_params_opt)\n", "print \"Min function value:\", results.fun\n", "print \"Standard errors of each parameter separately:\", np.sqrt(np.diag(b_opt_cov))\n", "print \"Parameter covariance:\"\n", "print b_opt_cov" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Optimal parameters: [('t0', 17.673484842250879), ('t1', 195.30201364892139), ('x0', 56.066149683291705), ('y0', 79.098303551787154), ('lambda', 38.891319341124706)]\n", "Min function value: 24.5336951143\n", "Standard errors of each parameter separately: [ 20.13250369 39.78433256 3.47624678 9.81651262 7.17102511]\n", "Parameter covariance:\n", "[[ 405.31770485 -37.3178964 18.29330954 71.70887784\n", " -87.35883056]\n", " [ -37.3178964 1582.79311745 -71.90147235 -332.81252471\n", " -207.91406254]\n", " [ 18.29330954 -71.90147235 12.08429165 19.83609197\n", " 5.70954513]\n", " [ 71.70887784 -332.81252471 19.83609197 96.36392008\n", " 30.24770931]\n", " [ -87.35883056 -207.91406254 5.70954513 30.24770931\n", " 51.42360115]]\n" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot confidence regions around the maximim likelihood estimate of the volcano's position." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Marginalize out everything except x0 and y0.\n", "b_cov_x0_yo = b_opt_cov[2:4, 2:4]\n", "b_cov_x0_yo" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "array([[ 12.08429165, 19.83609197],\n", " [ 19.83609197, 96.36392008]])" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "# Extract the parameters of the MVN distribution.\n", "_, _, x0, y0, _ = b_params_opt\n", "sqrt_b_cov_x0_yo = np.sqrt(b_cov_x0_yo)\n", "(sigma_x, sigma_xy), (_, sigma_y) = sqrt_b_cov_x0_yo\n", "x0, y0, sigma_x, sigma_y, sigma_xy" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "(56.066149683291705,\n", " 79.098303551787154,\n", " 3.4762467759197113,\n", " 9.8165126231358961,\n", " 4.4537727798602615)" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "def plot_error_ellipse(mu, sigma, std=2, ax=None, **kwargs):\n", " if ax is None:\n", " ax = plt.gca()\n", " num_points = 1000\n", " L = np.linalg.cholesky(sigma)\n", " points = np.linspace(0, 1, num=num_points)\n", " circle = np.array([np.cos(2 * np.pi * points),\n", " np.sin(2 * np.pi * points)]) * std\n", " ellipse = L.dot(circle) + np.tile(mu, (num_points, 1)).T\n", " ax.plot(ellipse[0, :], ellipse[1, :], **kwargs)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "mu = [x0, y0]\n", "covar = [[sigma_x, sigma_xy], [sigma_xy, sigma_y]]\n", "plt.xlim(0, 100)\n", "plt.ylim(0, 100)\n", "for std, alpha in zip((1, 2, 3), (1.0, 0.6, 0.3)):\n", " plot_error_ellipse(mu, covar, linewidth=2, std=std, color='red', alpha=alpha)\n", "plt.gca().set_aspect('equal')\n", "plt.title('Volcano location: $1/2/3-\\sigma$ confidence regions')" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAICCAYAAABSh87yAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VNXB//HvTELIQogIJCGsQZFNRWQpQoWggvqoVKqC\nohaXxxSNCPJYWnELrYC0lvqAYqkK2p9ScAFrXbFlE9EWFRCIoAKyJ0BYIwlLcn5/nGcmGbJNMpME\nOJ/365XXHe7cOffMnYT7nXPPOddjjDECAADO8tZ1BQAAQN0iDAAA4DjCAAAAjiMMAADgOMIAAACO\nIwwAAOA4wgAAAI4jDAAA4DjCwCni5Zdfltfr1datW+u6KiE7Hd7L6VBH1K0vv/xSl156qeLj4+X1\nerVkyZIq/d7wO1Z9HLvaRxiookGDBikmJkYHDx4sd5sxY8bI6/Vq7dq1tVgznGzZsmUaP358uZ+V\nx+Op5RqF3/LlyzVjxow6L+NMU1hYqKFDh2rXrl364x//qFdffVUdO3aUx+M5I35vTgcc59pFGKii\n22+/XUePHtVbb71V5vNFRUWaM2eOLrzwQp1//vm1XDuUVFEY+MUvfqH8/Hy1atWqDmpWvk8++USd\nOnUKevu5c+dqwIABkqT8/HyNHz9eGRkZSktL08033xzUN6uSZRw5ckTPPvusHn/8cT300EMaPHiw\nsrKyqvdmTmPbtm3Tpk2b9MADDyg9PV3Dhg1TYmKibr/99lPy9+ZMc6r+fZ7JIuu6AqebQYMGqWHD\nhnrttdd01113lXp+4cKFys7O1pgxY+qgdihLWbff8Hq9ioqKqoPalG327Nn65z//qcOHD2v9+vVB\nvaaoqEibNm1S27ZtJUm/+93vdO+996ply5aSpDvvvFN9+vTR6tWrdfbZZwdVxm9+8xt9//33ev/9\n9yVJo0ePVv/+/fXdd9+pYcOGob7N08bu3bslSQkJCQHrT7Xfm7p05MgRxcbG1kjZHOfaR8tAFdWv\nX1833nijlixZop07d5Z6/rXXXlNERISGDRvmX7d27VoNGjRIjRo1UlxcnHr37q0PP/wwqP3t2rVL\nv/zlL9WiRQtFR0crNTVV6enpysvLkyRt2bJF9913nzp06KC4uDg1atRIgwYNKvVtLjMzU16vV99/\n/71GjBihxo0bKz4+XkOGDNG+fftK7TeUOpelKuWF4z1nZmZq3LhxkqTU1FR5vV55vV4tXbpUUtnX\nJIOtY1WO5fr167Vt27ZKj8+wYcM0c+ZMXXPNNZVu6/PJJ5+ob9++kqSCggJNnTpVM2fO9D8/btw4\n7dixQ7NmzQqqDEmKiIjwnwglqX379tqzZ482bNgQdL3CrbLfB59gPr9gPrs77rhDvXr1kmQDldfr\nVWpqqqTyr2V//vnn6t27t2JiYtS6dWtNnjy5zBDqez/p6elKSUlRdHS0zjvvPP3hD3+ocj2reoyC\n2W95fPX55ptvNHz4cDVu3Dig5TPYspctW6af/OQniomJUZs2bfSHP/xBs2bNKnVMq/v3WZXjlpeX\np4ceekipqamKiYlRcnKyLr/8ci1ZsiSoY3KmoWWgGm677TbNnDlTc+bMCWgBKCgo0Lx589SvXz+l\npKRIkr799lv16dNHMTExGjNmjBo0aKCZM2fq2muv1Ztvvqnrr7++3P1kZ2erZ8+eys3N1T333KPz\nzz9fO3fu1Ntvv619+/apQYMGWrFihZYuXaobb7xRbdq00Y4dO/TnP/9Zffv21bp165SUlBRQ5i23\n3KKUlBRNmDBB3377raZNm6bIyEjNnj3bv00odS5LVcoL13u+4YYbtGHDBs2dO1fPPPOMmjRpIknq\n0KFDyHWsyrHs1KmT+vXrp0WLFlXpmAXjjTfe0K9+9StJ9hp3kyZNlJ+f73/e18S6cePGoMqQpD/9\n6U8Bz3///fdq0KCBOnbsGM6qBy2Y3wep6p9fRZ/diBEj1LZtW2VmZuqXv/ylLr30Uv9+ypKVlaUr\nrrhCZ511lh577DHVq1dPf/nLXxQXF1dq2927d6tXr14qLCzUiBEj1KxZMy1dulS//vWvtXPnzlLH\nP5jfsWCOUVX3W54hQ4YoNTVVEyZM0LFjx6r0nlavXq2BAweqadOmevzxx1WvXj298MILiouLq7R/\nQDg/X597771Xb7zxhu6//3517txZ+/bt03/+8x+tWrVK/fr1C+p4nFEMqqVly5bm4osvDlj3+uuv\nG4/HY2bNmuVfd8MNN5ioqCizYcMG/7pDhw6Z1q1bm9atW5uioiJjjDGzZs0yHo/HbNmyxb/d8OHD\njdfrNZ9++mm59Thy5EipdRs3bjTR0dFmwoQJ/nVPPPGE8Xg85vbbbw/YdvTo0SYyMtIcOnSoynUu\nz8nvpSrlhfM9T5o0qdQxDUcdq3IsPR6P6d+/f7nvpbx6VebEiRPmuuuuq3CbrKws4/F4zB/+8Idq\n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\ncYQBAAAc9/8ByRFgdY4UWHsAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 8 } ], "metadata": {} } ] }