{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Handling Data over time\n", "\n", "There's a widespread trend in solar physics at the moment for correlation over actual science, so being able to handle data over time spans is a skill we all need to have. Python has ample support for this so lets have a look at what we can use.\n", "\n", "
\n", "
\n", "

Learning Objectives

\n", "
\n", "
\n", "\n", "
\n", "
\n", "\n", "\n", "\n", "## SunPy Lightcurve\n", "\n", "SunPy provides a lightcurve object to handle this type of time series data. The module has a number of instruments associated with it, including:\n", "\n", "* GOES XRS LightCurve\n", "* SDO EVE LightCurve for level 0CS data\n", "* Proba-2 LYRA LightCurve\n", "* NOAA Solar Cycle monthly indices.\n", "* Nobeyama Radioheliograph Correlation LightCurve.\n", "* RHESSI X-ray Summary LightCurve.\n", "\n", "We're going to examine the lightcurves created by a solar flare on June 7th 2011.\n", "\n", "Lets begin with the import statements:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true, "keep": true }, "outputs": [], "source": [ "from __future__ import print_function, division\n", "import numpy as np\n", "import sunpy\n", "from sunpy import lightcurve as lc\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now lets create some lightcurves" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "goes_lightcurve = lc.GOESLightCurve.create('2011-06-07 06:00', '2011-06-07 08:00')\n", "hsi_lightcurve = lc.RHESSISummaryLightCurve.create('2011-06-07 06:00', '2011-06-07 08:00')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In terms of LYRA, the server only allows you to download an entire day of data at a time. We can match this to the rest of the data by using the truncate function." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "lyra_lightcurve_fullday = lc.LYRALightCurve.create('2011-06-07')\n", "lyra_lightcurve = lyra_lightcurve_fullday.truncate('2011-06-07 06:00', '2011-06-07 08:00')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Part of the advantage of using these inbuilt functions we can get a quicklook at our data using short commands:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n2v8l3hZLsqQbxw1PN3Ycx4mOyko3dovFcZy44xZLcuIWi+M4jpOSpJ1icVeY4zhOdLgrLArcFeY4\nyYG7wqqWPXv2MG7cODIzMxk0aFCp+7krzHEcx4mKd999l9NOO41169aRn5+faHHST7G4K8xxnPLY\nvHkzF110EQ0bNqR9+/ZMmjSp1H2zs7OpX78+jRo1IiMjg6OPPrpC51y2bBn169fn6quvjptsIc44\n4wymTp1KixYtqFmzZtQyuSssCtwV5jjJQbK7wi677DIAnnnmGWbPns25557LjBkzIiqNM844g6uv\nvpprr732oM7Zr18/du/eTbt27Rg/fnxcZAuxf/9+rrzySiZPnlymDO4KcxzHqQR27tzJiy++yH33\n3Uf9+vXp06cPAwcOZMKECaUec7BKcvLkyTRp0oS+ffvGXTaAUaNGMWXKlKRR5q5YHMepUkTit1SE\npUuXUqtWLY444ojCdccddxwLFy4s9Zjf/va3tGjRgh/+8Ie8//77MZ1v69atDB8+nD//+c/lPvgr\nItvGjRvZsGED+/btY/ny5THJVlm4YnEcp1qxfft2GjduXGxd48aN2bZtW8T9H374YZYvX87q1au5\n4YYbOP/88/n666+jPt+9997LDTfcQJs2beIuW0i+YcOGkZWVxaJFi6KWqzJJO8XiwXvHSW5U47dU\nhIYNG7J169Zi67Zu3UpGRkbE/Xv06EGDBg2oXbs2V199NX369OH1118HYOLEiWRkZNCoUSPOPffc\nA9rz5s1j6tSpDBs2rFJkW7BgARkZGTRr1ozOnTvHrFgqK3ifltWNHcdxSqNTp07s37+fr776qtDl\nNG/ePLp27RrV8eEB8Msvv5zLL7+82Pbw9uOPP86KFSto27Ytqsr27dvJz89n0aJFfPrppwct28iR\nIzn55JN5+umn2bt3b8yKJVQJfsSIETEdVy6qmjaLfR3HcRJNsv8WL7vsMr388st1x44dOn36dM3M\nzNRFixYdsN+WLVv0rbfe0t27d+v+/fv12Wef1YYNG+rSpUujOs+uXbs0Ly+vcPnVr36ll156qW7c\nuPGgZXvhhRd00qRJhe0JEyboCSecUKY8pf1fgvVxexannSvMcRynPEaNGsXOnTtp0aIFV1xxBX/7\n298K03nPOeccHnzwQQD27dvH3XffTYsWLWjevDmjRo3i5Zdf5sgjj4zqPPXq1aNFixaFS8OGDalX\nrx5NmzYt3Cf8fOXJFuLTTz/lrrvu4qSTTgJs5P3KlStZsGABH3/88UFdm3iQMuNYROQo4HagGfCe\nqv4twj6aKt/HcdKZZB/HUl2pqnEsKaNYQohNgTZOVQ8YvuqKxXGSA1csyUnaDpAUkdEikici80us\n7y8iS0RkqYjcWcqx5wOvAq9XhayO4zhO7FS5xSIipwLbgfGqemywrgawFOgLrAFmAYNVdYmIXAUc\nDzyiqmuD/V9V1fMi9O0Wi+MkAW6xJCdVZbFUebqxqk4XkXYlVvcElqnqCgARmQxcACxR1QnABBE5\nXUTuAuoCr1Wp0I7jOE7UJMs4ljbAt2HtVZiyKURV3wfKraUwZMgQsrKyAMjMzKR79+5kZ2cDFA6c\n9La3vV35bSd5yc3NZezYsQCFz8t4kpDgfWCxTAlzhV0CnK2qQ4P2lUAPVb09xn51+PDhhYN+HMdJ\nDO4KS05K/l9yc3PJzc1lxIgRqZ8VFkGx9AJyVLV/0L4LG7DzUIz9eozFcZIAVyzJSdpmhQVIsISY\nBXQUkXYiUgcYDLxSkY69VpjjOE50VFatsESkG08EPgI6ichKEblWVfOBW4G3gYXAZFVdXNWyOY7j\nOAdPyg2QLAt3hTlOcuCusKplz549jBs3jszMTAYNGlTqfunuCqs03BXmOE5149133+W0005j3bp1\n5OfnR31c2rjCKpucnBzPCHMcp0xGjRpFjx49qFevHj/96U/L3Hfz5s1cdNFFNGzYkPbt2zNp0qSY\nzrVixQrOPfdcmjZtSuvWrbn11lspKCiI6/nOOOMMpk6dSosWLahZs2bUsmVnZ7ticRzHiQdt2rTh\nnnvu4brrrit335tvvpl69eqxfv16nn32WW666SYWL44+BHzzzTfTsmVL8vLymDt3Lu+//z5PPvlk\nXM9Xu3Ztpk+fzuDBg6OWqzJJO8XirjDHccrjwgsvZODAgcXK10di586dvPjii9x3333Ur1+fPn36\nMHDgQCZMmBD1ub7++msGDRpE7dq1adGiBf379y91DvuKnm/UqFFMmTIl5riWu8KixF1hjpPkiMRv\nqWSWLl1KrVq1CmdzBDjuuONKVQyRGDZsGJMmTWLXrl2sXr2aN954gwEDBsTtfBs3bmTDhg3s27eP\n5cuXRy0XuCssatxicRwnXmzfvp3GjRsXW9e4cWO2bdsWdR+nnXYaCxcupFGjRrRt25YePXowcODA\nuJ3v4YcfZtiwYWRlZSXNnPdpqVjcYnGcJEY1fksl07BhQ7Zu3Vps3datW8nIyABg4sSJZGRk0KhR\nI84999wD2qpKv379uOSSS9i5cycbNmxg06ZN3HlnxJlByj1fSRYsWEBGRgbNmjWjc+fOFZrz3hWL\n4zhOFdKpUyf279/PV199Vbhu3rx5dO3aFYDLL7+cbdu2sXXrVl577bUD2ps2bWLVqlXccsst1K5d\nmyZNmnDttdfyxhtvVOh8JRk5ciSHHHIITz/9NHv37o1ZsVQWrlgcx6l25Ofns3v3bvLz89m/fz97\n9uyJOP7jkEMO4cc//jH33nsvO3fu5MMPP+SVV17hqquuiuo8zZo1o3379jz11FPk5+ezZcsWxo0b\nR/fu3SPuH8v5/vOf/3DRRRdxxx13cOONN3LVVVexYMGC2C5EZaGqabMAOnz4cJ02bZo6jpM47NGS\nvOTk5KiIaI0aNQqXESNGqKrqgAED9IEHHijcd9OmTXrhhRdqgwYNtF27djp58uSYzjVv3jzNzs7W\nJk2aaPPmzXXQoEG6fv36wu0VOd+sWbO0Y8eOumzZMlVV3b17t/7xj3/UOnXq6MyZM0uVpeT/Zdq0\naTp8+PDQ+rg9i72ki+M4ccdLuiQnXtLFcRzHSUlcsTiO4zhxxRWL4ziOE1fSTrH4AEnHcZzoqKwB\nkh68dxwn7njwPjnx4L3jOI6TktRKtACO46Qf7dq1Q6qgSKQTG+3atauS86SUK0xEDgE+AO5V1dcj\nbHdXmOM4ToxUd1fYncDziRbCcRwn3RGRw0RkuYhkBu0mQfvw8o6tcsUiIqNFJE9E5pdY319ElojI\nUhE5oPSniPQFFgHfAW5jO47jVCKqugp4EngoWPUg8DdV/ba8Y6vcFSYipwLbgfGqemywrgawFOgL\nrAFmAYNVdYmIXAWcADQCvge6AjtV9aIIfbsrzHEcJ0ZKc4WJSC3gU2AMcD1wvKruL6+/Kg/eq+p0\nESkZQeoJLFPVFQAiMhm4AFiiqhOAwnk5ReRqYENVyes4jlNdUdX9IvIb4E3gR9EoFUierLA2QLh5\ntQpTNgegquPL6mjIkCFkZWUBkJmZSffu3Qsn/goNnPS2t73t7erczs3NZezYsQCFz8syOAfzJHUD\n3itvZ0hQVlhgsUwJc4VdApytqkOD9pVAD1W9PcZ+dfjw4WRnZxdeTMdxHCcyubm55ObmMmLEiNJc\nYd0xj9EA4EOgp6rmlddvsiiWXkCOqvYP2ndh8wM8VEY3kfr1GIvjOE6MlBFj+Qi4W1XfE5FbgFNU\n9cry+ktUurFQPLNrFtBRRNqJSB1gMPBKRTr2WmGO4zjRkVtGrTARuQFYoaoh99dTQGcR+WF5/SYi\n3Xgi8BHQSURWisi1qpoP3Aq8DSwEJqvq4qqWzXEcxzFU9R+qellYu0BVe6jq/8o7NqVG3peHu8Ic\nx3Fip7qPvC8Xd4U5juNER1musIPBLRbHcZxqjlss5eAWi+M4TnS4xRIFbrE4juPEjlssjuM4TlKT\ndorFXWGO4zjR4a6wKHBXmOM4Tuy4K8xxHMdJalyxOI7jOHElWcrmx42cnByvbpwqqMLOnfa5Xj1r\nFxRArVpQw995HKeyCVU3jjceY3EiU1AAH38MM2fCqlX20G/Rwrbt3m0KYc8ea9eoAQ0aQLt20Lw5\nZGaaotixA7Ztg7w8WLfO/q5dC6tXw3ffwfr1RYqlJCJQu7YpmVq1ICMD2reHrCzo0MHaLVsWtVu3\ntmMcx4mZeMdYXLE4xdm8GUaOhMmTTQlUNnXrmmIKV1L7o5qkrjiZmXDssXDMMaZojjwSuneHww93\nheM45eCKpQxcsRwkL70EN99s1gVA27YwYIA9qAE2bLCHdN26ZqHUrWvt/HyzTL75BjZuhC1bTFE0\naAANG5plEVp+8ANo08b+Nm9u2yM9+AsKYN8+UzL798OmTfD117Z8841ZQ2vX2udly+y8kWjUyJRM\nhw7QsSN06mTK5+ijTT7HcRKjWESkgaruEJFaQIGqFsRLgHjiiqWC7N4NQ4fChAnW7tMHHn0UevRI\njbd9VVOG8+bB4sWmbBYtgrlzTRlGQsQUTs+ecNJJcMIJtriycaohVa5YROQ3wKFYBtkDwAOhKYST\nDZ+auAIUFMBFF8Err9hD9aGH4Kab0id4vn49fPklfPWVLYsXw4IF8MUXB7rcataEo46Crl3h5JNt\n6d7dlY2TtpQ3NXFFiUaxnA7MBPYBobnpr4+XAPHELZYKMHIk3HsvNGkC06bBccclWqKqYe9eUzAf\nfwyzZ8Onn8Lnn5tbLxwRc6EdeaRdm1NOgV69zI3nOGlCIiyWk4ATVfXpoH25qk6MlwDxxBVLjLz+\nOpx3XtHn/v0TK0+i2bnTXGjz58NHH5myWbgwcjLBEUeYkunRw9xp3btbJpzjpCAJDd6LSC9VnRmv\nk8cbVywx8OWX9lDcsgXuuw9+//tES5Sc7N5tyQFLl5qimTEDZs06ME26Zk1zoZ14olk0vXpZu2bN\nxMjtODGQaMXST1XfitfJYyFwyY0EFgKTVPWDCPu4YomG3bvtLfvzz+GCC+DFF9MnplIV7N9vVs3M\nmaZsPvnEYjcFJXJaGja0xIATT7Tr3bOnjfVJhYQIp1oRb8US68j7RD61FdgG1AVWJVCO1OcvfzGl\ncuSRMG6cK5VYqVWrKIssxI4dlpU2a5YpnJkzLTstN9eWEK1bF7nQQkonM7OKv4DjlI+IFAATVPWa\noF0TWAfMUNWBZR5b1RaLiIwGzgPyVPXYsPX9gcew7LPRqvpQKce3AB5V1SsjbHOLpTxWrjQXzfbt\n8M478KMfJVqi9CUvz6yZzz6zvx9/bONxStKxY1GspkcPOP54OOSQqpfXqbZEslhEZBuwFOitqnuC\nZ/T9wKp4K5bWqrqmAnKH93EqsB0YH1IsIlID+wJ9gTXALGCwqi4RkauA44FHVHWtiNQBnlXVQRH6\ndsVSFqpwzjnw5puWYvzii4mWqHpRUGBpzp98Yi60Tz+FOXOKqg6EqFkTunWzdOdevcyyOfpoj9c4\nlUYZiuVxYLaqvigi44AFwA/jqljihYi0A6aEKZZewHBVHRC07wI03GoRkYuAfkBj4CmPsVSAceNg\nyBBLLV64EFq1SrREzr599r+YNcsUziefWBp0pHhNz55FiQGe8uzEkVIUy1agNzAcuBIbdnI78Kvy\nFEtMMZYg9fj3QLvgWMEUwLFlHlg+bYBvw9qrgJ7hO6jqS8BL5XU0ZMgQsrKyAMjMzKR79+6FgyVD\nVTyrZXvtWnJvucXajz0GrVoll3zVvd29O7lHHglXXEF2jx4weza5EyfCokVkr1gBK1aQ+9578N57\n2NGQ27o1dOlC9oUXQq9e5G7eDLVqJcf38XZSt3Nzcxk7dixA4fMyEqq6QESygMuA17BnfrnE6gr7\nAvg18DlQ+Eqlqiui7oSIFkto4OXQoH0l0ENVb4+xXx95HwlVc329/LLV/nrtNc9MSjXWri2qNh1K\ned61q/g+9eub2yxk0fTubTXZHKcUcssYeS8iW1W1kYjcA9wGZGNVWH4ZV4sFWK+qr8R4TDSsAtqG\ntQ/DYi1OPHjrLVMqGRnw9NOuVFKRVq3gwgttAUt5/vzzIkUzc6aNt/nf/2wJccQRVvutVy+L2Rx3\nnMdqnGgJPSieAbao6sJg2Ef5B8ZosfTFTKJ3gcKIo6rGFAUOTKspqtotaNcEvsCC92uBT4DLVHVx\njP16jCUSZ59tGWAPPgh33ploaZzKYsOG4lbNzJmWBh1ORobFanr3huxsUziegVbtKS3GoqqNSqw7\nnSgsllgVy7PAUdggxZArTFX1pzH0MREzqZoBeVjQfoyIDKB4uvGDUQtW1Le7wkqydCl07mxuktWr\nLXDvVA9CAzk//NCSAmbMsEKc4dSsWVQDLVQHrUMHt2qrCWW5wg6GmGMsqto5XiePN26xROAXv4DH\nHoPrroN//jPR0jiJZu1as2T+9z94/30b1Fmy8GaLFkVxmlNOsbhNw4aJkdepEhJd0mUMNp5kUbwE\niCdusZRg+3Y47DD4/nsbpBc+UtxxwFxloWoBM2bYsn598X1q1LDZOUNWzSmnWOzGrZqUJ1kslsXA\nEcDXWIwlXunGccEtlhL8+tfwpz+ZP/3DDxMtjZMKqMLy5cUVTSSrplkzs2hCFQNOOcVL06QwibZY\n2kVaH2u6cWXhFksYc+eaC0PVAronnZRoiZxUZefOosrOoeW774rvI2LVAk480aYQOPFEW3wqgaQm\nKSyWZMctlgBV+OEPzUq57TZ4/PFES+SkE6pWYHPmTHOxhsbV7NtXfL9atawu3QknWP2z44+3RIGM\njISI7ZROQi2WZMcVS8DEiXDFFRaEXboUGjdOtEROurNrl83EOXeu1T8LlaaJ9Hts186sm27d4Jhj\n7G/nzlCnTtXL7QCuWMrEXWFYwL5zZ1izBkaPhp9GnQleDFUrVxXvsXQrV5quW7zYnkHr1pm4oedM\nly4+rCJt2L7d4jNz5hQtCxfatNAlqVULOnUqUjahpUMHn9ahEnFXWBS4xQLcc4/NCNmjh7kqYvhR\nbttmh77xhsVvd+0yY+eMM+D6622cZayKZu5cmDYNpk83cdaUU08hNMX8scfaM+aEE8yr53HhNGH/\nfpu9dP58s2hCy5dfRrZu6tc3d1pI0YQUT6tWnpUWRxIdvL8UeFNVt4nI3cAJwH2qOjteAh0M1V6x\n5OXZU3n7douv9O4d9aHvvw/XXAMrykjDOPZY+MlP4NRT7UWySRNTNHPnwtatZmls22ZTjnz+OXzw\ngbnfw2nSxJ4NnTpZf61bWyX5+fPtmC++ODABqWZN6N8fbr4Z+vXziiRpyc6dZsYuWGA3QkjhrF4d\nef8mTYormtDiA4ArRKIVy3xVPTaYU+U+4BHgXlU9OV4CHQzVXrHceis88QScey68+mrUh737rtWm\n3LfPLIRHH7WHfoMG9rueNAlGjSrf2ohEgwYwaJApoz59bNLKsoyoPXtgyRJTNPPnW0LbjBn2ogum\n0G69Fc4809xmtWKtduekFps3F7dsQopn8+bI+zdvbr7V9u3t7aVzZ7vpOnb0QZ5lkGjFMkdVjxeR\nB4DPVXViaF28BDoYqnWMZeVK+wHt22dP5GOOieqw+fPtob9tm1kEjz0GtWsfuN/27TY/2NSplnm6\ndi1s3GiK4KijoE0be+k85BBL+una1YY59Olz8C+R69db0YB//AO+/rpofcuWcNllcNVVlnDknpFq\ngqrdgOGKZsECi9+UrPgcTqtW9hvJyrKBw+3aQdu2RX8bNKiyr5AsJEWMRUReBVYDPwJOBHYBn6jq\ncfES6GCo1hbLLbfAk0/C4MFmYkTBnj32QF682A577rnY46R791ZdMk9+PkyZYnJ++qllvIbo1Qt+\n/3ubINNjvdWUggIzsZctsyDhF19YpsiyZVYjLVLSQDjNmhUpmZYt7W0ppHiOO84CfWn69pJoi+UQ\noD9mrSwTkVZAN1V9O14CHQzVVrFs2mQ/gt277a2tS5eoDhs5Eu6917wFs2enVjaWqimXZ581RbNx\no61v1Qp+9CPzBg4caLFfxyE/H7791pTMypX2eeVKCyquXGlLeYqnYUO7wZo1g6ZN7W/jxvbb+8EP\nzApq1cosohSzfhKtWB5S1TvLW5coqq1i+dvf4Kab7In6zjtRHbJ0qcVR9uyxrK1U9hxu327TzPz1\nr8WTD5o2tWSDvn3N3deyZeJkdJKcggKrJhBSNHl5pnxWr7Yfy6JFB05BUBYNGtgN2KSJLZmZpoRa\ntjTl06CBfW7b1vZr0SKhb0GJViyzVfWEEuvme62wBKJqEzjNmgUTJsCVV0Z1WL9+8PbbMGQIjBlT\nuSJWFaoWM5o61byBn31WfPuRR5qC+eEPLcusVavEyOmkIKqwZYsNvNq0yUzkTZts3erVFvNZtcoy\nXL755sAqBOVRo4ZZQOGWz6GH2rpDDrGkhEaNihRUZqZtq1s3Ll8vIYpFRG4CbsYKUH4ZtikD+FBV\no3uaVTLVMnj/n//AJZfYTfjNN1GZ4DNnWs3Axo1t+MChh1a+mFWNqo3He/XVorTnnTuL73PKKXD+\n+bZ07Zq27nOnqlG1bJiNG03xbN5sFcY3bzbFtG6dWT95eWYhbdliiqlknn00NG1qSicjw3L3mzc3\n11yrVqZ5aHhaAAAgAElEQVSgWre2dtOmEbNyEhq8F5HGQBPgYWzO+xDbgd+4KyxB7NplefxffWX5\nwDffHNVhF10E//0v/Pa3cP/9lSxjkrBvnw0C/9//4L33LMU6PIGoQwe44AKLy/Tq5bUTnSpm3z6b\nATRk+YTccPv3m6/3u+9ssNiWLUV/N2yITRnVr29uucaNzfo56ihTPC1bIsOGuSusNKqdYrn5Znjq\nKQvWz50bOU+4BIsX29t5nTr2slRd4w47dsBrr1kK9ZQp9hsNUbeuVRk4/3xTMl26+KBMJwkpKLBc\n/I0bTdl8840pnDVrTCmtWWNKKuS+Kygotatg/pOEucI6AOFzm2YAH6nqFfES6GCoVorlv/8106NO\nHfNtHR/dUKIhQ2DcOLjxRov5O/bSN3MmvPyyKZqStRMbNLAK8D17WjhrwICUS/pxqjuq9ja1ZYsN\nBtu0yd6mVq+G9euRJ55IqCvsAeCusE3bVHVTvIQpRwYBRgKNgFmqOiHCPtVDsXzzjT3pNm2yYfK/\n+EVUh61aZQOSCwos67JDh8oVM1VZu9aUTG6uFekNH5QJ5ibr39+yzc48E44+2uMzTmpTWvBeRFoC\njwEnAVuAPGCYqn5Zct9ix6XKg1hELgQuADYCr6nqtAj7pL9i2bLFnmizZ9tgjVdeiXpE4K9+BX/+\nc0xjKB3M2/DJJ7ZMnWqJAOG3WYcONjCzb18r2OmzFDipRhmK5SNgjKr+I2h3AxqpaplT0sasWESk\nCXAkUBjeVNUPYjh+NHAekBcemxGR/phmrAGMVtWHShx3J7BJVf8hIv9W1Usj9J3eiqWgwCLMr75q\n+e9z5li2RxTk5dkDcOdOS8M94YTyj3Ei8+238NZblgQwdWrxKeJr1bIyNueea8qmSxe3ZpzkJ5Ji\nEZEzgOGqmh1zfzEG768HbgcOA+YCvYAZqnpmDH2cimWTjQ8pFhGpASwF+gJrgFnAYFVdIiJXAccD\nc4BdqvqCiExS1csi9J3eiuX++61uSZMmph3at4/60DvugL/8xbKeXn65EmWsZuTnmyXz1luWaTZj\nRvFEnc6d7Zqfd54Vm/aimU4yUopiuRXIUtVfxtpfrLf57UAPYKaqniEiRwExJayq6nQRaVdidU9g\nmaquABCRyZjba0kQS5kgIvWBv4rID4FSLaQhQ4aQlZUFQGZmJt27dy8c05KbmwuQmu0vvyT3nnus\n/dxz0L591McfdVQ2Tz0FkMv55wMkwfdJs/Ypp0B2di7bt8POndm8/jq89FIuX3wBjzySzSOPQMOG\nufTsCddfn03//jBvXvLI7+3q1c7NzWXs2LEAhc/LeBKrxTJLVXuIyFzgZFXdIyILVbVrTCc1xTIl\nzGK5GOinqkOD9pVAT1W9LcZ+09Niyc+Hs86y2isVGCr/29/Cgw9aEtmLL1aOiM6B7NsHH31k6cyv\nvmo1EUPUrGnxmH79bKDmySe7NeMkjlIsljMxV9jpsfYXax3YVSKSCfwXeEdEXgbKmBoqaiJ5oSuk\nIXJycgo1c9rwpz+ZUmnRAh54IKZDCwqsUCPAL2M2aJ2DoXZtOP10+/ctWWIlp/7yF8skE7H4zK9/\nbWVmmjWzmMyIETbbZjq+HznJR25uLjk5ORG3qep7QB0RuS60TkS6iUif8vqNSrGIyDAR6QFcqqpb\nVDUHuAcYDVwYTR/lsApoG9Y+DIu1ON9+a08bgPHjrZZQDMyYYWnGhx1mb8ZO4jjySBg2zGIxeXkw\ndixcd50lVWzdalNC5+RYLbOjjrLPs2eXOa7NcSqbi4CzReRLEfkcC32sK++gaMex/AnoDRwFzAc+\nAj7EAvcxj2MRkSzMFdYtaNcEvsCC92uBT4DLVHVxjP2mlyts1y748Y9t1N6ll8K//hVzF2edZW/G\nd95p7jAnOVm1ytxm774L//538QkSW7Y0a+b88811lkrTGzipQaKrG9fBBsr0Bk4Jli2qGt0EINbH\nRCx63AwbbDNcVceIyACKpxvH/BhMqyKU27aZVvj4Y0spnjPHUoxjIFSfsnFjKyfWrFklyerElf37\nLZX5+eftpWDlyqJtNWtauZkhQyzbzGuaOQdDbpLMINkYUyZ9gr+Z2KRf18ZLoIMhbSyWDRtsbpV5\n88yH9corUZdsCZGfbyPCly2DJ56wCSad1EPVSsxMnmy1zebNK9rWoIGNl+nf35RNmzaJk9NJbRJV\nNv/vQFdgG/AxMBNLOd5c5oFVTFpYLH/6k0V0wUyNmTPN4R4jzz1nU7N06GDZSJ5xlB6sX29KZuxY\ni7+E07atVfrp1csmOGtXMqnfcUqQUItFRN4EDgUWYPGVGcCCZDMPUtpimT3bngohDj/c0oNidH+B\nBXu7drVMpNGj4ac/jaOcTtKwfDm8/roNznz99QOD/D16wMUXmzVz3HFRV/5xqiEJi7EERSC7YvGV\n3sAxwCYsgD88XgIdDCljsezfb87y/HxTKMOGWfpWiNNPtyhuBWu1v/aajfQ+/HCLrURRTd9JcTZt\nMst0+XIbq/TOOxamC1GjhlVnHjjQ8kA6dkycrE7ykBQxFgAROQyLsfTGan41U9XMeAl0MCTcYvnn\nP82NdcQRsHt30YxaCxZE38fLL9uvv4KoWumQmTPNq+ZjV6onu3bZoMw337QpqFetKr792GPt9uzT\nx9KbPQmgepOoGMttmCLpA+wjSDUO/n6uqkmRaZ8QxZKfbzNmHXFExfs45hgbq/LjHx+0OO+8Y66P\nGGYqdtIcVbtF5861jPXXXrNxMyFq1TIjul8/UzKDBtmYG6f6kCjF8ijB2BVVXRuvk8ebKnOF5efb\nr/Skk8reLycHPv/cnOB799ry97+bIqlf3369derE1VfVu7d51e6/30q5OE5J9uwxT+urr8ILLxSv\nzhyiUaOiqZpPPtncqk76kTSusGSm0i2Wv/0Nbrqp9O1TplhwI0HMmWPl8GvWtNlKfV4QJxrWrLHB\nmXv3mtts3LjS9+3d28ZHxVgAwklyEjpAMtmpVMUyYQJcffWB67t1s19lw4aVc94YuOEGC/PcdBM8\n+WSipXFSlX377CXlvfesztzChQfu07q1/V2zxmbaPD3mMoVOMuGKpQwqxRU2f77laoZz221wzz0W\nyEgSNm60sZR79liacadOiZbISRdWrLCSdUOHWpbh3r2R9zviCLj9dnux8XFTqYG7wqJARFT37LG4\nRUUpKLBfUmkTwodShZOMJ56AW2+1UdhvvJFoaZx05vvvYdYsKwjxzDOwY8eB+5x8shWQePBBM+rr\n1LHKAAfz03QqD7dYykBEIn+bn/3MnrqbNtmrfX6+vVZ9911sJ9i0yWZvTELOPNMq60+YYCPuHaeq\n+P57Kxn03HPR7d+iBdx4o/0kmzevXNmc6HDFUgalKpaDoW9fG4uSBDGU0ti82X6gIqYrk1T3OdUA\nVXPFvvOODelq3774BGelMWAAXHONFU1NQodA2hNvxZJ+RR5OPfXg+/jFL2xEmaqVl01ipQJmqeTn\n22A3VypOIhGx4qe33VYU79uzxzzIL7xgyqZp0wOPe+MNGDzYYjMiNpZm1iy7r53UI/0slpLfR9Xu\n7HXrYPFiy5Ns0SKtSsGGph6++24YOTLR0jhOdKxcaS60V1+N/pi33rIBwE58cYulHA6YmljE6lVk\nZZm9ffzxaaVUoKjK7QknJFYOx4mFtm1t6JeqLfv2WbJlx4727heJfv3sJ3366TZo83e/s5Rnp2KU\nNTXxwZD+Fkuao2rxlY0brYSLl0p30oWCAhuwWVAA115bfq5N3bpW0KJpUxunvH493HGHFQ2XuL2L\npycevC+D6qhYvvzSKsO0aGHePv8BOenM2rVw3302cDO83lm01Khh9dDuvdfSoDdvhs8+M8tp3Ljq\nWwm82ioWETkVuAKoBRytqgdE6aujYnnqKbj5Zqvp9PLLiZbGcaqWrVutMsD48VbC6IsvTFF8++3B\n9z1ypCXEZGen/wtbtVUsIUTkAqCFqv4jwrZqp1i6d7fpap97Di6/PNHSOE5yEJr0bOdOUzQ7d5pF\n8vzzFe+zcWObvbNDBzjkEJsZo6DAYj3168dH7kQRSbGISD4wD4vF7wd+rqozo+qvqh/EIjIam8cl\nT1WPDVvfH3gM+xKjVfWhUo5/HrhOVbdH2FatFMvixdCli6UYr11rPmbHccpH1WIwtWpZ5YB69WyQ\ncSxTJ5XkmGNsLM7QoZYm3aSJVR9Ytcosnj17bLK1ZKQUxbJVVRsFn88Gfqeq2VH1lwDFciqwHRgf\nUiwiUgNYCvQF1gCzgMGqukRErgKOBx7B3GB3q+qNpfRdrRRL06bmI77mGpsD3XGc+LJsmRV0feyx\n+Pd9/fWwZYuN72nUCD75BDp3jv95oqEUxbJNVTOCz5cCl6lqVJNGJcQVJiLtgClhiqUXMFxVBwTt\nuwAtabWISA7wZmnmWHVSLJ98YvWYwKvLOk5VMX8+5OWZp2DFCksGmDu37Nk0KkKXLvD44zbeu149\ns3a++85GSsyZY+63TZvgqKPic75SFMt+YD5QH/gBcKaqzommv2SpQdoGCA+3rQIOMBpVNae8joYM\nGUJWVhYAmZmZdO/evbDScWh8Szq0TalY+7TTEi+Pt71dXdpnnWXtZcus/bOfZfOzn9n2/Hxo3Tqb\nmTNhwoRc6ta132d+Ptxzj+0P2cHf0tuLFsFZZ0W3//Ll2bRuDfXqWXvJkmwOPxw++aT075Obm8vY\nwM0Rel5GYKeqngCFL/8TgGNK2zmcZLFYLgHOVtWhQftKoIeq3h5jv9XCYgmv5P/mmzZozHGc1GHz\nZpvvpk8faNnSkgrGjLFxO/HkjDMsa7RLFys6smWLjXUrWY+tvBhL0F4HHKOqG8o7b7JYLKuAtmHt\nw7BYS8zk5OSQXdlTEyeY++6zvxkZrlQcJxVp0gQuvrioPXiwLeGsWmVxmOnTTQF16RJ7rGfaNFtK\nY/z4XL76Kre0zYWKRkSOwhKrNkZz3kQpFiFMaCxY3zGwZNYCg4HLEiFYsvPCC/Dvf9vng8lgcRwn\nuTnsMPNIhPOXv1hGW0GBWR0/+hG8+27R9j/8wQZ/RkukSXHDqCcisyl6Vl8drUsoEVlhEzEnYTMg\nDwvajxGRARRPN36wAn2nvSusUyfLVDnuOAsaOo7jRCI/39KcBw+2l9FLLrGU6Milwar5AMmyqJSp\niZOIhQvtxgDYti3pq/k7jpPEvP029OuXiyUB+NTEpZLuFsu991qZieuvh38cUHfAcRwnNgoKrAxO\nly5eNr9MDiibnybs3QujR9vnn/wksbI4jpMefPBBLs8/nxP3ft1iSRGmToWzzrLZ+RYuTP+ieI7j\nVB0+0Vc5pKPFolqU+XH66a5UHMeJD7k+0Vf5pKvFcscdlmYIVhPsmmsSKo7jOGlGtS+bXxbpqljC\nLZRvv7X8dsdxnHjhrrBySEdXWDiuVBzHiRfuCouCdLVYMjPh++9thsiBAxMtjeM46YZbLNWQkK48\n9YDJmB3HcZKPtFMs6eYK27PH5vWuWdMsF8dxnHjhrrAoSEdXmJVdsM9p9tUcx0kSPCusDNJNsWzd\nCo0bF7XT6Ks5jpNEeIylGhGuVM49N3FyOI7jxIIrliTluuuKt596KjFyOI7jxEraKZZ0CN7n58Mz\nzxS1DzvMx684jhN/PHgfBekSY8nLs/mpQ6TBV3IcJ4nx4H0ZpINiUYUaYXbk3r1Qu3bi5HEcJ/3x\n4H2aM29e0edDD3Wl4jhO6lEr0QJEi4gcDvwfsBFYpqoPJVikSqFv36LPv/514uRwHMepKKlksXQD\n/q2q1wPdEy1MZfD997BpU1H7xhsTJ4vjOI6IXCQiBSLSKZbjqlyxiMhoEckTkfkl1vcXkSUislRE\n7oxw6EzgehGZCrxZJcJWEQ88YKXx+/Qpvj58HIvjOE4CGAz8L/gbNVUevBeRU4HtwHhVPTZYVwNY\nCvQF1gCzgMGqukRErgJOADYB01R1uoj8W1UvjdB3ygXvn3gCbr018rYU+yqO46QokYL3ItIAWAKc\nAUxR1aOj7a/KLRZVnQ5sLrG6JxY3WaGq+4DJwAXB/hNU9RfAi8DtIvIU8HVVynww7NkDb70F+/cf\nuG3p0tKVyiuvVK5cjuM45XAh8KaqfglsFJGoQxDJErxvA3wb1l6FKZtCVHUhcICVUpIhQ4aQlZUF\nQGZmJt27dyc7OxugcOBkVbbPOAPA2tOmFd9+zz25gdTZwd+i9nnnJUZeb3vb2+nfzs3NZezYsQCF\nz8sIXAYEk6LzPHA5MLe0ncNJyDgWEWmHmVYhV9glwNmqOjRoXwn0UNXbY+xXhw8fTnZ2duHFrEqW\nLYMxYyybq0kTs1bq1SvarmqWy333Qf/+cMoppfflbjDHcSqb3NxccnNzGTFiRDFXmIg0xV7w8wAF\nagKqqlnR9JssiqUXkKOq/YP2XdiXiCmlONExliZNYMsWuPpqGDcO7r8ffv/7ou2qMGGCbS+L7t1h\nzpzKldVxHCdEyRiLiNwIdFfVm8LWTQPuVtUPy+svUenGEiwhZgEdRaSdiNTBMhAqFGVIZK2wLVvs\n72ef2d8XXii+/eyzy1cqADNmxFcux3GcSOSWXivsJ8BLJda9iLnDyqXKYywiMhELKjQTkZXAcFUd\nIyK3Am9jym60qi6uatnixcKF9rdOneLr33knuuPD3WeO4zhVjaqeGWHdX6M93muFxYm774Y//rFi\nx7ZqBWvXFrXT6F/iOE4K4LXCyiERrrC5cyuuVAAeSsviNI7jJDtluMIOCrdY4sC0aXDmAYZj9Hz/\nvU1DPHYsDBsGDRvGTTTHcZxy8bL5ZZAoxXLppQcG6mNh2zZXJo7jJA53hZVDIlxhB6NUwJWK4ziJ\nwV1hUZAoi0UOUs+n0b/AcZwUxC2WckiHOe8dx3GqArdYoiBRFsvFF8OLL0a/f0aGxVVCpNG/wHGc\nFMQtliTk8MPL3v5//wctWxa1ox0o6TiOk4q4YokDkUrih6MKNWsWbzuO46QryVI2P27k5OTEtbrx\n3r3wu9/Bt9/CWWfBNdfAb38LAwfCf/4Dzz5bfDrhSLgicRwnGQlVN443HmMph5IzPD7xBPz857H1\n8emn8OqrkJMDV14Jf/5zkWvsiitMOTmO4ySKeMdY0s5iiTfffFO8vWpV7H2ceKKVwj/rLPtcty7M\nn2/zt5x7blzEdBzHSRpcsZRDfn7xdkFBbMfXCq5wzZrQu3fR+m7dbHEcx0k3PHhfDiUD8+UF6ss7\n3nEcJ91JO8US7wGSJS0WVxSO46QLPkAyCuIVvM/PL0oPvuEG+Oc/i7bdcguMGhVbf2l0iR3HSUN8\ngGQlM2cO1K4NjzxiCiFcqYBbLI7jOOXhiqUEv/udKZTf/AZ27DhweyyKpUsXH2XvOE71I2WywkTk\naCAH2AC8p6r/qYzz1Aq7Irt3H7i9LMXiLi/HcZzUslgGAP+nqrcAV1fWSQ5GsURLqlRfdjnji8sZ\nX1JBzlSQsTKocsUiIqNFJE9E5pdY319ElojIUhG5M8KhE4DBIvIw0LSy5Ktdu+jzrl0HbnfFkny4\nnPHF5YwfqSBjZZAIV9gY4K/A+NAKEakBPAH0BdYAs0TkZVVdIiJXAccDj6jqrcG+pbrBFiw4OOHW\nry+7r+++O7j+Hcdx0p0qVyyqOl1E2pVY3RNYpqorAERkMnABsERVJwATRKSdiDwNHAI8Ulr/8RzN\n/uMfH7hu2rT49e84jpOOJGQcS6BYpqjqsUH7YqCfqg4N2lcCPVX1thj79fC54zhOBUjHIpSRvlDM\nSiKeF8ZxHMepGMmSFbYKaBvWPgyLtTiO4zgpRqIUi1DcSpkFdAziKHWAwcArCZHMcRzHOSgSkW48\nEfgI6CQiK0XkWlXNB24F3gYWApNVdXFVy+Y4juMcPGlVhDKZkMqYztJx4oTfn05lkiwxlrRCRIYD\nF4pIUicTiMg5ItIyrJ2U8opIjoickmg5yiOFrqffn3EiVe7NqsYVSxwRkQtFZBbQCfgoWd8IRaS3\niKwAfg48LSI/AUg2eUXkEhH5EOgCfJVoeUojha6n359xIlXuzUThiiVOiMjhwB3Y+JwrVDUvSERI\nRo4HHlDVc4DngB+JyDVQWAUh4YjIUcCfgWdUdZCqficiNRMtVymkwvX0+zNOpNi9mRCSZRxLSiIi\n9VR1N4CqfisiU4CagWl8EbBfRD4APlDVnQmUszHQBliqqvuBUyh6y3oT2A9cJyJTVHVTgsRERJoA\n2djDb0lwPRuJSBYwFNgiIu8AC1V1bwLlbAwcCnytqgVAb+DLYHMyXU+/P+MnY0rcm8lCwrV/qiIi\n9wAfi8gFYasnACdj9dD2YCX+rwR+VfUSGiLyS+AT4D5gdLD6aeAsEclQ1W3ATOALYFBipCzkGeAh\nrJwPwKPAEOBVIB9oDvwCuCIRwgGIyC3AMuAv2HUEeBw4W0QaJcv19Psz7iT9vZlMuMVSAUSkP3Ae\n8BJwhYi8oap7VXWdiDwKfK+q84N9zwF+Ejx0tlaxnD/H3rJ+FLyxrheRY4BPgXnAMGAk8D2wngS9\naIhIzSDlfCWwAMgWkU9UdXkQaF6hqnNEpDZwIzbmqU5VvxmKyKHAmUB3YB0wTkR+iz1cPsAeLCNI\n/PX0+zN+MqbEvZlsuMVSAVT1TexN72lgG3BT2Lb/hX60AVnAmqr+0QaMU9Xzgx9tV+AzoLmq7sLe\nWi8QkZ6BG6Qu0DgBMhL8cAFqA98B27EHI6r6X1WdE3zeF8i4I0E/3E3A0cChgQvsSWwKh57Av4Hz\nkuR6+v0ZJ1Lo3kwqXLGUQ3hQLjxwqKrLVHUtVsL/LBFpG76PiLQXmztmKDYgtCrlDH3eEbS7Ym+v\nC4C7A/fDF5h5/4CIPA9cDnxcxXKGrlUtEakfrB4DTANOFpGHROT4YJ/DReQhzB0yswrkrBP2OSRz\nfeAF4FQAVZ0BfA20x9xj46n66xlJzmS8P8PlDHlKkur+jHQtk/HeTAlU1ZdSFiyL5kmgQxn7NAce\nxuaLCV8/Cpt3pmGi5QRqAvWCz8cBU4HOQbsjNiNnRhLI+TRWM+5uYCswHagZbJscXNOquJ5DMXdM\nvwjbrgT+BBwfdj3fD8lVxdezVDmT7P4sU85kuD+jkDEp7s1UWTzGUgIREezN9FHgCOBOzL+KiNQD\nfgN8pqqvBYdswt5khovI3cGxI4E7VHVPMsipZs7nA6jqPBHZBzQL2l9SlNGUMDmBDzF3x3vAcuAu\noBs2+dvbwHWquqOy5AzkORv4JRZ73Iq5kRCRQwI5c4H/YeNALgbmhF3Po4BPK/t6RiHnr0iC+zMW\nORN8f5Yl4y+B2STBvZlyJFqzJdMC1A7+NgJeDGs3DNunddjnUEmc7phL5Gvg0iSWsxOWGfQ60CxJ\n5GwT9nkoMCB0bNDuVgVy1sD84+8BFwXrxgAPhcnSKmz/bsC/gInAFOAdoEkSypmo+7OiclbZ/VkB\nGRNyb6bq4hYLhT7fB4HaIvIyloa5Fsv5vx/oIiKfAf9Re6Oqqar5qqqBX/YhYKyqjkhGOYPtp2Eu\nkX+p6sNJJmcdtaylv4f6UAuG/j1S/5UgZz3gOVU9M2zzK8AgEamvFkxeGybb5yJyLXAOFmx+Mknl\nTNT9GZOcVOH9GauMIlZTrarvzVSn2iuWwFXzf9hb9ZuY+TsNy/zYgOX7/xILHk4AjlXVfBHpB6xV\n1fkiMlAr361QUTn7Y+b7B0C2qm5PQjn3BtdzlaourEz5SpHzDWCkiLyEPYB3YL+NHUC+iNRQywIL\nuU7WqurnWCZYMsu5LkH3Zyxy9sMsqUq/PysiY6CczwZWV9W9mRYk2mRK9ILdZB8RBAexB+BvgBnY\nBGSnh+07BzgNCzYOpoygfhLJeRnQPgXkTPT17I8NdLw6aLcF8oAfhB1T3+WMu5xVdn+myrVMh6Xa\npxur5e9/g42iBXtzWosFaQULOCMirYClWMmGfFWdrKrLU0DOSar6dQrImejrOR1TdCeLSBtVXYm9\n1Z4ddswulzPuclbZ/Zkq1zIdqPaKJeAloLuItApuvqVYNs0fgG4iMgFz6yxU1Y0uZ1rKuR2YD+wF\nmotIXewNd38C5QvhcsaPVJAx5XHFYkwHNhK8yajqx8BALH30F8A/sYyQPyRMQsPljC8l5ZwN9MBc\nJXuAccBbCZOuCJczfqSCjClPtQ/eA6jqWhH5L/CgiHwJzAJ2YWmFqOr7iZQvhMsZX0qRczewL9j+\nciLlC+Fyxo9UkDEd8KmJwxCRAcClWBn0J1T1iQSLFBGXM764nPElFeRMBRlTGVcsJRCrUqpq80Ik\nLS5nfHE540sqyJkKMqYqrlgcx3GcuOLBe8dxHCeuuGJxHMdx4oorFsdxHCeuuGJxHMdx4oorFsdx\nHCeuuGJxHMdx4oorFqfaIiKHich7IrJIRD4XkduC9U1E5G0R+UJE3hKRxsH6ziLykYjsFpE7SvQ1\nWkTyRGR+OefsLyJLRGSpiNxZYtsfg3MuFJGfl3J8lojMDPabFMwvgog8KiJzRGR2sG3TwVwbxzkY\nfByLU20RkR9gJdLnikhDbIrkC4BrgY2q+nDw8G+iqneJSHOstPqFwGZVfTSsr1OB7cB4VT22lPPV\nwApy9gXWYOVEBqvqEhEZgs1HMiTY91BV3RChj+eBF1T13yLyFDBXVZ8usc/Pge6qen3Fr47jVBy3\nWJxqi6quU9W5weftwGLgMEy5jAt2G4cpElR1vap+RoTqt6o6Hdhczil7AstUdYXaLISTg3MB3IRV\nfw71d4BSCTgT+E+YbBdF2OcyYFI5sjhOpeGKxXEwFxM2N/xMoKWq5oEpH6B5nE7TBvg2rL0qWAc2\nT81gEZklIq+JSMcIMjbDLKWCsONbl9inLZCFzeXuOAnBFYtT7QncYC8AtweWS2X5hyXCutC56gI7\nVbUHNq3AMzEeH2Iw5ipzH7eTMFyxONWaIPj9AjAhrGR6noi0DLb/APiugn0fFhZQH4pZGG3DdjkM\ni7ZHZcIAAAEpSURBVLWAWTIvAqjqS0C3oI83g+P/HrjHmgSxmpLHhxiMu8GcBOPzsTjVnWeARar6\neNi6V7CJoB4CrgEizdERyXqQ8PWqugo4vnCjSE2go4i0w6ZrHozFQwD+iwX1x4hINhbkR1X7lzjH\ne1i59+dLyiYinYFMVZ1Z1hd2nMrGs8KcaouI9AE+AD7HXEoK/A74BPgXcDiwErhUVbcEVsynQAZQ\ngGWBdVHV7SIyEcgGmgF5wHBVHRPhnP2BxzFvwWhVfTBY3xh4DrNotgE/U9XPIxzfHgv6N8Hma78y\nSARARIYDdVX1dwd/dRyn4rhicRzHceKKx1gcx3GcuOKKxXEcx4krrlgcx3GcuOKKxXEcx4krrlgc\nx3GcuOKKxXEcx4krrlgcx3GcuPL/1MrQZAAzRpgAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\ngg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = goes_lightcurve.peek()\n", "fig = lyra_lightcurve.peek()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Accessing and using the data\n", "\n", "More custom plots can be made easily by accessing the data in the lightcurve functionality. Both the time information and the data are contained within the lightcurve.data code, which is a pandas dataframe. We can see what data is contained in the dataframe by finding which keys it contains and also asking what's in the meta data: " ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Index([u'CHANNEL1', u'CHANNEL2', u'CHANNEL3', u'CHANNEL4'], dtype='object')\n" ] } ], "source": [ "print(lyra_lightcurve.data.keys())" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OrderedDict([('SIMPLE', True), ('BITPIX', 8), ('NAXIS', 0), ('EXTEND', True), ('ORIGIN', 'ROB'), ('TELESCOP', 'PROBA2'), ('INSTRUME', 'LYRA'), ('OBJECT', 'EUV solar irrad'), ('OBS_MODE', 'standard'), ('DATE', '2015-12-16'), ('DATE-OBS', '2011-06-07T00:00:00.010000'), ('DATE-END', '2011-06-07T23:59:59.988995'), ('DATASRC', 'Redu'), ('LEVEL', '2'), ('ALGOR_V', 'EDG=2.1 BSDG=1.0'), ('FILENAME', 'lyra_20110607-000000_lev2_std.fits')])\n" ] } ], "source": [ "print(lyra_lightcurve.meta)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that the meta data information is stored in something called `OrderedDict`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "

On Dictionaries

\n", "
\n", "
\n", "We can create keyword-data pairs to form a dictionary (shock horror) of values. In this case we have defined some strings and number to represent temperatures across europe\n", "\n", "
\n",
    "temps = {'Brussles': 9, 'London': 3, 'Barcelona': 13, 'Rome': 16}\n",
    "temps['Rome']\n",
    "16\n",
    "
\n", "\n", "We can also find out what keywords are associated with a given dictionary, In this case:\n", "\n", "
\n",
    "temps.keys()\n",
    "dict_keys(['London', 'Barcelona', 'Rome', 'Brussles'])\n",
    "
\n", "\n", "\n", "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can use these keys to plot specific parameters from the lightcurve, Aluminium is 'CHANNEL3' and Zirconium is 'CHANNEL4'. These measurements are taken on a instuments which detect events at different energy levels." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\nmfr/BSN49lhZRqgAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(1, figsize=(10,5))\n", "plt.plot(lyra_lightcurve.data.index, lyra_lightcurve.data['CHANNEL3'], color='b')\n", "plt.plot(lyra_lightcurve.data.index, lyra_lightcurve.data['CHANNEL4'], color='r')\n", "plt.ylabel('Flux (Wm^2)')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Analysing Lightcurve data\n", "\n", "We can asses the degree to which the lyra curves correlate with each other:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 1.01648024]\n" ] } ], "source": [ "cross_correlation = np.correlate(lyra_lightcurve.data['CHANNEL3'],\n", " lyra_lightcurve.data['CHANNEL4'])\n", "print(cross_correlation)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pandas\n", "\n", "In its own words Pandas is a Python package providing fast, flexible, and expressive data structures designed to make working with “relational” or “labeled” data both easy and intuitive. Pandas has two forms of structures, 1D series and 2D dataframe. It also has its own functions associated with it.\n", "\n", "It is also amazing.\n", "\n", "Lightcurve uses these in built Pandas functions, so we can find out things like the maximum of curves:\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GOES max values 2011-06-07 06:41:24.118999 2011-06-07 06:39:00.761999\n", "LYRA max values 2011-06-07 06:44:47.915000 2011-06-07 06:44:44.464880\n" ] } ], "source": [ "# max time argument taken from long and short GOES channels\n", "# max_time argument taken from channel 3 & 4 LYRA channels\n", "max_t_goes_long = goes_lightcurve.data['xrsb'].idxmax()\n", "max_t_goes_short = goes_lightcurve.data['xrsa'].idxmax()\n", "\n", "max_t_lyra_al = lyra_lightcurve.data['CHANNEL3'].idxmax()\n", "max_t_lyra_zr = lyra_lightcurve.data['CHANNEL4'].idxmax()\n", "\n", "print('GOES max values', max_t_goes_long, max_t_goes_short)\n", "print('LYRA max values', max_t_lyra_al, max_t_lyra_zr)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So lets plot them on the graph" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnIAAAE4CAYAAADfBR4CAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xm8nPPd//HX52SXEFlEIpFFpXa3ULtyiCXKnaQtEbqp\npTSorUr8aE6q7oreqL1K6ka1QdBaUkI51iAEDVmkCFllERHZc87n98f3GjNnMufk5JyZuWZ5Px+P\necx1XfO9rvnMnHPmfOa7mrsjIiIiIsWnIu4ARERERKRplMiJiIiIFCklciIiIiJFSomciIiISJFS\nIiciIiJSpJTIiYiIiBSpnCdyZjbIzGaY2QdmdmmGx1ub2Tgzm2Vmk8ysd8pjI6Pj083s6JTjs83s\nXTN728zeSDk+yszmmtmU6DYo169PREREJC4tc3lxM6sAbgEGAvOByWb2D3efkVLsdOBzd+9vZicB\n1wLDzWxXYBiwC9ALeNbM+nuY+K4WqHT3ZRme9np3vz6HL0tERESkIOS6Rm4/YJa7f+Lu64FxwJC0\nMkOAe6Lt8cAR0fZgYJy7b3D32cCs6HoARv2xW5ZiFxERESlouU7kegJzUvbnRscylnH3GmC5mXXO\ncO68lHMdeNrMJpvZmWnXO8fM3jGzu8ysY5Zeh4iIiEjByXUil6l2LH1NsPrKNHTuQe7+LeA7hMTt\nkOj4bcA33H0vYCGgJlYREREpWTntI0eogeudst+L0Fcu1Rxge2C+mbUAOrr7MjObGx3f6Fx3Xxjd\nLzazRwlNri+7++KU8ncCj2cKysy0wKyIiIgUDXfP2HUs1zVyk4EdzayPmbUGhgOPpZV5HPhJtH0i\n8Fy0/Rhh0ENrM+sH7Ai8YWZbmFkHADNrDxwNvBftd0+57vcSxzNxd93SbqNGjYo9hkK7ldp7QhVQ\n1fTff3AcSu59ydZN74veF70nel9ycWtITmvk3L3GzM4FJhKSxrHuPt3MRgOT3f0JYCxwn5nNApYS\nkj3cfZqZPQhMA9YDI9zdzWxb4NGoVq0lcL+7T4ye8loz24swqnU2cFYuX5+IiIhInHLdtIq7PwXs\nlHZsVMr2WsI0I5nO/R3wu7RjHwN71VP+x82NV6SU+ajm9SpwB6pGbbKciIjkh1Z2kK9VVlbGHULB\n0XuSQVWV3pd66H3JTO/LxvSeZKb3ZfPZptpeS5GZeTm+bhERESk+ZobHNNhBRERERHJEiZyIiIhI\nkVIiJyIiIlKklMiJlBEbbdjopi9HbAZVVpW9gEREpFmUyInIZqlidNwhiIhIRImciIiISJFSIici\nIiJSpJTIiYiIiBQpJXIiIiIiRSrna62KSOHQWqsiIqVFS3SJiIiIFDAt0SUiIiJSgpTIiYiIiBQp\nJXIiIiIiRUqJnIiIiEiRUiInUka01qqISGlRIicim0VrrYqIFA4lciIiIiJFSomciIiISJFSIici\nIiJSpHKeyJnZIDObYWYfmNmlGR5vbWbjzGyWmU0ys94pj42Mjk83s6NTjs82s3fN7G0zeyPleCcz\nm2hmM83saTPrmOvXJyIiIhKXnCZyZlYB3AIcA+wGnGxmO6cVOx343N37A38Aro3O3RUYBuwCHAvc\nZmaJ4Xa1QKW7D3D3/VKudRnwrLvvBDwHjMzNKxMpTj7Km7Xeam0tfHnhKObMyWJQIiLSZLmukdsP\nmOXun7j7emAcMCStzBDgnmh7PHBEtD0YGOfuG9x9NjAruh6AkTn21GvdAwzNxosQKVfuYcqRxK2i\nAjreUEXv3nWPX3IJPPlkKO8Ob74J8+fHHb2ISOnLdSLXE0j97j43OpaxjLvXAMvNrHOGc+elnOvA\n02Y22czOTCnTzd0/i661ENgmWy9EpKn+9re6Sc9zz8UdUVJtLfz5z7DzzrD11nXjTCRujfG//wvH\nHx/KV1TAvvtCz57hGpddBmvX5vZ1iIiUq1wncplmHk1v16mvTEPnHuTu3wK+A5xjZoc0PUSR3DGD\nU06pe2zgwGSilG/u8NRTyedv0QJOPx1mzoTly+s/79ln4Te/Sda4JW7z5sEFFzT8nGPGQNu2dRPE\nu+8OSaSIiDRPyxxffy7QO2W/F5De4DIH2B6Yb2YtgI7uvszM5kbHNzo3qm3D3Reb2aOEJteXgc/M\nbFt3/8zMugOL6gusqqrq6+3KykoqKyub9AJF6vPMM8nts84KCdzYsfD008njZiEhWr0a2rVr+Hor\nV0KHDnWPjR0LW2wBU6bAOedAnz4bnzdjBqxZAwMGbDrmt96CvfcO5e+7L9Sy9egRHhs4cOPy220H\nN9wQbum++CI0t/7whxs/dtpp4Qbwy1/CxRdD9+6bjk9EpBxUV1dTXV3dqLLm3vSOz5u8eEjMZgID\ngQXAG8DJ7j49pcwIYHd3H2Fmw4Gh7j48GuxwP7A/oUn1GaA/0A6ocPevzKw9MBEY7e4TzWwMYeDE\nmGiEbCd3vyxDXJ7L1y3lbc0aWLAAdtgh7NfWblz79uSTIUlKdeutMGcOXHNN8tjee4ckLdtatYL1\n62HVqk0nkNniDh9+CBMmwPnnZy7zq1+FGjwREUkyM9w9YztOThO56MkHATcSmnHHuvs1ZjYamOzu\nT5hZG+A+YACwFBgeDW7AzEYSRrWuB86PkrV+wKOEZtaWwP3ufk1UvjPwIKEm71PgRHf/IkNMSuQk\nZ1KTtv/931DblMnq1aE2bXMtXAh33BGuvWLFZp5cFYJr6shVMxhFFVVe1aTz0y1bBp07b3xcf54i\nIkmxJnKFSImc5Mpll9WtUdrUr9lbb4XmyWnT4Mgjw7GrroJhw+A734E2beCmmzI3a6arrYW5c2HJ\nEmjZMgxgaN26bhkb3fxEzrGsZ1qrV8P06bDPPsljjz4KQzXuXEREiVw6JXKSC7W1YfAAFG6NUqEm\ncgnuG4+UXbt244RURKScNJTIaYkukSy56qpw/69/xRtHMUsM/rjppuSxNm3gvPPii0lEpJCpRk4k\nCxI1STvvHJoIC1Wh18ilWrcuJHGp9GcrIuVINXIiOfbhh+H+wQfjjaOUtG4dEreXX04ei2PuPRGR\nQqYaOZEsSCQYZfFrVVUVbnmU2v8wsa+kTkTKhWrkRHJo8eJwn5jgtuTlOYmD0Gz9+ed190VERDVy\nIs2WqBmqqVGCkWsrVsBWW8E3vxmWFRMRKQcN1cjleokukZJ2xRXJbSVxubfllmXSfC0i0kiqkRNp\nhkRtnPpsiYhIrqiPnEgODBkS7idNUhInIiLxUCIn0kSPPRbuDzgg3jg2h422r+eSa9L5BlVWlb2A\nmmDt2uQAEwgxmcGXX8YXk4hIXJTIiTRBbW24z7Tge6mrYnSsz//cc7DDDmE7tSa0Y8d44hERiZMS\nOZEmSMxp9skn8cZRjt55B776qu6xE08M95afRSdERAqGRq2KbKYpU5LbHTrEF0e5+va3w31lZbif\nOxd69kzWzlVUwBdfqIZORMqDauRENtM++4T7L76IN45ydfDBcP/98MILYb9nz3C/Zk2yzNZbhznn\nRERKnRI5kc2QqPW58krV+MTFDE45JWwnmlQB2rQJAyG22irsb7WVmlpFpPRpHjmRzVBWa6rWJ4a1\nVjfXkUfCv/6V3F+7Flq3ji8eEZHm0DxyIlkwZ064f+WVeOOIXQEkcc89BxdcUP/jzz4b+s4ltGmT\nHGksIlJKVCMn0kgTJsBxx8G6ddCqVdzRlLfNqRm9+2447bTGlxcRKTQN1cgpkRNpJDWrFo5+/WDl\nSli0qHHl+/SBTz8N2/PnQ48euYtNRCTblMilUSInm2vxYujWDaZOhd13jzsaaYrUyYNXr4a2beOL\nRURkc6iPnEgzff/7od+VkrjilfrdrV27+OIQEcmmnCdyZjbIzGaY2QdmdmmGx1ub2Tgzm2Vmk8ys\nd8pjI6Pj083s6LTzKsxsipk9lnLsbjP7yMzejh7bM7evTsrFSy+FkZDFrhTWWm2O1AEPmppEREpB\nThM5M6sAbgGOAXYDTjazndOKnQ587u79gT8A10bn7goMA3YBjgVuM0ttHOF8YFqGp73Y3Qe4+97u\n/u+sviApS4l//qtXxxtHoYh7rdXmSCRviT5yFRVQUxNvTCIizZHrGrn9gFnu/om7rwfGAUPSygwB\n7om2xwNHRNuDgXHuvsHdZwOzouthZr2A7wB3ZXhONRdLVo0bB488oj5VpWT+fPjZz8J2Sy1UKCJF\nLNdJT09gTsr+3OhYxjLuXgMsN7POGc6dl3LuDcAlQKaGkd+a2Ttmdp2ZaZIIabYf/ADOOivuKCTb\n7rgDhg0L22awYUO88YiINEWuE7lMnXHSk6/6ymQ8bmbHAYvc/Z2oTGq5y9x9F2BfoAuwUZ88kc2x\nfn24v+OOeOOQ3HjggbBuK8Bhh6nPnIgUn1w3KswFeqfs9wLmp5WZA2wPzDezFkBHd19mZnOj4+nn\nDgH+28yOBdoBW5rZve7+Y3f/DMDd15vZ3cDF9QVWlTI7fWVlJZWVlU17hVLSFi8O90OHxhuH5M4p\np0D37jBwYOgzp2ROROJWXV1NdXV1o8rmdB65KDGbCQwEFgBvACe7+/SUMiOA3d19hJkNB4a6+/Bo\nsMP9wP6EJtVngP6pE8CZ2WGEwQ2Do/3u7r4wGhRxPbDa3S/PEJfmkZNGMYP33oPddos7kgJSBGut\nNkXqUCp9PIhIIWloHrmc1si5e42ZnQtMJDTjjnX36WY2Gpjs7k8AY4H7zGwWsBQYHp07zcweJIxM\nXQ+MaET2db+ZdSU0t74DnJ2TFyZlYdmycL92bbxxFJwSTOIgjE6uiDqbaGoSESkWWtlBpB6PPBIm\nAtavSvmoqak7ilU/exEpBFqiK40SORGpT20ttGgRtnfYAT78MN54RES0RJdIE5hBI/uaSgmpqEhO\n/vzRRzBpUrzxiIg0RImcSAaJ0aqdOsUbh8SjbVv44ouwfdBBcN558cYjIlIfJXIiGSQGOvzXf8Ub\nR7aV+1qrm6NjRxg/Pmzfcov6y4lIYVIfOZEykkjifFTTfv/NwCmvIZ1nngl3RYsBltHLFpECoj5y\nIpvpsMOS/aSkvN15Z3Lbml6ZKSKSE0rkRNLccgu8+CK0bh13JFIoUmvilMyJSCFRIieSZsKEcJ+Y\ngkIEwrQkCUrmRKRQKJETSTNqlKackI2ZwZo1dfdFROKmRE4khTsccAD07x93JLnho7zJAx0gamIc\nNSp7ARWZNm1g/frk/jXXxBeLiAho1KpIHY89BkOGhGY01bhIfdyT67I+8QQcd1y88YhIadMSXWmU\nyEl9Esmbfj1kU5Yuha5dw/ZVV8EVV8Qbj4iULk0/ItJI48fDmDFxRyHFoEsXmDIlbF95JRx1VLzx\niEh5Uo2ciEgzrFsX+s4lqFleRLJNNXIijfA//6N/wLL5WreuOwCiQp+qIpJH+sgRify//xd3BLmn\ntVZzo2VLTRosIvFoGXcAIoXi0Udh1aq4oyh8VYwGquIOoyCtW5dcEcQMNmzQxNIikluqkROJfPYZ\nDBsWdxRSzFq1gpqa5H5LfVUWkRxTIicCLFwIZ58dalBEmqOiYuNm1nXr4otHREqbEjkR4HvfC/dt\n28Ybh5QOdxg8OGy3aQNffVW3tk5EJBuUyImgtVUlN/7xD7joorC95ZZwzDHxxiMipUfzyIkAc+ZA\nt2515wOTelRVhZs02ltvwbe+ldzXx4+IbI5Y55Ezs0FmNsPMPjCzSzM83trMxpnZLDObZGa9Ux4b\nGR2fbmZHp51XYWZTzOyxlGN9zew1M5tpZn8zM3U1lk1atQp691azV6Mpidts++xTt5+cGXzySXzx\niEjpyGkiZ2YVwC3AMcBuwMlmtnNasdOBz929P/AH4Nro3F2BYcAuwLHAbWZ1Zmc6H5iWdq0xwHXu\nvhPwRXRtkQYlFjzfYot445DS1qpVWPUhoW9fePzx2MIRkRKR6xq5/YBZ7v6Ju68HxgFD0soMAe6J\ntscDR0Tbg4Fx7r7B3WcDs6LrYWa9gO8Ad6Vd6wjg4Wj7HuC72XspUqq++c24I5ByYRaSuUMOCfuD\nB2vyYBFpnlwncj2BOSn7c6NjGcu4ew2w3Mw6Zzh3Xsq5NwCXAF/3NDGzLsAyd098550LbJedlyGl\n7Ior1GdJ8scMXnopDIRIPabfQRFpilwncpm+a6Z/XNVXJuNxMzsOWOTu70RlEuUa81widbiH/nGz\nZ8cdiZSbwYPr9susqIBx4+KLR0SKU64HA8wFeqfs9wLmp5WZA2wPzDezFkBHd19mZnOj4+nnDgH+\n28yOBdoBW5rZve7+YzPrZGYVUa1cpuf6WlVKh+3KykoqKyub+BKlmC1aFO579264XKlIrLPqo5r2\nHccMRlFFlVdlMarylZg8ONG8evLJ0L9/GBwhIuWrurqa6urqRpXN6fQjUWI2ExgILADeAE529+kp\nZUYAu7v7CDMbDgx19+HRYIf7gf0JTarPAP1T5w0xs8OAi919cLT/APCIuz9gZrcD77r7HzPEpelH\nBIDTT4c//7l8mrWykcg5agfMhSeegPPPh48+gj32gHffVf85EQlim34k6vN2LjAReJ8weGG6mY02\ns+OjYmOBrmY2C7gAuCw6dxrwIGFk6gRgRCOyr8uAi8zsA6BzdG2Rej388KbLiOTD8cfDtGgc/tSp\nobZu/fp4YxKRwqcJgaWszZ4dKpf69Ys7kvxQjVxxSK2JW7oUOneOLxYRiV+sEwKLFLK+fcsniZPi\n4Q4//nHY7tIljHIVEclEiZyUrXXrkk1ZIoXmnnvg6qvD9qGHqr+ciGSmplUpWzfeCBdcoFbCzaa1\nVvNOTa0i5a2hplUlclK2Dj00NFnpV0GKQWoyN3s29OkTWygikmfqIyeSwWefQY8ecUch0jju8PLL\nYbtvX/3uikigRE7K1qefwuGHxx2FSOMdfHCyBnnhwlBLN2tWvDGJSLzUtCplq7Y2/CNUJ3IpRum/\nt/pIEyldaloVyaCiQkmcFC/3utOSmMGCBfHFIyLxUCInUkZstH09KXCTzjeosqrsBSTNcsghoWY5\nsVT0dtsl1w8WkfKgRE7K0pQp0K5d3FEUpypGxx2CpDCD55+HBx4I+9tuC6eeCjU1sYYlInmiPnJS\nlo46Cp59tvz6FWmJrtLmHroMJKxdC61bxxePiGRHVvrImVknM9vNzHYwM9XkSVHbeuu4IxDJPrPQ\n1JrQpg1cdFF88YhI7jWYkJlZRzO73MymAq8BdwAPAp+Y2UNmpskbpCiNHw9du8YdhUj2WVRh+utf\nh/0bbtCgHpFS1mDTqpk9A9wLPO7uX6Q9tg/wI2Cqu4/NaZRZpqZV+fhjaNkStt8+7kjyS02r5WXt\nWmjbNrn/7ruw557xxSMiTaMlutIokRNpBq21WnQeegiGDUvu6+NPpLg0O5Ezs1buvj7tWFd3X5Kl\nGPNKiZyIlCOt1ypSnJo82MHMDjezucB8M5toZn1THp6YvRBF8qemBpYtizsKkfxzTw5+6Ns3JHYb\nNsQakog006ZGn14LHOPu2wB/Ap4xswOix9R9VoqOWegb17lz3JGIxOO66+qObG3VCl57Lb54RKR5\nNpXItXb39wHcfTwwFLjHzL4LqG1SRKQIWdp4lQMPhAsvhDVr4otJRJpmU6NW3wSOd/eFKcd6AU8A\n33D3LXMfYvapj1z5Su0jpF8BkTCCe4cdkvuTJsEBB9RfXkTyrzkTAl8GbJt6wN3nAocB12QnPJH8\n+fhjWLECVq+OO5J4aK1VSdevX/hSc8EFYf/AAzXvnEgx0fQjImVE88hJQ159FQ4+OLlfU1N3yS8R\niUezl+gys6Oa8eSDzGyGmX1gZpdmeLy1mY0zs1lmNsnMeqc8NjI6Pt3Mjo6OtTGz183sbTObamaj\nUsrfbWYfRY9NMTNNfSlfW7RI+YdIQw46KPyNHHlk2G/RQiNbRQrdJhM5M/sJcHFTLh6tyXoLcAyw\nG3Cyme2cVux04HN37w/8gTBSFjPbFRgG7AIcC9xmoSptLXC4uw8A9gKONbP9Uq53sbsPcPe93f3f\nTYlbStO228Jdd8UdhUjhe+aZul96WrWC0aPji0dE6repeeQuB04FvtfE6+8HzHL3T6IJhccBQ9LK\nDAHuibbHA0dE24OBce6+wd1nA7Oi6+Huq6IybYCW1B1Bq4YA2cjSpeH+pJPijUOkmNTWws03h+2q\nqlA7t25drCGJSJpNJT2jgNNTEqfN1ROYk7I/NzqWsYy71wDLzaxzhnPnJc41swozextYCDzj7pNT\nyv3WzN4xs+vMrFUT45YSc+654X6rreKNQ6SYmIW/ndTBQW3aQM/0T3ERic2mErmfAuPNrGsTr5+p\nY156L6X6ytR7rrvXRk2rvYD9o2ZYgMvcfRdgX6ALsFGfPClPgwfDMcfEHUX8fJQ3eaADRM1to0Zt\nspyUlrZtw88+MXHw/PkhyVu/vuHzRCT3Wjb0oLv/1cwWAn8HDmnC9ecCvVP2ewHz08rMAbYnLAPW\nAujo7suipcG2b+hcd//SzKqBQcA0d/8sOr7ezO6mgb59VSmLfldWVlJZWblZL0yKR00NTJ0KTz0V\ndyQlIuVvR8rL/vuHptUdd4RPP4XWrcPxNWtCTZ2IZEd1dTXV1dWNKtuo6UfMbHd3f29zA4kSs5nA\nQGAB8AZwsrtPTykzAtjd3UeY2XBgqLsPj2rZ7gf2JzSpPgP0J9S0rXf35WbWDngauMbdJ5hZd3df\naGYGXA+sdvfLM8Sl6UfKyF13wZlnasSqSDa5152a5Omn4eij44tHpJQ1NP1IzueRM7NBwI2EZtyx\n7n6NmY0GJrv7E2bWBrgPGAAsBYZHgxsws5GEUa3rgfPdfaKZ7UEYHFER3R5w96uj8v8CuhKaZd8B\nzs7Uv0+JXHlp2xbWrlUiJ5ILl10GY8aE7S5dYNo06NYt3phESk2zEzkz2xr4MdCXlOZYd/9FlmLM\nKyVy5cUsNAGtXRt3JCKlqaYGWqZ11Fm2DLbeOp54REpNsycEBiYQkripwFspN5GC9/77sGBB3FGI\nlK4WLUKN99ixyWOdOmmpL5F8aGyN3BR33zsP8eSFauSkXGVjia5RVFHlVVmMSkrNnDnQO2WY29VX\nw+Ub9VYWkcbKRtPqhcBXwBPA1w1U7v55toLMJyVy5cMdVqzQ/HEJWmtV8unjj2GHHZL7L7wAhx4a\nXzwixSobTavrgN8Dk0g2q76ZnfBEcueMM6Bjx7ijEClP/frVzfkPOyx8GVizJr6YREpNg/PIpbgY\n2NHdl+QyGJFs+/Of445ARNzh7bdh76iDTrt24baqqWsGicjXGlsj9x9Af3JSlM46K+4IRGTAgJDQ\nJdY9Xr061M6df368cYkUu8b2kXsU2A14nrp95DT9iBSsxJQIU6aEfyKiPnJSONJHtL71VrLGTkTq\naqiPXGObVv8e3USKhhmMH68kLlVz1lmFKH+r0lqr0nzusGgRHH54mER4n330/UCkKRqskTOzocCr\n7r4ofyHlnmrkysOSJWGmec1lJVLY1q+HH/4wTCI8cWLc0YgUnuaMWv0h8LaZzTKz/zOzn5nZbtkP\nUSS71q+HbbaBRq45LCIxatUKPvkEnnkm7khEik+DiZy7n+DuPYGjgInAnsC9ZrbYzCbkI0CRphg2\nLNxXVsYahog00nnnhXuz5G3+/HhjEikGjeoj5+6zzawt0C66JbZFCtJPfwrvvadmVZFiMWTIxsd6\n9gz3tbX6WxapT4M1cmZ2uZk9bmavASOB1sAtwJ7ufng+AhTZXLW10LUrzJoVdyQi0lgdOoS/3dra\nMOhh+vTkYxUVIZH7wQ/ii0+kUG1qsMMMkktzvQq87u7L8xRbzmiwQ2lr0SL5z0Dq0lqrUmxuvhl+\nkWGiK/19Szlp8mAHd98ZOJqwHFcl8KiZvWFmd5rZT7MeqUgW1NbGHUFpq2J03CFIGTnvvJC0ffUV\njByZPG4G++4L774bX2wihaBREwIDmFlLYB/gUOAsoJ+7t8hhbDmjGrnS9vOfh9Uc9tor7kgKjyYE\nllLw1Vew5ZbJ/XPPDSPV//jH+GISyaUm18iZ2WAzu8bMXgIWAf8LdCWsvdo965GKNIN7SDS+/W0l\ncSKlrEOH8Pe+eHHYv+UWuOOO5GjXjz6KNz6RfNrUPHKnAkuAXwHd3f3b7n6pu//D3RfnPDqRzVAR\n/TbvuWe8cYhIfnTtGhK61avh9tuTx7/xDfjd7+Dpp+OLTSRfNjXYYZNtkI0pU2iKMGRphEMOgfbt\nC/TDe80aaNs27iia3rS6ahW4Yx3aq2lVCtrMmbDzznWP9eoFc+bEE49INjRnZYfnzew8M+uddsHW\nZnaEmd0D/CRbgYo0x8svF2AS9/HHoa2nXbtku8+wYbB0aSzh+CgPSVxiRMjtt9edgTX1tsMOye32\n7aFDh5DEQfL47ruH3uiffx7L6xFJt9NOyVq6Xr3Csblzk7+yU6bEG59Itm2qRq4tcBrwA6Af8AVh\nMuAWhJUebnX3d/IQZ1apRk7yYuxYOOOMhst8+ilsv33jr1lbG/4T9e8PHTs27py1a2HePOjRA/r0\nSXYsyrVrroELLoA2bfLzfCL1cE92vUg45RS4807YYot4YhLZHM2ZfmSNu9/m7gcDfYCBwN7u3sfd\nzyzGJE5K08svh7yhIFx9dfjqn0jinnsu/CdxD7MU33RTsmzv3smqgj//ORwzg6qqkLQtXx6G4CbK\ntGgR5lzYeuvMtWiDB298rG3b0Gloiy0yJ3GPPx6e5/PPk3GuWhXifOSR5KR86bfa2rBA5v33Z34f\nLrssPLcZTJ0ayuoLlMTAot4AkyfD4dFU9n/9a6hoNoN//jN8pxIpRo2efqTJT2A2CPgDIWkc6+5j\n0h5vDdxLmNpkCXCSu38aPTaSUCO4ATjf3SeaWRvgRcIqEy2B8e4+OirfFxgHdAKmAD9y9w0ZYlKN\nXInZfvvQfBL7j/W552DgwOT+smUh6crkuuvgl7/MT1wJV18Nl1wSVinPtpqakBC6h7kg+vSBdesy\nl7355jCHxI9/HGoKtf6S5Nmf/hS+I6X761/h5JPzH49IQxqqkctpImdmFcAHhJq8+cBkYLi7z0gp\n83NgD3cDZL6TAAAgAElEQVQfYWYnAd919+FmtitwP7Av0At4Fujv7m5mW7j7KjNrAbwC/MLd3zCz\nBwiJ3UNmdjvwjrvfkSEuJXIlxgz69Yt52oFZs+Cb3wzbt98eauRabmI54zVroHVrWLGi/oQP4J57\n4Igjkp1+Uq1bF66xaBG8/XZI0rbdNvTDO+SQjduU8qm2Fl59NUz01dDMrTfdBMOHwzbb5C82kcjL\nL4dpi9K98AIcemj+4xFJF2cidwAwyt2PjfYvAzy1Vs7MnorKvB4lZgvcvVt6WTP7J1Dl7q+nnLsF\noXbu5+4+2cwWA9u6e2303FXuPihDXErkSowZ/P3vmRfezovUTjjLl8NWW8UUSBFYtChM+vXBB/CX\nv2z8+NSpYRCFSJ4tXw6nnho+S1LdemuY6mTYsFjCEmnWqNXEBXbNcKyyEaf2BFIHfc+NjmUs4+41\nwHIz65zh3HmJc82swszeBhYCz0RJXBdgmbsnFmiaC2zXiBilyLmH7l+pLZp59/DD4f766ws6ibPR\n9vUUJE0636DKqpoXRLducOWVcN994Yf3wgt1H99jD/j97wugnVzKTceO8Oij4Vdvw4YwFx3AOefA\nSSeF2jn1ApBC09g2lwfN7FIL2pnZzcDvGnFepl/59E/n+srUe66717r7AEKT6/5RomkZztF/gjJg\nBitXhtneY/HZZ3DiiWH7wgtjCiJ/sr7W6qGHJgdQTJgQjv3qV6GGc+xYLZ4rsWjRIozXcQ+DvgFe\neincJ8YRbb89PPlkfDGKQBgs0Bj7A2OAV4EtCX3XDm7EeXOB1DnoehH6yqWaA2wPzI+aVju6+zIz\nmxsdr/dcd//SzKqBQe5+vZltbWYVUa1cpuf6WlVV1dfblZWVVFZWNuLliKSprYXu0Wp1iU97abpj\njw3/OQcPDqNpzzgj3KZP33iWV5E82W67ZAVxTU0Yp3TppWGA1fHHJ8tdeCGMGZObsURSXqqrq6mu\nrm5U2Ub1kYtGll4NHAV0AK5w93GNOK8FMJMw2GEB8AZwsrtPTykzAtg9GuwwHBiaNthhf0KT6jNA\nf6ALsN7dl5tZO+Bp4Hfu/s9osMMj7v5ANNjhXXffaBll9ZGTrEm0s0yYEJKQAtfklR0S5xv5W9lh\n3ryNB3ds2BCqSkQKwCefhF/TgzNUa8yYEebUVlIn2dDsPnKE0aarCSNIDwFONrPxmzop6vN2LmHy\n4PeBce4+3cxGm1nie8xYoKuZzQIuAC6Lzp0GPAhMAyYAI6LsqwdhxYl3gNeBp939n9G1LgMuMrMP\ngM7RtaWE1daG5KKhAZE5Mz76E9h226JI4opOz54hYZw6FY45Jhxr2RLefz/euEQiffrAQQclp1U8\n55xkBf3OO4fB5Ilm2OXLwyB1kWxrbI3ct9z9zbRjP3L3+3IWWQ6pRq50DBsGDz0U5rLt1CnPT56o\njSui36WiqpFLd9xxyT50a9ZoxQgpaJMmhSSvPrNnh0RQpDGyUSO3yMx6p96AFzZ5lkiOzYhmJMx7\nEnfmmeF+5sw8P3HzfL3WalPPd2DUqOwFtDmefDLM1QdhiTKRAnbggXUXQvnTn+o+3rdvsrbu44/D\nrDwiTdHYGrmpJEeStiWsuzrT3XfLbXi5oRq50pFYRKB16zw+aaImrkOHMJGv5Ndbb8Fjj8HoLI+e\nFcmTTY2y/93v4Oc/b/xyylL6sj4hsJntTeiztokVwQuTEjlpstRJpNatU0/mOCQGQSQ6SK5aFX4O\n+llIkXr++bBwS32OPDKsB7uphWKkdGWjabUOd59CGE0qEpv+/WHkyDw+4RdfJLfdlTjEpWc0p/jy\n5SGRa98+2atcc85JETr88LrNsH/5C+yf8h/22WfDx02iKVbdQyVVY5tWL0rZrQD2Brq4+zG5CiyX\nVCNX/JYuDUvmdO0Kixfn6UkTtXHr1+urcSE44YTkihqpDjkkOXOrSAn4979DU+urr9Zf5v/+D378\nY608UaqyUSO3ZcqtDfAkENeqliIMHRru85bEvfVWuL//fiVxhcA9JHEnnRS2V65MLo328svR8Fp9\nWZPSsOee8MoryRq7lSvhj2kzpJ56algMJVFrZxbm1JbS16Q+csVONXLF7+OPYcGChof3Z1URTjWS\nSTamHxlFFVVelcWommDIkDDgYdYs2HHH5PHFi8Nargm33RaqMkRK3Nix4U/isccaLnfJJXDRRWH6\nS9XeFY8mD3Yws8dpYL1Sdx/c/PDyT4lccbvoIqisDKs45cWECWEOs9Gj4de/ztOT5kZRzyOX6t57\n4Z574F//yvz40KHwj38k9z/9NCyMKVImVq8OX3aPOy45TVN9rrsujKI99lj9mRSq5iRyhzV0YXcv\nyrnklMgVrzffhH33Ddt5+xGWSG0clFAi1xiLFoVqh4SVK2GLLeKLR6QA3HNP+AzdrRGTh3XtCkuW\nhNuWW+Z5miepo6FEblOdfT52909zEJNIk7wQfXXI2+DEDRvC/c035+kJJWu6dQsJ5913w2mnhdGt\nX30V7kXK1E9+Eu7Tv4vddhv813+FsUIJS5aE+65d67/ezJmhR8MBB2gZ5LhsarDD3xMbZpZheJhI\n/mzYAIceGpoM8ta3IzHFyNln5+kJJet++lOoqgrbHTrAlCmxhiNSiEaMgIMPrjsNinuY8/zUU2Gn\nnTKft9NOIflr2TJ8Luet37J8bVOJXOq/yx1yGYjIprRqBfvtB23b5ukJ168P9wcdpJGqxW7UqDDs\nD2CffdTLW6SROnQIldozZmyc5M2bF1pHDjgglAG49NLkXN2ZbjvvDJdfDh9+GPrwSfNtqo/cFHff\nO3272KmPXPH5z3/CBMAnnAAPPZSnJ/3Wt8K0I4lPJQmqqpI1XMXmq69CZ5+E1avz+M1ApPRl46Py\npJPgkUfCd+np0+H228No227dkhMjl5vmDHaoAVYSaubaAasSDwHu7ltlOda8UCJXXD7/HLp0gVtv\nDdX/eVNCgxwkhXuYcCvhgw/CtwQRabZNfWy6w8KF8OSTcMEFcM45cO212Xnud98N/fw++QTeeAO+\n+93S6beX9bVWi50SueKS+GDIa8XY3LlhHP7UqbD77nl6Usmr66+Hiy8O2w8+CCeeGG88IiVgzZqw\nhFi2Pqs3bAjNuh06QL9+8NvfwhVXhGXNnn++edfebTd4/3248ELo3h2qq8N8fLfdFhodUpuE46ZE\nLo0SueKxZAlss03YzuuPbO+94e23VRtX6lJXKz/22DBnoIgUrQULoFMnOOWU8F2tXz84/3y48cYw\nKOPll7P3XPffDz/4QVhl4+yzYdw46NMn1AMMGhRqA9u1y85zKZFLo0SuOHz8MeywQ0jmunTJ85Or\nWbV8LFsGnTsn99UnUqTsrFsH06aFj4K//z3MkDBgADz7LBx5ZPaeZ999YfLkZI3ioYfCiy8mHx84\nMMxz/pvfQO/ecEy0on2PHkrk6lAiVxxiy6VeeSV8dVu4sO6EslK6amrqjkyePx969IgvHhEpKon/\nUzNnhibaCy6AM84IlfwffxzWvf3v/w4rE11/fegbeOutm/MMSuTqUCJXHMzCCNUTTsjzEz/8MNx3\nX/haVmJKZq3VXEms4Qpw/PFadVxE8m7BgjB/H4QFac47D155RYlcHUrkCtuDD4bh57G0cCVGNI4Z\nA7/6VZ6fPPfKaomupnrrrTD1DITE7uGHS2fom4gUJfWRS6NErrDFMko1YeRIuOaa0GEisapDCVEi\n10ipTa3dusFnn8Ubj4iUtYYSuU2t7CCSNytWhGbUk04Ka6rG0t/8hRdC36gSTOJkM7RokVzQd9Gi\n8MuYtwV+RUQaL+frDpnZIOAPhKRxrLuPSXu8NXAvsA+wBDjJ3T+NHhsJnAZsAM5394lm1isq3x2o\nAe5095ui8qOAM4FF0eUvd/encvwSJQvcYatoeunYBg3W1MCkSfCUfmWEqPrRk7+MLVrA2rXQunW8\ncYmIpMhpjZyZVQC3AMcAuwEnm9nOacVOBz539/6EhO/a6NxdgWHALsCxwG1mZoSk7iJ33xU4EDgn\n7ZrXu/ve0U3/kYvATTeFyfUhdEeKbeaHxGKBRx8dUwBSkNzh+98P223alH6zsogUlVzXyO0HzHL3\nTwDMbBwwBJiRUmYIMCraHg/cHG0PBsa5+wZgtpnNAvZz99eBhQDu/pWZTQd6plxTE0AViRUrkrVw\nUAD/H3/5yzBatYTnEGtq37ivz3egatQmy5Wc8ePDauDXXhsGw7z9Nuy1V9xRiYjkvI9cT2BOyv7c\n6FjGMu5eAyw3s84Zzp2Xfq6Z9QX2Al5POXyOmb1jZneZWccsvAbJstpaeOmlZBLXqVMBJHEAy5fD\nP/8ZdxSFr6oq7gjiMWZMqDKGMFPo7ber35yIxC7XiVymqo30f9n1lWnwXDPrQKjBO9/dv4oO3wZ8\nw933ItTaXb/ZEUtOuIc5Vs1CV6Odo8bwd9+Fzz+PNzYgTNYD8Je/xBuHFLbvfS8MfgAYMSKsxysi\nEqNcN63OBXqn7PcC5qeVmQNsD8w3sxZAR3dfZmZzo+MbnWtmLQlJ3H3u/o9EAXdfnFL+TqDe2Tyr\nUmoVKisrqaysbPSLksarqYErr4Tf/a7u8W22KZBauISLLgr3JdysKlmyzTbhF3uLLZLfTtavr7sy\nhIhIM1RXV1NdXd2osjmdRy5KzGYCA4EFwBvAye4+PaXMCGB3dx9hZsOBoe4+PBrscD+wP6FJ9Rmg\nv7u7md0LLHH3i9Ker7u7L4y2LwT2dfdTMsSleeRyZO3asCDCkCHJxYIHDw6T5U+aBAccEG989TIL\nqyt/9FHckUgxOeGEZHPro4/C0KHxxiMiJSnWCYGj6UduJDn9yDVmNhqY7O5PmFkb4D5gALAUGO7u\ns6NzRxJGta4nOf3IwcCLwFRCU6sTTTMSJXh7AbXAbOAsd99oJk8lctmxbBnceCP85CdhcftUxx6b\n7G5W8G/1qlXQvj3MmAE77RR3NFJsUmtxBwyAKVPii0VESpJWdkhTyolcbS28+CIcemgYXPf738NB\nB8HWW4eKg3POgS5dQvJ1772hm89tt8GGDWH6tOOPD9dZuTLkNgDjxsHw4XWfZ+BA+Ne/Nn7+55+H\nqVPh3HOLqJVyyhS46qpQo1LitNZqDrz2GvTvD127Jo+V6MogIhIPJXJpCjWRW7UKvvgi9LcfPTqs\nCrTrrjAnZezupElw4IH1X2PixOQ0aGvWQNu2G5dZsQK23LLusfnzYbvtkvuzZ0PfvmH7yitDngMw\ndiycfjpUV4eath13DAshFPVSlGahHXjVqrgjyTkt0ZVDiXV6E2bPhj59YgtHREqHlujKwCx569Yt\n3O+xR93jFRXhs3nyZDjjjLqPmYWppcxCbVXi2PPPJ7e/+GLjczp1Sm6PHFm3bPv20LNnmK5q1aqw\nWlRqEgfw8ccbv5bbbw/3I0bAkUeGqdDGjAlzlz7/fGgxnDcPXn45JHEdOoTXlXrr0aPufp8+ye3f\n/Ca5fdpp4f6ww6CyEnr1KvIkLpGQvPtuvHFI8UusBJEYydq3L/zxj7GGJCKlT8OsgLPPDjVOBx4I\n772XPH7CCXW/YKe7885w/8ADyWOdOye3ly7d+JwjjoBHHgnbvXolj2+1VZhr9KmnYMKEsAqQ1VPx\ncfLJmV9Dwg9/mNxOHYybWuMmkZkzw/2OO8Ybh5SOTz+F99+H3XeHn/883DZsKPJvPCJSqNS02oBl\ny0JilhiFKSXopZdCFeWAAXFHkhdqWs2jr76q24fhpZfgkEPii0dEipaaVpsoseKAkrgSdt55obO6\nSLYl+jAkBtF8+9shE96wId64RKSkKJGT8vbuu3Xbn0ucj/JmrbfqDowqw7VWm2PoUHj11eR+q1Zw\nxRXxxSMiJUVNq1K+Ev2Y9Lsg+fLww6HzbcKCBdC9e3zxiEhRUNOqSCZ/+QscdVTcUUg5+f73wxeH\nCy4I+z16ZJ4jSESkkVQjJ+Xriy/CxK3dusUdiZSjV16pO/jhpptCn00RkTSqkRPJ5NxzYeHCuKOQ\ncnXwwaF27sYbw/4vfhEGQ3z5ZbxxiUhRUSIn5evAA5OTt4rE5Re/gJqa5ASQHTvCWWep76aINIoS\nOSlPS5bA9OlhjpkyYqPt67nkmnS+QZVVZS8gCSoqwpIsiaVb/vSncGzJknjjEpGCp0ROypO7Ztpv\noipGxx1C6erbN/xuJpZq2WYb6NcPamtjDUtECpcSOSlP//43fO97cUchktntt8OsWWF79uzwpeOG\nG5TQichGlMhJeTILN5FCteOOsH493H132L/oopDQ3XVXvHGJSEFRIiflaeBAWLky7ihEGtayJZx6\namhuHTMmHDvzzGjRWw2GEBElclKOVq+GXXbRZMBSXH71K1izJrlfUaGETkSUyEmZue022GKLMGK1\nZcu4o8k7rbVa5Nq0CT+EyZOTxxIJnWqYRcqSVnaQ8pLaL06/A1LsXnwRDjssuX/rrWHEa4W+o4uU\nEq3sIJLQpUu4P+64eOMQyYZDDw1fSB55JOyfc04YEPHaa/HGJSJ5o0ROykdtLVx8cVhj9YEH4o5G\nJHu++92Q0J17btg/8MBQ+/zqq/HGJSI5p0ROysedd8K6dWEJpPbt445GJPtuvjl8YTnhhLB/8MEh\noUsdJCEiJSXniZyZDTKzGWb2gZldmuHx1mY2zsxmmdkkM+ud8tjI6Ph0Mzs6OtbLzJ4zs2lmNtXM\nfpFSvpOZTTSzmWb2tJl1zPXrkyIyfnyYl0uklJnBQw/VnTy4XbtwfOHC+OISkZzIaSJnZhXALcAx\nwG7AyWa2c1qx04HP3b0/8Afg2ujcXYFhwC7AscBtZmbABuAid98VOBA4J+WalwHPuvtOwHPAyFy+\nPikyy5YlayrKlNZaLSOJqUkWL04e69EjHJ87N764RCSrcl0jtx8wy90/cff1wDhgSFqZIcA90fZ4\n4IhoezAwzt03uPtsYBawn7svdPd3ANz9K2A60DPDte4Bhmb/JUlRevBBeOst2GuvuCMpelprtch0\n7RoSujlzkse23z4kdKtWxReXiGRFrhO5nkDKpwdzSSZdG5Vx9xpguZl1znDuvPRzzawvsBeQGKLV\nzd0/i661ENgmGy9CSsBJJ8UdgUi8evUKCd3Spclj7duHhG7duvjiEpFmyXUil6kNJ33yrvrKNHiu\nmXUg1OCd7+6aCVPqN3VquNcalSLQuXNI6BYsgJ12CsfatAkJ3eefxxubiGy2XE9tPxfonbLfC5if\nVmYOsD0w38xaAB3dfZmZzY2Ob3SumbUkJHH3ufs/Usp8ZmbbuvtnZtYdWFRfYFVVVV9vV1ZWUllZ\nuZkvTYrG+PGwzTZw+ulxRyJSOLp3hxkzwioR++0XjiXmWVy9Gtq2jS82kTJXXV1NdXV1o8rmdGWH\nKDGbCQwEFgBvACe7+/SUMiOA3d19hJkNB4a6+/BosMP9wP6EJtVngP7u7mZ2L7DE3S9Ke74xhIET\nY6IRsp3c/bIMcWllh3KyalUYrdpRg5gTAx2aukyXGTha37MkVVfD4Ycn9y++GMaMCRMMi0isGlrZ\nIedLdJnZIOBGQjPuWHe/xsxGA5Pd/QkzawPcBwwAlgLDo8ENmNlIwqjW9YQm1IlmdjDwIjCV0NTq\nwOXu/lTUt+5BQk3ep8CJ7v5FhpiUyJUL97Bc0YoV0KFD3NGUhqqqcJPSNG9e6E+XasMGJXQiMYo1\nkStESuTKTG2t1p4U2Vwffww77FD32KxZsOOO8cQjUsa01qqUrz//GQ46KO4oRIpPv34bz0PXv39o\nX089JiKxUiInpW277WCffeKOQqR4pc5Dd8MN4Vi3biGhe/PNeGMTETWtSokbNiz88+mZPn2hiDTJ\nihWw1VZ1j73wAhx6aDzxiJQBNa1KeVq8OKw52bp13JGIlI4ttww1dOvWwY9+FI4ddliooTv77DAw\nQkTyRomclK5jjgn322iBjwSttSpZ06oV3HtvSOq+/e1w7I47wnEzWLIk3vhEyoQSOSlNtbXw9tsw\naFDckZQcrbUqG3nxxfA39/TTyWPbbBMSut/+Nr64RMqAEjkpTYMHh/sJE+KNQ6RcmMHRR4caurlz\nYdSocPzKK8Njhx4algUTkaxSIiel6ckn4Ygjwj8QEcmvnj3DpNHucFG0AM9LL4VR5GZwzTVQUxNr\niCKlQomclJ6JE8P9k0/GG4eIwHXXhYRu9uzksZEjoWVLOOUUWLMmttBESoESOSk9iUEOWvRbpHD0\n6RMSutpa+P3vw7G//Q3atQu1dO+8E298IkVKiZyUlgcfDPfvvhtvHAXKRzk+qulzKLqT7Psk0hRm\n8Mtfhl+mDz+ENm3C8QEDYI894o1NpAhpQmApHX//O3z3u2FbP1+R4rFhQ5i2BGDlytAM27VrWEFC\nRBqcEFiJnJSOxMCG2loNchApNqtWQfv2Gx8fMwbOPRe22CL/MYkUCK3sIOWhujp8s1cSJ1J8UhO1\n11+HnXYK25deGhI8s5DQrV8fT3wiBUo1clIapkwJ66r+5z9xRyIi2fTpp2GgRLp99w0TEHfqlP+Y\nRPJMNXJS+nr3hp/9LO4oRCTbevcOfV7dYdo0OOSQcHzyZOjcOdTUmcFf/qK56aQsKZGT0rD77rB8\nedxRFDyttSpFbZddwsTC7qFP3WGHJR/70Y/C3HRmcNVV8cUokmdK5KQ0XHJJWAJIck5rrUpBaNcu\n9It1h7Vr4c03k4/9+tfJmrr/+R+NYpeSpj5yUvxWrICtttKHdSMkauOaOpecGTim91oK29tvhybY\nVavqHj/wQPjrX6Fv31jCEmkq9ZGT0taiBTz8cNxRiEihGDAgzEfnDm+8AT/4QTg+aRL065esrXv5\nZX0pkaKnRE6K3803w9SpcUchIoVo333DQAh3+Oor+OMfk499+9tQURGSupYtwwhZkSKjRE6K35df\nhg9jEZGGtG8PZ50Vkrp165JL+kEY8dqnT7K2bu+9YfXq+GIVaaSc//czs0FmNsPMPjCzSzM83trM\nxpnZLDObZGa9Ux4bGR2fbmZHpxwfa2afmdm/0641yszmmtmU6DYot69OYuceOjOfc07ckRQFrbUq\nEmnVCk48MTm1SU0NjByZfPztt8MkxWahD+4118CaNfHFK1KPnA52MLMK4ANgIDAfmAwMd/cZKWV+\nDuzh7iPM7CTgu+4+3Mx2Be4H9gV6Ac8C/d3dzewQ4CvgXnffM+Vao4AV7n79JuLSYIdS8be/heaS\nM8+MOxIRKSXLl8PgwfDii5kff+gh+N731BogeRHnYIf9gFnu/om7rwfGAUPSygwB7om2xwNHRNuD\ngXHuvsHdZwOzouvh7i8Dy+p5Tq3PVE7mzk0uti0iki0dO8ILLyRr7D75BM44I/n4iSeGgVaJptjh\nw2HevLDWs0ge5TqR6wnMSdmfGx3LWMbda4DlZtY5w7nzMpybyTlm9o6Z3WVmHZscuRS+VavgV78K\nH6giIrnUuzfceWcysfvoI+jSJfn4Aw9Ar17J5G6vvcJKFGqOlRzLdSKXqXYsvU2zvjKNOTfdbcA3\n3H0vYCHQYBOrFLn99gv3qYtti4jkQ79+sGRJMrFbuhRuuSX5+Lvvwm67hYmLE7V2ZjBjRhhoIZIl\nLXN8/blA75T9XoS+cqnmANsD882sBdDR3ZeZ2dzoeEPn1uHui1N27wQer69sVVXV19uVlZVUVlY2\ndGkpNJ9/Du+/Dx9/HD4cRUTi1LlzGHSVGHhVUxOaZk87LTTLJuyyy8bn3nFH6OerzzKJVFdXU11d\n3aiyuR7s0AKYSRjssAB4AzjZ3aenlBkB7B4NdhgODE0b7LA/oUn1GaLBDtF5fYHH3X2PlGt1d/eF\n0faFwL7ufkqGuDTYodiddFKYOkA/x82SjZUdRlFFlVdlMSqRMjJ1apgCZdKkhsvttBP89rdw3HGh\nVk/KWmyDHaI+b+cCE4H3CYMXppvZaDM7Pio2FuhqZrOAC4DLonOnAQ8C04AJwIiUJO6vwKvAN83s\nUzP7aXSta83s32b2DnAYcGEuX5/E5L33QhI3bVrckZQlrbUq0gx77AGvvppsknUPU51cmjY718yZ\nof9vYgqUxO2kk+D112H9+njil4KjtValuNTWhs7EoNq4JtBaqyJForY2jMp/+eXkEmMN2W8/GDIE\nhg6FXXfNfXySVw3VyCmRk+Jy3XXwy1+GuePat487mqKjRE6kyC1ZArNnh6XHNsd114X+eccco7nv\nipASuTRK5IrU8uWw9dbw2muw//5xR1OUlMiJlLBVq+DJJ+GSS8KX3aVLG3de587w/e/DYYfBAQdA\n377Jlg8pCErk0iiRK0LuyW+Ra9dC69bxxlOklMiJlKlVq0K/u1tvhfvv3/z57fbfH044IQzCOPZY\naJnrSS8klRK5NErkilBiWP7SpeHbo8SnqircRKS0zJ8PTz8NTzwBjzzStGusXg1t22Y3LlEil06J\nXJEZNiysa/j003D00XFHIyJSnlasCC0iDz4If/wj7Lxz+GxOtdde8MorDfdhbts21O4NHw677x5W\nzUjQXHoZKZFLo0SuiJxxBowdC0cdBRMnxh2NiIjUZ9o0WLgQBg5MHquoyM76swMHhpUydt8d9tkH\n9twz2Y+vDJI/JXJplMgViTlzwje1I46Af/0r7mhERGRTEknV/PnQo0fDZZctg7feCmUfeigMZnv0\nUVi5Mjux9OwZEr6ddoLttgvz8tXUhDVx27QJfX2LJAlUIpdGiVwRSB3coJ+ViEhxMIPnnoPDD8/N\n9VetCkueTZ4Mn34aWmreeiusftHYUbpNMWgQfPObIQncbTfYZpuQHHbvHl5zjqd0USKXRolcgaup\nSY6Imjcv/LGIiIg0hXv4v/LBB2Gd7oULQ5edffaBBQvgnnvC4/l25plhmpinn4auXeG//zvcDxgQ\nEsR27WD77aFtW6yiQolcKiVyBe7Xv4arrgpV7EOHxh1NSdFaqyIiTZRoiv3yy5CAffhh2F68GF56\nCcqdvJEAAAnmSURBVCZMCEliDhgokUulRK6AXXEFXH013HEH/OxncUdTcjSPnIhIgVq3Lqyhu3Zt\n6D84fXroL/jGG9j11yuRS6VErkDtuGP4hgNKFHJEiZyISPFpqI+cFlyT+L3+esgQPvwQLr9cSYKI\niEgjaY0NiU9i7dSEe++FH/0ovnhERESKjGrkJP9mzAg1cIkkbtCgUAunJE5ERGSzqEZO8mPJkjDv\nTrra2qKZkLEUNLVv3NfnO1A1KjvBiIhIs2mwg+TOP/8J3/nOxsf//e8woWKOJ1AUEREpBRrsILnl\nDv/5D5x6aqhdS9xSk7jXXw/l3GGPPZTEiYiIZIGaVktVosaxpibMTdOyZUievvwyDDKYNy8cmzMn\nzCS9aFFIvjp2DDNdb9gQjr31FnTpAnfeuXnPf9FF4dazZ/Zfm4iIiADlnMjNmwfduoXJ91q0CLea\nmnC/cmXou7XVVmE/mxJJFYRkaeXKcF9bG2aKfu21sFzHZ5+FNeS6d8/ZTNHN0q0brFkDhxwSVl8Y\nPBi23TbuqERERMpK+faRa2zhmhqYORN23TWXITXPLruE9dhWroTrrw+LCa9bFxKrLbcMiWK7dqFm\nrWdPWLEC+vcPx9esCY+1apVcfiSR0CbeJQ1GEBERiU1DfeTKN5GbNCnUKi1alKxdWrcuJDDvvw97\n7hk65H/rW/Dmm+HEHj3ggANC06RZOK9fv3BOly5wwQWhZmqffWD27NCU+d57sNde4fiaNeHcHj2S\nTZ29ekGHDuH6HTtC+/axvS9S+rTWqohI8Yk1kTOzQcAfCAMrxrr7mLTHWwP3AvsAS4CT3P3T6LGR\nwGnABuB8d58YHR8LHA985u57plyrE/AA0AeYDQxz9+UZYmrcqNUPPoCddgrbmiZDSoCW6BIRKT6x\njVo1swrgFuAYYDfgZDPbOa3Y6cDn7t6fkPBdG527KzAM2AU4FrjN7OtM6u7omukuA551952A54CR\nzXoB22wTmiYTTY4lrrq6Ou4QCo7ek8z0vmSm9yUzvS8b03uSmd6XzZfrOSD2A2a5+yfuvh4YBwxJ\nKzMEuCfaHg8cEW0PBsa5+wZ3nw3Miq6Hu78MLMvwfKnXugcY2qzoO3UKozzLhP6ANqb3JDO9L5np\nfclM78vG9J5kpvdl8+U6kesJzEnZnxsdy1jG3WuA5WbWOcO58zKcm66bu38WXWshkGEpAREREZHS\nkOtELlN7ZHrnmvrKNOZcERERkbKV08EOZnYAUOXug6L9ywBPHfBgZv+MyrxuZi2ABe7eLb2smT0F\njHL316P9PsDjaYMdpgOV7v6ZmXUHnnf3XTLEpYRQREREikZ9gx1yPSHwZGDHKOlaAAwHTk4r8zjw\nE+B14ETCIAWAx4D7zewGQpPqjsAbKecZG9faPQacCoyJrvmPTEHV92aIiIiIFJOcNq1Gfd7OBSYC\n7xMGL0w3s9FmdnxUbCzQ1cxmARcQRp7i7tOAB4FpwARgRGLOEDP7K/Aq8E0z+9TMfhpdawxwlJnN\nBI4Ersnl6xMRERGJU1lOCCwiIiJSCnI92EFyxMwGmdkMM/vAzP5/e2cXakUVxfHfn7hWgmhoH5BJ\nRQ8p9KVo9SDcHlIpxHqrMD8ItMLXUqEHiRKCIrv0koSGRD30iWVBUIIQJFl6FZHbh1FoEQQVKD34\nsHrYe7jTYeacOXeu09ln1g+GO3fvvfbs/b9r1t3nnH3WbM2VPy9pQtJJSVtKbD+V9Kek/R3leyWd\nlnRU0reSbi2xXx+vOyFpXa58saTjsW7XdM21H6aqi6QFko7EeZ+QtDlXV2leksYkfS/pmKTbc+WF\nejVJHX+J7WZJOiNpLFd2MPaZ+cu8EtvtUZdTklb0GlOTdIzh6Vh2KM7nqKSzkt4vsa11Hwyqv9TU\npC2xpbIuLYstfflLbDuUsaVRzMyPxA7CAvwHwhMsRoBjwM2E/YFv5NrNK7G/B7gf2N9Rvhd4sMe1\nrwB+BGYDc7LzWHcYWBbPPwFWpqILYb/oSDyfCfwEXFN1XoSk1Qfi+Z3AV730SkGXXN0u4E1gLFd2\nELijx7UXAkejvtfHcahsTIOgS0ebd4G1030fDKq/1NEk1rUqtlT0ldbFlqr+EuuHLrY0ffg7cmnS\nmWj5bULy4yeAZ7NGZvZHkbGZHQTOlfTdyydWAp+Z2d9m9hdh/+MqhW8JzzKz7Asp+6ibkLl/pqyL\nhcTTF+KvlxO/SNPHvNbEOix8s3q2pKsp0av2TPujlr9IWgJcRRh7J738ZQ3Fib2rJAu/2HQdg6RZ\nhATlHxbY1r0PBtVf6mjSpthSWZeWxZa+/GWIY0uj+EIuTcqSJd8IPCTpa0kHJN0E4WaRtLti38/F\nt+9fkjRSYF927WsJCZ8zipI/X2xq6SJpvqRx4GfgBQtJpUvnJWmzpE0l187aTSWx9XQzZV0kCXgR\neIri3I574kcfz2QFklZL2tHj2lWShV9seo3hAcIj/85B/fsgEX+po0kvhim29KVLi2JLZV2GPLY0\nii/k0qQsWfKlwD9mthR4HdgDYGbfmNmmAptOtlnIu7cUmAtsLbAf5ATOtXQxszNmdhsh1c0GSVd2\n6RMze83MsmDd2U4Mhy5PEj7WOVvQ1yNRr+XAcklro/1HZrajx7UHWZeMhwnvXoaKmvdBIv5SR5Nu\nDGtsyeiqSwtjS0Y3XYY5tjSKL+TS5AywIPf7fODXWP4egJl9ABRuKC7DJh9vdoGwp2VZn9e+rqC8\nSaZFl/hq+SQhiFSdV1m7sjE1SR1d7ga2SDpNePX8qKSd0ea3+PM88Bbl/pKaLig8JnApcKBP29T9\npY4mpQxxbOlLlxbFliq6DHNsaZbp2GjnR7MHcAmTmzlnEDZzLgR2Ahtjm1HgcJc+RglPxsiXZRtw\nBbwM7Cywy2+wzc7nxLrDhBtOhI27q1LRhfDW+2W5OU4Ai6rOC7iPyQ3Jd1G8Ifk/eqWgS0c/64kb\nkmOfc+P5CPAOsKnAZhFhQ/IM4AYmNyQXjmkQdIl1jwN7u9jWug8G1V/qaJLrY5SWxJaKvtK62NKP\nv8S2QxVbmj7+9wH4McU/XNjUOkHY4Lktls0GPgaOA18Ct8TyJcDunO0h4HfgPPALcG8s/xwYj/b7\ngJkl9hvidb8D1uXKlwAnYt0rKelCSCA9HgPDMeCxXvMCNucDDPBqDCDjwOJeeqWgS0cf+WA7EzgS\ntTpB+Oec5aVcTXjsXma3PepyCljRbUyDoEss/yI/1um4D1Lxl5qatCq2VNGFFsaWqv6SKx+62NLk\n4QmBHcdxHMdxEsX3yDmO4ziO4ySKL+Qcx3Ecx3ESxRdyjuM4juM4ieILOcdxHMdxnETxhZzjOI7j\nOE6i+ELOcRzHcRwnUXwh5ziO4ziOkyi+kHMcx3Ecx0mUfwEUnRNRM3T5QAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# create figure with raw curves\n", "# max lines\n", "plt.figure(1, figsize=(10,5))\n", "plt.plot(lyra_lightcurve.data.index, lyra_lightcurve.data['CHANNEL3'], color='b', linestyle='--')\n", "plt.plot(lyra_lightcurve.data.index, lyra_lightcurve.data['CHANNEL4'], color='r', linestyle=':')\n", "plt.ylabel('Flux (Wm^2)')\n", "\n", "# max lines\n", "plt.axvline(max_t_lyra_al, color='b', linestyle='--', linewidth=2)\n", "plt.axvline(max_t_lyra_zr, color='r', linestyle='--')\n", "plt.axvline(max_t_goes_long, color='g', linestyle='--', linewidth=2)\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reading in Tablulated data\n", "\n", "Now we have seen a little of what Pandas can do, lets read in some of our own data. In this case we are going to use data from Bennett et al. 2015, ApJ, a truly ground breaking work. Now the data we are reading in here is a structured Array.\n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "data_ms = np.genfromtxt('data/macrospicules.csv', skip_header=1, dtype=None, delimiter=',')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, the above line imports information on some solar features over a sample time period. Specifically we have, maximum length, lifetime and time at which they occured. Now if we type `data[0]` what will happen?" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(27.022617088020528, 13.6, '2010-06-01T13:00:14.120000')" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_ms[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is the first row of the array, containing the first element of our three properties. This particular example is a stuctured array, so the columns and rows can have properties and assign properties to the header. We can ask what the title of these columns is by using a `dtype` command:" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "('f0', 'f1', 'f2')" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_ms.dtype.names" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Unhelpful, so lets give them something more recognisable. We can use the docs to look up syntax and change the names of the column lables.\n", "
\n", "
\n", "
\n", "

Google your troubles away

\n", "
\n", "
\n", "So the docs are [here](http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.genfromtxt.html). Find the syntax to change to names to better to represent maximum length, lifetime and point in time which they occured.\n", "
\n", "
" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 27.02261709, 36.20809658, 62.93289752, 38.97054949,\n", " 53.58942032, 30.6401107 , 34.62323773, 25.76578452,\n", " 42.55229885, 43.78096232, 32.07478058, 46.32895236,\n", " 41.81948071, 36.15639728, 27.76449747, 28.36338204,\n", " 46.24264885, 31.66963787, 37.98509124, 41.10763789,\n", " 36.31153664, 63.94515322, 33.20603032, 45.12547627,\n", " 45.59984305, 44.13747471, 39.05135355, 42.70997285,\n", " 22.00943851, 45.70103315, 40.61460622, 53.58952877,\n", " 33.55068528, 34.12704163, 28.84501455, 33.50857898,\n", " 33.04991294, 43.14772776, 64.7263967 , 58.4113328 ,\n", " 26.51897508, 38.16891551, 53.91004427, 38.66085552,\n", " 27.32363074, 34.82350067, 49.29044968, 44.55780869,\n", " 30.01404343, 33.79223954, 37.02116485, 28.72061961,\n", " 29.21863497, 55.72629452, 54.57759503, 45.33884703,\n", " 50.69244379, 33.25632341, 37.73000783, 26.92855622,\n", " 52.49096835, 63.49966052, 36.13680388, 61.63887853,\n", " 44.4662083 , 29.52452638, 43.23969955, 41.65026311,\n", " 52.16598344, 42.67412936, 41.81910611, 34.49493977,\n", " 35.78882006, 45.59188682, 39.26216985, 35.10139159,\n", " 38.14667516, 46.09430341, 50.44398261, 46.41930315,\n", " 43.99951416, 31.10082419, 45.43674785, 38.78414481,\n", " 36.03072435, 39.52956702, 28.94948495, 36.16831602,\n", " 54.90157329, 49.35714339, 45.9207131 , 36.33602522,\n", " 47.81325513, 30.02565172, 22.4376017 , 25.77671126,\n", " 22.09750136, 51.10043568, 52.13571082, 35.70298287,\n", " 34.73403574, 40.74477779, 38.34861845, 22.82335936,\n", " 27.30678373, 27.42834706, 23.27232254, 29.83005671,\n", " 36.08121426, 50.04105014, 33.14161453, 29.2621644 ,\n", " 26.55148777, 36.15467202, 26.06766701, 27.37302807,\n", " 30.56321175, 26.83143584, 37.11331356, 30.79380358,\n", " 32.89179738, 28.89730285, 33.0527976 , 25.57069612,\n", " 44.20414097, 28.68038005, 25.11419547, 23.78793994,\n", " 26.60399083, 36.72695416, 44.35566025, 41.37507269,\n", " 31.08485597, 39.71759583, 47.36372856, 42.72431429,\n", " 30.49807689, 37.4604915 , 39.65240926, 37.26885237,\n", " 41.50380626, 29.8313709 , 43.02721083, 33.23966863,\n", " 28.73848974, 41.28193776, 44.80971415, 50.10792885,\n", " 37.79992144, 54.59165111, 31.60523881, 36.31252683,\n", " 44.25298922, 51.02121661, 34.20351256, 39.24552078,\n", " 43.71189706, 36.40843056, 34.02240796, 39.27977921,\n", " 54.66979248, 65.7384905 , 53.01413049, 34.17031127,\n", " 47.00239714, 17.32168005, 44.68585728, 29.44389171,\n", " 40.80497941, 34.6572607 , 42.62526043, 37.36422913,\n", " 31.17786476, 28.12867393, 30.40163346, 30.51526168,\n", " 35.9876376 , 23.08802156, 40.76121653, 21.0614616 ,\n", " 37.30928468, 33.74493288, 23.37625041, 23.26285756,\n", " 21.90478831, 31.46692441, 24.02288547, 32.79270784,\n", " 30.07317007, 29.7039241 , 34.13671581, 50.58575418,\n", " 34.97447555, 24.51408577, 48.26530071, 41.1800655 ,\n", " 38.59687577, 28.32914516, 26.86404795, 29.09491492,\n", " 22.1925731 , 26.6573342 , 34.45652454, 29.52441516,\n", " 26.05330498, 16.91583914, 24.09964195, 27.83367552,\n", " 21.83934023, 24.08621306, 21.4539239 , 50.23369701,\n", " 22.20207407, 24.5242085 , 28.29914756, 25.40145715,\n", " 35.59277051, 32.59279863, 31.24484412, 46.45496714,\n", " 25.81684312, 23.82663323, 25.75515713, 27.49177445,\n", " 38.48352531, 29.50744816, 54.12496571, 40.63961711,\n", " 37.23678458, 34.68878712, 31.37594022, 26.97844296,\n", " 38.23975554, 38.90287314, 24.01076136, 37.26779816,\n", " 35.0705135 , 29.1850186 , 40.49388844, 33.4466624 ,\n", " 28.94498308, 22.75986112, 32.27371125, 27.51808194,\n", " 45.9195814 , 37.40509992, 36.5449928 , 44.1242809 ,\n", " 41.54289686, 40.40254961, 33.47264368, 34.01641674,\n", " 37.52700525, 44.02589254, 40.08500945, 29.29270305,\n", " 41.57391536, 44.2470371 , 55.54916983])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_ms.dtype.names = ('max_len', 'ltime', 'sample_time')\n", "data_ms['max_len']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### DataFrame\n", "\n", "Now a pandas DataFrame takes two arguments as a minimum, index and data. In this case the index will be our time within the sample and the maximum length and lifetime will be our data. So lets import pandas and use the dataframe:\n", "\n", "Pandas reads a dictionary when we want to input multiple data columns. Therefore we need to make a dictionary of our data and read that into a pandas data frame. First we need to import pandas.\n", "\n", "
\n", "
\n", "

Dictionaries

\n", "
\n", "
\n", "So we covered dictionaries earlier. We can create keyword data pairs to form a dictionary (shock horror) of values. In this case \n", "\n", "
\n",
    "temps = {'Brussles': 9, 'London': 3, 'Barcelona': 13, 'Rome': 16}\n",
    "temps['Rome']\n",
    "16\n",
    "
\n", "\n", "We can also find out what keywords are associated with a given dictionary, In this case:\n", "\n", "
\n",
    "temps.keys()\n",
    "dict_keys(['London', 'Barcelona', 'Rome', 'Brussles'])\n",
    "
\n", "\n", "\n", "
\n", "
\n", "\n", "First, let's import Pandas:\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "Index([u'2010-06-01T13:00:14.120000', u'2010-06-01T12:58:02.120000',\n", " u'2010-06-15T12:55:02.110000', u'2010-07-07T12:23:50.110000',\n", " u'2010-07-07T13:28:50.120000', u'2010-07-15T12:12:02.130000',\n", " u'2010-07-15T12:19:02.110000', u'2010-07-24T12:09:50.120000',\n", " u'2010-08-01T13:27:14.120000', u'2010-08-07T12:37:44.120000',\n", " ...\n", " u'2014-11-01T12:29:31.130000', u'2014-11-15T13:28:19.140000',\n", " u'2014-12-01T13:05:55.120000', u'2014-12-01T13:46:55.140000',\n", " u'2014-12-07T12:20:55.140000', u'2014-12-07T13:11:07.120000',\n", " u'2014-12-15T12:07:19.130000', u'2014-12-15T12:41:19.130000',\n", " u'2014-12-15T13:13:19.130000', u'2014-12-24T13:14:55.120000'],\n", " dtype='object', length=259)" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "\n", "d = {'max_len':data_ms['max_len'], 'ltime':data_ms['ltime']}\n", "\n", "df = pd.DataFrame(data=d, index=data_ms['sample_time'])\n", "\n", "df.index" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Datetime Objects\n", "\n", "Notice that the time for the sample is in a strange format. It is a string containing the date in YYYY-MM-DD and time in HH-MM-SS-mmmmmm. These datetime objects have their own set of methods associated with them. Python appreciates that theses are built this way and can use them for the indexing easily. \n", "\n", "We can use this module to create date objects (representing just year, month, day). We can also get information about universal time, such as the time and date today.\n", "\n", "NOTE: Datetime objects are NOT strings. They are objects which print out as strings.\n", "\n" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2016-01-15 10:46:44.996775\n", "2016-01-15 10:46:44.996924\n", "When is coffee? 2016-01-15 10:46:44.997269\n" ] } ], "source": [ "import datetime\n", "print(datetime.datetime.now())\n", "print(datetime.datetime.utcnow())\n", "\n", "lunchtime = datetime.time(12,30)\n", "the_date = datetime.date(2005, 7, 13)\n", "dinner = datetime.datetime.combine(the_date, lunchtime)\n", "print('When is coffee? {}'.format(datetime.datetime.now()))\n", "\n", "\n", "\n", "#dt_obj = datetime.datetime.strptime()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looking back at when we discussed the first element of data, and the format of the time index was awkward to use so lets do something about that. " ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'2010-06-01T13:00:14.120000'" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.index[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is a string and python will just treat it as such. We need to use datetime to pick this string appart and change it into an oject we can use.\n", "\n", "[To the Docs!](https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior)\n", "\n", "So we use the formatting commands to match up with the string we have." ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2010-06-01 13:00:14.120000\n", "\n" ] } ], "source": [ "dt_obj = datetime.datetime.strptime(df.index[0], '%Y-%m-%dT%H:%M:%S.%f')\n", "print(dt_obj)\n", "print(type(dt_obj))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now the next logical step would be to make a for loop and iterate over the index and reassign it. *HOWEVER* there is almost always a better way. And Pandas has a `to_dateime()` method that we can feed the index:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ltimemax_len
2010-06-01 13:00:14.12013.60000027.022617
2010-06-01 12:58:02.1208.40000036.208097
2010-06-15 12:55:02.11024.19983362.932898
2010-07-07 12:23:50.11022.99966738.970549
2010-07-07 13:28:50.12021.79983353.589420
2010-07-15 12:12:02.13017.40016730.640111
2010-07-15 12:19:02.11012.80000034.623238
2010-07-24 12:09:50.12014.20000025.765785
2010-08-01 13:27:14.12024.40000042.552299
2010-08-07 12:37:44.12015.40000043.780962
2010-08-15 13:10:32.12015.19983332.074781
2010-08-24 12:51:44.12018.59983346.328952
2010-08-24 13:22:20.12015.20000041.819481
2010-09-01 12:43:44.12018.80016736.156397
2010-09-15 12:21:20.12017.20000027.764497
2010-09-15 12:26:08.12020.20000028.363382
2010-09-15 12:33:44.12018.80016746.242649
2010-09-15 13:06:32.13018.99983331.669638
2010-09-24 12:36:56.12018.40000037.985091
2010-10-15 12:32:08.12017.79983341.107638
2010-10-24 12:37:08.13020.39950036.311537
2010-11-01 12:43:08.13026.59983363.945153
2010-11-01 12:55:20.13015.99983333.206030
2010-11-07 12:25:20.12020.00000045.125476
2010-11-07 13:18:08.12012.00000045.599843
2010-11-15 12:10:08.13015.00000044.137475
2010-11-15 12:14:44.14015.19983339.051354
2010-12-01 13:45:20.14022.40000042.709973
2010-12-07 12:09:08.12012.80000022.009439
2010-12-15 12:17:08.13025.40000045.701033
.........
2014-08-01 12:55:31.13015.39983334.688787
2014-08-07 12:13:31.13018.80016731.375940
2014-08-15 12:09:31.12016.60000026.978443
2014-08-15 12:39:07.12022.00000038.239756
2014-08-15 13:28:55.12021.40000038.902873
2014-08-24 12:36:43.13017.60033324.010761
2014-08-24 13:04:55.13025.80000037.267798
2014-08-24 13:31:19.12016.20016735.070513
2014-09-01 12:31:07.13015.20016729.185019
2014-09-01 12:49:31.13035.60033340.493888
2014-09-07 13:13:43.12014.60000033.446662
2014-09-07 13:26:55.12013.20000028.944983
2014-09-07 13:48:19.13018.79983322.759861
2014-09-15 12:44:43.12015.00033332.273711
2014-09-15 13:24:55.14018.40000027.518082
2014-09-24 12:48:19.13019.20000045.919581
2014-10-01 12:41:07.13021.00000037.405100
2014-10-01 12:58:19.12013.20000036.544993
2014-10-07 12:39:55.13021.80000044.124281
2014-10-24 12:10:43.13018.39983341.542897
2014-11-01 12:29:31.13021.60000040.402550
2014-11-15 13:28:19.14010.79983333.472644
2014-12-01 13:05:55.12014.40000034.016417
2014-12-01 13:46:55.14015.40000037.527005
2014-12-07 12:20:55.14019.39966744.025893
2014-12-07 13:11:07.12013.20000040.085009
2014-12-15 12:07:19.13013.40000029.292703
2014-12-15 12:41:19.13013.20000041.573915
2014-12-15 13:13:19.13017.80016744.247037
2014-12-24 13:14:55.12016.99966755.549170
\n", "

259 rows × 2 columns

\n", "
" ], "text/plain": [ " ltime max_len\n", "2010-06-01 13:00:14.120 13.600000 27.022617\n", "2010-06-01 12:58:02.120 8.400000 36.208097\n", "2010-06-15 12:55:02.110 24.199833 62.932898\n", "2010-07-07 12:23:50.110 22.999667 38.970549\n", "2010-07-07 13:28:50.120 21.799833 53.589420\n", "2010-07-15 12:12:02.130 17.400167 30.640111\n", "2010-07-15 12:19:02.110 12.800000 34.623238\n", "2010-07-24 12:09:50.120 14.200000 25.765785\n", "2010-08-01 13:27:14.120 24.400000 42.552299\n", "2010-08-07 12:37:44.120 15.400000 43.780962\n", "2010-08-15 13:10:32.120 15.199833 32.074781\n", "2010-08-24 12:51:44.120 18.599833 46.328952\n", "2010-08-24 13:22:20.120 15.200000 41.819481\n", "2010-09-01 12:43:44.120 18.800167 36.156397\n", "2010-09-15 12:21:20.120 17.200000 27.764497\n", "2010-09-15 12:26:08.120 20.200000 28.363382\n", "2010-09-15 12:33:44.120 18.800167 46.242649\n", "2010-09-15 13:06:32.130 18.999833 31.669638\n", "2010-09-24 12:36:56.120 18.400000 37.985091\n", "2010-10-15 12:32:08.120 17.799833 41.107638\n", "2010-10-24 12:37:08.130 20.399500 36.311537\n", "2010-11-01 12:43:08.130 26.599833 63.945153\n", "2010-11-01 12:55:20.130 15.999833 33.206030\n", "2010-11-07 12:25:20.120 20.000000 45.125476\n", "2010-11-07 13:18:08.120 12.000000 45.599843\n", "2010-11-15 12:10:08.130 15.000000 44.137475\n", "2010-11-15 12:14:44.140 15.199833 39.051354\n", "2010-12-01 13:45:20.140 22.400000 42.709973\n", "2010-12-07 12:09:08.120 12.800000 22.009439\n", "2010-12-15 12:17:08.130 25.400000 45.701033\n", "... ... ...\n", "2014-08-01 12:55:31.130 15.399833 34.688787\n", "2014-08-07 12:13:31.130 18.800167 31.375940\n", "2014-08-15 12:09:31.120 16.600000 26.978443\n", "2014-08-15 12:39:07.120 22.000000 38.239756\n", "2014-08-15 13:28:55.120 21.400000 38.902873\n", "2014-08-24 12:36:43.130 17.600333 24.010761\n", "2014-08-24 13:04:55.130 25.800000 37.267798\n", "2014-08-24 13:31:19.120 16.200167 35.070513\n", "2014-09-01 12:31:07.130 15.200167 29.185019\n", "2014-09-01 12:49:31.130 35.600333 40.493888\n", "2014-09-07 13:13:43.120 14.600000 33.446662\n", "2014-09-07 13:26:55.120 13.200000 28.944983\n", "2014-09-07 13:48:19.130 18.799833 22.759861\n", "2014-09-15 12:44:43.120 15.000333 32.273711\n", "2014-09-15 13:24:55.140 18.400000 27.518082\n", "2014-09-24 12:48:19.130 19.200000 45.919581\n", "2014-10-01 12:41:07.130 21.000000 37.405100\n", "2014-10-01 12:58:19.120 13.200000 36.544993\n", "2014-10-07 12:39:55.130 21.800000 44.124281\n", "2014-10-24 12:10:43.130 18.399833 41.542897\n", "2014-11-01 12:29:31.130 21.600000 40.402550\n", "2014-11-15 13:28:19.140 10.799833 33.472644\n", "2014-12-01 13:05:55.120 14.400000 34.016417\n", "2014-12-01 13:46:55.140 15.400000 37.527005\n", "2014-12-07 12:20:55.140 19.399667 44.025893\n", "2014-12-07 13:11:07.120 13.200000 40.085009\n", "2014-12-15 12:07:19.130 13.400000 29.292703\n", "2014-12-15 12:41:19.130 13.200000 41.573915\n", "2014-12-15 13:13:19.130 17.800167 44.247037\n", "2014-12-24 13:14:55.120 16.999667 55.549170\n", "\n", "[259 rows x 2 columns]" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.index = pd.to_datetime(df.index)\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Much easier. Note that the format of table has now changed and are pandas specific datetime objects, and looks like this:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2010-06-01 13:00:14.120000\n" ] } ], "source": [ "print(df.index[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This means we can bin data according to time" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "54\n" ] } ], "source": [ "len_bins = pd.groupby(df['max_len'], by=[df.index.year, df.index.month])\n", "print(len(len_bins))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we have used the groupby command to take the `'max_len'` column, called as a dictionary key, and create bins for our data to sit in according to year and then month. \n", "\n", "The object `l_bins` has `mean`, `max`, `std` etc. attributes in the same way as the numpy arrays we handled the other day." ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2010 6 42.054537\n", " 7 36.717821\n", " 8 41.311295\n", " 9 34.696942\n", " 10 38.709587\n", " 11 45.177555\n", " 12 40.924916\n", "2011 1 41.170836\n", " 2 38.385196\n", " 3 37.007258\n", " 4 45.966302\n", " 5 39.049844\n", " 7 45.736577\n", " 8 42.089144\n", " 9 37.181781\n", " 10 45.276066\n", " 11 39.070391\n", " 12 34.882456\n", "2012 1 50.059810\n", " 2 32.477849\n", " 3 39.154133\n", " 4 32.305885\n", " 5 31.951032\n", " 6 30.973616\n", " 7 28.897303\n", " 8 30.068358\n", " 9 36.644022\n", " 10 39.539804\n", " 11 36.201343\n", " 12 35.001790\n", "2013 1 45.718231\n", " 2 33.958883\n", " 3 44.252989\n", " 4 41.490083\n", " 5 38.047579\n", " 6 53.229354\n", " 7 44.728946\n", " 8 33.382734\n", " 9 37.055785\n", " 10 31.258302\n", " 11 28.063602\n", " 12 32.474516\n", "2014 1 42.680747\n", " 2 26.620170\n", " 3 25.922509\n", " 4 31.924611\n", " 5 27.203932\n", " 6 30.948541\n", " 7 38.049466\n", " 8 33.752406\n", " 9 32.567724\n", " 10 39.904318\n", " 11 36.937597\n", " 12 40.789644\n", "Name: max_len, dtype: float64\n", "2010 6 18.655367\n", " 7 10.618364\n", " 8 5.440305\n", " 9 6.979722\n", " 10 3.391356\n", " 11 10.337633\n", " 12 11.664923\n", "2011 1 13.310975\n", " 2 10.294977\n", " 3 9.966492\n", " 4 9.281308\n", " 5 12.832214\n", " 7 12.569426\n", " 8 6.505276\n", " 9 2.942115\n", " 10 5.148206\n", " 11 5.866478\n", " 12 5.405979\n", "2012 1 4.531475\n", " 2 10.022291\n", " 3 12.585824\n", " 4 8.614694\n", " 5 8.301316\n", " 6 4.185172\n", " 7 NaN\n", " 8 7.679454\n", " 9 6.678510\n", " 10 6.273834\n", " 11 5.908986\n", " 12 7.305525\n", "2013 1 6.730764\n", " 2 3.328555\n", " 3 NaN\n", " 4 8.630605\n", " 5 5.048431\n", " 6 13.288040\n", " 7 9.625425\n", " 8 10.699844\n", " 9 5.729928\n", " 10 3.339021\n", " 11 7.889644\n", " 12 7.797334\n", "2014 1 5.005861\n", " 2 3.093437\n", " 3 5.225323\n", " 4 15.910663\n", " 5 5.172536\n", " 6 8.333880\n", " 7 10.603654\n", " 8 5.246553\n", " 9 7.447101\n", " 10 3.560158\n", " 11 4.900183\n", " 12 7.838396\n", "Name: max_len, dtype: float64\n" ] } ], "source": [ "len_means = len_bins.mean()\n", "print(len_means)\n", "len_std = len_bins.std()\n", "print(len_std)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets not forget that `l_bins` is a list of bins so when we print out `l_mean` we get:" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we have all this data we can build a lovely bargraph with error bars and wonderful things like that.\n", "\n", "Remember, these pandas objects have functions associated with them, and one of them is a plot command." ] }, { "cell_type": "code", "execution_count": 59, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nvbeBmT3GzN5rZv9iZgf3m+7cvDvN3V/o7r9099sVR2IO6iij63Sb2VLFkZSlZvYIxdC5jczs+ane\na/rUW2a2taSHSPp5+vzP0uM35j62MivbzDY2s2W5934paY2Z7ZWen6r4ze5tZubuZ2s21+bEuvuM\nYqP8Q8UesSPTW3el978n6a+SDkx13SSLT7+hMyV92mbPI5tRLD/1iM+v68rkapk8lUaTq8PkqTRk\nrubcIukPZrazmZ0u6d1mtjL3/srOWPK80jz/laR3ufuRir37h5hZfn3ebzt4oaT/cPdrUz1uVxx5\nvNPMplKu9cvTs9z9MHf/RTqn6CBJS8zsgen936n3NjTvYWmeXS7ptbnXf5vmRbf4Hyr2yq8xs0ea\n2dvM7IVmtk+a7oV+Y4XaHVIz2x5VtTvS/Bpl24M8J88nIc8Lq3sHb6mkvRSHLC+U9DlJr8klwc2S\nfqZoLCjX0LlNiosIpBl5nmK8bt6f8rGZtMG+XrEn6KmSvqnY8/oTSR81s31Sg+L3ivm3Jhc75e7X\nKobUfDwl0GGKYTT7mdnu6aN/zsq2uLn7XyT9o5mtl97fWNL1kh6Qpudbkq5V7P3PrFIkVxabLcs1\n6cf1I0Vj8hFmtrO7e26ld5ykf+pS7uWpvGya9pN0UzYvc7F7mdkG2fzOxdyYnn5S0gMl7WlmG7r7\n2lTGHYoV0rwr17n7n939h7mXTNL90zxdkxK9a7y735mmb7liRXGmogH30Wxlp2gEzVveHTaX9PDU\n8N/LzM4ws39K761bZh1l36JY3jsrGn7XSrpV0vvN7NHpY3d11juXq3dIc05y/pSke1mcZHx3em3e\ndKc8/aNiL9q2iiMip0o6SdJ/2OxVmeb8Rjri/6DYSBxrZgea2RslnSXp8Wb2yPTRNanslyly4Z9T\ng1uKE5O/qRjiJnf/aSprhWLonBT5cmhnbCr/NsXK9lRJDzezPdNyzHLt3ZKeln4jf0jxW6X3fu3u\na9NGTIqx9L9K3z3VEb+h5y5EUSZXy+Rpih9FrhbO01T2ULmac0/FORMvk3SuYoP6NDN7bnp/TWcs\neV5pnt8m6br09F2Snixpl9z6XuqxHXT3m9z9+7kGxq25afV+sSn+9lTHFYpt1dmKbfAH0vSvkXSD\nOrahmdy03SFpN8V29Nlm9mkz2y/lzHWK39+ceHe/UdK3FefEnqL4Pd1f0jvN7G/Sx/r9xgq1O1KZ\n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\nVZsjAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, figsize=(15,5))\n", "len_means.plot(kind='bar', ax=ax, yerr=len_std)\n", "fig.autofmt_xdate()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the date on the x-axis is a little messed up we can fix with `fig.autofmt_xdate()`\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
\n", "

How do the lifetimes change?

\n", "
\n", "
\n", "Now that we have the plot for the maximum length, now make a bar graph of the lifetimes of the features.\n", "\n", "\n", "
\n", "
" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "
\n", "
\n", "
\n", "

Exoplanet Data

\n", "
\n", "
\n", "Now, to all the astronomers out there, let us process some real data. We have some txt files containing the lightcurve from a recent paper. Can you process the data and show us the planet?\n", "\n", "HINT: You'll need to treat this data slightly differently. The date here is in Julian Day so you will need to use [these](http://docs.astropy.org/en/v1.1.1/api/astropy.time.Time.html) docs to convert it to a sensible datetime object, before you make the DataFrame.\n", "\n", "
XO1_wl_transit_FLUX.txt
\n", "\n", "
    \n", "
  • col1 - Julian Date
  • \n", "
  • col2 - Flux
  • \n", "
  • col3 - Error on Flux
  • \n", "
  • col4 - RAW Flux
  • \n", "
  • col5 - RAW Error on flux
  • \n", "
\n", "\n", "
\n", "
\n", "\n" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# load in the file using numpyloadtext\n", "import numpy as np\n", "ep_data = np.loadtxt('data/XO1_wl_transit_FLUX.txt')" ] }, { "cell_type": "code", "execution_count": 61, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# read in a dictionary\n", "ep_dict = {'flux':ep_data[:,1], 'err_flux':ep_data[:,2]}" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "collapsed": false }, "outputs": [], "source": [ "ep_df = pd.DataFrame(data=ep_dict, index=ep_data[:,0])\n", "ep_df.index = pd.to_datetime(ep_df.index)\n" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from astropy.time import Time\n", "t = Time(ep_data[:, 0], format='jd')\n", "UTC = t.datetime" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
err_fluxflux
2011-09-30 04:17:53.3241590.0005141.000044
2011-09-30 04:19:46.3353740.0005141.000107
2011-09-30 04:21:39.3206400.0005141.000036
2011-09-30 04:23:32.3318550.0005141.000133
2011-09-30 04:25:25.3257710.0005141.000100
2011-09-30 04:27:18.3369460.0005141.000345
2011-09-30 04:29:11.3222520.0005140.999863
2011-09-30 04:31:04.3334270.0005141.000216
2011-09-30 04:32:57.3273420.0005141.000233
2011-09-30 04:40:29.3289540.0005141.000665
2011-09-30 05:25:29.3289540.0005140.999732
2011-09-30 05:27:22.3315200.0005141.000129
2011-09-30 05:29:15.3254350.0005140.999950
2011-09-30 05:31:08.3366510.0005141.000162
2011-09-30 05:33:01.3219160.0005141.000086
2011-09-30 05:34:54.3331320.0005141.000284
2011-09-30 05:36:47.3270470.0005140.999538
2011-09-30 05:38:40.3296120.0005140.999926
2011-09-30 05:40:33.3235280.0005140.999636
2011-09-30 05:42:26.3347030.0005140.999515
2011-09-30 05:44:19.3286590.0005140.999927
2011-09-30 05:46:12.3311840.0005140.999824
2011-09-30 05:48:05.3251400.0005140.999906
2011-09-30 05:49:58.3363150.0005141.000277
2011-09-30 05:51:51.3215800.0005141.000037
2011-09-30 05:53:44.3327960.0005140.999905
2011-09-30 05:55:37.3267110.0005141.000126
2011-09-30 05:57:30.3292770.0005141.000073
2011-09-30 05:59:23.3231920.0005141.000145
2011-09-30 06:01:16.3344080.0005141.000216
.........
2011-09-30 09:07:14.3327880.0005090.981747
2011-09-30 09:09:07.3267030.0005090.981346
2011-09-30 09:11:00.3292690.0005090.981607
2011-09-30 09:12:53.3231840.0005090.981533
2011-09-30 09:14:46.3344000.0005090.982140
2011-09-30 09:16:39.3283150.0005090.981786
2011-09-30 09:18:32.3308810.0005090.981695
2011-09-30 09:20:25.3247960.0005090.981920
2011-09-30 09:22:18.3360120.0005090.982121
2011-09-30 09:24:11.3212770.0005090.981889
2011-09-30 09:26:04.3324930.0005090.982647
2011-09-30 09:27:57.3264080.0005090.982922
2011-09-30 10:12:55.3219130.0005140.999597
2011-09-30 10:14:48.3331280.0005141.000026
2011-09-30 10:16:41.3270440.0005140.999945
2011-09-30 10:18:34.3296090.0005141.000247
2011-09-30 10:20:27.3235250.0005140.999967
2011-09-30 10:22:20.3347000.0005141.000256
2011-09-30 10:24:13.3286560.0005141.000084
2011-09-30 10:26:06.3484810.0005141.000002
2011-09-30 10:27:59.3251370.0005141.000057
2011-09-30 10:29:52.3363120.0005141.000053
2011-09-30 10:31:45.3216170.0005140.999866
2011-09-30 10:33:38.3327930.0005141.000203
2011-09-30 10:35:31.3267080.0005140.999659
2011-09-30 10:37:24.3292740.0005140.999868
2011-09-30 10:39:17.3231890.0005141.000053
2011-09-30 10:41:10.3516650.0005140.999834
2011-09-30 10:43:03.3283200.0005140.999975
2011-09-30 10:44:56.3308860.0005141.000356
\n", "

111 rows × 2 columns

\n", "
" ], "text/plain": [ " err_flux flux\n", "2011-09-30 04:17:53.324159 0.000514 1.000044\n", "2011-09-30 04:19:46.335374 0.000514 1.000107\n", "2011-09-30 04:21:39.320640 0.000514 1.000036\n", "2011-09-30 04:23:32.331855 0.000514 1.000133\n", "2011-09-30 04:25:25.325771 0.000514 1.000100\n", "2011-09-30 04:27:18.336946 0.000514 1.000345\n", "2011-09-30 04:29:11.322252 0.000514 0.999863\n", "2011-09-30 04:31:04.333427 0.000514 1.000216\n", "2011-09-30 04:32:57.327342 0.000514 1.000233\n", "2011-09-30 04:40:29.328954 0.000514 1.000665\n", "2011-09-30 05:25:29.328954 0.000514 0.999732\n", "2011-09-30 05:27:22.331520 0.000514 1.000129\n", "2011-09-30 05:29:15.325435 0.000514 0.999950\n", "2011-09-30 05:31:08.336651 0.000514 1.000162\n", "2011-09-30 05:33:01.321916 0.000514 1.000086\n", "2011-09-30 05:34:54.333132 0.000514 1.000284\n", "2011-09-30 05:36:47.327047 0.000514 0.999538\n", "2011-09-30 05:38:40.329612 0.000514 0.999926\n", "2011-09-30 05:40:33.323528 0.000514 0.999636\n", "2011-09-30 05:42:26.334703 0.000514 0.999515\n", "2011-09-30 05:44:19.328659 0.000514 0.999927\n", "2011-09-30 05:46:12.331184 0.000514 0.999824\n", "2011-09-30 05:48:05.325140 0.000514 0.999906\n", "2011-09-30 05:49:58.336315 0.000514 1.000277\n", "2011-09-30 05:51:51.321580 0.000514 1.000037\n", "2011-09-30 05:53:44.332796 0.000514 0.999905\n", "2011-09-30 05:55:37.326711 0.000514 1.000126\n", "2011-09-30 05:57:30.329277 0.000514 1.000073\n", "2011-09-30 05:59:23.323192 0.000514 1.000145\n", "2011-09-30 06:01:16.334408 0.000514 1.000216\n", "... ... ...\n", "2011-09-30 09:07:14.332788 0.000509 0.981747\n", "2011-09-30 09:09:07.326703 0.000509 0.981346\n", "2011-09-30 09:11:00.329269 0.000509 0.981607\n", "2011-09-30 09:12:53.323184 0.000509 0.981533\n", "2011-09-30 09:14:46.334400 0.000509 0.982140\n", "2011-09-30 09:16:39.328315 0.000509 0.981786\n", "2011-09-30 09:18:32.330881 0.000509 0.981695\n", "2011-09-30 09:20:25.324796 0.000509 0.981920\n", "2011-09-30 09:22:18.336012 0.000509 0.982121\n", "2011-09-30 09:24:11.321277 0.000509 0.981889\n", "2011-09-30 09:26:04.332493 0.000509 0.982647\n", "2011-09-30 09:27:57.326408 0.000509 0.982922\n", "2011-09-30 10:12:55.321913 0.000514 0.999597\n", "2011-09-30 10:14:48.333128 0.000514 1.000026\n", "2011-09-30 10:16:41.327044 0.000514 0.999945\n", "2011-09-30 10:18:34.329609 0.000514 1.000247\n", "2011-09-30 10:20:27.323525 0.000514 0.999967\n", "2011-09-30 10:22:20.334700 0.000514 1.000256\n", "2011-09-30 10:24:13.328656 0.000514 1.000084\n", "2011-09-30 10:26:06.348481 0.000514 1.000002\n", "2011-09-30 10:27:59.325137 0.000514 1.000057\n", "2011-09-30 10:29:52.336312 0.000514 1.000053\n", "2011-09-30 10:31:45.321617 0.000514 0.999866\n", "2011-09-30 10:33:38.332793 0.000514 1.000203\n", "2011-09-30 10:35:31.326708 0.000514 0.999659\n", "2011-09-30 10:37:24.329274 0.000514 0.999868\n", "2011-09-30 10:39:17.323189 0.000514 1.000053\n", "2011-09-30 10:41:10.351665 0.000514 0.999834\n", "2011-09-30 10:43:03.328320 0.000514 0.999975\n", "2011-09-30 10:44:56.330886 0.000514 1.000356\n", "\n", "[111 rows x 2 columns]" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ep_df.index = UTC\n", "ep_df" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig1, ax1 = plt.subplots(1, figsize=(10,5))\n", "ep_df['flux'].plot(ax=ax1, fmt='.', yerr=ep_df['err_flux'])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python2", "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.11" } }, "nbformat": 4, "nbformat_minor": 0 }