Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jorisvandenbossche/d993c25e0ea8111778599990fb2da2bd to your computer and use it in GitHub Desktop.
Save jorisvandenbossche/d993c25e0ea8111778599990fb2da2bd to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "%matplotlib inline",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "import geopandas as gpd\nfrom shapely.geometry import Point, Polygon",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "s1 = gpd.GeoSeries([Polygon([(0,0), (2,0), (2,2), (0,2)]), Polygon([(2,2), (4,2), (4,4), (2,4)])])",
"execution_count": 3,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "s2 = gpd.GeoSeries([Polygon([(1,1), (3,1), (3,3), (1,3)]), Polygon([(3,3), (5,3), (5,5), (3,5)])])",
"execution_count": 4,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "df1 = gpd.GeoDataFrame({'geometry': s1, 'col1':[1,2]})\ndf2 = gpd.GeoDataFrame({'geometry': s2, 'col2':[1,2]})",
"execution_count": 5,
"outputs": []
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "ax = df1.plot(color='red')\ndf2.plot(ax=ax, color='green')",
"execution_count": 6,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "<matplotlib.axes._subplots.AxesSubplot at 0x8b231d0>"
},
"metadata": {},
"execution_count": 6
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": "<matplotlib.figure.Figure at 0x76e1630>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "gpd.overlay(df1, df2, how='intersection')",
"execution_count": 7,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>col1</th>\n <th>col2</th>\n <th>geometry</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>1</td>\n <td>1</td>\n <td>POLYGON ((2 1, 1 1, 1 2, 2 2, 2 1))</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2</td>\n <td>1</td>\n <td>POLYGON ((3 3, 3 2, 2 2, 2 3, 3 3))</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2</td>\n <td>2</td>\n <td>POLYGON ((3 4, 4 4, 4 3, 3 3, 3 4))</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " col1 col2 geometry\n0 1 1 POLYGON ((2 1, 1 1, 1 2, 2 2, 2 1))\n1 2 1 POLYGON ((3 3, 3 2, 2 2, 2 3, 3 3))\n2 2 2 POLYGON ((3 4, 4 4, 4 3, 3 3, 3 4))"
},
"metadata": {},
"execution_count": 7
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "ax = gpd.overlay(df1, df2, how='intersection').plot()\ndf1.plot(ax=ax, facecolor='none')\ndf2.plot(ax=ax, facecolor='none')\nax.set(xlim=(0,5), ylim=(0,5))",
"execution_count": 8,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "[(0, 5), (0, 5)]"
},
"metadata": {},
"execution_count": 8
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": "<matplotlib.figure.Figure at 0x8bfc358>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "gpd.overlay(df1, df2, how='difference')",
"execution_count": 9,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>col1</th>\n <th>col2</th>\n <th>geometry</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>1</td>\n <td>None</td>\n <td>POLYGON ((2 1, 2 0, 0 0, 0 2, 1 2, 1 1, 2 1))</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2</td>\n <td>None</td>\n <td>POLYGON ((3 2, 3 3, 4 3, 4 2, 3 2))</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2</td>\n <td>None</td>\n <td>POLYGON ((3 3, 2 3, 2 4, 3 4, 3 3))</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " col1 col2 geometry\n0 1 None POLYGON ((2 1, 2 0, 0 0, 0 2, 1 2, 1 1, 2 1))\n1 2 None POLYGON ((3 2, 3 3, 4 3, 4 2, 3 2))\n2 2 None POLYGON ((3 3, 2 3, 2 4, 3 4, 3 3))"
},
"metadata": {},
"execution_count": 9
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "ax = gpd.overlay(df1, df2, how='difference').plot()\ndf1.plot(ax=ax, facecolor='none')\ndf2.plot(ax=ax, facecolor='none')\nax.set(xlim=(0,5), ylim=(0,5))",
"execution_count": 10,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "[(0, 5), (0, 5)]"
},
"metadata": {},
"execution_count": 10
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": "<matplotlib.figure.Figure at 0x8cc5f60>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "gpd.overlay(df1, df2, how='union')",
"execution_count": 11,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>col1</th>\n <th>col2</th>\n <th>geometry</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>1</td>\n <td>NaN</td>\n <td>POLYGON ((2 1, 2 0, 0 0, 0 2, 1 2, 1 1, 2 1))</td>\n </tr>\n <tr>\n <th>1</th>\n <td>1</td>\n <td>1</td>\n <td>POLYGON ((2 1, 1 1, 1 2, 2 2, 2 1))</td>\n </tr>\n <tr>\n <th>2</th>\n <td>NaN</td>\n <td>1</td>\n <td>POLYGON ((2 1, 2 2, 3 2, 3 1, 2 1))</td>\n </tr>\n <tr>\n <th>3</th>\n <td>NaN</td>\n <td>1</td>\n <td>POLYGON ((2 2, 1 2, 1 3, 2 3, 2 2))</td>\n </tr>\n <tr>\n <th>4</th>\n <td>2</td>\n <td>NaN</td>\n <td>POLYGON ((3 2, 3 3, 4 3, 4 2, 3 2))</td>\n </tr>\n <tr>\n <th>5</th>\n <td>2</td>\n <td>1</td>\n <td>POLYGON ((3 3, 3 2, 2 2, 2 3, 3 3))</td>\n </tr>\n <tr>\n <th>6</th>\n <td>2</td>\n <td>NaN</td>\n <td>POLYGON ((3 3, 2 3, 2 4, 3 4, 3 3))</td>\n </tr>\n <tr>\n <th>7</th>\n <td>NaN</td>\n <td>2</td>\n <td>POLYGON ((4 3, 4 4, 3 4, 3 5, 5 5, 5 3, 4 3))</td>\n </tr>\n <tr>\n <th>8</th>\n <td>2</td>\n <td>2</td>\n <td>POLYGON ((3 4, 4 4, 4 3, 3 3, 3 4))</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " col1 col2 geometry\n0 1 NaN POLYGON ((2 1, 2 0, 0 0, 0 2, 1 2, 1 1, 2 1))\n1 1 1 POLYGON ((2 1, 1 1, 1 2, 2 2, 2 1))\n2 NaN 1 POLYGON ((2 1, 2 2, 3 2, 3 1, 2 1))\n3 NaN 1 POLYGON ((2 2, 1 2, 1 3, 2 3, 2 2))\n4 2 NaN POLYGON ((3 2, 3 3, 4 3, 4 2, 3 2))\n5 2 1 POLYGON ((3 3, 3 2, 2 2, 2 3, 3 3))\n6 2 NaN POLYGON ((3 3, 2 3, 2 4, 3 4, 3 3))\n7 NaN 2 POLYGON ((4 3, 4 4, 3 4, 3 5, 5 5, 5 3, 4 3))\n8 2 2 POLYGON ((3 4, 4 4, 4 3, 3 3, 3 4))"
},
"metadata": {},
"execution_count": 11
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "ax = gpd.overlay(df1, df2, how='union').plot()\ndf1.plot(ax=ax, facecolor='none')\ndf2.plot(ax=ax, facecolor='none')\nax.set(xlim=(0,5), ylim=(0,5))",
"execution_count": 12,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "[(0, 5), (0, 5)]"
},
"metadata": {},
"execution_count": 12
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nFEfkQHH/B4zAjPUzRgFVAAAAAElFTkSuQmCC\n",
"text/plain": "<matplotlib.figure.Figure at 0x8d76c50>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "gpd.overlay(df1, df2, how='symmetric_difference')",
"execution_count": 13,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>col1</th>\n <th>col2</th>\n <th>geometry</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>1</td>\n <td>NaN</td>\n <td>POLYGON ((2 1, 2 0, 0 0, 0 2, 1 2, 1 1, 2 1))</td>\n </tr>\n <tr>\n <th>1</th>\n <td>NaN</td>\n <td>1</td>\n <td>POLYGON ((2 1, 2 2, 3 2, 3 1, 2 1))</td>\n </tr>\n <tr>\n <th>2</th>\n <td>NaN</td>\n <td>1</td>\n <td>POLYGON ((2 2, 1 2, 1 3, 2 3, 2 2))</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2</td>\n <td>NaN</td>\n <td>POLYGON ((3 2, 3 3, 4 3, 4 2, 3 2))</td>\n </tr>\n <tr>\n <th>4</th>\n <td>2</td>\n <td>NaN</td>\n <td>POLYGON ((3 3, 2 3, 2 4, 3 4, 3 3))</td>\n </tr>\n <tr>\n <th>5</th>\n <td>NaN</td>\n <td>2</td>\n <td>POLYGON ((4 3, 4 4, 3 4, 3 5, 5 5, 5 3, 4 3))</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " col1 col2 geometry\n0 1 NaN POLYGON ((2 1, 2 0, 0 0, 0 2, 1 2, 1 1, 2 1))\n1 NaN 1 POLYGON ((2 1, 2 2, 3 2, 3 1, 2 1))\n2 NaN 1 POLYGON ((2 2, 1 2, 1 3, 2 3, 2 2))\n3 2 NaN POLYGON ((3 2, 3 3, 4 3, 4 2, 3 2))\n4 2 NaN POLYGON ((3 3, 2 3, 2 4, 3 4, 3 3))\n5 NaN 2 POLYGON ((4 3, 4 4, 3 4, 3 5, 5 5, 5 3, 4 3))"
},
"metadata": {},
"execution_count": 13
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "ax = gpd.overlay(df1, df2, how='symmetric_difference').plot()\nax.set(xlim=(0,5), ylim=(0,5))",
"execution_count": 14,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "[(0, 5), (0, 5)]"
},
"metadata": {},
"execution_count": 14
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": "<matplotlib.figure.Figure at 0xa0019e8>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "gpd.overlay(df1, df2, how='identity')",
"execution_count": 15,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": "<div>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>col1</th>\n <th>col2</th>\n <th>geometry</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>1</td>\n <td>NaN</td>\n <td>POLYGON ((2 1, 2 0, 0 0, 0 2, 1 2, 1 1, 2 1))</td>\n </tr>\n <tr>\n <th>1</th>\n <td>1</td>\n <td>1</td>\n <td>POLYGON ((2 1, 1 1, 1 2, 2 2, 2 1))</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2</td>\n <td>NaN</td>\n <td>POLYGON ((3 2, 3 3, 4 3, 4 2, 3 2))</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2</td>\n <td>1</td>\n <td>POLYGON ((3 3, 3 2, 2 2, 2 3, 3 3))</td>\n </tr>\n <tr>\n <th>4</th>\n <td>2</td>\n <td>NaN</td>\n <td>POLYGON ((3 3, 2 3, 2 4, 3 4, 3 3))</td>\n </tr>\n <tr>\n <th>5</th>\n <td>2</td>\n <td>2</td>\n <td>POLYGON ((3 4, 4 4, 4 3, 3 3, 3 4))</td>\n </tr>\n </tbody>\n</table>\n</div>",
"text/plain": " col1 col2 geometry\n0 1 NaN POLYGON ((2 1, 2 0, 0 0, 0 2, 1 2, 1 1, 2 1))\n1 1 1 POLYGON ((2 1, 1 1, 1 2, 2 2, 2 1))\n2 2 NaN POLYGON ((3 2, 3 3, 4 3, 4 2, 3 2))\n3 2 1 POLYGON ((3 3, 3 2, 2 2, 2 3, 3 3))\n4 2 NaN POLYGON ((3 3, 2 3, 2 4, 3 4, 3 3))\n5 2 2 POLYGON ((3 4, 4 4, 4 3, 3 3, 3 4))"
},
"metadata": {},
"execution_count": 15
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": false
},
"cell_type": "code",
"source": "ax = gpd.overlay(df1, df2, how='identity').plot()\ndf1.plot(ax=ax, facecolor='none')\ndf2.plot(ax=ax, facecolor='none')\nax.set(xlim=(0,5), ylim=(0,5))",
"execution_count": 16,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": "[(0, 5), (0, 5)]"
},
"metadata": {},
"execution_count": 16
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": "<matplotlib.figure.Figure at 0xa0ff5f8>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "geo",
"display_name": "Python 3 (geo)",
"language": "python"
},
"language_info": {
"mimetype": "text/x-python",
"nbconvert_exporter": "python",
"name": "python",
"pygments_lexer": "ipython3",
"version": "3.4.4",
"file_extension": ".py",
"codemirror_mode": {
"version": 3,
"name": "ipython"
}
},
"widgets": {
"version": "1.1.2",
"state": {}
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment