Skip to content

Instantly share code, notes, and snippets.

@darribas
Last active January 5, 2022 09:46
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save darribas/8b5a7b93d4085223f1c5 to your computer and use it in GitHub Desktop.
Save darribas/8b5a7b93d4085223f1c5 to your computer and use it in GitHub Desktop.
A computational exploration of the Modifiable Areal Unit Problem
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# The Modifiable Areal Unit Problem, visually, in Python\n",
"\n",
"> [Dani Arribas-Bel](http://darribas.org) ([@darribas](http://twitter.com/darribas))\n",
"\n",
"The [Modifiable Areal Unit Problem](https://en.wikipedia.org/wiki/Modifiable_areal_unit_problem) (MAUP) is a well know phenomenon for any researcher interested in spatial issues. In this notebook, we'll get our hands dirty experimenting with different geographical configurations and will see, in a practical way, some of the implications of the MAUP. In doing this, we'll also tour some of the basic functionality in [`geopandas`](http://geopandas.org). \n",
"\n",
"To motivate this exercise, let us start from the end and show how, the exact same underlying geography, can generate radically different maps, depending on how we aggregate it:\n",
"\n",
"![Comparison](comparison.png)\n",
"\n",
"In this case, we have started from a set of points located in a hypothetical geography (left panel). We can think of them as firms located over a regional economy, the distribution of a particular species of trees over space, or any other phenomenon where the main unit of observation can be described as points located somewhere in space. Now, in the central pane, we have overlayed a five by five grid and, for every polygon, which we could think of a regions, we have counted the number of units and assigned a color based on its value. In the right pane, we have done the same, using the same underlying distribution of points, but have overlaid a ten by ten grid of polygons.\n",
"\n",
"The gist of the MAUP is that, even though the original distribution is the same, the representation we access by looking at the aggregate can vary dramatically depending on the characteristics of this aggregation. In our example, the units were points and the aggregation were simple polygons in a grid. But the same problem occurs, for example, when we look at income over individuals and aggregate the average in neighborhoods, regions or countries: if the units we use for this aggregation are not meaningful, in other words, if they don't match well the underlying process, there can be substantial distortions.\n",
"\n",
"Now we have the conceptual idea clear, let's see how we have arrived to the picture above! Before anything, here are the libraries you'll need to run this notebook:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import geopandas as gpd\n",
"import pandas as pd\n",
"import numpy as np\n",
"from itertools import product\n",
"from shapely.geometry import Polygon, Point"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Generate polygon geographies"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First we need an engine that generates grids of different sides. This will allow us later to easily create many geographies with different characteristics, which will dictate the aggregation process. We can solve this problem with the following method, which generates polygons and collects them into a `GeoSeries`:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def gridder(nr, nc):\n",
" '''\n",
" Return a grid with `nr` by `nc` polygons\n",
" ...\n",
" \n",
" Arguments\n",
" ---------\n",
" nr : int\n",
" Number of rows\n",
" nc : int\n",
" Number of columns\n",
" '''\n",
" x_breaks = np.linspace(0, 1, nc+1)\n",
" y_breaks = np.linspace(0, 1, nr+1)\n",
" polys = []\n",
" for x, y in product(range(nc), range(nr)):\n",
" poly = [(x_breaks[x], y_breaks[y]), \\\n",
" (x_breaks[x], y_breaks[y+1]), \\\n",
" (x_breaks[x+1], y_breaks[y+1]), \\\n",
" (x_breaks[x+1], y_breaks[y])]\n",
" polys.append(Polygon(poly))\n",
" return gpd.GeoSeries(polys)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Once defined, it's easy to generate a grid of, for example, four by three polygons:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10c80d450>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"polys = gridder(3, 4)\n",
"polys.plot(alpha=0)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Generate points within the geography"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we have the \"engine\" to generate the geography, we need to create observations that we can pinpoint over space. The easiest way is to randomly generate points within the bounding box of the geographies we create, and store them in a different `GeoSeries`. That's exactly what the following function does:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def gen_pts(n):\n",
" '''\n",
" Generate `n` points over space and return them as a GeoSeries\n",
" ...\n",
" \n",
" Arguments\n",
" ---------\n",
" n : int\n",
" Number of points to generate\n",
" \n",
" Return\n",
" ------\n",
" pts : GeoSeries\n",
" Series with the generated points\n",
" '''\n",
" xy = pd.DataFrame(np.random.random((n, 2)), columns=['X', 'Y'])\n",
" pts = gpd.GeoSeries(xy.apply(Point, axis=1))\n",
" return pts"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This allows us to create, for example, 100 points:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0 POINT (0.6964691855978616 0.2861393349503795)\n",
"1 POINT (0.2268514535642031 0.5513147690828912)\n",
"2 POINT (0.7194689697855631 0.423106460124461)\n",
"3 POINT (0.9807641983846155 0.6848297385848633)\n",
"4 POINT (0.4809319014843609 0.3921175181941505)\n",
"dtype: object"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Set the seed to always get the same locations\n",
"np.random.seed(123)\n",
"pts = gen_pts(100)\n",
"pts.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Since we already have tools to create both the underlying points *and* a geography in which to aggregate it, let us imagine what this could look like. In fact, stop imagining and simply plot them:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10ca2c190>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"f, ax = plt.subplots(1)\n",
"polys.plot(alpha=0, axes=ax)\n",
"pts.plot(axes=ax)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Aggregate points to polygon\n",
"\n",
"Now, to get to a map like those above, we need a way to assign how many points are within each polygon. The following method does exactly that, albeit in a fairly computationally expensive way. There are faster ways to do it in `geopandas` ([spatial join](https://github.com/geopandas/geopandas/blob/master/examples/spatial_joins.ipynb), I'm looking at you), but they require additional dependencies, and are not as intuitive as this one I think. For now, this approach will have to do:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def map_pt2poly(pts, polys):\n",
" '''\n",
" Join points to the polygon where they fall into\n",
" \n",
" NOTE: computationally inefficient, so slow on large sizes\n",
" ...\n",
" \n",
" Arguments\n",
" ---------\n",
" pts : GeoSeries\n",
" Series with the points\n",
" polys : GeoSeries\n",
" Series with the polygons\n",
" Returns\n",
" -------\n",
" mapa : Series\n",
" Indexed series where the index is the point ID and the value is \n",
" the polygon ID.\n",
" '''\n",
" mapa = []\n",
" for i, pt in pts.iteritems():\n",
" for j, poly in polys.iteritems():\n",
" if poly.contains(pt):\n",
" mapa.append((i, j))\n",
" pass\n",
" mapa = np.array(mapa)\n",
" mapa = pd.Series(mapa[:, 1], index=mapa[:, 0])\n",
" return mapa"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Check how we can collect the count for each polygon in a `GeoDataFrame` that also holds their geometries:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>count</th>\n",
" <th>geometry</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>4</td>\n",
" <td>POLYGON ((0 0, 0 0.3333333333333333, 0.25 0.33...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>8</td>\n",
" <td>POLYGON ((0 0.3333333333333333, 0 0.6666666666...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>9</td>\n",
" <td>POLYGON ((0 0.6666666666666666, 0 1, 0.25 1, 0...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>8</td>\n",
" <td>POLYGON ((0.25 0, 0.25 0.3333333333333333, 0.5...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>12</td>\n",
" <td>POLYGON ((0.25 0.3333333333333333, 0.25 0.6666...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" count geometry\n",
"0 4 POLYGON ((0 0, 0 0.3333333333333333, 0.25 0.33...\n",
"1 8 POLYGON ((0 0.3333333333333333, 0 0.6666666666...\n",
"2 9 POLYGON ((0 0.6666666666666666, 0 1, 0.25 1, 0...\n",
"3 8 POLYGON ((0.25 0, 0.25 0.3333333333333333, 0.5...\n",
"4 12 POLYGON ((0.25 0.3333333333333333, 0.25 0.6666..."
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pt2poly = map_pt2poly(pts, polys)\n",
"count = pt2poly.groupby(pt2poly).size()\n",
"db = gpd.GeoDataFrame({'geometry': polys, 'count': count})\n",
"db.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"At this point, we have everything we need to make a map of the counts of points per polygon:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10e55a8d0>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nDPl8Pnr2vJKePYMfUkvTpdMKEfGkcBARTwoHEfGkcBARTwoHEfGkcBARTwoHEfGkdQ5SI6WLoHI4\neDibi4VFXNEylp6pKSQnJ2sRVDOhIweJ2Oq1f+Xdv2by2ZlCeg64lkFDbqTngGv57Ewh7/41k9Vr\n/xqV/bRt27bSKLbY2Fh++tOfetZmZGQwePBgEhISSE5OZvr06RQXFwdej+aYOIAtW7YwZMgQEhIS\n6NWrFwsWLKi29ssvv+SBBx4gISGBpKQk5s2bV+l1jYmTZsHv9/NlMVwzdBjJPVIqjYlL7pHCNUOH\n8WUxURlz9sUXXwTujvzss89o1aoVd911l2dtQUEBzz77LCdPnuTDDz9k3bp1zJ07N/B6NMfEFRcX\n873vfY8pU6Zw5swZ3nrrLX72s59dcndluZkzZ3LgwAGOHDnChg0b+M1vfsOaNWsAjYmTZiQnJ4dO\nXw1+x2XHLt3IqeUkqKrefvttunTpwo033uj5+o9//GOGDRtGbGwsXbt2ZcKECYFZDNEeE5eXl8fJ\nkycDd3UOHjyYtLQ0srKyPOsXL17Mk08+SUJCAv3792fKlCmBEXYaEyfNxsHD2Xw1qWvQmqSu3Th4\nODuq+41kqApAZmZm4M7IaI+J69q1K+np6SxatIji4mLef/99srOzPYMrPz+fY8eOXTLCrnzfjXlM\nnC5ISkQuFoY3Ju5iYe3GxFWUnZ3Npk2beOWVV8KqX7RoER999BGLFi0CIh85F4758+dz22238eij\njwLw0ksv0a1bt0vqvvjiC4BLRtiV71tj4qTZuKJleGPirmgZvX93lixZwvDhw0lJSQlZu3z5cp54\n4glWrVpF+/btgchHzoUaE3f06FHGjh3L66+/jt/vZ/fu3cyZM4d33333ktryqU9VR9iV77u63jQm\nTpqcnqkpfHbs06A1xz49Ss/U0G/kcC1evDis6c6rV69mypQprFy5stKYtWiPiXv//ffp3r073/72\ntwPbv+2221i1atUltYmJiSQlJV0ywq583xoTJ81GcnIyn38WfIbkibyjJNdyhmS5999/n08//ZQ7\n77wzaN369euZMGECy5YtY/DgwZVei/aYuKuuuop///vfbNiwAeccBw4cYOXKlZWuK1Q0adIkZs+e\nzenTp8nKyuIPf/gD9913H6AxcdKM+Hw+vhIDH/1tK0eyD1caE3ck+zAf/W0rX4khaguhFi9ezPjx\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10e55a490>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"db.plot(column='count', scheme='quantiles', legend=True, colormap='Blues')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Automated\n",
"\n",
"Although we have all the pieces, one of the beauties of scripting languages like Python is that they allow you wrap different functionality so that obtaining the final outcome is easier than repeating every step every time you need the final product. In this case, we can ease the process by encapsulating the process above into a single method that takes `nr`, `nc` and the points we want to plot and generate a table of counts per polygon:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def count_table(nr, nc, pts):\n",
" '''\n",
" Create a table with counts of points in `pts` assigned to a geography of\n",
" `nr` rows and `nc` columns\n",
" ...\n",
" \n",
" Arguments\n",
" ---------\n",
" nr : int\n",
" Number of rows\n",
" nc : int\n",
" Number of columns\n",
" pts : GeoSeries\n",
" Series with the generated points\n",
" \n",
" Returns\n",
" -------\n",
" tab : GeoDataFrame\n",
" Table with the geometries of the polygons and the count of \n",
" points that fall into each of them\n",
" '''\n",
" polys = gridder(nr, nc)\n",
" walk = map_pt2poly(pts, polys)\n",
" count = walk.groupby(walk).size().reindex(polys.index).fillna(0)\n",
" tab = gpd.GeoDataFrame({'geometry': polys, 'count': count})\n",
" return tab"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For example, we can generate the counts for a five by five grid:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>count</th>\n",
" <th>geometry</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3</td>\n",
" <td>POLYGON ((0 0, 0 0.2, 0.2 0.2, 0.2 0, 0 0))</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>POLYGON ((0 0.2, 0 0.4, 0.2 0.4, 0.2 0.2, 0 0.2))</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4</td>\n",
" <td>POLYGON ((0 0.4, 0 0.6000000000000001, 0.2 0.6...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>POLYGON ((0 0.6000000000000001, 0 0.8, 0.2 0.8...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>POLYGON ((0 0.8, 0 1, 0.2 1, 0.2 0.8, 0 0.8))</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" count geometry\n",
"0 3 POLYGON ((0 0, 0 0.2, 0.2 0.2, 0.2 0, 0 0))\n",
"1 2 POLYGON ((0 0.2, 0 0.4, 0.2 0.4, 0.2 0.2, 0 0.2))\n",
"2 4 POLYGON ((0 0.4, 0 0.6000000000000001, 0.2 0.6...\n",
"3 4 POLYGON ((0 0.6000000000000001, 0 0.8, 0.2 0.8...\n",
"4 4 POLYGON ((0 0.8, 0 1, 0.2 1, 0.2 0.8, 0 0.8))"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"counts_5x5 = count_table(5, 5, pts)\n",
"counts_5x5.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And quickly plot it on quantile map using `PySAL` under the hood:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x10cec7e10>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\npNb/AkqTh0guwNB7AAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10e7c1d10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"counts_5x5.plot(column='count', scheme='quantiles', colormap='Blues')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Further MAUP exploration\n",
"\n",
"Now we have all the pieces we require in an accessible way, let's explore what the choropleth looks like for the same set of points when we aggregate them into different geographies:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\nS3qSpOTN84uSLhx9/W2STizSjXPaU+m0onPxU9XDktoV0ORJjPgUcOeVdbTJtN/Vue9N1+5o2+iZ\ntvSzhKViGRkJAAAgAElEQVS/FwNAw7gPA0CKeQmFB0iKEt9/XtL+ide8QdL1xpgvSNot6aezNt7v\nX+p0eHvWIn4+DPOusg95FAlcq+hvEATaftN25Utzlt1u04Fr0UKVeZJdx48f1/r6ujqdTmuWdWxb\nAqSASu/FAIC5uA8DQIp5CQWbYRsvkvTn1toDxpjvlPQhY8wjrLUnp71hsoK7S3kC+qyvS3sqPa/o\nnMs+1CWK4n8nm5gCMn6fb8ekKbNGU1R5vYVhqKNH13Xq1Ant2rW3UDt1c7FEZQtUci8GAGTGfRgA\nUsxLKNwqqZv4vqs4I5v0HyT9piRZa//eGBNK+i5JH5vcWG8UIN1+++365je/qXve857Fel2zWUPg\n224cuEZRpI2NDUnZlumbVHRuP6Zr6hju3t3RJZfs1ZEjWwt5Ho8dO6Zjx4413Y28nN2Lv/mFj+58\nfdFFB3TRgQMVdNcPr/3Qp5vuQm3Of/C5TXehNhc++glNd6E299tzr6a7UJkbjx3TjTcea7obeTj9\nTFz3vfhLd3y90u375hVvuLb2Np/x5OW5N13Y0L6+46PR/Bc59oJnXlp7m1I9f7Mfvum4Pjw4Xno7\nxtrpCVdjTEfS30r6AUlfkHSzpKcmC9AYY14t6avW2pcZY75d0v+WdKG19p8mtmWTbS3BEOVWmRw1\nQkLBT3X83bTxb7NMn40xstYa131yydW92Bhj/2WY5SHbYiChsJguvO+uprtQm0VOKEy6R8fve7Hr\nz8R134uXLaHwprdfX3uby5RQaEoTCYXn/NAFtbcpNfM3+6Dzzil0H545QsFaOzTGXC7pA4qXyNm0\n1n7KGPPs0e9fL+nlkt5ojPkLSXeT9PzJG2eaNgUrVfMhgCu7TF/a3H4f9muR1JW0aeP5amOf86jy\nXgwAmI/7MACkmzflQdba90t6/8TPXp/4+jZJP+a+a8vBp+UjXRYsZMQC4Bb3YgBoFvdhADjb3IQC\nYjxtR9OKrvAAAAAAAFUgoZBBGIbq9eKn7b2e26ftviwfmVXWxArBbzUW8ViSrAMAAADaaWkSCpNB\ni09BjA99yCLv8nxN7ZdP5xazZS0GyjkFAAAA/LMUCYU4aLlKkjQYHJakXPP7gyBQr7c4T9sXOTjz\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10ead9cd0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 3.43 s, sys: 42.8 ms, total: 3.48 s\n",
"Wall time: 3.48 s\n"
]
}
],
"source": [
"%%time\n",
"np.random.seed(123)\n",
"pts = gen_pts(1000)\n",
"sizes = [5, 10]\n",
"f, axs = plt.subplots(1, len(sizes)+1, figsize=(9*len(sizes), 6))\n",
"pts.plot(axes=axs[0])\n",
"axs[0].set_title('Original point pattern')\n",
"for size, ax in zip(sizes, axs[1:]):\n",
" tab = count_table(size, size, pts)\n",
" tab.plot(column='count', scheme='quantiles', \\\n",
" colormap='Blues', axes=ax, linewidth=0)\n",
" ax.set_title(\"%i by %i grid\"%(size, size))\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also generate a plot for each case in which we compare the points, with the geography, with the final map:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def plot_case(nr, nc, pts):\n",
" '''\n",
" Generate an image with the original distribution, the geography, and the resulting map\n",
" ...\n",
" \n",
" Arguments\n",
" ---------\n",
" nr : int\n",
" Number of rows\n",
" nc : int\n",
" Number of columns\n",
" pts : GeoSeries\n",
" Series with the generated points\n",
" '''\n",
" tab = count_table(nr, nc, pts)\n",
" f, axs = plt.subplots(1, 3, figsize=(18, 6))\n",
" pts.plot(axes=axs[0])\n",
" tab.plot(alpha=0, axes=axs[1])\n",
" tab.plot(column='count', scheme='quantiles', \\\n",
" colormap='Blues', axes=axs[2], linewidth=0)\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nmZlZY38DQykAmKBlHdMAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10cc80a50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_case(7, 4, pts)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And then run if for several cases:"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABBQAAAFwCAYAAAAIQih3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X+MZtd93/fP4Y5YgDAdJSagBtQEPkwkOSkswQpEKXqi\n1So2YEYUrNZd1KsoQeMwsmZbBhWQInQEyLoqEbUGkpQxZMyo6kYwUsHzxzaSVVqWmkAcrntrreU2\n+tWQlugeAUOKMGrGtijbf2jk0z+e5xk+++zz4977nHvPj/t+AYSe2Xnmuefce+dovt97zvcY770A\nAAAAAADauCN2AwAAAAAAQH5IKAAAAAAAgNZIKAAAAAAAgNZIKAAAAAAAgNZIKAAAAAAAgNZIKAAA\nAAAAgNa2JhSMMf/SGPO7xpivbnjPLxhjvmGM+bIx5kfCNhEAxo1xGADiYywGgNs1maHwcUkPrPum\nMebtkv6S9/5Vkn5G0mGgtgEAphiHASA+xmIAWLI1oeC9/3VJv7/hLT8h6Zdm770p6eXGmFeEaR4A\ngHEYAOJjLAaA24WooXCvpNOFr5+V9MoAnwsAaIZxGADiYywGMDqhijKapa99oM8FADTDOAwA8TEW\nAxiVvQCf8Zyk/YWvXzn7t1sYYxhQASTJe7/8B2BuGIcBZI+xGADi6jIOh0gofFrSw5KOjTFvkvQH\n3vvfXfVG78cxflZVpaqqgnyWc06SZK0N8lmTWbvqqgrymSH7mrqufd3lvDf5Wa7rbozJ/e9XSYzD\nK43pPo7RV2NMlPuJ61qmsY3Fjx4+PmjDYvn845/Q33jHu2M3YxCx+vrIex4c/Jj/3Ycq/dwHq8GP\nG8OY+nrnXrdxeGtCwRjzy5LeKukeY8yppA9Kepkkee8/6r3/jDHm7caYZyT9kaSfXvdZzrkgwc5Y\nOOdUTSpJUlXvHihaa1XP/jDp6zqETICkrE0/hzjvKFvIcRgA0A1jMQDcbmtCwXv/rgbvebjJwSZV\nFewJ6pBKCpL77INzTlU1kSRVVR1sVoWU1rl3zmkyOZIk1fVB46RCF02SEaUkLFK81qkIOQ4DALph\nLAaA24VY8hBMigGFc06Tq9MguT5sFiRfunQpyLGttarq6vx1ikL1dRXnnI4m03N/UIdJUOyiz75u\n0mfCYp2h+zpN0sx+zxK41ihDrN/ZGOhrmcbUV5TJvvqHYzdhMGPq61vfeil2EwYzpr52ZYZa/2iM\n8U8++aQuXry48vupBhRdEgoxpJKMCV3zIaWEwqJUzncpYv7+z9aBF7F4dxtjjB9TDQX0K1YNBZRp\nbGPxWGoooH8xaiigTHfudRuHB52hsL+/v/1NibHWqj6sz1+nKKVkTMhjW2t1UIc/9yGSAaneCylp\nXWeih2sNAAAAoD+DJhQ2BQopBxSptaeN3J+kh253Hzsi4HZd6mlwLQAAAIC8JFVDgYCivXnCYFUy\nJuUlA5jKPeEDAAAAYLySSijkajEoHCJAnB9DUjJLHULq8xy22RGh72tZ8mwJa62qKs0ZRwAAAADC\nIKGwo8WijcfvP9aVK78qqfl2gp2ON0siHB8fb3xvXzUI+tTH1pPLmnxmycH+UDhnAAAAQNlIKGRs\nf39/a90Jgrp0tZktAQAAAACpGXTbyFK3l4q15KHUIDSV/qXSjrkbN25I0tqtV9HN2LYqK3UcxvDY\nNhIhjW0sZttIhMK2kQgli20jS7UYcA4RfPa1lKKvz24rhTZI6bRDmiYTHnjbJyRJn30i7aRCSvcS\nAAAAgP7cEbsBQ3LO3VLQcGzW9X9eB2JydTLq84PdzXcWOZpwLwEAAAClG80MBeecqkklSarq8RXZ\nWyweWR+WsyNEn1J60n7x4kV99omXXgMAAABAbKNJKGA9a63qw7x2g+hbigmoHBIJXXcWSSl5AwAA\nAKCZYhMKywGKtVZVXd3yb6lrGmQ1ed+2pEEu5wTpa3svzZdJSNJBzewZAAAAIBdFJhScc6qqaYBS\nVfUtSYWmP9/m/X1wzmkyC7LqDUHW9H1Hs/cdbNxpgkCtuRwTUAAAAAAwpCITCrtYFaDnhKe94XDu\nhtF1mQQAAACAuIpMKFhrVVV5ByjWWtUNgqzp+w7OX6dcWT+FmR9IE/cEAAAAkB/jvR/mQMb4oY61\nq9wD3xTbv2oJxxDtTPFchFBqv2Iwxsh7b2K3Ywg5jcNI3+x3J3YzUIixjcWPHj4euxkoxCPveTB2\nE1CIO/e6jcNFzlDYVe5BWpcijkMHqM45TapKklRX/eyiMMQxYlhXIwQAAAAAhkRCYWTWzRRoUgBy\nF8tLOFJempEqzhkAAACAlJBQwGAWExXWWtWz2QN9PWEf4hhDWZ6VkHuNEAAAAAD5i5pQWH7iSnDU\nr/n5Xi722LQAZJtjNPmcIa53qfdU7v2iBgQAAACQv2gJhfkT1+9970z/+x//de3dfXdR69ybGDKo\n2rYdZog2OOc0uTpbOnHI2v6QSti5ZK7U2hYAAADA2LDkIZIh6hagLNwjAAAAAFISLaGw+MT10YV/\nQz+myxoOzl/3dozDMp6ioz8l1bYAAAAAxizqDIUxBxMh6xa0OWYJx0D+hqzVAQAAAKAfLHloKWQg\nQzCEOQLk5pxzOpotFzpguRAAAAAQzR2xG5CTeSHJqprctkMF0JVzTtWkUjWpuK8AAAAAZIMZCgCy\nYq3VwcDLhQAAAADcznjvhzmQMX6oY/WJqenoA/dVPMYYee9N7HYMoZRxGGmY/e7EbgYKMbax+NHD\nx2M3A4V45D0Pxm4CCnHnXrdxmBkKLRHwNUeQ3BznCAAAAEBuqKGAXlAXAAAAAADKVmRCwTlHEIut\nYt0n3J8AAAAASlDckgfnnCaTI0lSXR8wlTwSa62qujr/2jmX1LVwzmlSVZKkuqoGa5tzTpOr0y0P\n60O2PAQAAACQryJnKCAN82B5MjnSZHLEU3kAAAAAKEhxMxSstarrg/PXwCrWWtWzGQpD3ifWWtWH\nbHnYJ4qBAgAAAMMoLqEgpR1IjC3YSTnBE6s9qZ2HVXK9T1nyBAAAAAyHJQ8Dcs6pqiaqqslopv93\nDUxLKlyYW1/mdR4mV/O/T3M79wAAAEBOipyhgDTMEyiSVFXNCxDOt5yUpKoermBiH5xzOppMz8FB\nTRHGvi3OiJEUpfAmAAAAMBYkFAZkrVVVsX4+R7ssATg7OwvdnF7lXudh3mZmJgAAAAD9IqEwsNQD\ntJBr57smUBa3nAx1vnbp165bTH6n9RHjS/0+bSJW4U0AAABgLEgo4Ny0oN10en4daHp+188IGQDe\nuHFDlx+9rL0Le6oPh112cHp6Kkl6+d6tv2q5Fj3MDecXAAAA6A8JBaxVQtDrnNPly5/QC/f+sX7g\nnrs6fUbXJ93OOV358BWdvU66/oHjW6bih07chFbCtQcAAADQLxIKODctaFeff11KMcG9vZfrB557\nt67/i3dHmTGxd2FP+/v7nX9+aLsu8QAAAAAwDiQUBpb6k9/SCtotVv0f4pwvXt91xQ0XEzep3gcA\nAAAAsI3x3g9zIGP8/FipB9V9cc5pcnU21X3gtfxdjPU6NbHq3JT0ZH9M194YI++9id2OISyOw8Cu\nZr87sZuBQoxtLH708PHYzUAhHnnPg7GbgELcuddtHB58hoJzLvhU+tSDn1yf9qd6PmPLoQbCrpr0\nKfXfOwAAAAD9yn7JwzS4O5Ik1fVBcsHN8lPrVVPgUYYxbVM49GybTckLEhsAAABAHIMnFKy1Ouh5\n/XjKAUaKbUI7m2ogjPGe7tumpGFuy4gAAACAkkSZoRDyj/7lonupBRhjempdkm0B/JDX0jmnalJJ\nkqo6jdoM6wpO5mDMyRkAAAAgpOyXPEjpBwaptw+3Si0plaqhzsumnTraJjZSTM4AAAAAuSoiobCo\nzyenPNlEDNZaVXV1/nqMNvV7rOcEAAAAiC3KtpGxdUkMpF78MZZSkyyl9gu3X9uxbVWWyjiM/LFt\nJEIa21jMtpEIhW0jEUo220bGxpTncErePrGkvqQoZsKGawsAAACEMbqEQleb1nEDfcl5psS6tpec\niAIAAADGZBQJhcXAZpf16AQ+t9q0fSJ2l/NsGuecjmZJgwOSBgAAAECRik8orArKCG7CKfFc5jwr\nIAd9JKK4ZgAAAMDwik8oDG0MgU3OfdzWduecqmr6ZL2qbn+yPmTfc97dwVqrgw1Jg5D9YZtPAAAA\nII47tr3BGPOAMeZpY8w3jDGPrPj+PcaYzxpjvmSM+Zox5u/20tKO5kHZEFPG5ztBTCZH54Hntvc3\neV9K5gF3VU2Ct905pxs3bvR2TpxzmlSVJlXV6Rh99n2dkDNqhr7fmA0UVu5jMQDkjnEYAG63cYaC\nMeaCpI9I+jFJz0n6ojHm0977pxbe9rCkf+e9/8fGmHsk/bYx5n/x3p/11uqWUgxqcl4f3wfnnN74\nX75Rr7/5et3zZ+7RozcfjbYDQFWlURci5GyIkrc9tdaqPkzjmvWllLEYAHLFOAwAq21b8nC/pGe8\n99+UJGPMsaR3SlocPJ+X9NrZ6++X9MJYB85cd4JoE7imFHC3Za1VXVXnrze9b92/D9X3+WwKSaor\nEk7bjOD8MBYDQFyMwwCwwraEwr2SThe+flbSG5fe8zFJnzfGfEvS3ZL+i3DNy0/TwCaV9fFdAtc+\n2mut1c1fuqnT01Pt7+/3dk52/dxcA9c2ya6ca2QUjLEYAOJiHAaAFbYlFHyDz3i/pC957y8ZY/6i\npH9jjHmd9/7F3ZtXttQCttPT6f9PxmoXa+5f0nQ2RdvP3GZbUUpEw1gMAHExDgPACtsSCs9J2l/4\nel/TjOyiN0v6J5Lkvf8dY4yT9BpJv7X8YdUsQJKkS5cu6dKlS60bjLDmgevp6amuXLkiSaprAskU\ncA36cXJyopOTk9jNaCvYWMw4DCAFGY7FQf8m/vzjnzh/bV/9w7Kvfu3yWwCgV0+enOjJJ092/hzj\n/fqEqzFmT9JvS/pRSd+S9JuS3rVYgMYY888l/aH3/kPGmFdI+r8kvdZ7/x+WPstvOhbimhbtm229\nR0Jh1Ma25MEYI++9id2OTUKNxYzDCGn2uxO7GShE6mNx6L+JHz18fLjGo2iPvOfB2E1AIe7c6zYO\nb5yh4L0/M8Y8LOlzki5Iuua9f8oY897Z9z8q6cOSPm6M+bKm21D+o+WBE+mbrrEPW3BwbIFpKbhe\n6WEsBoC4GIcBYLWNMxSCHognY6PinNPk6mzGwyEzHpCu1J+KhcQ4jJCYoYCQxjYWM0MBoTBDAaF0\nnaFwRx+NKZFz7vyJOwAAAAAAY7etKCNE5fsurLWqD8MuoQAAAAAApGM0CYXl9fys7+8f5xYAAAAA\nyjWKhMJ0B4MjSVJdH0hSq/X91lpVVTlP20mmxMF5BwAAAFCSUSQUQiglCHTOaTLbh76uqmL6lTrn\nnI5m23IesC0nAAAAgAKMIqEw3RLx4Py1JNb3AwAAAACwgyjbRjL1O65V57/va5L754eQQxvHaGxb\nlbHNH0Jh20iENLaxmG0jEQrbRiKUrttGDj5DwTmnalJJkqqaKfcxLJ/zvq9J38ssctmFI9V2AQAA\nAEAXd8RuALAL55xOT09jNwMAAAAARoclDyPQ5Hw3vSZdr10f13xx5sPxQw9pf3+fe6ogQ40TY5tm\nyxR1hMKSB4Q0trGYJQ8IhSUPCCWbJQ8SiYQ+LQdh0y0zZ1tkbthdoMk1Wd5+s811XPfeUEEjyYR8\nravpEXqZDIlMAAAAIKxR7PIwFrnUEpjbdStFa63qWdCZel+x2lDbmLJtJwAAABBeMgmFsT09HKq/\n0y0zw2yRuWr7zdi6tmNs91tuSBYBAAAA6YtSQ2HZLlPpc9R1V4WQtRD60vb4MdrrnNPk6mwZyCFP\nq2Mb6h5Yd5yxrdtlzTtCoYYCQhrbWEwNBYRCDQWEklUNBbTXNOkSMzjukighmMdQ9wD3GgAAABBW\nEgmFFKfS98laq6quzl/nKvZsiK6staoPwywDSU2u1wQAAABAfpJY8oBmUgoW182YWLXLxOLX6A9L\nOboZ2zRbxmGEwpIHhDS2sZglDwiFJQ8IhSUPI5BDgNj31n8AAAAAgDSQUBipXWcOWGt1fPzgTp+B\nsEpeygEAAAAgPSQURsg5p6qaTo2vqm5T451zunblmiRpv95f+Rls/Tc8zjMAAACAoURLKIRcW886\n/XSN5ZpwDwIAAAAYmygJhZBr65tupzi0lANMa62qarep8aXsVBFC6sUQU74XAQAAAOSLJQ89cM6p\nmlSSpKpOsxhhiDal2K9lJQbTbfo0TbjNkh11eskOAAAAAPmKklAIubbeWqu6PgjyWShLiFoRTQxZ\nDHGoPgEAAADANtFmKDR9utrkvakFVSwHGJ8213nIWRPThBs7PwAAAAAIz3jvhzmQMb7NsZxzOppN\n1T5gqjY6Sm3JQ9sZBqvan1qfcmeMkffexG7HENqOw8Ams9+d2M1AIcY2Fj96+HjsZqAQj7znwdhN\nQCHu3Os2DlNDISICw/7lfG7X1T/IuU8AAAAAypFsQsFaq4Mdp2qnHLDnULgR4YXYYQMAAAAAUpBs\nQkHaLeCieB1S1fRepP4BAAAAgJQlnVCIqe/ZDRRuDGvT9Up5pso2ObZ5lZyvAQAAAIDVik0o7DK1\nfKjlCENsMRjqOCkHhM45Ta7Oag0c1rcVMNyluGfK/c4FBVYBAACAMhWbUJDGHQSGXPIx1uUjY+03\nAAAAADRRdEKhK5YjDGvXWQDWWtWHq2ejhCjuid1wDQAAAIAymaH2kG67/zlTzXeXw5KH1KfDcx+W\nY921HNve50ON+Sjf7HcndjNQiLGNxY8ePh67GSjEI+95MHYTUIg797qNw0nOUNi0Jh7NhTxvTT+r\ntAC8lH6MnXNOk6qSJNUV27QCAAAAISSZUECenHOaTI4kSXV90ChoYzr87kpL4gAAAADIQ5IJhU1r\n4ktU6paHTZXQt1jXiSfvzVhrVc/OE+cIAAAACCPJhMKYbHqqP/3ebOlHgvUFlllrVdcH56/HImZQ\nf3p6qrMXX9Te3XcPdsxcjemeBAAAAIaQZEKB7frS0ubpO9dqOM45Xbl2TbrrLh0/9BDnfoMxzPQB\nAAAAhpZkQmFMNj3Vn34v7tKPHJI7sYPF2NPp9y5c0P7+/uDHzUXqO4kAAAAAuUoyoWCtVVWNp4bC\npj7u2v+hgu2oNQQS2BEkxnFjJzIAAAAAjFuSCQWJACmEEGv7myR3SngCHHuWQ1e5tTcGdhIBAAAA\n+pFsQiF3fQWoMQLflIOwEDuCpDLLAf3hmgIAAADhkVDoQV+7M7StZzDUlPjYT4AJFgEAAABgeCQU\nenJ2dha7CZKGC7ZzDupDzHIAAAAAgLEpKqGQ6zr4psZWrHJIQ5zP0u9PAAAAAONSTEIhtcKAe3v9\nnNrY/UI3OWy/CQAAAABtFJNQSIm1VjVV5QEAAAAABSsmoRC7MOCyFNqwCdPvh8VyFQAAAAClSSah\nECLAHXOg1ub8Oec0me3+cPzQQ9rf3x/1uRsK5xgAAABASe6I3QDppW0WJ5PJeWCM5pxzmlydaHK1\n3fk7+973dPmxxzSpKs47AAAAAKCVJBIK6M45p9PT01Y/Y61VXVW6/jM/o7277+6pZQAAAACAkiWx\n5IEiht1MZ3YcSZKOj49bLV2w1k7P+/7++dex9VHXgVoRAAAAANCPJBIKEgHfrrrWQej7vDcN6OfL\nNiSpPmy/reKq4ywmXOr6oHNfSUoAAAAAwO2SSSigvenMjoPz16lxzuloMk0SHNTtkwQpHMc5p6qa\nfnZV9deHseuatCHZAwAAAMRDQiFzpQRS1lrVh2GXvaSecIkhxQC860ySeTHXs7MzXb9+XRcvXuyz\nmQAAAACWkFBAb6y1OmhRG6NrkLvpOLsGztZaVVUZ9T3mAbgk1T3M5JCGP0dnZ2d64Tvf0eXHHtNN\ntj8FAAAABkVCoaEUn+z2KVR/SzhfqfYhlXty11oVXWeSWGt1/fp1XX7sMXYrAQAAACLYmlAwxjwg\n6TFJFyT9z977n1/xnkuS/kdJL5P0e977S2GbGZdzTpOqkiTVVRU9gOubc07VpJIkVXX6/R3b9ZG6\nXaOUd1Pp2p6LFy/qZkI7lfSJsRgA4mIcBoDbbUwoGGMuSPqIpB+T9JykLxpjPu29f2rhPS+X9IuS\nftx7/6wx5p4+Gwzgdk1nK/QRdMeuVVF6IkFiLAaA2BiHAWA1471f/01j/pqkD3rvH5h9/bOS5L3/\nHxbe819J+o+99z+38UDG+E3HSl0q08uHklt/c2tvCPM+S8pqRklqjDHy3pvY7dgk1Fic+ziMtMx+\nd2I3A4VIfSwO/Tfxo4eP99lcjMgj73kwdhNQiDv3uo3D25Y83CvpdOHrZyW9cek9r5L0MmPME5Lu\nlvQvvPf/qm1DUje2IC23/ubW3hDmfV5MLKBYjMUAEBfjMACssC2h0OTRw8skvV7Sj0q6S9JvGGO+\n4L3/xq6N69MYn2iXgmt3K2utqro6f40iFTsWA0AmGIcBYIVtCYXnJO0vfL2vaUZ20ammRWf+RNKf\nGGNuSHqdpNsGz2pWOE+SXvOa1+hNb3pTbwHQpqDTOaej2fZ5B4G3z8tBzgH5rjsKlIrz0NzJyYlO\nTk5iN6OtYGPx4jh86dIlXbp0qYfmAsBmGY7FQf8m/vzjnzh/bV/9w7Kvfm3wBgPAJk+enOjJJ092\n/pxtNRT2JP22ppnWb0n6TUnvWipA80OaFqn5cUn/kaSbkn7Ke//vlz7rfO1u3wG9c06Tq9PPrw9v\n//yYCYXYwbxzTlU17XtV5ZdMIaGA0FJftyuFG4upoYCQqKGAkFIfi0P/TUwNBYRCDQWE0ksNBe/9\nmTHmYUmf03SLnGve+6eMMe+dff+j3vunjTGflfQVSX8q6WPLA2dqrLU6iLB93thnRoQQe0cBIIZS\nx2IAyAXjMACstnGGQtADLT0Z6/tJfeyZAKukklBI8dykKPR5Wv48rkMaUn8qFhIzFBASMxQQ0tjG\nYmYoIBRmKCCUvnZ56E3fQVSKQVqsmRGr2oHNti2b6fJ5i1s7SkoiuZSqdckWkjAAAABAOqIlFMaK\nQAjYzDmnyaxwYF1Vt8zoWPXvAAAAAOIgoQCsYK1VfRhuNsmqrR1TmK0CAAAAAF1Fq6FQGqZiIzWr\n7slc7tMhlzyMbd1uyeMwhkUNBYQ0trGYGgoIhRoKCCW7GgolmW5lOFtvz3p4JGDV9prLdRxSvk9X\ntS2XZAgAAAAwFnfEbgAAbDMvkjm5OjlPLAAAAACIixkK2v3Jp7VWdcD18DyJxa6m9+TB+ev5/y7X\ncQAAAACArkafUHDOBdm+L1SAtmqqOtDFqnsn1/spdJFMAAAAALsbfUIBGBozULrhfAEAAABpGX1C\nwVqb1PZ9q6aqp4JAeHc5FUYEAAAAgE0GTSikGpAO2Z4m56Dv9nS5DvOieJJUH7KTBW7X1+93quMG\nAAAAMHaDJhRC1CrIWQpBeQptmLdDGl+QaK3VQ8cPnb8uRV8zL5xzmlTTz60rZnQAAAAAKRn9kgc0\nE7Io3rTw5CypkVFyKUQSxDmna1euSZL26/0kZ6MAAAAAQBODJhRSqlUQQwqV6ndpw1ivmzR7Al9N\nkyBVlUcSZMh6DX1tSWmtVV2F/1wAAAAAuxs0oUBAkMY52NSGIZ5oTwtPjjO51FfgnYK++lPaeQIA\nAABKwZIHnBtyKUJuQaK1VlUVJgkyVN9LrdcAAAAAIA0kFBpiLTpyu/bOOV358BVJUr2fxzINAAAA\nAPkgodBAjuvnuyhpKQIJIAAAAADoFwkF3KKEANw5N/otSqWXCnCenp7GbkrvSCABAAAAwyOh0EDI\n9fPrOOd0enqq/f3+txLEuJwvezgsM7kyrf1xJEmq64Mi+wgAAACkiIRCQ30GKc45/cM3/kN97/Wf\n1d33fJ8effQmQdEOrLWdtygd05PuGH0d0/kFAAAASkdCIWMEZ+t1OSclLpWYL3uYv55bVRek7/up\ny/lt0qZp7Y+Dre8DAAAAEFaSCYVQgU0uAbe1Vv/s5j/T6en7Gi95GEuhSOyu6f2U2rKBNgmIFNoL\nAAAAjE1yCYVpYDMNIuodnhKnGCBtYq1Nvo2l22WpRG6W64LMk299H3PT+c0lAQgAAABgKrmEApoZ\nolDkGI3pXC72NfaygVUzbsaU4AEAAABylFxCYRrY7B5ExA6QmtrlqWzK/UJ++r6fnHOaXJ3NPmq4\n4wT3OAAAAJCu5BIKUrggIvVgxDmnSVVJkuqqSr69QF+YcQMAAADkJ8mEAsZnyPXzrNWPY92OE4vf\nb4trCQAAAMRDQiEia63q2QyFMQdEXabCr/scafO5ZHeMuEKe78Vr+dBDx413SAEAAAAQBgmFyAiA\nwnDOqZpUkqSqZvlITnadZfDii2e6fPlXtLe3l8WOLrEZY2I3AQXhfgK6+c/+04uxm4BC/PzHfjV2\nEzByJBTQqybB4rap8CGxVn+zoZcQ7LK9q7VWDz10rOeff15f+ML/fctnzr+P23nvYzcBhTDGcD8h\nGJJTAJAnEgrojXNOR5PplPSDevPygl2DP2utqrpq9FkEmqvlNsvDOacrV6ZZ+ePjB7W/vy9Jmszu\nuXrLPQcAAABgN4MmFEI8OeTpI9bJ/Z4Y470danvXef2E+TkEAAAA0D8z1HRFY4z/8z/+5yV1L7wX\nqnhfbnYNNGMGqmMMkrvYNjtgqPOY2/Va1d62fZhN2x7FXFtjjGeKOkJhyQNCGttY/LXnvx27GSjE\nJz91I3YTUIgPXH1Hp3F40BkKZ398pr27WGXRRptlA+t+vusa9bZWBXK5BKYpG/Ia5na9Qm0/CQAA\nAKC9YaP7p6Xj68ed/+AfsngfNltOHuya+Bi7NjUgAAAAACAFgyYU9vb2zgundTW2YMtaq4O6exIl\n1Br1RUM+MR+Tdeex6zXMbfkCAAAAgLwMmlCg6no3IXZA6NuuiQ9slvJSFwAAAADjNGhCgaCmDOue\nmIe+vjxhBwAAAIB0USERnQyx20BVTWsyVBUzW9rqa6lLyM8DAAAAkLdiEwoEPxi7kPf+dAnFbMtW\nli4BAADy7fFpAAAfD0lEQVQAUKEJBeecJlUlSaqriuAnQ9ZaVRU1GVJKjJ2dncVuAgAAAICEFJlQ\nSFFKgWEuxn6unHOaXJ3NCjhkVgAAAACAtBSZULDWqp7NUEghCHPOqZpUkqSqZsYE8rS3F364INEG\nAAAA5KvIhIJEgFKCsQeb1lrVh2ks+5gWeQzbFra2BAAAAPJWbEIhJdZaVXV1/hrbdS0CWFoSIqV+\npNQWAAAAAPGRUOjJcmBLMNY/inHmZdXWlqUlhAAAAICSkVDoAVvs7a6PKfZ96iMQzuUzd7HYDpZA\nAAAAAHkhoYBktQ0oYxXjdM7paJZAOgiUQOrrM5nBAQAAACAUEgo9yO3pegpCPTkv4Xw753R6ehq7\nGYNbtQQCAAAAQLqM936YAxnjhzhWalO6x6bL+XfOaXJ1tkTkMM8lIqHuu8XlMsfHx9rf3y96yUMK\njDHy3pvY7RjCUOMwxmH2uxO7GSjE2Mbirz3/7djNQCE++akbsZuAQnzg6js6jcNFzVAoITDNmXNO\nVTU9/1U1rvPfR19DJxMkEgkAAAAAwikqoYA8WWtVH7JERGK5DAAAAIB8sOQBna061ymd/5TaElKp\n/YplbNNsmaKOUFjygJDGNhaz5AGhsOQBobDkYSZ0kLVL8FZy4LdueUMqfS11684+dn8AAAAAgC7u\niN2AlM2Dt6PJ5Dw5MMTPtuWc6/0YAAAAAAAsKm6GwthsemLd5wwJa62qKt21/qXWIrDW6qDAfgEA\nAADIDwmFDXYJ3mIHftMp/0eSpLo+6C2pkLLU29dFyctoAAAAAORl65IHY8wDxpinjTHfMMY8suF9\nbzDGnBljfjJsE+Oy1nYO3nb52TbHOKhr1tOPwDxJNJkcscRlB7kuERr7WAwAsTEOA8DtNs5QMMZc\nkPQRST8m6TlJXzTGfNp7/9SK9/28pM9KClqhlyey2606N9Mp/wdrv5+CXK7tuna2bX8u/S2Zc06T\nqpIk1VWVzbVIYSwGgDFjHAaA1bYtebhf0jPe+29KkjHmWNI7JT219L5/IOm6pDeEbJxzTpOrs0r9\nhzyBbyvl85XLtV3Xzrbtd86pmlSSpKruFsjmkCRCb6KOxQAAxmEAWGVbQuFeSacLXz8r6Y2LbzDG\n3KvpgPo3NB08i9iUOsenyTm2Ge1wbXdjrVU9m6GQ2bkc7VgMAIlgHAaAFbYlFJoMhI9J+lnvvTfG\nGAWc3mWtVX04fGHD6Vr12dPnTGoTbNrtIUWxrm1b69rZtv3WWlV11fj96E+m5z/qWAwAYBwGgFW2\nJRSek7S/8PW+phnZRX9V0vF03NQ9kv6mMea73vtPL39YNXsyKEmXLl3SpUuXtjYw0z/+zzFrYL1c\nzsm6dnbZ+SMnpd67JycnOjk5id2MtoKNxV3GYQAILcOxOOjfxL/4Tz98/voNb36L7n/zW4I3GAA2\ncV//itzXv7rz5xjv1ydcjTF7kn5b0o9K+pak35T0ruUCNAvv/7ik/817/69XfM9vOlZqQgRTzjlV\n1XTWQFX1P2ugtACwtP7kpM8aF6ldV2OMvPdJP0UKNRbnNg4jbbPfndjNQCFSH4tD/038tee/3Wdz\nMSKf/NSN2E1AIT5w9R2dxuGNMxS892fGmIclfU7SBUnXvPdPGWPeO/v+Rzu1NgOpBDtt5NjmdUIU\nMdz02VJZ5ysXfV7Xko15LAaAFDAOA8Bq25Y8yHv/a5J+benfVg6a3vufDtSuIlhrVVXN1tkT5A4j\nx/oYMexS44J7uR+MxQAQF+MwANxua0IBu2kSVPHU9nYUMYyra1Jg2zIfrisAAABQDhIKSFYfAae1\nVnUdb3eJHJ7e971jSMy+53D+AQAAgFyQUEgAT22nhgr2Yp3jPgsdpqLNMp+hzRMlZ2dneuf167p4\n8WLsJgEAAABZI6GQiNSCr121TQ5Q2yAd1lod7DCLI+Vrd3Z2pj9+4QV94vJl7d+8mXRbAQAAgNSR\nUEBwzjlNZnvd1xU1IeZ2KXQ4tJizOPo6vrVW77x+XZ+4fFkv32PoAwAAAHY16F/Vy8EC65mHk+K5\nXmxT7NoGQymlb33cT33XbpCkixcvav/mTUnlXAsAAAAglkETCotPrZe/5o/7/gy9dt9ae36N1x1r\nVfCYyj2wLlhOMSkTQ+4zUJYTmgAAAAC6Yd5vBhYD2VyC2tTbt866bQ/Z2rN/u9ZuaGMxyQYAAACg\nm0ETCstPrbc9xcatgc/x+4/1q1euSGo3JTzFtftDBo8Iq8kMlF0+GwAAAEAeBk0oLAcLBA/9Wq5R\nkJpU27Rq20O29rxV7udgMcl23333RW4NAAAAkCeWPCRk1XKG5dkF+w2f6rMNY3frzlWO57Cv4omh\nPzOG3NsPAAAAxEZCIRGbKtyve931OCE+J7ZS+tGnPnZNGGInBgAAAAB5KCqhQJD5klXbMJYwa8E5\np9PTU125dk1S810Gcro3cmorAAAAgPEqJqGQa7C8GDyGLlKYyzloanqNj3R2dib99Re1d/fdLX4u\nj3sj5Baffd1TqRfTJCEDAAAADCOZhMIYg4CXAuQ/0PXr79bFixd7Pd6qWQs52tvb0/H73qf9/f2s\n+zGEPs5Pyuec7T0BAACA4SSRUHDOqaqmT2WrqttT2VyD5bOzP9DbX/iEfuXyJ7V/82bvbc/p3Cyb\nXuOD89ftfi6PeyPFLT4BAAAAYJUkEgrLus5WyC0As9bq+vV361cuf1J7e0leiuR0vcbLP5fyjJgU\n25QLtvcEAAAAhpNEFGutVVXV51+PqYr8xYsXtX/zpiQCoKGErFOA9HA9AQAAgGEkkVCQbt2JYGyG\nDIBSfjKfI84nAAAAgLFKJqEwl0MV+VyFqFVRglB1CigACAAAAGDMkksoSPkkEto8neZJdlpyvw7c\nTwAAAABiSzKhkAPnnCZVJUmqq81Pp9u8t0+LtSpitKG0IDhWAUBmmgAAAABIAQmFkYkVfJYaBK/r\nR2nJEwAAAABYRkKhI2ut6tmsg21BY5v3lmSsQbVzrtedSmLPNIltrPcVAAAAkJroCYWcg4M2bc6x\nf6s0vV6rlnmMOQgObaznsNSZLgAAAECOoiYUnHOaXJ0GB/UhwUEbMRIxzjlNJkeSpLo+2Hrssxdf\nvOXrsVxfdioBAAAAMAbRZyigvWlgP0vEdJxSP0hC4sX/o7/PThyJhHAW71VmugAAAADpiJpQsNaq\nPhw2OMh5iUUoXRMS1lrV9cH56232LpCvwm6cc6omlSSpqqvzpAIAAACA+KJHfH0EB+uSBn0XyxvK\nNLCP85S2VfKh52QRySEAAAAAiGfQhIJzrnXw1zZobLvOfyihg99dPmeohESfn53qdUZY1lpVdXX+\nGgAAAEA6Bk0oHE0mrWYGrJruvIshi+UtJhBSnBmRQhtywUyIuDjvAAAAQJqiL3kIbds6/yGCk+Ut\nExFe23oOXbFNYdpI9gAAAADxDJpQaPt0vut059SCC7YRvF2IQLD0c0mwvBnLXgAAAIC4Bk0odPmD\nP0aQsGsgZ609n5kw/wyCnZfk9NQ/1jaFBMsAAAAAUlfckoddharbQADYzOnpqaS0z1fKbctBXzMt\nhlr2AgAAAGA1EgojF2Na/fyp/+npqa5duSYpTNHNkpQSLN+4cUOPXX5Md+/d3cs1zvncAAAAALkj\nobBkTNvUxVx6UPq5DSH3c+Sc0+XLl/WdF76jB37ggdjNAQAAABAYCYUVUgnkSi/KN6bkzVjt7e3p\n+37g+/S+6+/jGgMAAACFiZ5QKD1o7mpalG86e6BuuTtGU7EKDi63AWWaLttgdxMAAACgVFETCs45\nTWa7IdQVa+hj4JyHRYLsVpwHAAAAoFzRZyhgtTE+3c09GGerRwAAAABjEjWhYK1VPZuhQPB1uzGd\nE4JxAAAAAMhL9BkKBI4oRSlbPQIAAABAE9ETCoBUTjCec9sBAAAAoA0SCkhGicF47nUhQuAcAAAA\nAGW6I3YDkA/n3HlwiO2cc6omlapJNdrz5pzT5OpEk6uT0Z4DAAAAoFQkFNDItGjiRJNJs8CQ5EN6\ntl2THK9Zjm0GAAAASsGSB6y0yzT1+VNpSaoP69FOdbfWqqqr89cxOedUVdNrUlW3X5O+dtmw1qo+\n7Gf7U+ecJrNdYuqqin6OAQAAgLEhoYDbrEoITIsm9hMYhpLiWv2U2rJsqPOV8jkAAAAA0B0JBTTW\nNDDs86n0OtuewI+dtVZV9dI1WTUjIbddNqy1qmczFNq2OcXkEwAAAJCb4hMKBA7thUgI7Hq+S7tu\nKfRn27FzPNddl+QsJp8AAAAAdFN0QqGvdeElSyHwdc7paDIN+A7qZrMNlp/ApySFmhLL1zXHGQkA\nAAAA0hItoZBC4IpbzXdykKS6YSCfkq7tLf1eXJfQKLW/26ScfAIAAAByEiWhMNTMAZ7Cpm9VMG+t\n1cFABSCHuBdj1JTIzfLWj9vO065JIK4DAAAAsLuilzxIBA5tDL2Tw6alDaVdt9i1E1JOaMzvg7Oz\nM/2rH5L27trbuDQkVBJoOYkBAAAAoJ0oCQVmDqRrbNdjLPdiyX3rYrEwIwAAAIBuos1QIMDJQ5/1\nBYZc2rCtHTGVXsNhm8X74OGFf9v0/jEkgQAAAIDUGe/9MAcyxg91LISRe5HGHHCO45kncu677z55\n703k5gyCcRghGWPE/YRQZvfTaMbirz3/7djNQCE++akbsZuAQnzg6js6jcN3NHmTMeYBY8zTxphv\nGGMeWfH9dxtjvmyM+YoxpjbGvLZtQ4CmnHOsf98i13M0ZLuttVklcBiHASA+xmIAuNXWJQ/GmAuS\nPiLpxyQ9J+mLxphPe++fWnjb/yvpovf+D40xD0j6nyS9qY8GN5XbNPJt7Y3Rn12LNPbRZuecqkkl\nSarqKpvru87yOQ5xznI9R7m2ewi5jsMAUBLGYgC4XZMaCvdLesZ7/01JMsYcS3qnpPPB03v/Gwvv\nvynplQHb2JpzTpOrs2nkG6rFp8I5p0lVSZLq6vZAKmagtUsF/XnRu6pK/xrEND832+4DjFp24zAA\nFIixGACWNEko3CvpdOHrZyW9ccP7H5L0mV0aBaxjrVVVV+evcbum5yi1WTzb2p1aewfGOAwA8TEW\nA8CSJgmFxhWXjDFvk/T3JA2+H9tisGGtVX0Yf/eAdZYDI2ut6tmT6VXt7TOI7itIs9aqqvq5Bile\n06Y2ne9t90Eb234+1Rkkm5b8TCZHkqS6PkimvQPKYhwGgMIxFgPAkiYJheck7S98va9pRvYWs6Iz\nH5P0gPf+91d9UDULliTp0qVLunTpUoumrrdqSUCqAce6QC5G7YS+g8pUr0EsTZaucM76d3JyopOT\nk9jNaCv5cRgA2hj7WPyL//TD56/f8Oa36P43vyVsSwFgC/f1r8h9/as7f06ThMJvSXqVMeYHJX1L\n0k9JetfiG4wxf0HSv5b0t733z6z7oMU/ZLEda+r7F2sa/enpaZTjzvU5g6QP0+KVB+evd7EcRH/o\nQx/a6fMGwjgMoChjH4v/6//2/f21EgAasK9+reyrX9qI5olf/eVOn7M1oeC9PzPGPCzpc5IuSLrm\nvX/KGPPe2fc/KunnJP1ZSYfGGEn6rvf+/k4t6iCndfUpBXIptSWGoaf9z+/T09NTXbtybXrciLsZ\n5LJ8Zm6M9+hcDuMwAJSOsRgAbtdkhoK8978m6deW/u2jC6//vqS/H7Zp7eQUbDRta8g19bu2ZZWR\nF8nrpNRzxZaP/cthHAaA0jEWA8CtGiUUEE+qgVkJRfJizdDIaUYNAAAAAKxDQmEkmE2wWinLDWIj\nSQIAAACMDwmFHeQSpE9nE0xrBdR1mFoBIYvkxZbLdUwd5w8AAAAYFxIKHTnnNLk6C9IP+y/ol6IS\n+uyc09Es2XIQKNnS9LhSGecQAAAAwDiRUBiB6WyC8e7mkJo+ZowAAAAAwNBIKHRkrVV9mE+QnkMb\nY7DW6oBkCwAAAAC0FiWhUMp0703tL6WPYzD0Ncppxgj3MQAAAIB1Bk8olLDd4DbOOVXVdEp7VTGl\nPZaUg+GQbeqrn7Hu45SvGwAAAICX3BG7AUAfnHOqJpWqSXUeoC5+b/nfcjUvKnk0mRTRp3mx08nV\nMvoDAAAAlGzwGQolbTe4jrVWVZXHlPaxcc5pUlWSpLqquD4bcB8DAAAA2CRKDYVVwUlp05xL6Ueu\nrLWq6ur8dan6LioZpb5ERsVOAQAAgDFLYpcHttFDH1bdR9Za1bMZCqXcZ6X0Y660/gAAAAClSiKh\nAPRl1cwXAlYAAAAA2F0SCYX5Nnqnp6exm4KCMPMFAAAAAPqT1C4PV65d06S6vSr/NiVV7QcAAAAA\nIAdJzFDYxXx7QEmqaqr24yXzmS/z1wAAAACAcJJJKJRYLA/xcS+tVtquKgAAAACGl0xCQeoW3Gzb\nHpDACbiVc05Hs9oSB1tqS/D7AwAAAGCdpBIKXa0LdtoETikimENMXYtahrhvufcBAACA9BWRUCiR\nc06T2RKQuqI2BMKx1uqgp9oSIXbW4N4HAAAA8lB0QqHPwAlTfTxJHurp9JifgjfpM0UtAQAAAGxi\nvPfDHMgYP9SxQokdcMY+/jZ9LClxzmlydfaE+7C/ZSohnqRjtdyWPBhj5L03vR8oATmOw0jX7Hcn\ndjNQiLGNxV97/tuxm4FCfPJTN2I3AYX4wNV3dBqHi5ih0NdT8snkSJJU1wdRAs7FY6aeXBgzrs2t\nQpwHziUAAACQvuwTCmN40pzqmvI+lpRYa1Uf9j/NPtR0/jHcf7ki0QMAAAD0K/uEQl+mAefB+Wus\n1se5GWqqPEtZyuWcUzWpJElVnU4SDgAAAChJ9gmFPgvHpRKEWGtVz2YopNKmFMVYptL2/kthKQ0A\nAAAAhJB9QkEaR5DN0/R0cW5WG/reWTyetVZVXQ16fAAAAGBsikgoYLOugV2qtRvWSXmZyuI1SLWN\nIQ295GDV7iAln18AAAAgBSQUCuecU1VNA62qKr9oYIr9o3Bjeph5AwAAAOyOhEJkKQc21G5AV0Mv\nOWizO4hzTkezBM98lxIAAAAA7ZFQWDJkgD/EkgJrraqqe9FKEgm767NwaMpC9DWHXTsAAACAsSKh\nsCC3mgFNldKPnKV8DVKdJdPXjhjW2vOZCan1GQAAAMjJoAmFVAOXWFhSEN/Y78mS6jswmwEAAAAY\n1qAJhSGrvnfRNsAPEYyu+tmxB7lDGXongpL1cc+22RGDawkAAAAMjyUPS5oGIn092R3brgzoT5Mg\nP0R9hz6D+ZCfRaIOAAAACGvYGQoDVn0Hthl6J4IhOec0uTpLeB1uTkyF6PuLZy/u/Bm72HYtmcEA\nAAAAhDdoQqGkP+L7qty/664MaIdzHMZduit2E7iWAAAAwMBY8rCDvgKYdZ/LlG00Za1VfThcYurC\n3oXej7GLkmejAAAAALGQUMhEX1vo5ahtYmWsiZih+ptLsJ5y2wAAAIAckVBAVtquhXfO6WhWPPMg\n820RU9bmvI41wQMAAACUhoRCJtpsodcHgkCEQIIHAAAAKAcJhYzECr7a7Biw7XOk9VX4131vUdvp\n9dZaHfRQPFMiyQIAAABg3EgoYBDTGhCzpMTSk2nnnKpq+r2q2p6waBvA9xHwU9Oimz4TPAAAAACG\nNaqEAk+Uuxl6xwCUjXsIAAAAKMNoEgqbnpCjf9MaEKuTEtZaVVVeCYuuNS1IagEAAAAoxWgSCmMT\nMnB1zmlSVZKkutq+s8I6m34uxwC7bZuHSGqRsAAAAAAwlNEkFDY9IS9N10r6BKN5C5X4Gdqq+457\nEQAAAEjfaBIKEsHJJpt2crDWqp4FqqHO4RgDxjEltZpaVZBzyOVJ8/sQAAAAQHujSiiMRR+V9EMG\ndaG2oUzJugTJjRs3JEkXL15c+f2Q+kj8lGwxcQEAAACgPRIKheqyteIQOzk453R6etrb58ewbgvJ\nGzdu6G1v+2VJ0hNPvJRU6FNuiYRVBTmZyQEAAADkIYmEwhinv6eo7/O/ODPh+P3H2t/f55pj5T0w\nxH0xT1zcd999vR8LAAAAKFH0hMKqNdQoX0nJhHVbSF68eFFPPPHSa6SnlHsQAAAAiCF6QqEkzLTY\nbKhlFTHM+7N8D5BIAAAAAFCqKAmFxaBr1RrqHHXdqnFsSj4vQ+5OAAAAAACxDZ5QcM6pmlSSpKqu\nzpMKGB9mdAAAAABAvljyEEgfWzWWLKfaGU0TH+xO0A4JJQAAACBvgycUrLWq6ur8dUm69KfkoKqE\nvq2aUbPJ0H3N9Ryv22oTAAAAQD6izFAgeJhyzmlSVZKkutoerOZkWyBeSu2MmBa34awP057lAQAA\nAKA8d2x7gzHmAWPM08aYbxhjHlnznl+Yff/LxpgfCd9MlCiH+hnzGTVNZieguflWm8xOaI6xGADi\nYhwGgNttTCgYYy5I+oikByT9FUnvMsb85aX3vF3SX/Lev0rSz0g67Kmt2Tg5OWn0Pmut6qrKenbC\nur6WFIjPEx9Nr2sbzrnzZQttzbfh7GN2Qh99XZZDQikVjMXdDHEfp4K+lmlMfU0d43A3v/l//nrs\nJgxmTH11X/9K7CYMZkx97WrbDIX7JT3jvf+m9/67ko4lvXPpPT8h6ZckyXt/U9LLjTGvCN7SjnYJ\n2Lpq8wdA7kHVpr7m3rdlof+wmxemrKrJTkmFPs4xf8QmJ/uxOIYx3cf0tUxj6msGGIc7+OKIguwx\n9dV9/auxmzCYMfW1q20JhXslnS58/ezs37a955W7N21308JvE00m3QM2AEhA1mMxABSAcRgAVthW\nlNE3/BzT8eeA0aIwJVpgLAaAuBiHAWAF4/36cc4Y8yZJlff+gdnX/1jSn3rvf37hPUeSTrz3x7Ov\nn5b0Vu/97y59FgMqgCR575f/AExKqLGYcRhAylIei/mbGMAYdBmHt81Q+C1JrzLG/KCkb0n6KUnv\nWnrPpyU9LOl4Ntj+wfLA2bVxAABJgcZixmEA6Iy/iQFghY0JBe/9mTHmYUmfk3RB0jXv/VPGmPfO\nvv9R7/1njDFvN8Y8I+mPJP10760GgBFhLAaAuBiHAWC1jUseAAAAAAAAVtm2y0NrxpgHjDFPG2O+\nYYx5ZM17fmH2/S8bY34kdBuGsq2vxph3z/r4FWNMbYx5bYx2htDkus7e9wZjzJkx5ieHbF9IDe/h\nS8aYf2eM+Zox5mTgJgbT4B6+xxjzWWPMl2Z9/bsRmrkzY8y/NMb8rjFm7d4/pYxLEuPw0vcZhzPE\nOHzL94sYhyXG4jXvKaK/jMUr38dYnJGxjMW9jMPe+2D/aToF7BlJPyjpZZK+JOkvL73n7ZI+M3v9\nRklfCNmGof5r2Ne/JunPzF4/UHJfF973eUmPS/rPY7e7x+v6ckn/j6RXzr6+J3a7e+xrJem/n/dT\n0guS9mK3vUNf3yLpRyR9dc33ixiXWlzXIvrLOMw4zDic13+MxYzFs9eMxRn8x1hc5ljcxzgceobC\n/ZKe8d5/03v/XUnHkt659J6fkPRLkuS9vynp5caYVwRuxxC29tV7/xve+z+cfXlT+e5F3OS6StI/\nkHRd0v83ZOMCa9LXvyXpf/XePytJ3vvfG7iNoTTp6/OSvn/2+vslveC9PxuwjUF4739d0u9veEsp\n45LEOMw4zDick9GMwxJjsRiLGYvzwlh8qyLG4j7G4dAJhXslnS58/ezs37a9J8dBpUlfFz0k6TO9\ntqg/W/tqjLlX01+8w9k/5Vqco8l1fZWkP2eMecIY81vGmL8zWOvCatLXj0n6T4wx35L0ZUn/zUBt\nG1op45LEOMw4zDicE8bhW5UyNkmMxYzFjMU5YSx+Setxadu2kW01/YVZ3i4nx1+0xm02xrxN0t+T\nNOmvOb1q0tfHJP2s994bY4xuv8a5aNLXl0l6vaQflXSXpN8wxnzBe/+NXlsWXpO+vl/Sl7z3l4wx\nf1HSvzHGvM57/2LPbYuhhHFJYhxeiXE4K4zDtxrTOCyVMTZJjMUrMRZnhbH4VmMai1uNS6ETCs9J\n2l/4el/TrMam97xy9m+5adJXzYrOfEzSA977TdNLUtakr39V032Xpem6or9pjPmu9/7TwzQxmCZ9\nPZX0e977P5H0J8aYG5JeJym3wbNJX98s6Z9Ikvf+d4wxTtJrNN2PuySljEsS4zDjMONwThiHb1XK\n2CQxFjMWMxbnhLH4Je3HpcBFHvYk/Y6mBS3u1PYCNG9SvkVZmvT1L2ha4ONNsdvbd1+X3v9xST8Z\nu909XtcfkvRvNS3gcpekr0r6K7Hb3lNf/7mkD85ev0LTwfXPxW57x/7+oJoVoMl2XGpxXYvoL+Mw\n4zDjcH7/MRaX11/GYsZixuK8/gs9DgedoeC9PzPGPCzpc7Mb65r3/iljzHtn3/+o9/4zxpi3G2Oe\nkfRHkn46ZBuG0qSvkn5O0p+VdDjLUn7Xe39/rDZ31bCvRWh4Dz9tjPmspK9I+lNJH/Pe//t4re6m\n4XX9sKSPG2O+rGnNlX/kvf8P0RrdkTHmlyW9VdI9xphTSR/UdJpeUeOSxDjMOJw/xuEyx2GJsZix\nmLE4J4zFZY7FfYzDZpZ9AAAAAAAAaCz0Lg8AAAAAAGAESCgAAAAAAIDWSCgAAAAAAIDWSCgAAAAA\nAIDWSCgAAAAAAIDWSCgAAAAAAIDWSCgAAAAAAIDWSCgAAAAAAIDW/n/oo076v7SmqgAAAABJRU5E\nrkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x113f5a810>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x112142790>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\ncThDjMNX/byIcVhiLF7yniLay1i88H2MxRkZyljcyzjsve/sP42ngD0l6RZJL5P0DUl/Y+4975D0\nucnrt0j6apd1CPVfw7b+N5L+4uT1XSW3deZ9/17Sv5P0P8Sud4/X9RWSHpP0msnXN8Wud49trST9\nL9N2SnpB0k7surdo61slvUnSt5f8vIhxaYPrWkR7GYcZhxmH8/qPsZixePKasTiD/xiLyxyL+xiH\nu56hcLukp7z3T3vvfyDpSNK75t7zTkm/Kkne+yuSXmGMeXXH9QhhbVu997/lvf/jyZdXlO9ZxE2u\nqyT9A0kXJT0fsnIda9LWvyfpX3vvn5Ek7/0fBK5jV5q09XuSfnTy+kclveC9PwlYx054778i6Q9X\nvKWUcUliHGYcZhzOyWDGYYmxWIzFjMV5YSy+WhFjcR/jcNcJhZslHc98/czke+vek+Og0qSts+6R\n9Llea9SftW01xtys8T+8g8m3ct2co8l1fZ2kv2yM+ZIx5uvGmP8pWO261aStD0l6vTHmu5K+Kekf\nBqpbaKWMSxLjMOMw43BOGIevVsrYJDEWMxYzFueEsfglG49L646N3FTTfzDzx+Xk+A+tcZ2NMW+X\n9DOSRv1Vp1dN2vqApH/ivffGGKNrr3EumrT1ZZLeLOnHJd0g6beMMV/13j/Za82616StH5H0De/9\nGWPMX5X0m8aYN3rvX+y5bjGUMC5JjMMLMQ5nhXH4akMah6UyxiaJsXghxuKsMBZfbUhj8UbjUtcJ\nhWcl7c58vatxVmPVe14z+V5umrRVk01nHpJ0l/d+1fSSlDVp69/S+Nxlabyu6O8YY37gvX84TBU7\n06Stx5L+wHv/Z5L+zBhzWdIbJeU2eDZp652S/pkkee9/3xjjJN2m8XncJSllXJIYhxmHGYdzwjh8\ntVLGJomxmLGYsTgnjMUv2Xxc6niThx1Jv6/xhhYv1/oNaO5QvpuyNGnrX9F4g487Yte377bOvf9T\nkn4ydr17vK5/XdL/rfEGLjdI+rakvxm77j219ZckfXTy+tUaD65/OXbdW7b3FjXbgCbbcWmD61pE\nexmHGYcZh/P7j7G4vPYyFjMWMxbn9V/X43CnMxS89yfGmHslfXFyY13w3j9ujPnQ5OcPeu8/Z4x5\nhzHmKUl/Iumnu6xDKE3aKunnJf0lSQeTLOUPvPe3x6pzWw3bWoSG9/B3jDFfkPQtSX8u6SHv/X+K\nV+t2Gl7XX5D0KWPMNzXec+Ufe+//c7RKt2SM+TVJb5N0kzHmWNJHNZ6mV9S4JDEOMw7nj3G4zHFY\nYgBYltkAAABqSURBVCxmLGYszgljcZljcR/jsJlkHwAAAAAAABrr+pQHAAAAAAAwACQUAAAAAADA\nxkgoAAAAAACAjZFQAAAAAAAAGyOhAAAAAAAANkZCAQAAAAAAbIyEAgAAAAAA2BgJBQAAAAAAsLH/\nHxDIM/XujJIuAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x113a9ad90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"np.random.seed(123)\n",
"pts = gen_pts(500)\n",
"plot_case(2, 2, pts)\n",
"plot_case(5, 5, pts)\n",
"plot_case(10, 10, pts)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /></a><br /><span xmlns:dct=\"http://purl.org/dc/terms/\" property=\"dct:title\">The Modifiable Areal Unit Problem, visually, in Python</span> by <a xmlns:cc=\"http://creativecommons.org/ns#\" href=\"http://darribas.org\" property=\"cc:attributionName\" rel=\"cc:attributionURL\">Dani Arribas-Bel</a> is licensed under a <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.\n",
"\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"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.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment