{
 "metadata": {
  "name": "",
  "signature": "sha256:4267b52b2306c9be73e0763c66059952bc469b4a50fe2e15746a67dd4e0fb43c"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Discrete distribution example\n",
      "==============================\n",
      "\n",
      "In this example, we're going to illustrate how discrete data can be used\n",
      "as a 2D distribution. To illustrate this, we're going to take samples from\n",
      "this 2D distribution to use as the geographic location of the people in the\n",
      "simulation. We'll then make a histogram of these locations to show that we've\n",
      "indeed been sampling from the specified discrete distribution.\n"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%matplotlib inline\n",
      "import pysimpactcyan\n",
      "import pandas as pd\n",
      "import matplotlib.pyplot as plt"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 1
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "simpact = pysimpactcyan.PySimpactCyan()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Setting data directory to /usr/local/share/simpact-cyan/\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "cfg = { }\n",
      "cfg[\"population.nummen\"] = 100000\n",
      "cfg[\"population.numwomen\"] = 100000\n",
      "cfg[\"population.maxevents\"] = 1 # We don't need an actual simulation, just the 2D locations\n",
      "cfg[\"population.eyecap.fraction\"] = 0 # Don't initialize formation events (would not even be possible for this many people)\n",
      "\n",
      "# We're going to sample the geographic location (which is not currently used for anything)\n",
      "# from a discrete distribution, based on data in a tiff file\n",
      "cfg[\"person.geo.dist2d.type\"] = \"discrete\"\n",
      "cfg[\"person.geo.dist2d.discrete.densfile\"] = \"/tmp/simptest/up32.tiff\"\n",
      "cfg[\"person.geo.dist2d.discrete.maskfile\"] = \"\" # This option must be set, but we leave it blank to disable the mask\n",
      "cfg[\"person.geo.dist2d.discrete.width\"] = 320\n",
      "cfg[\"person.geo.dist2d.discrete.height\"] = 240"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 3
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# The data in 'up32.tiff' corresponds to the following image\n",
      "plt.imshow(plt.imread(\"up.png\"));"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7f9ef8501e50>"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "res = simpact.run(cfg, \"/tmp/simptest\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Using identifier 'simpact-cyan-2015-08-10-13-23-02_26158_TnTwb89U-'\n",
        "Results will be stored in directory '/tmp/simptest'\n",
        "Running simpact executable...\n",
        "Done."
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "\n",
        "# read seed from /dev/urandom\n",
        "# Using seed 842668060\n",
        "# Performing extra check on read configuration parameters\n",
        "# WARNING: ignoring consistency check for config key person.geo.dist2d.discrete.densfile (config value is '/tmp/simptest/up32.tiff')\n",
        "# WARNING: ignoring consistency check for config key person.geo.dist2d.discrete.maskfile (config value is '')\n",
        "# WARNING: ignoring consistency check for config key population.agedistfile (config value is '/usr/local/share/simpact-cyan/sa_2003.csv')\n",
        "# mNRM: using advanced algorithm\n",
        "# Release version\n",
        "# Simpact version is: 0.19.0\n",
        "# Number of events executed is 1\n",
        "# Started with 200000 people, ending with 200000 (difference is 0)\n"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# We're going to get the information from the persons log, in which the X and Y\n",
      "# coordinate for each person will be saved\n",
      "persons = pd.read_csv(res[\"logpersons\"])"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 6
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Let's make a histogram of these coordinates, which should show that we're\n",
      "# sampling from the discrete distribution that corresponds to the image shown\n",
      "# above\n",
      "plt.hist2d(persons[\"XCoord\"], persons[\"YCoord\"],bins=100,range=[[0,320],[0,240]]);"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7f9ef80ac490>"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# As explained in the Simpact Cyan documentation, the default value of the following\n",
      "# parameter is 'yes', to account for a difference in Y-axis orientation between images\n",
      "# and regular plots. To illustrate what would happen otherwise, we'll set it to 'no'\n",
      "# in the next test\n",
      "cfg[\"person.geo.dist2d.discrete.flipy\"] = \"no\"\n",
      "\n",
      "# Again run the simulation and plot the histogram\n",
      "res = simpact.run(cfg, \"/tmp/simptest\")\n",
      "persons = pd.read_csv(res[\"logpersons\"])\n",
      "plt.hist2d(persons[\"XCoord\"], persons[\"YCoord\"],bins=100,range=[[0,320],[0,240]]);"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Using identifier 'simpact-cyan-2015-08-10-13-23-08_26158_8Ug91KHn-'\n",
        "Results will be stored in directory '/tmp/simptest'\n",
        "Running simpact executable...\n",
        "Done."
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "\n",
        "\n",
        "# read seed from /dev/urandom\n",
        "# Using seed 1858299704\n",
        "# Performing extra check on read configuration parameters\n",
        "# WARNING: ignoring consistency check for config key person.geo.dist2d.discrete.densfile (config value is '/tmp/simptest/up32.tiff')\n",
        "# WARNING: ignoring consistency check for config key person.geo.dist2d.discrete.maskfile (config value is '')\n",
        "# WARNING: ignoring consistency check for config key population.agedistfile (config value is '/usr/local/share/simpact-cyan/sa_2003.csv')\n",
        "# mNRM: using advanced algorithm\n",
        "# Release version\n",
        "# Simpact version is: 0.19.0\n",
        "# Number of events executed is 1\n",
        "# Started with 200000 people, ending with 200000 (difference is 0)\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nu8AAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x7f9ef84e5d50>"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}