Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aborruso/cc1b510d6af63806648ab93d1453d5e1 to your computer and use it in GitHub Desktop.
Save aborruso/cc1b510d6af63806648ab93d1453d5e1 to your computer and use it in GitHub Desktop.
Creare gli overlay di poligoni che si sovrappongono
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Overlay polygons (\"cascaded intersection + difference\")\n",
"\n",
"Goal: given a set of overlapping polygons, create a new polygon layer with all polygons overlayed\n",
"\n",
"Based on https://gis.stackexchange.com/a/326583/9828 (this is only all intersections, without the non-intersecting parts of the original polygons)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"\n",
"import geopandas\n",
"import shapely.geometry\n",
"import shapely.ops\n",
"\n",
"import itertools"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"circle1 = shapely.geometry.Point(0, 0).buffer(1)\n",
"circle2 = shapely.geometry.Point(1, 1).buffer(1)\n",
"circle3 = shapely.geometry.Point(1, 0).buffer(1)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"s = geopandas.GeoSeries([circle1, circle2, circle3])"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fae967601d0>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"s.plot(alpha=.5, cmap='Set1')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Calculate all pairwise intersections:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"all_intersections = [a.intersection(b) for a, b in list(itertools.combinations(s, 2))]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Combine those intersections with the original polygons:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"s_all = pd.concat([s, geopandas.GeoSeries(all_intersections)])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Then, we take the boundaries of all those polygons:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fae9467e7b8>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAQcAAAD4CAYAAADhGCPfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOy9eYxj133v+Tl34c4ia9+37urq7up9b1mt1mJJlmU5srzFDpJ4AswIGSTAG2Dmj2AGyBsM8IDM/DHAy8vD89NkjCQzGStxbMuyJEu2pG5LstRS72v1Ul1d+17FWljc7nLmD7LbrVZVb0UWWeT9AASXe3nPj+S9X57zO7/z+wkpJQ4ODg53ouTbAAcHh8LEEQcHB4clccTBwcFhSRxxcHBwWBJHHBwcHJZEy7cBd6Oqqkq2tbXl2wwHh6Ll5MmTU1LK6qW2FbQ4tLW1ceLEiXyb4eBQtAgh+pfb5gwrHBwclsQRBwcHhyVxxMHBwWFJHHFwcHBYEkccHBwclmTF4iCEaBZCHBFCdAshLgoh/t0S+wghxN8KIXqEEOeEELtX2q6Dg0NuycZUpgn8j1LKU0KIIHBSCPEbKeWl2/b5KrAhczsA/JfMvYODQ4GyYnGQUo4Co5nHC0KIbqARuF0cXgT+SabXhx8TQoSFEPWZ9zo43DeWLVmIGyRNi5RpY1oSw7IzN4ktJbqqoKsCTVUyj9PPgx4dt64ghMj3x1gTZDUISgjRBuwCPr1jUyMweNvzocxrXxAHIcTLwMsALS0t2TTPYQ2RNCymFpLMxQ3mYqnMvcFC3GAlGUjcmkLI5yLk0wl5dUI+F+V+F2Gf7ojGHWRNHIQQAeCnwP8gpZy/c/MSb1nyN5ZSvgK8ArB3714nE02JkDQsxucSjM7GGZ2NM7WQvHWC6KpCyKtTHXTTURugzKvj0VVcmnJb70CgqwqKEBjWnT0Km5RpE02Yt8RmNBLn2tjCrfa9ukp9uZf6cPrmiEWWxEEIoZMWhn+WUv5siV2GgObbnjcBI9lo22HtMhdL0TMeZXB68ZYYqEJQE/Kwq62cupCXsN+Fz6U+0IXqVlTc+r33My2bubjB1EKS0dk4I5E4vRNRIC0WDeVe1tUEaKrwoamlN7G3YnEQ6V/t/wa6pZT/5zK7vQ78pRDiVdKOyDnH31CaxFMm1yeiXB+PMjGfQAC1GTGoD3upKfOs2oWoqQqVATeVATcb68uQUjIfNxidTfdghmdiXJ+I4tYU1tUEWF8bpC7kKZkeRTZ6Do8CfwKcF0Kcybz2PwMtAFLKHwJvAc8DPUAM+LMstOuwRrBtSf/0IldG5xmeiWFLqAy4ObC+kvU1Qfyewlj/J4TI+CNcbGoow7Ilw5EY18ejXBtboHtknqBHY31tkK6GUMHYnStEISeY3bt3r3RWZa5dLFvSM77AuYEIszGDgDt9YXXUBqgIuPNt3gNhmDZ9U4v0jC8wPBNDEYKOuiA7WsKEfK58m/fQCCFOSin3LrWtuKXPIS8Yps2V0XnODc6ymDSpDLj58pY62qr8KMra7JLrmsKGuiAb6oLMxw3OD85yZXSeq6PztNcE2NlSTmVwbQnevXDEwSFrWLbk0vAcZ/ojJAyL+rCXxzZW01ThK6pxeplX59HOana1lnNhaI7u4Tl6J6I0V/o4sL6Kcv/a7UncjiMODllhJBLj46tTRGIpmip87Gotpy7szbdZOcXn1ti/vpIdLWG6R+Y5NxDhZ8cH2NocZndrBbq2tmc4HHFwWBGLCZNPr09xfSJK0KPx7LZ6WiqLq6dwL9y6ys7WcjbWB/ns+jTnBma5Ph7lYEcV7dX+NftdOOLg8FDYtuTC0Cyn+iLYUrK7rZwdLeUlGQ9wE69L4/HNtWxqKON3V6d47+IYDeVeDnVWr0mnpSMODg/MYtLkaPc4I5E4LZU+DnZUrcmTP1fUhrx8Y08Tl0fnOdE7zc9PDPFoZzUb6oL5Nu2BcMTB4YEYmolx9NI4hmVzeFMNnXXBNdttziWKIuhqDNFa6edI9zhHu8cZnY3zSEfVmvFFOOLgcF/YtuRk3wxn+iOU+118bUtj0Xjlc4nfo/H8jgZO989wui/CxFyCJ7fUUrkG4jwccXC4J4tJk/cvjjE2l2BjfRlf2lBV0r6FB0VRBHvaK6kLeTnaPc4vTqaHGRvry/Jt2l1xfmGHuzIXS/HGqWGmoyme7Krl8KYaRxgeksYKHy/tbaYu5OGDyxOc6puhkCOUnV/ZYVkm5xP88tQwKcvm+Z0NdNSuLYdaIeJza3xlewOddUFO3pjh42tT2HZhCoQzrHBYkqGZGO9eGMOjK3x1R4MzG5FFVEVweFMNHpfKuYFZ4imLJzYXXo/MEQeHL3B9fIHfdk8Q8uk8t6MBv9s5TbKNEIID66vwuTSO9UyRNC2e3lKHW1fzbdotCkuqHPJO70SUI5fGqQl5eGFXoyMMOWZbc5gnNtcyNhvnnXOjmJadb5Nu4YiDwy2GMzEMtSEPz22vL6h/sWJmQ12Qp7rqmJhP8P6l8YLxQTji4ADA1EKSdy+MUebTeWZbfcGNf4ud9poAX+qspn9qkY+uThbELIbTZ3RgLpbi7bMjuDPOR4/TY8gLXY0h4imLU30zeF0q+9ZV5tUeRxxKnFjS5O2zo0jgue2O8zHf7G4rJ54yOdMfwetS2doUzpstzplQwti25P1L48RSJl/b1UjYCYfOO0IIvrShmrhhcezaFBV+Nw3l+cmL4QwsS5jT/RFGZ+M82llNTZkn3+Y4ZFAUweObainz6hy5NE48ZebHjry06pB3RiJxTvfNsKEuSGeBx/iXIi5N4ctb6kiaFr+9PJEXB6UjDiVIPGVy5NJ4Ohfihup8m+OwDJVBNwc7qhicjnF+cHbV23fEocSQUnK0e4KkafHlLXVrJrdAqbK5oYz26gDHe6eZmEusatvOmVFiXB6ZZ2gmxsGOqqJLpV6MCCF4bGM1frfGke7xVY2gzIo4CCF+JISYEEJcWGb7E0KIOSHEmcztr7PRrsODkUhZHO+dpqHcy+YGx8+wVnDrKoc21tyql7FaZKvn8A/Ac/fY50Mp5c7M7X/LUrsOD8BnvdMYls0jHVVOarc1RlOFj/bqAKf7IyzEjVVpMyviIKX8AJjJxrEccsPEXIKro/NsbQqvuVJ0DmkOdlQigGM9U6vS3mr6HB4RQpwVQvxKCLFluZ2EEC8LIU4IIU5MTk6uonnFi21LPr42idelsautIt/mODwkAY/OrrYK+qYWGZhezHl7qyUOp4BWKeUO4D8Bry23o5TyFSnlXinl3upqZ5otG1wdm2dyIcmBjkpczuzEmmZrU4iQV+eTa1NYOV69uSpnipRyXkoZzTx+C9CFEFWr0XapY9mS030Rass8rK8J5NschxWiqQoHO6qYjxv0jC/ktK1VEQchRJ3IeMCEEPsz7U6vRtulzvXxBaJJk51t5Y4TskhorvRRFXBzbiCS09wPWVl4JYT4MfAEUCWEGAL+PaADSCl/CHwb+O+FECYQB74nC2HBepFj25KzAxEqA26aK3z5NschSwgh2NFaznsXx+ifWqQ9Rz3CrIiDlPL799j+d8DfZaMth/unf2qR2ZjBU121Tq+hyGir8hPy6pzpj9CWo2K9jneqSJEy3Wso8+q0Vzu+hmJDUQTbW8qZiiYZjsRz00ZOjuqQd0YicSYXkuxoCaMoTq+hGOmoDeBzaZwdiOTk+I44FClXxxZwa4pTiKaI0VSFrsYyRiLxnERNOuJQhBimTd9klHU1ASdRbJFzU/yvT0SzfmznzClC+qYWMW3JeqfXUPQEvTp1IQ89YwtZTwjjiEMR0jO+QNCjURdyUr+VAh21QSKxFNPRVFaP64hDkRFLmgzPxFhfG3SmL0uE9poAqhBZj5h0xKHI6J2MIsFxRJYQHl2ludLH9fFoViMmHXEoMoZmYoR9OuVOmvmSoq3aTyxlMrOYvaGFIw5FhG1LxmYTNJQ7odKlRn04XdtidDZ7AVGOOBQRUwtJDMu+daI4lA4Bj06ZV3fEwWFpRjInRn3YmaUoRerDXsZm41nzOzjiUESMzsYp97nwupwqh6VIfdhL0rSz5ndwxKFIsGzJ+FyC+jzVVXTIPw1Z9js44lAkzMZSGJZNrRP4VLL4PRpBj8bkfHaK3zjiUCTMx9ILb8I+ZwqzlAn5XMzFsrMIyxGHImEusyov5NXzbIlDPgn5dObiRlbWWTjiUCTMxVL4XJpT+7LECXl1DMsmlrJWfCznTCoS5mIGIZ/Tayh1QplhZTaGFo44FAlzcUccHH4/rJyPr3w60xGHIiBpWCQMy/E3OBDwaKiKuOWDWgmOOBQBSTNdlt2jq3m2xCHfCCFwaypJw17xsRxxKAIMK30i6E5KOAdAVwWm5YiDA9w6ETTVSe7ikP6TMApFHIQQPxJCTAghLiyzXQgh/lYI0SOEOCeE2J2Ndh3SGFZ6TtvpOTgA6Jpy65xYCdk6m/4BeO4u278KbMjcXgb+S5badSCdbRpwYhwcgPSw4uY5sRKyVQ7vAyFE2112eRH4p0x9zGNCiLAQol5KOZqN9osdKSVycRE7EkHGYkjDgJSBNFLIZIpoJEXYHkC9kiDl8oDqRqheUL2geVB81ShlTQhPKN8fZUXYts3iXIyFmQWSiRRmysA0LUzDxDIsTNPEtiWapqJqGpquoukquktH1TUCIT/B8gAuT3GHmKeHFSufrVittb2NwOBtz4cyr31BHIQQL5PuXdDS0rIqxhUS9twc1vAIdiTyuZs0lvmxFQWtMkXr+kFUI46dtBBIbu9U3vwPkcKHUCtAr0Z4ahH+JrSabQUnGrZtMzc9z/TIDNG5KLGFOLFYjEQ8gW0v/Y+oCIGqqgghsCwby14+QtDtcuHxefEFvPjL/IQqyqhuqip60XhQVksclvKULTkoklK+ArwCsHfv3qKvxG3PzWEODmENDWINDmHPz6c3CIESCqGUl6M3NaKUl6OEw4hAAKHr4HIhXC6EqjI3fY7Y/JuY1X9GwF8DZhKZioIRQxox7NgEMjYKiXEwJpGJKxA/jYxAckgglGqErwMR7sqLWNwUg8mBKabHp5mLzJHKiKEQAo/Hg9fvoaK6gkCZn0A4gMfnRnfr6C4NzaWh6doXjmmmTMyUSSppYCQNYvOLLMwusrgQI7YYY2psitGhsVvtBIIByqvCVDdUrWmxsGyZlWJGqyUOQ0Dzbc+bgJFVarugkFJij41hdF/GvH79lhgIrxe1qQnX3j2oTU0oFRUI9f7iFlTFDYBlpxBCAd2L0H+f10Fl8xftSC5gTV/FnrmIXLyGHf0UEf04IxY1iNAutKYnUIJ1WfjUX8S2bcb7Jxi8NsTM1AypVFoMXC6dUEWYytoKqpurCFWUoTzEia4oCi6PC5fHxe8zalZ9Yb/4YoKZ0RkmR6aITM0yeGOIgd5BhBAEgwHqW+po3tiML7h28mSkLBs9CzNXqyUOrwN/KYR4FTgAzJWav8GORDC6L2NcvowdiYCqorW34dqzB7WlGaWy8qHrTGhK+h/OtO8/ZFa4g2gNe6BhDwDSTGBNXEyLRfQSMvI2qcg7CLUZpWIfWvPhrPQopsdmGLgyxMTwOMlUClVRqagqp7KukprmasoqgyjK6jlWvX4PjR0NNHY0AJBKpJgYmmJqeIqpiWmuXLjG1Ys9lFeEaWhroHljE3qBZ9oyTBt3FgLisvIphRA/Bp4AqoQQQ8C/B3QAKeUPgbeA54EeIAb8WTbaLXSkZWF0d2OcO481OgpCoDY14dm/D72jA+HJTmIWTU2Lg2UnH/oYQvN8Tizs2X7M4d8i509jT/6U5ORrCNcG1MZn0eofbCY6lUhx/Xwfw33DxBZjCCEorwjT2d5JU2djQV1sLo+Lpo4GmjJiMT02w+CVIcaHx7lw8iLdpy9TVVPJ+m3tVDV+sSdSCJiWJOgtkGGFlPL799gugb/IRltrAZlKYZy/QPLECWQ0ilJZifvwY+ibNqEEs19sRssMKx6k53AvlHArrvCfIuUfY09cwhr9EBk7h3Xjb7EGGlHqv4rW/KX0MGYZEosJrp25ztCNIQzTJBAMsHHrhjXVTa+sq6CyruJzw6DJ8SnGfzNBuCJM5/YOalqqV7W3cy/Sw4oCEQeHNDIeJ3XmDKnTZ5DxOGpTI+5nn0Fta8tpaTpduykO2UkPdjtCKKi1W1FrtyKNOGbvr7BnjmAP/T3JkddQa55Fa3sKofz+VFqci3Hl9DVGB0axbIuKynI2bO+gtrUm6/atFoqiUN9eR317HYlYkp4z1xnsHeSzoycIlgXp2LKOxg0NeRcJKSWGubZ8DkWNNE1Sx4+TOn4CaRho69px7T+A1tiwKu17dD+gkTJmc9qO0L3oG7+JtF7AvPEu9tS72GP/H6nxt1AaXsKuOcDFY5cZGRhBAlU1VXTu6qCyriKndq02Hp+brV/qYuPeTnrP9dJ3dYDTn5zl6rlrbNnXRV1bbd5sSxgWKcsm6Fn5Cl1HHFaIcb2X5NGj2LOzaBs24H7kIGp19araIISCIsKkrMjqtKe60DueR65/DrP/A8zhXzJ2+m36py+wIGqpaWpj4+5OQlVlq2JPvtBdGhv3drJ+xzr6uwfpuXidz46eoKaumm2PbMUfWv3KYzeTvJRlIbeHIw4PiT07S+LoUczrvSgVFfi+/S201ta82aOp5RjWxKq2KYTCvOzi6rUUidg4QX2Bza5hynQTPfDF6dNiRdM11m9vp2VTM5c+vcxg7wBHX/+A9o1tdO7q+EIMRi7JZi5RRxweEGnbpD77jOSxTxGKgvvwY7h2777vmIRc4VLLSZnXsWwTVcn9z5qKp7j89immxsZRFJXmrt20bgljffor5NAYqdf+HnXrXvStj+bclkJBd2nseGwrbZtbOPfxBXouXWekb4RtB7aumr9lLmagCuEMK1Ybe36e+FtvYQ2PoHd24n7i8ZzMPjwMHlcF0aRNND5DyJ/bEzHSN8nF906STCWorK6h8+kd+MJ+APQX/luMK8exzn6Cdfo49mgv+hPfRdHdObWpkAhVlfHoCwcZujpM9+krfHb0BO2d7XQd2Jhzh+VcPEXQq6EojkNy1TB6rpN45x2wLLzPfxV9c2F1m/2uSqaAaGo6Z+JgWRb9v7tC/8UeFEVh48EdNO1q/8J++sZ9qO1bMY78K3JsmtQv/i/0x15ArW3LiV2FiKIotGxqpqalhlNHz9B7pZeZiRn2PrkLX1nufBHpRMPZCfsunMnZAkVaFomjR4n/4hcowSC+P/7jghMGgDJfDaAQjecmKj25mODMv33MjYtX8fr97Pnm4SWF4SaKy4v7Kz9A2bYTUibGu6+ROvN+TmwrZDw+Nwef28em7RuZn5vng19+xEjvWE7aSpk2s4spKvzZEQen53AX7GiU+C9exxobw7VzJ+7HDyO0wvzKXJoHRdQQNwbvvfMDEhmY4sKvj5MyUtS3NLPxKztRtfvzsbh2PoFV34bx0RvY58+RHB9Ef/qPUNTSSYarKAqduzuobKjg1G/PcPLDU0yPtbLl4OasDjPG5uJIoCFL9VKdnsMyWDMRYj9+FXt6Gu8ffB3Pl58qWGG4idfVhGVPYJgPH0Z9J5NXRjj7q2PYlkXXoV10fW3PfQvDTdTaNlx/8N8h6iqRExFSb/4IO7GYNRvXCpV1FTz+4iGqa6u4cbWPE++dxs5COrebjM7GUYWgpiw7YfmOOCyBNTpK7NVXkaaJ77vfQd+wId8m3RchbwtgMR3NTu9h6PQNLrx/AlVR2PnCI9Rve/j8Goruxv3Mn6Csa4f5OKm3/gE7ujpxGYWEy+Ni/7N7aVnXzNjwGJ+8/RmmYWbl2KORODUhT1aWa4MjDl/AvHGD2E/+DeFy4fvDP0Sty82S5VxQGWwFFGZjfSs+Vu/vLnP12Dlcbje7X3qMUGPlio8J4Hr0RZQt2yCWIvXW/4M1U1KLc4H0MGPn4e1s2LKBmakZPnrjExKxlfX2kobF1EKS+nD2qqw74nAbRnc3sdd+gRIO4/v+91AryvNt0gNx0++QSK2s53D512e5ce4yPn+Avd99HH9VdqdrXbu+jLrnIBg2xq//FXOkJ6vHXyts3tfJ1j1biM4v8NGbH7M4F3voY43PJZBAfTh7C9occchgXL1K/FdvozY04Pvud1D8/nyb9FD4XC1YcoJ4auGh3n/13XMMX79BKFTOnj88jDuQvX+i29E3P4L26NMgwfztm1gTAzlpp9Bp39rK7kO7SMaTfPz2MRKLD7d4bmB6EU3Jnr8BHHEAwBwYIP7mW6gN9fi++VLW8izkg5rQFsBmZHbJKgF3pe/jKwxeu0FZWZhd3z2E7s7tjILWthXt0HMgJcbR17Dmp3PaXqHSsL6e3Y/tJJlM8sk7n2GkHswHYdmS3okordX+rPkbwBEHrPFx4r94HaW8HN+LL6bzM65hyv11KKKK+dilB3rfyNl+es9ewef1s/Pbjz7wjMTDojVvRN17CFI2xq9/jB1/uB7PWqe+vY5t+7YSXYjy6TsP5qQcnF4kadp01GZ3+FfS4mDPzhL7+c8Rbje+b30T4V0bCUjuRdCzGVtOMB+bvK/9J6+OcuWTtPNx57cezXmP4U70zr0o23dCwiT1zj9jG9mbil1LtG5uZuPWTmamI5x8/8yymbbv5PpEFK+u0lie3cjLkhUHOxYj9tOfgWXj/dY3C2aNRDaoD28DBKNz9x5azA1Pc+nISVRVZefXH8GbpwxNru1PoGzYAAsJUr/+f7Hvklq+mOnc00FbRyvjo+Oc++jev1/SsOifWmRdbQA1C+spbqckxUFKSeKtX2EvLOB76SXUyuxM0xUKfk8IVWlkMdmNlMv/+xhJgwvvnEBK2P7cAQLV+c2/4DrwNURzPcwsYB57I6+25JOtX+qirrGOgd5B+rvvPvPUN7WIZUs6arL/51aS4pA6fhyzvx/Pk0+gNtTn25ycUO7bgpRzjM/1LrvPpTdOkEjG6djXRbi5MARSP/xtKPNg9/Zi9j24U7UYUBSF3U/sIBAIcPHERRZmlvbDSCnpHp4j5NWpLsv+qteSEwdzeITk7z5G7+xE37493+bkjMaKrYCfsblPltw+8GkPUxPjVNfV0bRn3eoadxcURUV/8jugKpifvo+9OJdvk/KCpmvseWIXEjhx5NSSDsqRSJzJhSTbmsM5yVFaUuIg43ESb76JEgzieebpnCZ9zTea6iLk3Y1lDzG18Pmu6dzIDL2nu/F6fGx+fk+eLFwetawSdc+jYNikjvykZP0PoaoyunZvZmEhyvmPvzj7dHYggs+lsaEuN/6ykhEHKSXxd97BXlzE+8LX1nQsw/3SUrUXcDMS+fjWa0bS4OKvTwCw5St7V31m4n7RO/cimhogEsU8/na+zckb7VtaqW+qY/DGIENXh2+9PjGfYDgSZ1tzKKuxDbdTMuJgXurGvN6L5/DhNbVeYiW4NA8Bzw4Mq5fIYjqHQM/754nHY7Tt2EioobCzQuuPvQQBF3bPNayp4Xu/oUjZeXgHPr+PC8cvkkqka5Oc7Y/g1hQ2NeSurmlWxEEI8ZwQ4ooQokcI8VdLbH9CCDEnhDiTuf11Ntq9X2QiQeLDD1Dr69F371rNpvNOa+VBQGNo5mPmx2cZ6xuirCxM2yOd+Tbtniiqjv6l50GCceytfJuTN3SXxo5HtmGYJhc+uURkMUXf1CJbmkK4tNz9v684QYEQQgX+M/AM6YK5x4UQr0sp7xwkfSilfGGl7T0MyU8+QcbieL7xjaL2MyyFx+XH79rOYuo0Fz9ID6U2Prkzz1bdP2ptG2ZjPXJoFKP7E/TNj+TbpLxQ3VRFbX0NwwMjDKleXKrOlsZwTtvMhuzsB3qklL1SyhTwKvBiFo6bFazJSVJnzqJv21Yyw4k7aa95DHvYz2JsnNrWBsoacntSZRv9kRfApWCdP16y0ZMA2x7dSsK0GDvfy662cjyu3Ia4Z0McGoHb3eFDmdfu5BEhxFkhxK+EEFuWO5gQ4mUhxAkhxInJyfsL/10OKSWJ995DuN14DpVOivQ70XDjvtoGrhRGezTf5jwwiseP0rULkjbGsTfzbU7eUF0aCy4V3bCpt2TO28uGOCzVT7/T8lNAq5RyB/CfgNeWO5iU8hUp5V4p5d7qFVaOMi9fxhoewX3o0aJZN/EwzBwbpGyxElGtMTR2gWh87cUOuLY9BmUe5MBASSaIAfj43DVMj0Z7Yx0jZ8ewjNxO8WZDHIaA5tueNwGfS4EspZyXUkYzj98CdCFETuuXSylJHvsUpaoKfdu2XDZV0JhJk/ilSbSaIJv3PYltmZzpfjffZj0U+oFn0/kfTr2Xb1NWnYnIAj39w9TVVrHn8Y0YcYOp3pmctpkNcTgObBBCtAshXMD3gNdv30EIUScynkAhxP5MuzldvG/29GDPzOA+sL/knJC3M3tyBAyL0L5GGqrXUV7ZTGRmkL6R7nyb9sCodesgHECOT2HP5/bCKCRs2+a3Jy8hEBzevZlgTYBAdYDxy5NZTVB7JysWBymlCfwl8A7QDfyrlPKiEOLPhRB/ntnt28AFIcRZ4G+B70kpczZoklKS+vQzlHAYrbPwp+xyhWVYxC5NoJR7Ca5LxzTs6XoOTXdz6eqRNTm80LY/CjYYp36Tb1NWjd+d6yEyO8f2TesIB9LD4/qualIxg5n+3FVWz8okqZTyLSllp5RyvZTyP2Re+6GU8oeZx38npdwipdwhpTwopfz47kdcGdbAANb4OK59exE5Lj9WyMydHYOESdnu3y8u87r9bNv0DLZl8NnZ19dcaLLWsjntexgZK4nEML3DU1y+3k9ddRV7Nv2+UHNZfRBf2MtY9yTSzs3/bFFeOclPP0P4/ehdXfk2JW/Yts3i+XFE0E1g4+fdO021HTQ0bGExOs2ZK0fyZOHDo245AJYset9DNJbkg5MXcLvdPHNw2+cK4AghqNtSQ2I+wexQbnqARScO1tgY1uAgrj17Cr4ITS5Z6J5ELqYI7KhbsqrSzo1P4g9UMjJykaHxtZX9We/YBX4de7Af2zLybU5OsG2bXx87h2mYPLFvK94l1sCUN4XwBN2MXV7ZlP9yFJ04GJe6QVVxbduab1PySrR7CjbN0uMAACAASURBVFwaoW21S25XFJX9O/4ARdU5f/k3zC+urQIzyrrNYEisqyfybUpO+N2560zNRNiysZ2W2qXXwAhFUL2hksXpGPG5h8tafTeKShykZWFcuYK+fn1JrLpcDiOaxBqP4moJodxlxV7AG2LrpqexzBTHTv8bieTD101YbbSuR0AB68aDJdJdC5y+MkB3zw1qq6s40LV8sWKAipYwCJETx2RRiYPVP4CMxdA2b8q3KXll/tIkSEmw695BZC11nWzYcIhkYpHfnfoJhplaBQtXjuLyQnkZRBaKqu7m5f4xTly4QjgU4qtf2n7PQru6V6esNsB0X4RsTwAWlTgY3d0Ijwet/e5qW+zEr00j/C68TfeXE3Jjyx5aWncTW4zwu9M/XTMzGOq6LWCDeSmnk1+rRv/oNB+dvIDP5+Prh3fj0u/PZ1bZVk5qMUV0Krs9v6IRB5lKYfb0oHV2ItTVqblQiCSmYtiROO728gcq775jw2Hq6jexMDfOsXO/zKGF2UPt3AuawB68nm9TVsz49DzvfXoOl+7ihcd2L+mAXI5wUxmKqjDTl12/UdGIg9lzHWma6F2b821KXpm/NAFA2daaB37vns3PUF7ZzPRUH5+c+2XB9yAURUVUV8FCYk1XyxqbnudXvzuFAJ47tItQ4MHWAam6SrgpRGRgLqsRk8UjDv19CK8XtaEh36bkldTwPCLoxlP14LU+FUXlSzu+Qbi8kamJ63x0+qdYVnbKw+cKpa0LJFi9Z/NtykPRPzrNWx+cACl59ku7qCl/uHyQ4aYyzJRJLBLPmm1FIQ5SSqzBIdSmppJeR2EZFnYkjl4beOhjKIrKo7u+SXVtB3OREX57/MekjOxPk2ULtbULFJDjK6ssng+6+0b5zSen0XSNFx7fR2PNw+fZCNakf/OFiew5Z4tDHObmsBcW0Jqb8m1KXokNzIIt8dynI3I5FEXl4LYXaGrazmJ0mt9+9s8Fuw5D0d3gcyPnCtO+5Th9pT/tfPR6efGJfVSFH17QAXSPhqfMw8JE9vJ1FIU4mENDAKgtLXm2JL/EB+aQQuBvy06mp12bnmL9+kdIJqJ8dPxVJiMj935THhCV1ZC0sWZzEymYTWzb5oNTVzh+/grhUBkvPbX/gX0My1FWGyA6Gcua36EoxMEaHET4fCgVhZ1NOdekxqIoQRd6IHvVj7raD9C16SksM8Wnp3/KpevHsnbsbKE2dABg9Z3PsyV3Z34xzs+OnOBybz91NVW8+PieB5qVuBfBGj+2aWXN77DmxeGmv0Fz/A1pf0PNyrqnS7GucRsH93wHt8vH9RvH+PDkTwrKD6G0bk77HcYG8m3KsvQMTfCzdz9ldm6enZs38MKhnfcdx3C/BG76Hcaz43dY++IQj2MvLKDUF2fNy/slMbYAtsRdn31xAKgM1fHEwT+hqnods5Fhjhz7J8amC+NiVHQ3eF3IxcLLj2lZNkdPXubIsbOomsJXH9vL/i3tDxSDcr/oHg1P0J21nsOaX7ZoR9KBH2qpDymm0yeEu/rBpzDvF11z8ciOP6Bn8AxXez7ixJnXaGjoYkfnE6hqnk8lnw9mcpf45GEYmZrlw1PdzM0v0FBbw9P7t+DJcYUxd9BNYiE7GbqLRhyU8rWVbj3bGJl/C1elL+dtdTTvpKq8iZPn32R4+AKTU71sXH+Itob85c8QgTLk5CzW/DRqWX4rhseTBh+duUrf0AiqorJv20Z2bWy99xuzgCfoZmE8ipRyxcPstS8OMxFQFEQod2XB1gLmXBI8Gpp7dX7ScKCKJw/8MVcHTtHbd5zzl35N3/BZdm5+hnAgp7mDl0SEqpEMYE8M5E0cbNvm7LUhzl7uxTAMGutrOLxrEwFf9hzE98ITdGNbNqmYgdvvWtGx1r44RCIo4XBJp4MDsBeSqCs8GR4URVHZ1LaPdY3bONX9G6Yme/nosx9TX7eRLesP4XHnvhdzy5bKRmxOIiNjq9bm7fSPzfDpuavMzs8TDPh58sB2WutWf6jrLksLUXIh6YiDHYmU/JDCtm3sxRR6S356Ty7dw8HtX2cyMsS5K+8xMnKJsfGrVFeto6vjUQLe3NulVDeCADm/eklrbNvm+tAkp6/0MTs3h6bp7OrawO6Nrag5qnx9LzzBtCAkFpKU1T1cKPZN1rw4yLk5lLbVGc8VKlbMANNGK8tvgpvq8ia+fPAH9I9e5nr/Z4yPX2VisoeKiha6Og7ldLih6G7QFWQs97kdbNvm4o1RLlzrZyEaxaW72LKhnd2b2rIat/Aw6F4dRVVILqw8L8eaFgdpWUjTLOmsTwBWIr04SvUUxs/ZWr+J1vpNjEz1cfXGx0xP9fHRdD/BUB1NdV201W/OzeyGqoCVu5Wks9E4F68P0Ts0SjyewOPxsKtrAzs2NGc9ZuFhEUKgutSsVMMqjE/0sKTS6ihcq+fwKUTsVPpEUFbJGXm/NFS10VDVxtTsKJd7P2Z2doRLs6NcufYB4fJG2hq3U1fZiqJkKf9GDsQhnjS4dGOE3qExZmfnkUiCgQAHdmxm67rGvA0f7oaqq1jmykOoC+tsekBkRhxw5bcrl29u9hxEjqsuPyxV4XoO7f4WKSNBz9BZxsavMj3Vz/RUH7rLS3l5E7WV7TRUr8Olr6AXqKqQhTR303NR+kanGRqfZnJ6Btu28bg9bGhvomtdIzXlK1vYlmsUTcE2CkQchBDPAf8RUIG/l1L+zR3bRWb780AM+G+klKdW2q400mnJhV7a4nCz56C6Cu9f7HZcuie9VqP9ANHYHD2Dp5mcus7E+DUmxq9xQQjc3jJCwVpqKtseXCwUFR6iwMvM/CL9o1MMT0SYnp0jmUwHEemaTnN9LZvaGmiufbDMWvlE1ZTC6DkIIVTgPwPPkC6qe1wI8bqU8va0wF8FNmRuB4D/krlfGamb4rC6U3iFhizQYcXdCPhC7Nz4BGx8gmh8juHxq0xFBolGpxgfv8r4+FUuCIGme3C5fXg8Zfh95YT8VYTLagh6w1/wWwhNQy5Rmt62bVKGxczCItNzi8wuxJiPxojGYsRiCQwzfR5pqkZ5eRl17U201FZSX1m2ZgThdlRdIbW48noe2Tib9gM9UspeACHEq8CLwO3i8CLwT5n6mMeEEGEhRL2UckW11GUqEybqLm1xuOVzcK0dcbidgDfExrZ9bGzbB3BLLGbmRokn5kklF4lFZ5iWNz73PiEUFEVBKCpCqATiMfSkTu/bv8O0LCzLxrZsLNv6QmZml+7C5/NQW11BeSiwpsXgThRNxTJXHkKdjbOpEbg9Dc8QX+wVLLVPI/AFcRBCvAy8DNBS4vkZSpWbYnE7lmUyG50isjDBQnQKw0hgWiksy8CyTWzbxDQkMqnicun4VC+aqqJpCi5NQ9M0yvweKkIBqkKBvE855pJ06PTKj5MNcVjKjDv7dvezT/pFKV8BXgHYu3fv3QeQN4cTqbVRayFXCD39b3dzeFGMqKpGZaiOylDdsvsk+t/Dik7hf2r/KlpWeEjLvmsxo/slG32oIaD5tudNwJ0pg+5nnwdGZIYTssTF4aavwUoWZ93I+0WaJmiFOWOzmlimjaKv/HvIhjgcBzYIIdqFEC7ge8Drd+zzOvCnIs1BYG6l/gb4/SzFzVmLUkXJTGFaqeylJV+LyJQF2tr3GawUy7BRs/A9rHhYIaU0hRB/CbxDeirzR1LKi0KIP89s/yHwFulpzB7SU5l/ttJ2AXDdHFaUtjioGXEo5mHFfWFYCKfngG3aKIECEAcAKeVbpAXg9td+eNtjCfxFNtq6nd/3HEp9WOGIAwCmBVnoTq91bNPKSs9hTffBhKaBqiIThZPPMB8o3rRIWonS7kFJw0Ks0encbCGlxExaqAXic8grSjiEPVtY6cFWG82ng6akE76UKLZlIWMpRFnu0uStBYy4iW3ZuAMrj/1Z++JQXn4rVVypoigKwu/CnC9dcZATMwgJoqqw1z3kmmQmf6Q7uPLFiEUiDrNIu7Q99WrAhR0tXXGwxzO5RKtLO/HPzeSyHkcc0uKAbSPn5/NtSl7RQm5k0srKOv61iD2VHloqtflNLptvEgtJFFXB5V95BGhxiAOU/NBCK/cipCQ1Gcu3KXlBziyAppS8zyG5kMQdcGWlwFMRiUNpOyXdmZT0yenSFAd7LoYIuIti4dRKSCyksuJvgCIQB+HzIfx+rJHCLPK6WrhrAyAEiZHSG17ZloWMLCIqV5ZQda1jJE0S8wl8FdkpzLv2xUEItOZmzKHBLyzLLSU0t4YS9mBM5D7BaqFh3xgGS6K21uTblLwSzfz2wSzVS13z4gCgNjchF2Ml73fQ6wLY80mMWGkFQ5m96V6j2lnaWcgXJqIoqoLf6Tn8HrUpveDTGhy8x57FjbcljJCSWF9piaQ9NA1+F2qB53bMNQsTiwSq/FlZrg1FIg5KeTjtdxgcyrcpecXXEgIhiA/O5duUVcO2LOTUAkpdacc3GEmT+GycQG32ZmuKQhwcv0Maza2hlHsxxguvFH2uuOVvaKvNtyl5Jdv+BigScQBQW1vTfofR/NRKLBRcDUHkfJLETGlMaZoX+5DC8TfMDs2h6mrW/A1QROKgd6wHVcXo7s63KXmlbGvaYz9/YSLPluQe27axboyjVAdRw6U7jWkZFpGhecqbQ1nzN0ARiYPweNDXr8e4cgWZw5JohY6nyo8S9pLsncm3KTnHutoPcRNtc2knIp4dnsc2LSrbyrN63KIRBwBt82ZkPI7VP5BvU/KKp6McGU0RK/KAKPNcLygCbVdnvk3JKzP9s7h8OoGa7IaOF5c4tLchPB5naLG1FoRgoYiHFrZhYg9MoTSVo3hLt5CykTCZH12gorU8K+spbqeoxEGoKlpnJ2ZPDzJZusuXXQE3arWf5MAstlWcS9nNc9fAsNG2tOfblLwSGZhFSklFW/ancotKHABcW7YgTRPj4qV771zE+DdVQcJk/tJkvk3JCeapHnCrqNvW59uUvCGlZOLaNL5yL75w9mYpblJ04qA21KM2NpA6caKkHZNlW2rAqxM9M4pdZIlwzJ4B5FQUdWsLilq6CWVnh+dJzCeo3VSdk+MXnTgAuPcfwF5YwOi+nG9T8oaiKvi31WLPJYj2FNfMReqjC6ApuB7dkW9T8oaUkrFLE7gDbipachMdWpTioLa3oVZXkzp+vKQjJsO76sGtMX+yeJazm0PjyNE51I0NKP7sd6XXCgvjURanY9RtqkYo2XVE3qQoxUEIgWv/PuyZGcyennybkzdUXcW7qRp7OsZif3EkwzE+PAuKQD+8M9+m5JWxS5PoHp3KddmNbbidFYmDEKJCCPEbIcS1zP2Slgoh+oQQ54UQZ4QQJ1bS5v2idXaihMOkPv2spHsP5XsbQFOZ/WztL0qzJqax+qdR19eWdETk4nSM+fEFajdVZTUi8k5WeuS/At6TUm4A3ss8X44npZQ7pZR7V9jmfSEUBdeB/Vjj45iXSjfuQfPqeDZWYo1Hmb82nW9zVkTyV5+BAP3x0u01SCkZPDWC5tao7shtMt2VisOLwD9mHv8j8I0VHi+r6Fu2oNbVkfjwg5KuilXxpRaEV2fuo/41m53aOH8NOTKLtq0VtTp3XelCZ/pGhOjUIk0767NS1epurFQcam9Wy87cL5enSwK/FkKcFEK8fLcDCiFeFkKcEEKcmJxc2Ry9EALPl59CxuIkP/lkRcday2hujbKDTcjFFDPH1t7wwjZMUkfOgU/H9fS+fJuTN8ykydCZUfyVPirbcy+Q9xQHIcS7QogLS9xefIB2HpVS7ga+CvyFEOLwcjtKKV+RUu6VUu6trl75/K1aV4e+bRupM2exVig2a5nQllrUmgDxC+MkZ+P5NueBSL1/HBZTuB7fjuJaeT2GtcrI+XHMlEXL3sash0ovxT3FQUr5tJRy6xK3XwDjQoh6gMz9ksH8UsqRzP0E8HNgf/Y+wr1xH3oU4XaTeP/9knZOVj7VDlIyfeRGvk25b6zJCNbZfkR9CH1n6S6wikXiTPRMU91Rgb/CtyptrnRY8Trwg8zjHwC/uHMHIYRfCBG8+Rh4FriwwnYfCMXrxf3YIayhYYxz51az6YLCU+XHs6kKc3ieuUuFvyjLtm2Sb/wOKSXu5w/k25y8YVs2fZ8NoblUGrfVrVq7KxWHvwGeEUJcA57JPEcI0SCEeCuzTy3wkRDiLPAZ8KaU8u0VtvvA6Fu3orW2kjhytKSHF5WPtSGCbuY+6CcZKexsUan3TiDHFtD3dqDWlG6Zu+GzY8RmYrTua0Jza6vW7orEQUo5LaX8spRyQ+Z+JvP6iJTy+czjXinljsxti5TyP2TD8AdFCIHnq88hPG7ib7yJTKXyYUbeUXWV6uc2gJRMvnWtYFdtmj0DmCevp4cTT+7Jtzl5Y3ZojvErk9RsqKK8ObSqbRdlhORyKH4/3uefx45ESLz/fr7NyRue2gCBg03YkTiTRwvP/2BHYyTf+Azh0fB88/GSLXGXXEzR9+kQvnIvTbvqV739kvvWtZYW3AcOYFy8VNLLuit2NaC3hklcnmL+6lS+zbmFbdskfvpbZMLA/bUDKCVaGFfakhufDGDbknVfas1pJORylJw4ALgeOYja1ETivfewxsfzbU7eqH5mPYpPZ/bIDRJTheF/SL13Ih3stLsdbUPp5oYcOjNKdHKR1n2NeMqyUxj3QSlJcRCKgvdrzyM8HmI//zn2bHEsSnpQNI9O1U3/w+vdpObzmz0rdewc1onriIYwrqdXdba7oBjrnkz7GTqrsp409kEoSXEAUAIBvN/6Jlg2sZ/+DHux9ArQAnjrg5Q/24FMmEz8ohszkZ86m8b5a6SOXkRU+vF8/+mS9TNM34gwdGaE8pYwzbsa8mpLaf4CGdTKSnwvvYSMRon/7Oclm3cyuK6C0ONt2PNJxl67vOrrL8yeAVK/OokScOP5o6dLNgpybmSevk8HCdYGaD/YnLM8DfdLSYsDpNPKeb/+daypKeKv/xJpmvk2KS+EttQSONCEPbXI+BtXVi21nDk8SfK1T8Cl4v6jL6MEVif6r9CITi1y/aN+vGEPHY+15cUBeSf5t6AA0Na14332WcyBgbRAlGgMRMXeRrzbajGH5xl742rOexDmwBjJfzkCQuD+zhOoFas7j18oLEwucu3oDXSvzobH23O+2vJ+ccQhg76lC88zT2P29RH7t59ix9fW4qRsUflYK56uasyBWcZ+3o2ZzE1PyrjST/JffwuA+1uH0BpzkyS10JkdmuPakV50j0bnk+vQvYUzpHLE4TZc27fj/foLWBMTxF79F+z54q4YtRSKolDz1Hr8exsxJxcZ+8lFUtHs+mJSp6+Qeu0TcGl4/ugptLb8Ot7yxVTvzK2hxManO3AHXPk26XM44nAH+oYN+L79LeTiIos/fhVrqnAChFaTyoPNhA63Yc8lGP/JxaxV7U5+dIbUO6cQQTeeP30Wta4qK8ddS0gpGb04ccv52PnkOnTP6q2ZuF8ccVgCrakJ3x9+F6Qk9uq/YN4ovBDj1SC8rZbyr3QgkyYTP7tEtC/y0MeyLYvELz/C/LAbpSqA5wfPlWQeSNuyGTgxzPC5USrayuk43FYwPoY7ccRhGdTqavzf/x4iECD2s5+T+ODDkiySE+yopOqFjQDMvHmVyQ/7H3gmw5qZI/GjN7EuDKK0VeL5wVdLMq18Yj7J5d/0MNkzTd3mGtoPNhfErMRyiEJOfrJ371554sSqJKteFmkYJI4cxTh/HrWhAe/XnkcpK8urTfnAiCaZeLsHa2wBtSZA9fMbcAXuHdZrnL1K6t0zYNpoj27Gfag0C9FM90XoPz6MogjaDjYTbiyMc0gIcXK5pM+OONwnxuXLJH7zLigKnq98Bb2j9Go02rbNzKdDxE6Nglul/Ml2guuXzrNgGyapNz/G6h6GgAv3S4fQmmpX2eL8Y5k2gyeHmeqdIVDtp/2RFtz+wnE8OuKQJexIhPgbb2JNTKBv3YL7scdQfKUXtLM4OMv0r68jEybujgqqDreh3TYFZ14fJPXOCeRcAmVdNe4XH0Px5GfxUD6ZH1tg4OQIiYUk9V01NGytzXvU45044pBFpGmS/PhjUidPIXQd96FH0bdvR5TYWgAzbjD5Xi9GXwTcGoG9DZStC2K88xlW7wTCpaIf6sK1f2u+TV11UrEUg6dHiQzM4g64ad3XSFldYTpfHXHIAdb0NIn33scaHEStqcHz5S+jNqx+Qo58E+2LEPmgD2tkBm1xloDHwLO5FtezB0ouFNq2bCauTjFyYQKkpK6rhrrN1YXtdLyLOBTe5OoaQa2sxPedb2NeuULi6G9Z/PGP0bd04T5wAKW8NIquSCnxMEe5uMRsIkZUqWSypoXKtjbqFJ3CGVnnFikls0PzDJ8bIzGfINxYRvPuBtz34bAtZBxxWAFCCPRNm9Da20l++impU6cxLnWjd3bi2r8PtWa5Gj9rGykl5rVrpD47jjU+jvD7qf3uYWrXdTB8doyJq1NMXpuisr2Cus3VeIJr+yJZDtuymemfZax7ksR8Ak/QTcfh9oKZiVgpzrAii9jRKKlTpzDOnEUaBlp7O64D+9EaG/NtWlaQloXR3U3q+AnsmRmUcBjXvr3oXV0I7ff/M8lokrHuSaZvRLBtSUVziLquGnzlxRHbYJk2U9dnGL88SSqWwhf2UtdVQ3lzqOAcjvfC8TmsMjIeJ3X2LKlTp5HxOGp9PXrXZrSNG1G8a+8CsaanMS51Y1y6hIxGUaurce3fh9bZeVdHbCpmpHsRPdNYhkVZbZCKtjDlzaGCjQpcDiklsZk40/2zzPRFMJMmgWo/9V01lNUHV6UCVS5wxCFPyFQK48JFUufOYU9Pg6Kgtbehb96Mtm4dQi+cFXh3YkejGJevYHZ3Y01MgBBora24du1CbW97oIvBTJpM9sww1TtDMppEURXCjWVUtJVTVhcoaIddMprMCMIsifkEQhGEGsqo3VRNsHrtJ791xCHPSCmxJycxursxui8jFxcRLhfa+vWoLc1ozc0oofzmMpC2jT0xgTk4hNXXhzk4CFKi1tamxWzTRhT/yi4GKSWLUzGm+yNEBuYwkyaaWyPcWEawNkCwJoDLl1/BtC2bxZk4CxNR5kcWiE6l0wcGqgNUZno9q1lYJtfkTByEEN8B/ldgM7BfSrnklSyEeA74j4AK/L2U8m/u5/jFIg63I20ba2gIo7sb83ovMpM3QikrQ21uQm1qRmtqRIRCOe2qSsvCnpxMi8HQINbQ8K0kN0pFBXpnJ9rmTagVFTlp37Zs5seizPRFmBtduJVYxhN0E6gJEKzxE6zxo3v1nH4PtmUTm4mzMLHIwkSU6OTirUI/vrCX8tYwFS3hgltOnS1yKQ6bARv4r8D/tJQ4CCFU4CrpcnlDwHHg+1LKexaNKEZxuB0pJfb0NNbgYOYiHbolFkLTUMrLv3ATfh+4XAhd/5wT8M7jYhhIw0AmU8iFeexIJHObTd/Pz0NmAZVSXo7a1ITW3ITa3IwSCKzadwDpGg2xyOcv0Jtioeoq7qAbT9CNJ+i69Vhza6i6gqIpyw5LpJTYpo1l2FimRWrRIDGfJLmQJJG5pWIGZK4Bb9ibEaUAgRo/ehH1EJYjZ3EOUsruTAN3220/0COl7M3s+yrwIlC6FWUyCCFQq6pQq6pw7dqVPpmnprBGRm5dzNbkJEZPz60L+XMoCiIjFGha+p8/IwosIfpC19NCUFuLvmkTSmUFalPTqovBF+xSBP5KH/5KH3Wbq2+JxeJ07NZFvDgdY2ZgdunPpQhUTUXRFYQQaUEw7XQPYIn9VV3FU+YmUO3HE3TjDXlKRgwehNX4NhqBwdueDwHLlkwWQrwMvAzQ0lJaRU2EEKjV1ajVn0+ZJi0Ley797y/jMUgZSCOFTBmQSiGNFJgWuPR0j0J3gdt167EoC2Z6Hf414VW/XSxux7ZsktEUiYUkVsrCMqy0CBh2podgIW2JoquoWrpXoerKLeFw+V2ZXoe6Jr6HfHNPcRBCvAssVff7f5FS/uI+2ljqV1h2LCOlfAV4BdLDivs4ftEjVBW1ohy1ojQiL5dDURW8IQ/ekCffppQE9xQHKeXTK2xjCGi+7XkTMLLCYzo4OOSY1ZhgPg5sEEK0CyFcwPeA11ehXQcHhxWwInEQQrwkhBgCHgHeFEK8k3m9QQjxFoCU0gT+EngH6Ab+VUp5cWVmOzg45JqVzlb8HPj5Eq+PAM/f9vwt4K2VtOXg4LC6FG7cqoODQ15xxMHBwWFJHHFwcHBYEkccHBwclqSgV2UKISaB/nvsVgXku2adY4Njw1q1oVVKuWQV44IWh/tBCHFiuYUjjg2ODY4ND48zrHBwcFgSRxwcHByWpBjE4ZV8G4Bjw00cG9IUhQ1r3ufg4OCQG4qh5+Dg4JADHHFwcHBYkjUnDkKI7wghLgohbCHEslM1QojnhBBXhBA9Qoi/yrINFUKI3wghrmXul8zCIoToE0KcF0KcEUJkJRnmvT6XSPO3me3nhBC7s9HuA9rwhBBiLvO5zwgh/jrL7f9ICDEhhLiwzPbV+A7uZUNOv4NMG81CiCNCiO7MNfHvltjn4b8LKeWaupHOdL0ROArsXWYfFbgOrANcwFmgK4s2/B/AX2Ue/xXwvy+zXx9QlcV27/m5SK+G/RXpDFwHgU+z/P3fjw1PAG/k8Bw4DOwGLiyzPaffwX3akNPvINNGPbA78zhIOpFz1s6HNddzkFJ2Symv3GO3W0ltpZQp4GZS22zxIvCPmcf/CHwji8e+G/fzuV4E/kmm+f/bO3veJoIgDD9vQQVIiCC+KhoqqjSIr5oiHX+AFDQpKOj5D+mgo4xS8aEUQYBoqEJBhEEIBH2sRCJSAg2iGIrdSOhY59bn3YuJ5pFOt/Kd92Zen8a74/PsGnBCUsnlv2tr24qZvQG29zmltgY5NlTHzIZmth7bPwj170IwWAAAAcVJREFUUpprL3bW4r8LDpmkitqWXLDyjJkNIXxAwKgVcw14KeldLJw7KTl+1fY9t/+rkgaSnku6VPD6OdTWIJfeNJB0AZgF3jYOddZiKmtx913UdlwbxujmupltSDoNvJL0JX7jdCXHr4l9L2DDOuGZ/Z+S5oBnwMWCNrRRW4McetNA0jHgMXDPzHabhxNvydJiKoODTUFR2/1skLQp6ZyZDeMQbWtEHxtxvyXpKWFIPklwyPGrdkHf1v7/vkHNbFXSQ0mnzKyvPyMdeFHjvjSQdIQQGJbM7EnilM5aHNZpRe2itivAfGzPA/+MZiQdlXR8rw3cBJKZ7THI8WsFuB2z1FeAnb0pUCFabZB0VgoLQ0i6TLjPvhe0oY3aGrTShwax/0fAZzNbHHFady1qZlMrZWhvEaLhL2ATeBFfPw+sNrK0XwmZ9fuFbZgBXgPf4v5k0wZCNn8Qt0+lbEj5BSwAC7Et4EE8/pERv+hUtuFu9HkArAHXCl9/GRgCv+O9cOcANGizoaoG8Ro3CFOED8D7uM2V0sIfn3YcJ8lhnVY4jjMhHhwcx0niwcFxnCQeHBzHSeLBwXGcJB4cHMdJ4sHBcZwkfwANzMtmKWLPjQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"s_all.boundary.plot(cmap='Set1', alpha=.5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"From those boundaries, we can polygonize the union of all linestrings:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"polys = list(shapely.ops.polygonize(s_all.boundary.unary_union))"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"polys = geopandas.GeoSeries(polys)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fae94605860>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"polys.plot(cmap='Set1')"
]
},
{
"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.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment