{ "cells": [ { "source": [ "# Area" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `Area` represents the spatial environment of the survey. It sets the spatial bounds of the survey so it should be the first building block defined. All of the methods used to generate `Layer` and `Coverage` blocks will require the `Area` as an input parameter." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Creating an `Area`\n", "\n", "There are three main ways to create an `Area`.\n", "\n", "1. from a `shapely` `Polygon`\n", "2. from a shapefile\n", "3. from a value specifying the resulting area\n", "\n", "We will take a look at examples of all three. First, let's import `prospect` as `prospect`." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import prospect" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### From a `shapely Polygon`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can create an `Area` from any `shapely` `Polygon` object. Let's create a fairly simple polygon (a pentagon) and use it to create an `Area`." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from shapely.geometry import Polygon\n", "pentagon = Polygon([(0, 0), (2, 0), (2, 1), (1, 2), (0, 1)])" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "area_shapely = prospect.Area(name='from shapely rectangle', shape=pentagon, vis=1.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`Area` objects have the following attributes: `name`, `shape`, `vis`, and `df`." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'from shapely rectangle'" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "area_shapely.name" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "area_shapely.shape" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "area_shapely.vis" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nameshapevis
0from shapely rectanglePOLYGON ((0.00000 0.00000, 2.00000 0.00000, 2....1.0
\n", "
" ], "text/plain": [ " name shape \\\n", "0 from shapely rectangle POLYGON ((0.00000 0.00000, 2.00000 0.00000, 2.... \n", "\n", " vis \n", "0 1.0 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "area_shapely.df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Of these, `df` is the most useful because it is a `geopandas` `GeoDataFrame` containing all of the other values.\n", "\n", "`geopandas` provides some plotting options for `GeoDataFrame` objects, so we can visually examine the resulting `Area` in a `matplotlib` plot by calling the `plot()` method on the `df` attribute." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "area_shapely.df.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### From a shapefile" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{caution}\n", "If the shapefile contains more than one polygon, only the first polygon will be used. If you want to create an `Area` by combining multiple polygons, you will first have to dissolve them into a single polygon.\n", "```" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "area_shp = prospect.Area.from_shapefile(name='from shapefile', path='./data/demo_area.shp', vis=1.0, encoding=\"utf-8\")" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "area_shp.df.plot();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{note}\n", "`prospect` has no difficulty dealing with polygons that have interior holes.\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### From an area value" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The final way to construct an `Area` object is to create a square by specifying a desired area value and an origin. This is intended to be a convenient method for use in building hypothetical surveys. The following creates an `Area` with an area of 100.0 sq. units with a lower left corner at (20, 20)." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "area_value = prospect.Area.from_area_value(\n", " name='from value', \n", " value=100.0, \n", " origin=(20.0, 20.0), \n", " vis=1.0\n", ")" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "area_value.df.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The `vis` parameter" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Besides defining the spatial extent of the survey, the `Area` also defines the surface visibility parameter of the simulation. Like all parameters, the surface visibility can be defined with a single probability value or as a `scipy.stats` distribution. (In the future, I hope to add additional support for a raster \"surface\" of visibility.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If a single value is inappropriate for your case, surface visibility can be modeled in a variety of ways. Both a truncated normal distribution (constrained between 0 and 1) and a Beta distribution could be good options. In the case of the Beta distribution, the following heuristic can be helpful: \n", ">If $n$ artifacts were placed in a subset of that `Area`, how many artifacts, $v$, would be visible to the surveyor, assuming a perfect ideal observation rate of 1.0 and a perfect surveyor skill of 1.0?\n", "\n", "In that case, $\\alpha = v$ and $\\beta = n - v$.\n", "\n", "For example, if you placed 10 artifacts in an area and expected 8 to be visible, you could create a Beta distribution like this." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "from scipy.stats import beta\n", "vis_dist = beta(a=8, b=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And now let's examine the shape of that distribution. \n", "\n", "```{attention}\n", "`seaborn`, used here for plotting, is not a dependency of `prospect` so you may not have it installed.\n", "```" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD4CAYAAADvsV2wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3deXRc5Z3m8e+vpCrt+2JbkoU32exmMTs4QAgBJt2kp0maJp10pzshZOlO96TnJKdPT3J6Mn26e3qmZ5JAcOgACUkchgChCYEkJMFgG1tgO7YxNsaSF0mWba3WvlXVO3+obAsjo7JUVbeW53NOHdfy6t6fr+VHr9773veacw4REUl/Pq8LEBGRxFDgi4hkCAW+iEiGUOCLiGQIBb6ISIbI9mrHlZWVbtGiRV7tXkQkJW3durXLOVc1m6/1LPAXLVrEli1bvNq9iEhKMrNDs/1aDemIiGQIBb6ISIZQ4IuIZAgFvohIhlDgi4hkCAW+iEiGUOCLiGSIGQPfzHLN7DUz22Fmb5rZP0zT5kYz6zOz7ZHHV+NTroiIzFY0F16NATc75wbNzA9sMLMXnHObT2u33jn3odiXKCISf845zMzrMuJqxsB3k3dIGYy89EceumuKiKS0Ha3HeXjDATY2dTE4FiTsHMvnFXFhbQlfv/NCAtnpN+Id1dIKZpYFbAWWAQ845xqnaXaNme0A2oG/dc69Oc127gXuBaivr5910SIis7X36ABfe3YXm/f3UJSbzTkVBRTnZhMMOfYc6efN9n52tB7nf31kJRfWlnhdbkzZ2dzi0MxKgZ8Cf+mc2zXl/WIgHBn2uQP4hnOu4b22tWrVKqe1dEQkUX6w6RAvv93JS291kOP3cePyKq5YVE6OP+tkm7BzvHWkn//Y3s7QeJBbz5/P6uWn1im75yrvO6pmttU5t2o2X3tWi6c5546b2TrgNmDXlPf7pzx/3sy+bWaVzrmu2RQlIhJLu9v7eXBdE+19o1xUW8LvrayhMOfd8ecz4/yaEhZVFvDM7w7zizePMhYMcct589JifH/GwDezKmAiEvZ5wC3Av5zWZj5wzDnnzOxKJmf/dMejYBGRaAVDYe5/qYn7f9tErj+Lj11VzwU1Mw/T5AeyufvKep753WFe2ttJ2MGt589LQMXxFU0PfwHw/cg4vg94wjn3nJndB+CcWwPcBXzWzILACHC3O5uxIhGRGDvaN8pfPf47XjvQw4cvqeHC2hLyA9EPavjM+PCltfh8xstvd1JVmMPHrj4njhXH31mN4ceSxvBFJF7++fk9PLb5EMGQ485Lari0vmzW2wo7x3fXH6C9b4Rf/837qK/Ij2GlZ28uY/jpN+9IRDLaxqYuHtl4kFx/Fp+7aemcwh4me/ofXVWHz+BvnthOMBSOUaWJp8AXkbTx0t4OPvno65QV+PnM6iVUF+XGZLul+QF+f2UtWw/18ujGgzHZphc8u8WhiMhcrW1sOfm8e3CM+19qorIwwJ9fv/isxuujccnCUo72j/Lgy83cc1U9BdPM8kl26uGLSMqbCIVZ+1oLPjM+dvU5MQ/7E86fX0TP0DhfemIHaxtb3vEDJxUo8EUk5T27o52jfaN8dNVCyvIDcdtPfUUBy6oLWb+vk/Fg6o3lK/BFJKU1dw6y9VAvq5dXsWJ+Udz39/5zqxkaD/HagdS71EiBLyIpKxR2PLeznbJ8PzefW52QfZ5TUcCSqgI2NHURCqfW5UYKfBFJWa8d7OFY/xi3X7gAf1bi4uzqxRX0jwZp7hycuXESUeCLSErqHRrn17uPsaSqgAtqihO673MXFJEfyGLrod6E7neuFPgikpIeWr+f0YkQH7q4JuELm2X7fFxcV8qeI/30DU8kdN9zocAXkZTTOzTOY68e5KK6EuYXx+biqrN1eX0ZwbDjuTfaPdn/bCjwRSTlPLrxAEPjIW5akZgTtdOpKc1lXnEOT25t86yGs6XAF5GU0jcywaMbD3LHRfOZ51HvHsDMuKy+jN+1HE+Zk7cKfBFJKd/beJCBsSBfuOk9b6qXEBfXlQLwi11HPa4kOgp8EUkZI+Mhvr/pILecV835CZ6ZM52SPD8X15Xw4u5jXpcSFQW+iKSEtY0tfOXpnfQMjbO4sjBp1rH5wHnz2N56nI7+Ua9LmZECX0RSQtg5Nuzroq4sj0Ue34RkqlsvmA/Ai3uSv5evwBeRlPDWkQG6h8a5flllUt1QfPm8QurL81NiWEeBLyIpYUNTJ6X5/qhuQp5IZsat58/j1aZuBseCXpfznhT4IpL0trce52D3MNctrSTLlzy9+xM+cP48xkNhXt7b6XUp72nGuwSYWS7wCpATaf+kc+5rp7Ux4BvAHcAw8GfOuW2xL1dEMtG/r99Prt/HqnPmdn/aeFjb2EIo7MgPZPHv6/fTNzK51MI9V9V7XNm7RdPDHwNuds6tBC4BbjOzq09rczvQEHncCzwY0ypFJGO19gzzwhtHuHJROTn+LK/LmVaWz1hWXUhTxyBhl7xLJs8Y+G7SicvI/JHH6X+jO4HHIm03A6VmtiC2pYpIJnpk4wF8ZlyztNLrUt7T8uoiBseCHO1L3umZUY3hm1mWmW0HOoAXnXONpzWpBVqnvG6LvHf6du41sy1mtqWzM7nHukTEe33DE/y/11v5/ZU1lOT5vS7nPS2bVwjAvo7kXWYhqsB3zoWcc5cAdcCVZnbhaU2mO4vyrt9rnHMPOedWOedWVVVVnX21IpJRfvTaIYbHQ/zFDYu9LmVGxbl+5hfnsu/YgNelnNFZzdJxzh0H1gG3nfZRG7Bwyus6IHXWDBWRpDMWDPG9jQe5flll0k3FPJOGeYUc6h5mLBjyupRpzRj4ZlZlZqWR53nALcBbpzV7FviETboa6HPOHYl5tSKSMf5jezsdA2Pcu3qJ16VEraG6iJBzHOgc8rqUac04LRNYAHzfzLKY/AHxhHPuOTO7D8A5twZ4nskpmU1MTsv8ZJzqFZE0t7axBecc3/jNPuYX59LaM5w06+bMZFFFPv4s4+0kHcefMfCdczuBS6d5f82U5w74fGxLE5FM9faxAToGxvjI5XVJtYzCTLKzfCypLEzacXxdaSsiSeeVfV0U52ZzUV1qjN1Ptay6kO6hcdqPj3hdyrso8EUkqbT1DnOga4jrllWS7Uu9iFpSVQDA5v3dHlfybql3NEUkra3f10VOto8rFpV7XcqszCvOJc+fxaZmBb6IyBm19gyz63AfVy4qJzdJl1GYic+MxZUFbFIPX0TkzB7ecAAzuHZZci+jMJMlVQW09Y7Q2jPsdSnvoMAXkaRwfHicJ7a0srKuNOmXUZjJkqrJZRaSrZevwBeRpPDIxoMMj4e4oSH1l12pLsqhvCDA5iQbx1fgi4jn+kcneHTjAT54wTzml+R6Xc6c+cy4ekk5m/Z345JouWQFvoh47rFXDzIwGuQLNzV4XUrMXLOkgiN9o7Qk0Ti+Al9EPDU0FuThDQe4aUVVSl5odSZXL6kAoHF/j8eVnKLAFxHPrG1s4W9/soPe4QlWzCtKmTVzorG0qpDi3Gy2tfR6XcpJCnwR8cxEKMz6fV0srSqgvqLA63JiyuczLq0vU+CLiAC8frCHwbEgN51b7XUpMbe2sQV/lrHv2CAPrz+QFL+9KPBFxBNjwRCvvN3Joop8llQWel1OXNSXF+CA1t7kOHGrwBcRTzy5tY3+0fTs3Z9QV5aHQdLM1FHgi0jCTYTCPLiumbqyPJZVpWfvHiDXn8W8yE1ckoECX0QS7pnfHaatd4SbV1Sn1A1OZqO+PJ+WnmHCSXABlgJfRBIqFHZ8e10zF9QUs2J+kdflxF19eT5jwTAdA2Nel6LAF5HEem5nOwe6hvjLm5elfe8eoL4iH4DWbu+HdRT4IpIw4bDjgZeaWD6vkFvPn+91OQlRURAgP5CVFCduZwx8M1toZi+Z2R4ze9PMvjhNmxvNrM/MtkceX41PuSKSyn61+xhvHxvk8zctw+dL/949gJlRV5bH4SS4x212FG2CwJecc9vMrAjYamYvOud2n9ZuvXPuQ7EvUUTSwY82H+Lb65qpKAgwMBpMiguREmVBSR5NHZ2MBUPkZHt3J68Ze/jOuSPOuW2R5wPAHqA23oWJSHpp6hzk8PERVjdU4cuAsfupakrzCDt4++igp3Wc1Ri+mS0CLgUap/n4GjPbYWYvmNkFMahNRNLIy3s7Kc7N5tL6Uq9LSbiayBr/u4/0eVpH1IFvZoXAU8BfO+f6T/t4G3COc24l8C3gmTNs414z22JmWzo7O2dbs4ikmK2HetnfNcT1DVVkZ2XeXJGyggA52T7ebD89OhMrqiNvZn4mw/5HzrmnT//cOdfvnBuMPH8e8JvZu+5C7Jx7yDm3yjm3qqoq9W9jJiLReXBdE3n+LK5YVOZ1KZ7wmTG/JDf5A98mJ8o+DOxxzv3bGdrMj7TDzK6MbDe5buYoIp5462g/v97TwbXLKjw9Yem1mpI89hzpJxT27orbaGbpXAd8HHjDzLZH3vs7oB7AObcGuAv4rJkFgRHgbpdMN3IUEc88uK6ZgkAW10TuAJWpakpz2bQ/xMHuIZZ6tH7QjIHvnNsAvOcpdefc/cD9sSpKRNLDoe4hfrajnU/dsIT8QDT9y/S1oCQPgN3t/Z4FfuadPRGRhPnOK/vJ9vn41PWLvS7Fc9XFOfizzNNxfAW+iMTFsf5RntzSxkdW1VFdnOt1OZ7L9vloqC7izXbvpmYq8EUkLr67fj/BcJjPrF7qdSlJ44KaYna39+PVKc7MHlQTkZhb29jC8HiQ7796iIvrStnQ1AVNXleVHM6vKeYnW9voHByjuijxv/Wohy8iMbepuZvxUJjVy3W9zVTLqidP1jZ1eLPEggJfRGJqLBji1eZuzptfxHyN3b9DQ/XkDV+aFfgikg5eP9DDyESI961I35uTz9a84hwKc7LVwxeR1DcWDLG+qYslVQXUl+d7XU7SMTOWVheyT4EvIqnuqa2HGRgNcuNy9e7PpKG6UD18EUltwVCY77zSTF1ZHkurCrwuJ2ktqy6kY2CM/tGJhO9bgS8iMfHzN45wqHuYG5dXZcTNyWdrWZV3M3U0D19E5sw5x4PrmllWXci5C4q9LidprW1soXtwDIAfbjrEW0cGALjnqvqE7F89fBGZs5f2dvDW0QE++76lGXf7wrNVVhAg22d0DowlfN8KfBGZswfXNVNbmsfvX1LjdSlJz2dGZWEOHQp8EUk1rx/s4fWDvXz6hsX4M/D2hbNRVZRD52DiA19j+CIya2sbW/j+qwfJD2QBxtrGFq9LSgnVxTnsOtzHRCic0B+S+nEsIrN2pG+EvccGuHZpJYFsxUm0qotycZDwcXz9C4nIrL3ydieBbF/G377wbFUV5QAKfBFJES3dw+xs6+OqReXkBTL35uSzUVkQwICuIQW+iKSAh9Y34/MZ1y2r9LqUlJOd5aMkz0/P4HhC96vAF5Gz1jEwyhNb2risvpTiPL/X5aSk8sIAXQmeqTNj4JvZQjN7ycz2mNmbZvbFadqYmX3TzJrMbKeZXRafckUkGTy68SDBUJgbGnSDk9mqKMiheyixPfxopmUGgS8557aZWRGw1cxedM7tntLmdqAh8rgKeDDyp4ikmf7RCX646RC3X7SAysIcr8tJWRUFAYbHQ4yMhxK2zxl7+M65I865bZHnA8AeoPa0ZncCj7lJm4FSM1sQ82pFxHM/3HyIgbEgn32fbk4+FxWFAQB6EtjLP6sxfDNbBFwKNJ72US3QOuV1G+/+oYCZ3WtmW8xsS2dn59lVKiKeG50I8ciGA6xeXsWFtSVel5PSKgomfzvqTuBMnagD38wKgaeAv3bO9Z/+8TRf4t71hnMPOedWOedWVVVp7E8k1fxkaxtdg+Pq3cdAecFkDz+R4/hRBb6Z+ZkM+x85556epkkbsHDK6zqgfe7liUiymAiF+c7LzVyysJSrl5R7XU7KC2T7KM7NpjuBUzOjmaVjwMPAHufcv52h2bPAJyKzda4G+pxzR2JYp4h47OltbbT1jvDF9zfoBicxUl6Qk9AhnWhm6VwHfBx4w8y2R977O6AewDm3BngeuANoAoaBT8a+VBHxyg82HeLfXtxLbWke7cdHtEhajFQUBnj76EDC9jdj4DvnNjD9GP3UNg74fKyKEpHksr21l97hCT50cY169zFUURBgYCzI0FiQgpz4L16sK21F5D0FQ2Fe2ttJTWku584v8rqctFIRuY7hUPdwQvanwBeR9/TM9nZ6hsa5ecU89e5jrCIyU+dQ91BC9qfAF5EzCobC3P/bfSwoyeW8Berdx9qJqZkH1cMXEa/9bGc7B7uHufncavXu4yDXn0VBTrZ6+CLirVDY8a3fNnHu/CLOW1DsdTlpq6IgwIEuBb6IeOi5ne3s7xzii+9vwKfefdyUFwRo6x1JyL4U+CLyLqGw45u/2ceKeUV88IL5XpeT1sry/RzpG2EiFI77vuI/8VNEUsraxhZ2tB2nuXOIu69YyOOvt878RTJrZfkBwg6O9o2ysDw/rvtSD19E3iHsHC+91UF1UY5WxEyAsshMndae+M/UUeCLyDu82d5Px8AYN51brbH7BCjLnwz8RIzjK/BF5CQX6d1XFeZwkXr3CVGS58dn0NqrHr6IJNC6vZ0c7R/lfSuq1LtPkCyfsaAkTz18EUmsB19upiTPz8q6Uq9LySh1ZXkawxeRxNnW0strB3q4flklWT717hOprixfPXwRSZw16yZ796sWlXldSsZZWJ7HsYFRxoKhuO5HgS8iNHUM8Kvdx/jTa84hJzvL63IyTl1ZPs5B+/HRuO5HgS8ifOfl/eT6ffzptYu8LiUjLSzLA6AtzjN1FPgiGe5I3wjPbD/MR1ctPHlDDkmsusgVtq098R3HV+CLZLhHNhwg7ODTNyzxupSMNb84l2yfxb2Hr7V0RDLU2sYWRsZDfH/TIS6oKWb9vi6vS8pYWT6jpjSP1jjP1Jmxh29mj5hZh5ntOsPnN5pZn5ltjzy+GvsyRSQeGg90Mx4Ms7qhyutSMt7C8rykGMP/HnDbDG3WO+cuiTz++9zLEpF4mwiF2djcTUN1ITWleV6Xk/HqSvO9H8N3zr0C9MS1ChFJuG0tvQyNBVm9XL37ZLCwPI+uwTFGJ+I3Fz9WJ22vMbMdZvaCmV0Qo22KSJyEwo71+7qoK8tjSWWB1+VkvLWNLbREllZY83Izaxtb4rKfWAT+NuAc59xK4FvAM2dqaGb3mtkWM9vS2dkZg12LyGy8sOsIPUPjrG6o0s3Jk0RJ3uQyyX3DE3Hbx5wD3znX75wbjDx/HvCbWeUZ2j7knFvlnFtVVaVfI0W84JxjzcvNVBQEOL9GNydPFmX5fgCOJ3Pgm9l8i3QRzOzKyDa757pdEYmPjU3d7Drcz+oGLYGcTIpy/RhwfGQ8bvuYcR6+mf0YuBGoNLM24GuAH8A5twa4C/ismQWBEeBu55yLW8UiMidrXm6mqiiHS+q1BHIyyfIZxXn+uPbwZwx859wfz/D5/cD9MatIROLmjbY+NjR18eXbzsWfpQvtk01pvp/jI0k8pCMiqWPNK80U5WTzsavrvS5FplGa5+f4cPyGdBT4IhniYNcQL7xxhI9dfQ7FuX6vy5FplOYH6B8JEo7TqLgCXyRDPPBSE/4sH39+3SKvS5EzKMnzE3KOwdFgXLavxdNEMsC3frOPp7a1cc2SCn69p8PrcuQMTk3NjM+wjnr4Ihngpb2d+My4QcsoJLWS/MmLr+J14laBL5LmDnYNsb21l6sWl2vsPsmV5sX34isFvkia+8Zv9uEz0yJpKSDXn0Wu3xe3i68U+CJpbGfbcX76u8Ncu7SSIvXuU0JpXkA9fBE5O845/sfP91BREODGFerdp4rSfD99GsMXkbPxq93HeO1AD3/zgeXk+rO8LkeiVJLnp1ezdEQkWmPBEP/0/B4aqgu5+4qFXpcjZ6EsP8DoRJiB0dj38hX4ImnoOy/v52D3MH//ofPJ1po5KaUkMhf/SN9ozLetC69E0sjaxha6B8f45m/2cVFtCYd7R+J29ySJjxNTMw/3jrB8XlFMt60f/SJpxDnHszvayfIZ/+miBV6XI7NQGrn46vDx2N/QXIEvkkZ2tPWxr2OQW8+fR3GepmGmoqLcbHwG7Qp8ETmTjoFRfrajnYVleVy1pMLrcmSWfGaU5PnVwxeR6Tnn+Puf7mIiFOYPL6/TrQtTXGl+QD18EZneszva+dXuY9xy3jyqi3K9LkfmqDTPT/vx2M/SUeCLpLi23mH+/pldXFpfyvUNlV6XIzFQku/naP8owVA4pttV4IuksGAozBcf345z8I0/ulRDOWmiNC9AKOw4NjAW0+0q8EVS2Dd/28TWQ7384x9cSH1FvtflSIyURi6+ivU4/oyBb2aPmFmHme06w+dmZt80syYz22lml8W0QhGZVuP+bu7/7T7+8LI67ryk1utyJIamXnwVS9Fcafs94H7gsTN8fjvQEHlcBTwY+VNE4uT48Dj3/mArZfkBLqwp1tW0aSZeF1/N2MN3zr0C9LxHkzuBx9ykzUCpmekSP5E4cc7xlafeYHA0yN1X1JOjlTDTTiDbR1m+P/FDOlGoBVqnvG6LvPcuZnavmW0xsy2dnZ0x2LVI5nn89VZ+8eZRbr1gHrVleV6XI3FSU5qXlIE/3bQAN11D59xDzrlVzrlVVVW6IYPI2TrUPcTXn9vNdcsquG6ZpmCms5rSvMQP6UShDZi64HYd0B6D7YrIFKGw4788sYMsn/Gvd63UFMw0V1uax+HeEZybtv88K7FYHvlZ4Atm9jiTJ2v7nHNHYrBdEYGTJ2TX7e1g66FePrqqjnV7NSSa7mpL8xgaD9E/GqQkRgvhzRj4ZvZj4Eag0szagK8BfgDn3BrgeeAOoAkYBj4Zk8pE5KT24yP8Zk8HF9aWsLKu1OtyJAFqSifPzxzuHUlc4Dvn/niGzx3w+ZhUIyLvMhEK88SWVvJzsvjwyhpMQzkZoaZ0ck2k9uMjnF9THJNt6kpbkST34u5jdAyM8Z8vrSM/RzepyxQnZmC198XuxK0CXySJbd7fzcamLq5cXM6K+bG93Z0kt8qCHAJZvphebavAF0lSA6MTfOmJHZQXBLjjQl3LmGl8PmNBaW5Mp2Yq8EWS1D/8bDdH+kb4yKqFBLL1XzUT1cb44it9F4kkoV/sOsqTW9v43I3LqC/XKpiZqqY0jzYN6Yikr0PdQ/zXJ3dwcV0Jf/X+Bq/LEQ8tLMunY2CM0YlQTLanwBdJIqMTIe774TZ8Zjxwz2Uayslw9RWTM3Vi1cvXd5NIknDO8d+e2cWeI/38nz9ayUIN5WS8hWWT3wOtPcMx2Z4m9YokiW+va+YnW9u4aUU1R/vGtMa9nPyh39obm8BXD18kCTy1tY1//eVeLllYyi3nVXtdjiSJqsIcAtk+9fBF0sVLezv48lM7uW5ZBR+8YL6WTpCTfD6jriyP1h6N4YukvE3N3dz3g62smF/Eg39yOdk+/ZeUd6ovz4/ZkI56+CIeWNvYQkv3EI9sPEhpvp8PX1LLczu0qri828KyfLYe6o3JttSdEPFAa88wj756kKLcbP78+sUUaFE0OYOF5XkMjAbpG56Y87YU+CIJ9kZbH4++eoCCnGw+dcMSinNjs9a5pKeTUzNjMKyjboVIAu063MefPNxInj+LT12/OGY3tpD0c2Ja7om1dNY2tnBhbcmctqnAF0mQ3e39/MnDjRTmZHPPlfWU5ge8LklSQFnk+6R3eHzO29KQjkgCnAj7PH8Waz99FWUFCnuJTl4gi1y/j56huQe+evgicfaPP9/DY5sOkuvP4o+vrGdjU7fXJUmKKc8PxKSHr8AXiaNfvXmURzceoCw/wCevW6RhHJmVsoIAx/rH5rydqIZ0zOw2M9trZk1m9pVpPr/RzPrMbHvk8dU5VyaS4p54vZX7friVBSW53Lt6icJeZq08P8Dx4XHCzs1pOzP28M0sC3gA+ADQBrxuZs8653af1nS9c+5Dc6pGJA0453jw5Wb+5y/2snp5FTetqCInO8vrsiSFlRUECIYdg6PBOW0nmiGdK4Em59x+ADN7HLgTOD3wRTLa2sYWQmHHz3a289qBHi6uK+GW86q1XILMWXnkJH/3HE/cRvOdWAu0TnndFnnvdNeY2Q4ze8HMLphuQ2Z2r5ltMbMtnZ2dsyhXJHmNTYT4weaDvHagh9UNVXx01UKFvcREVVEOAB0Do3PaTjQ9/OmW7jt9IGkbcI5zbtDM7gCeAd51bzbn3EPAQwCrVq2a22CUSBI52jfKQ+v3c6x/lD+4pJYrFpd7XZKkkdI8P4FsHx1zPHEbTfejDVg45XUd0D61gXOu3zk3GHn+POA3s8o5VSaSIna39/PhBzbSMzTOJ65ZpLCXmDMzqotyODbHHn40gf860GBmi80sANwNPHtaMfMtsoi3mV0Z2a4mG0vae2lvBx9Z8ypmcO/qJSyfV+R1SZKmqoty6Yx3D985FwS+APwS2AM84Zx708zuM7P7Is3uAnaZ2Q7gm8Ddzs1x/pBIkvvh5kN86vtbWFRZwDOfv44FJXlelyRpbF5xDgNj8Z+lc2KY5vnT3lsz5fn9wP1zqkQkRUyEwnz84UY27+9hxbwi7rq8jt/s6fC6LElz1UW5c96GrrQVOQtdg2N87kfbeO1ADzcsq+TWC+aT5dMtCSX+qotz5rwNBb5IlN5o6+MzP9hCz/A4f7RqISsXlnpdkmSQEzN15kKThEWi8PS2Nu5a8ypmxpP3Xauwl4Q7MVNnLtTDF3kPwVCYf3rhLR7ecICrl5TzwD2XUVGYw862Pq9Lkww013F8Bb7IGXQPjvHR72yiuXOIa5dWcPuFC/jlm8e8Lksy2Lw5juMr8EWmsfVQL19Yu43OgTH+8LI6Lj+nzOuSRNTDF4kl5xzfe/Ug//jzPSwozeUz71tKbanm10tymOtMHQW+SMSjGw7w9O8O88bhPs6bX8Rdly8kL6BljSV5lM7xpvcKfBGgcX83D6xrontwnA9eMJ8bGirxmebXS3KxOX5PKvAlo3UNjvG/f7WXH7/WSlm+n7+4fjFLqgq9LkskLhT4kpGO9Y/y7xK8AfkAAAczSURBVK/s54eNhxgPhvn0DYupLc2f84UtIslMgS8ZY3QixK92H+OprW2s3zd5A54PX1LL529extKqQtY2tnhcoUh8KfAlrQVDYV472MPPdrTz3M4jDIwGKcnzs3p5FZfXl1FRmEPj/h4a9/d4XapI3CnwJe1MhMJs3t/N828c5dnthxkaD+HPMi6sKeHS+jKWVBXohKxkJAW+pIWW7mE2NHWxoamTjU3d9I1MkB/IYmlVIRfWlrBiXpHG5yXjKfAlJfUNT/Bqcxev7JsM+daeEQBK8vwsrSrk/AVFNMwrwp+lkBc5QYEvKWEiFGZH63Fe2dfFT7e10dY7ggNysn0sqSzg9y5ewLLqIioLA3OeqyySrhT4kpScc+zrGGRjUxevNnezubmbgbEgPoPa0jxuOreaZVWFLCzP1w1IRKKkwJekMDgWZM+Rfna397PlUC+bmrvoGhwHoLwgwLkLimioLmJpVaGWOxCZJQW+JNToRIj9nUM0dw7S1DHIvo4Bdrf3c7B7+GSbotxsllYVsrqhiqVVhZQVBDysWCR9KPAl5pxzdA+Nc6BriOaOyWBv7hykqXOQtp7JsXcAA8oKAiwoyeWW8+ZRU5rLgpI8inOzNQ4vEgdRBb6Z3QZ8A8gCvuuc++fTPrfI53cAw8CfOee2xbhW8VAwFGZ4IsTwWIjBsQm6B8fpGhyne2iMrsFxOvpHOXx8hMO9Ixw+PsJYMHzya7N9RlVRDlVFOSyvLqKqKIfqolwqCgOaRSOSQDMGvpllAQ8AHwDagNfN7Fnn3O4pzW4HGiKPq4AHI3/KDJxzkT8jr6e+d7INOE61mwiFCYYcE+HJP4Mhx3goTDDyeiIUJhh2TATDTIQdwVCYiZPvhxmdCDM0FmR4PMTQeJDhsRBDY8HJ5+Ohd3w2FPlsaoCfzoD8nGzK8v2U5vm5YlE5pfl+KgoCVBXlUprv14VOIkkgmh7+lUCTc24/gJk9DtwJTA38O4HH3GRSbTazUjNb4Jw7EvOKPTY8HuTyr//6HQF8Ipg5GdruHQE+2c69I8CTRU62jyyfkZPtI5DtI5DlI8efRSDLR2VBDjUlk+9Pfp5FTpaPgN9HQSCbwpxsCnKyyA9ka6aMSAqIJvBrgdYpr9t4d+99uja1wDsC38zuBe6NvBwzs11nVW36qgS6vC4iSehYnKJjcYqOxSkrZvuF0QT+dF230/uo0bTBOfcQ8BCAmW1xzq2KYv9pT8fiFB2LU3QsTtGxOMXMtsz2a6M5Y9YGLJzyug5on0UbERHxUDSB/zrQYGaLzSwA3A08e1qbZ4FP2KSrgb50HL8XEUllMw7pOOeCZvYF4JdMTst8xDn3ppndF/l8DfA8k1Mym5iclvnJKPb90KyrTj86FqfoWJyiY3GKjsUpsz4W5pJpyoiIiMSNrnoREckQCnwRkQwR98A3s9vMbK+ZNZnZV6b53Mzsm5HPd5rZZfGuyStRHIuPRY7BTjN71cxWelFnIsx0LKa0u8LMQmZ2VyLrS6RojoWZ3Whm283sTTN7OdE1JkoU/0dKzOxnZrYjciyiOV+YcszsETPrONO1SrPOTedc3B5MnuRtBpYAAWAHcP5pbe4AXmByLv/VQGM8a/LqEeWxuBYoizy/PZOPxZR2v2VyUsBdXtft4fdFKZNXttdHXld7XbeHx+LvgH+JPK8CeoCA17XH4VisBi4Ddp3h81nlZrx7+CeXZXDOjQMnlmWY6uSyDM65zUCpmS2Ic11emPFYOOdedc71Rl5uZvJ6hnQUzfcFwF8CTwEdiSwuwaI5FvcATzvnWgCcc+l6PKI5Fg4oiizYWMhk4AcTW2b8OedeYfLvdiazys14B/6Zllw42zbp4Gz/nn/B5E/wdDTjsTCzWuAPgDUJrMsL0XxfLAfKzGydmW01s08krLrEiuZY3A+cx+SFnW8AX3TOnXllv/Q1q9yM93r4MVuWIQ1E/fc0s5uYDPzr41qRd6I5Fv8X+LJzLpTma+NHcyyygcuB9wN5wCYz2+ycezvexSVYNMfig8B24GZgKfCima13zvXHu7gkM6vcjHfga1mGU6L6e5rZxcB3gdudc90Jqi3RojkWq4DHI2FfCdxhZkHn3DOJKTFhov0/0uWcGwKGzOwVYCWQboEfzbH4JPDPbnIgu8nMDgDnAq8lpsSkMavcjPeQjpZlOGXGY2Fm9cDTwMfTsPc21YzHwjm32Dm3yDm3CHgS+Fwahj1E93/kP4AbzCzbzPKZXK12T4LrTIRojkULk7/pYGbzmFw5cn9Cq0wOs8rNuPbwXfyWZUg5UR6LrwIVwLcjPdugS8MVAqM8FhkhmmPhnNtjZr8AdgJhJu86l3ZLi0f5ffF14Htm9gaTwxpfds6l3bLJZvZj4Eag0szagK8BfphbbmppBRGRDKErbUVEMoQCX0QkQyjwRUQyhAJfRCRDKPBFRDKEAl9EJEMo8EVEMsT/B0Y8gHU8XsPqAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import seaborn as sns\n", "hist_8_2 = sns.distplot(vis_dist.rvs(100000))\n", "hist_8_2.set_xlim(0,1);" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }