{
 "metadata": {
  "name": "ALTIMET_test"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Uk\u00e1zka pou\u017eit\u00ed n\u00e1stroje IPython na manipulaci se senzorov\u00fdmi daty\n",
      "=======\n",
      "\n",
      "P\u0159\u00edklad vyu\u017e\u00edv\u00e1 moduluvou stavebnici MLAB a jej\u00ed knihovnu https://github.com/MLAB-project/MLAB-I2c-modules \n",
      "\n",
      "Zprovozn\u011bn\u00ed demo k\u00f3du\n",
      "---------------------\n",
      "\n",
      "Nejd\u0159\u00edve zjist\u00edme zda m\u00e1me p\u0159\u00edstup pro z\u00e1pis a \u010dten\u00ed do syst\u00e9mov\u00e9ho za\u0159\u00edzen\u00ed. A jak\u00e9 \u010d\u00edslo m\u00e1 I\u00b2C sb\u011brnice na  kterou m\u00e1me p\u0159ipojen\u00e1 \u010didla. \n"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "!i2cdetect -l"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "i2c-0\tsmbus     \tCP2112 SMBus Bridge on hiddev0  \tSMBus adapter\r\n",
        "i2c-1\ti2c       \ti2c-tiny-usb at bus 001 device 007\tI2C adapter\r\n",
        "i2c-2\ti2c       \ti915 gmbus ssc                  \tI2C adapter\r\n",
        "i2c-3\ti2c       \ti915 gmbus vga                  \tI2C adapter\r\n",
        "i2c-4\ti2c       \ti915 gmbus panel                \tI2C adapter\r\n",
        "i2c-5\ti2c       \ti915 gmbus dpc                  \tI2C adapter\r\n",
        "i2c-6\ti2c       \ti915 gmbus dpb                  \tI2C adapter\r\n",
        "i2c-7\ti2c       \ti915 gmbus dpd                  \tI2C adapter\r\n",
        "i2c-8\ti2c       \tDPDDC-B                         \tI2C adapter\r\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Proto\u017ee pro p\u0159ipojen\u00ed \u010didel k po\u010d\u00edta\u010di pou\u017e\u00edv\u00e1me adapt\u00e9r i2c-tiny-usb. Vid\u00edme, \u017ee sb\u011brnice m\u00e1 aktu\u00e1ln\u011b ozna\u010den\u00ed nap\u0159\u00edklad i2c-8. \n",
      "\n",
      "V p\u0159\u00edpad\u011b, \u017ee v\u00fd\u0161e uveden\u00fd p\u0159\u00edklad vr\u00e1t\u00ed chybu, nebo pojmenov\u00e1n\u00ed \"unknown\" tak nem\u00e1me p\u0159\u00edstup k syst\u00e9mov\u00fdm rozhran\u00edm. Ten z\u00edsk\u00e1me vytvo\u0159en\u00edm souboru s n\u00e1sleduj\u00edc\u00edm obsahem ve slo\u017ece:  /etc/udev/rules.d/i2c-devices.rules"
     ]
    },
    {
     "cell_type": "raw",
     "metadata": {},
     "source": [
      "KERNEL==\"i2c-[0-9]*\", GROUP=\"i2c\""
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Toto ozna\u010den\u00ed budeme je\u0161t\u011b d\u00e1le pot\u0159ebovat, proto si jej ulo\u017e\u00edme da prom\u011bnn\u00e9. "
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "port = 1"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 2
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Budeme pokra\u010dovat na\u010dten\u00edm pot\u0159ebn\u00fdch modul\u016f pro zach\u00e1zen\u00ed s I\u00b2C sn\u00edma\u010di."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import time\n",
      "import datetime\n",
      "import sys\n",
      "import serial\n",
      "\n",
      "from pymlab import config\n",
      "import matplotlib.pyplot as plt\n",
      "import numpy as np"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 3
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Nyn\u00ed si nadefinujeme strukturu p\u0159ipojen\u00ed jednotliv\u00fdch \u010didel na I\u00b2C sb\u011brnici."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "cfg = config.Config(\n",
      "    port = port,\n",
      "    bus = [\n",
      "        {\n",
      "            \"type\": \"i2chub\",\n",
      "            \"address\": 0x72,\n",
      "            \n",
      "            \"children\": [\n",
      "                {\"name\": \"altimet\", \"type\": \"altimet01\" , \"channel\": 7, },   \n",
      "            ],\n",
      "        },\n",
      "    ],\n",
      ")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 4
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Tuto strukturu inicializujeme, aby jsme dos\u00e1hli definovan\u00e9 konfigurace \u010didel."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "cfg.initialize()\n",
      "gauge = cfg.get_device(\"altimet\")\n",
      "time.sleep(0.5)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 5
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Nyn\u00ed u\u017e m\u016f\u017eeme p\u0159\u00edmo komunikovat se za\u0159\u00edzen\u00edm pojmenovan\u00fdm jako gauge."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "MEASUREMENTS = 100\n",
      "t = np.zeros(MEASUREMENTS)\n",
      "p = np.zeros(MEASUREMENTS)\n",
      "\n",
      "for n in range(MEASUREMENTS):\n",
      "#    gauge.route()  V p\u0159\u00edpad\u011b v\u00edce \u010didel je pot\u0159eba ke ka\u017ed\u00e9mu p\u0159ed jeho pou\u017eit\u00edm nechat vyroutovat cesutu na sb\u011brnici.\n",
      "    (t[n], p[n]) = gauge.get_tp()\n",
      "    print(n,t[n], p[n])"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "(0, 22.625, 94868.25)\n",
        "(1, 22.625, 94868.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(2, 22.625, 94868.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(3, 22.625, 94870.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(4, 22.625, 94870.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(5, 22.625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(6, 22.625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(7, 22.5625, 94866.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(8, 22.5625, 94866.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(9, 22.625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(10, 22.625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(11, 22.5625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(12, 22.5625, 94868.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(13, 22.5625, 94868.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(14, 22.5625, 94866.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(15, 22.625, 94866.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(16, 22.625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(17, 22.625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(18, 22.625, 94870.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(19, 22.625, 94870.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(20, 22.5625, 94864.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(21, 22.5625, 94864.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(22, 22.625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(23, 22.625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(24, 22.5625, 94870.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(25, 22.5625, 94866.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(26, 22.5625, 94866.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(27, 22.5625, 94864.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(28, 22.5625, 94864.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(29, 22.5625, 94868.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(30, 22.5625, 94868.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(31, 22.5625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(32, 22.5625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(33, 22.5625, 94870.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(34, 22.5625, 94870.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(35, 22.5625, 94864.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(36, 22.5625, 94864.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(37, 22.5625, 94866.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(38, 22.5625, 94866.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(39, 22.5625, 94870.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(40, 22.5625, 94870.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(41, 22.5625, 94870.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(42, 22.5625, 94868.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(43, 22.5625, 94868.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(44, 22.5625, 94868.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(45, 22.5625, 94868.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(46, 22.5625, 94870.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(47, 22.5625, 94870.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(48, 22.5625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(49, 22.5625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(50, 22.5625, 94866.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(51, 22.5625, 94866.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(52, 22.5625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(53, 22.5625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(54, 22.625, 94866.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(55, 22.625, 94870.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(56, 22.5625, 94870.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(57, 22.5625, 94868.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(58, 22.5625, 94868.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(59, 22.5625, 94866.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(60, 22.5625, 94866.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(61, 22.5625, 94868.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(62, 22.5625, 94868.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(63, 22.5625, 94864.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(64, 22.5625, 94864.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(65, 22.5625, 94868.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(66, 22.5625, 94868.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(67, 22.5625, 94868.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(68, 22.5625, 94868.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(69, 22.5625, 94864.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(70, 22.5625, 94868.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(71, 22.5625, 94868.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(72, 22.5625, 94868.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(73, 22.5625, 94868.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(74, 22.5625, 94870.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(75, 22.5625, 94870.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(76, 22.5625, 94868.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(77, 22.5625, 94868.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(78, 22.5625, 94866.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(79, 22.5625, 94866.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(80, 22.5625, 94864.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(81, 22.5625, 94864.75)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(82, 22.5625, 94866.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(83, 22.5625, 94866.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(84, 22.5625, 94864.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(85, 22.5625, 94868.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(86, 22.5625, 94868.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(87, 22.5625, 94870.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(88, 22.5625, 94870.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(89, 22.5625, 94870.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(90, 22.5625, 94870.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(91, 22.5625, 94868.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(92, 22.5625, 94868.0)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(93, 22.5625, 94864.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(94, 22.5625, 94864.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(95, 22.5625, 94874.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(96, 22.5625, 94874.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(97, 22.5625, 94872.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(98, 22.5625, 94868.5)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "(99, 22.5625, 94870.25)"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n"
       ]
      }
     ],
     "prompt_number": 21
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "np.savez(\"data_ground\", t, p)\n",
      "#np.savez(\"data_top\", t, p)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 22
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "amin(p)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 23,
       "text": [
        "94864.0"
       ]
      }
     ],
     "prompt_number": 23
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "amax(p)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 24,
       "text": [
        "94874.5"
       ]
      }
     ],
     "prompt_number": 24
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "std(p)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 25,
       "text": [
        "2.1005044037087854"
       ]
      }
     ],
     "prompt_number": 25
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "plt.plot(p)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 26,
       "text": [
        "[<matplotlib.lines.Line2D at 0x396eed0>]"
       ]
      },
      {
       "output_type": "display_data",
       "png": "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\n"
      }
     ],
     "prompt_number": 26
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "plt.plot(t)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 27,
       "text": [
        "[<matplotlib.lines.Line2D at 0x399a4d0>]"
       ]
      },
      {
       "output_type": "display_data",
       "png": "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\n"
      }
     ],
     "prompt_number": 27
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}