{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%matplotlib inline\n", "import pysal\n", "import numpy as np\n", "import random\n", "import geopandas as gp\n", "import acs_regionalization as ACS" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# read in estimates and standard errors\n", "ests = np.genfromtxt('example_data/99999_a225_p9_pop9999_k3_j0_est.csv', delimiter=',')\n", "sdes = np.genfromtxt('example_data/99999_a225_p9_pop9999_k3_j0_stdErr.csv', delimiter=',')\n", "# build the spatial connectivity\n", "shp = pysal.open('example_data/99999_225.shp') \n", "w = pysal.rook_from_shapefile('example_data/99999_225.shp')\n", "# convert standard error to margin of error\n", "moes = sdes * 1.645" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQIAAAEACAYAAABYh3hbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAA0FJREFUeJzt2zFOQzEURcHjCAl2jdg1NJiCFSD0E9uZ6a8/1REp3phz\nBjy326P/AODxhAAQAkAIgIQASAiAhABICICEAEgIgIQASAiAhABICICEAEgIgIQASAiAhABICICE\nAEgIgIQASAiAhACoXq56eIzbZ83Xq96H842vOb/f7vGly0LwG4H58ffdeLezO2v3n2/dh58GgBAA\nQgAkBEBCACQEQEIAJARAQgAkBEBCACQEQDXmnNc8PMY1D8MTmXOOe3znwuvDWv8qzM7uHjvXh8AG\nhAAQAkAIgIQASAiAhABICICEAEgIgIQAyNERLM3RkZ3dMTtHR8AGhAAQAkAIgIQASAiAhABICICE\nAEgIgIQASAiAXB/C0lwf2tkds3N9CGxACAAhAIQASAiAhABICICEAEgIgIQASAiAhADI9SEszfWh\nnd0xO9eHwAaEABACQAiAhABICICEAEgIgIQASAiAhABICIBcH8LSXB/a2R2zc30IbEAIACEAhABI\nCICEAEgIgIQASAiAhABICICEAMj1ISzN9aGd3TE714fABoQAEAJACICEAEgIgIQASAiAhABICICE\nAEgIgFwfwtJcH9rZHbNzfQhsQAgAIQCEAEgIgIQASAiAhABICICEAEgIgIQAyPUhLM31oZ3dMTvX\nh8AGhAAQAkAIgIQASAiAhABICICEAEgIgIQASAiAXB/C0lwf2tkds3N9CGxACAAhAIQASAiAhABI\nCICEAEgIgIQASAiAhADI9SEszfWhnd0xO9eHwAaEABACQAiAhABICICEAEgIgIQASAiAhABICIBc\nH8LSXB/a2R2zc30IbEAIACEAhABICICEAEgIgIQASAiAhABICICEAMj1ISzN9aGd3TE714fABoQA\nEAJACICEAEgIgIQASAiAhABICICEAEgIgFwfwtJcH9rZHbNzfQhsQAgAIQCEAEgIgIQASAiAhABI\nCICEAEgIgIQAyPUhLM31oZ3dMTvXh8AGhAAQAkAIgIQASAiAhABICICEAEgIgIQASAiALrw+BPbh\nPwJACAAhABICICEAEgIgIQASAiAhABICICEAEgIgIQASAiAhABICICEAEgIgIQASAqD6AZMQMwVF\nMVR7AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# take a look at the map\n", "shp_map = gp.read_file('example_data/99999_225.shp')\n", "shp_map['constant'] = 1\n", "p = shp_map.plot('constant', alpha=0.5, colormap='winter')\n", "p.axis('off')\n", "p.plot()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQIAAAEACAYAAABYh3hbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAA+1JREFUeJzt3TGKFFEYRtHbYmImGLoBwT2YuAQTwUxlRsFMQZegoJmg\nM6iZYOISJnEPghswFMwM2zUUXTPWe56T/10dXbqCj97t9/uA/9ulf/0FgH9PCAAhAIQASAiAhABI\nCICEAEgIgIQASAiAhABICICEAEgIgIQASAiAhABICICEAEgIgIQASAiAhABICIDq8nl98G638xdK\ncKD9fr+7iOecWwiqjo6OFt+cnp5Of/fh2Y3Fdw9f/5j+7v2Xa4vvHt39tfm7Q551UbwaAEIACAGQ\nEAAJAZAQAAkBkBAACQGQEAAJAZAQANVuvz+fkaD1IRzO+nDiu1HWgNaH69xZHwJDEAJACAAhABIC\nICEAEgIgIQASAiAhABICIKMj2DSjo4nvRhkBGR2tc2d0BAxBCAAhAIQASAiAhABICICEAEgIgIQA\nSAiAhADI+hA2zfpw4rtR1oDWh+vcWR8CQxACQAgAIQASAiAhABICICEAEgIgIQASAiAhALI+hE2z\nPpz4bpQ1oPXhOnfWh8AQhAAQAkAIgIQASAiAhABICICEAEgIgIQASAiArA9h06ZYH37/eGXxzc0H\nf6a/u/7p+eK7n/dfTX/3+fGdxXf33n3d/N0hz7ooXg0AIQCEAEgIgIQASAiAhABICICEAEgIgIQA\nSAiArA9h06wPJ74bZQ1ofbjOnfUhMAQhAIQAEAIgIQASAiAhABICICEAEgIgIQASAiDrQ9g068OJ\n70ZZA1ofrnNnfQgMQQgAIQCEAEgIgIQASAiAhABICICEAEgIgIQAyPoQNs36cOK7UdaA1ofr3Fkf\nAkMQAkAIACEAEgIgIQASAiAhABICICEAEgIgIQCyPoRNsz6c+G6UNaD14Tp31ofAEIQAEAJACICE\nAEgIgIQASAiAhABICICEAEgIgKwPYdOmWB+e3T5ZfHP77Hj6u2/HVxff3Tr5Pf3dmycvF989ffti\n83eHPOuieDUAhAAQAiAhABICICEAEgIgIQASAiAhABICICEAsj6ETbM+nPhulDWg9eE6d9aHwBCE\nABACQAiAhABICICEAEgIgIQASAiAhABICICsD2HTrA8nvhtlDWh9uM6d9SEwBCEAhAAQAiAhABIC\nICEAEgIgIQASAiAhABICIOtD2DTrw4nvRlkDWh+uc2d9CAxBCAAhAIQASAiAhABICICEAEgIgIQA\nSAiAhADI+hA2zfpw4rtR1oDWh+vcWR8CQxACQAgAIQASAiAhABICICEAEgIgIQASAiAhADrH9SEw\nDr8IACEAhABICICEAEgIgIQASAiAhABICICEAEgIgIQASAiAhABICICEAEgIgIQASAiA6i8D6xEO\nnR2ZKQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# since this is a \"toy\" example, we built the data with a \"true\" map in mind\n", "# these are the regions in the true map\n", "p = shp_map.plot('region', alpha=1, colormap='Dark2')\n", "p.axis('off')\n", "p.plot()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# set some seeds to get the same solution each time\n", "start_seed = 5009\n", "random.seed(start_seed)\n", "np.random.seed(start_seed)\n", "# run the regionalization algorithm\n", "results = ACS.ACS_Regions(w=w,\n", " target_est_count=ests[:,3:],\n", " target_moe_count=moes[:,3:], \n", " target_th_all=0.15,\n", " count_est=ests[:,2],\n", " count_th_min=46000,\n", " base_solutions=100,\n", " pca=False,\n", " compactness=shp)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQIAAAEACAYAAABYh3hbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAA+1JREFUeJzt3TGKFFEYRtHbYmImGLoBwT2YuAQTwUxlRsFMQZegoJmg\nM6iZYOISJnEPghswFMwM2zUUXTPWe56T/10dXbqCj97t9/uA/9ulf/0FgH9PCAAhAIQASAiAhABI\nCICEAEgIgIQASAiAhABICICEAEgIgIQASAiAhABICICEAEgIgIQASAiAhABICIDq8nl98G638xdK\ncKD9fr+7iOecWwiqzm6fLL65fXY8/d33j1cW39188Gf6u8+P7yy+u/fu6+bvDnnWRfFqAAgBIARA\nQgAkBEBCACQEQEIAJARAQgAkBEBCAFS7/f58RoLWh3A468OJ70ZZA1ofrnNnfQgMQQgAIQCEAEgI\ngIQASAiAhABICICEAEgIgIyOYNOMjia+G2UEZHS0zp3RETAEIQCEABACICEAEgIgIQASAiAhABIC\nICEAEgIg60PYNOvDie9GWQNaH65zZ30IDEEIACEAhABICICEAEgIgIQASAiAhABICICEAMj6EDbN\n+nDiu1HWgNaH69xZHwJDEAJACAAhABICICEAEgIgIQASAiAhABICICEAsj6ETZtiffj+y7XFN4/u\n/pr+7ujoaPHd6enp9HfXPz1ffPfz/qvN3x3yrIvi1QAQAkAIgIQASAiAhABICICEAEgIgIQASAiA\nhADI+hA2zfpw4rtR1oDWh+vcWR8CQxACQAgAIQASAiAhABICICEAEgIgIQASAiAhALI+hE2zPpz4\nbpQ1oPXhOnfWh8AQhAAQAkAIgIQASAiAhABICICEAEgIgIQASAiArA9h06wPJ74bZQ1ofbjOnfUh\nMAQhAIQAEAIgIQASAiAhABICICEAEgIgIQASAiDrQ9g068OJ70ZZA1ofrnNnfQgMQQgAIQCEAEgI\ngIQASAiAhABICICEAEgIgIQAyPoQNm2K9eGbJy8X3zx9+2L6uw/Pbiy+e/j6x/R3346vLr67dfJ7\n83eHPOuieDUAhAAQAiAhABICICEAEgIgIQASAiAhABICICEAsj6ETbM+nPhulDWg9eE6d9aHwBCE\nABACQAiAhABICICEAEgIgIQASAiAhABICICsD2HTrA8nvhtlDWh9uM6d9SEwBCEAhAAQAiAhABIC\nICEAEgIgIQASAiAhABICIOtD2DTrw4nvRlkDWh+uc2d9CAxBCAAhAIQASAiAhABICICEAEgIgIQA\nSAiAhADI+hA2zfpw4rtR1oDWh+vcWR8CQxACQAgAIQASAiAhABICICEAEgIgIQASAiAhADrH9SEw\nDr8IACEAhABICICEAEgIgIQASAiAhABICICEAEgIgIQASAiAhABICICEAEgIgIQASAiA6i8MRxEO\nBc/ftwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# we can plot the results\n", "# note that the shapes of the regions found by the algorithm match the\n", "# \"true\" regions;(the color arrangement is different simply because the\n", "# algorithm assigned region IDs randomly) \n", "shp_map['rids'] = results.region_ids\n", "p = shp_map.plot('rids', alpha=1, colormap='Dark2')\n", "p.axis('off')\n", "p.plot()" ] } ], "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.6" } }, "nbformat": 4, "nbformat_minor": 0 }