Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save jorisvandenbossche/a84f1035b7b755ee1fb5ca1fe5a33d31 to your computer and use it in GitHub Desktop.

Select an option

Save jorisvandenbossche/a84f1035b7b755ee1fb5ca1fe5a33d31 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"https://gist.github.com/nkorinek/92a9fbdc6a8a83909bb6bc51d1d94d70"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from shapely.geometry import Polygon, Point, LineString\n",
"import shapely\n",
"import geopandas as gpd\n",
"import geopandas.clip as gc\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# Making clipping polygon\n",
"poly_inters = Polygon([(0, 0), (0, 10), (10, 10), (10, 0), (0, 0)])\n",
"rectangle_gdf = gpd.GeoDataFrame([1], geometry=[poly_inters], crs={\"init\": \"epsg:4326\"})"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# Making points to buffer into polygons\n",
"pts = np.array([[2, 2], [3, 4], [9, 8], [-12, -15]])\n",
"points = gpd.GeoDataFrame([Point(xy) for xy in pts], columns=[\"geometry\"], crs={\"init\": \"epsg:4326\"},)\n",
"\n",
"# Buffering points\n",
"buffered_locs = points\n",
"buffered_locs[\"geometry\"] = buffered_locs.buffer(4)\n",
"buffered_locs[\"type\"] = \"plot\"\n",
"\n",
"# Creating a multipolygon\n",
"donut = gpd.overlay(buffered_locs, rectangle_gdf, how=\"symmetric_difference\")\n",
"multi_polygon = donut.unary_union\n",
"out_df = gpd.GeoDataFrame(geometry=gpd.GeoSeries(multi_polygon), crs={\"init\": \"epsg:4326\"})\n",
"multi_poly = out_df.rename(columns={0: \"geometry\"}).set_geometry(\"geometry\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>geometry</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>MULTIPOLYGON (((-8 -15, -8.019261093311211 -15...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" geometry\n",
"0 MULTIPOLYGON (((-8 -15, -8.019261093311211 -15..."
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"multi_poly"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f27b2050978>"
]
},
"execution_count": 5,
"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": [
"ax = multi_poly.plot()\n",
"rectangle_gdf.plot(alpha=.5, ax=ax, edgecolor='k', linewidth=2, color='C1')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Clipping"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"# Clipping two ways\n",
"clip_obj1 = gc._clip_line_poly(multi_poly, rectangle_gdf.unary_union)\n",
"clip_obj2 = gc.clip(multi_poly, rectangle_gdf.unary_union)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 MultiPolygon\n",
"dtype: object"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"multi_poly.geom_type"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 GeometryCollection\n",
"dtype: object"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clip_obj1.geom_type"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 MultiPolygon\n",
"0 MultiLineString\n",
"dtype: object"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clip_obj2.geom_type"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The first way returns a GeometryCollection:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>geometry</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>GEOMETRYCOLLECTION (LINESTRING (0 6.6391256284...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" geometry\n",
"0 GEOMETRYCOLLECTION (LINESTRING (0 6.6391256284..."
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clip_obj1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"however, plotting with geopandas does not work .."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f27a8edba20>"
]
},
"execution_count": 13,
"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": [
"clip_obj1.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"But it does actually contain objects:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100.0\" height=\"100.0\" viewBox=\"-0.4 -0.4 10.8 10.8\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,10.0)\"><g><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"0.0,6.639125628455881 0.0,5.459108512695298\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"0.0,5.459108512695298 0.0,1.3608743715441185\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"0.0,1.3608743715441185 0.0,0.0\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"0.0,0.0 5.459108512695298,0.0\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"10.0,4.131875511680132 10.0,10.0\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"10.0,10.0 5.540891487304703,10.0\" opacity=\"0.8\" /><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"0.21600000000000003\" opacity=\"0.6\" d=\"M 0.0,6.639125628455881 L 0.0,10.0 L 5.540891487304703,10.0 L 5.4723149426065785,9.885586947303988 L 5.304481869954852,9.530733729460357 L 5.172238657071164,9.161138709017846 L 5.076858878387077,8.78036128806451 L 5.019261093311212,8.392068561318238 L 5.0,7.999999999999996 L 5.019261093311213,7.607931438681753 L 5.045370766136422,7.431914322009649 L 4.885586947303975,7.527685057393429 L 4.530733729460343,7.695518130045153 L 4.161138709017835,7.82776134292884 L 3.7803612880644994,7.923141121612924 L 3.3920685613182298,7.980738906688789 L 2.9999999999999885,8.0 L 2.6079314386817476,7.980738906688787 L 2.2196387119354783,7.92314112161292 L 1.8388612909821436,7.8277613429288335 L 1.4692662705396353,7.695518130045144 L 1.1144130526960052,7.527685057393418 L 0.7777190679215882,7.32587844921018 L 0.4624268633454163,7.092041813450947 L 0.17157287525380926,6.82842712474619 L 0.0,6.639125628455881 z\" /><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"0.21600000000000003\" opacity=\"0.6\" d=\"M 10.0,4.131875511680132 L 10.0,0.0 L 5.459108512695298,0.0 L 5.5276850573934215,0.11441305269601121 L 5.695518130045148,0.4692662705396424 L 5.827761342928836,0.8388612909821516 L 5.923141121612922,1.2196387119354877 L 5.933150651538313,1.2871174815280866 L 6.092041813450949,1.4624268633454203 L 6.325878449210182,1.777719067921593 L 6.5276850573934215,2.114413052696011 L 6.695518130045148,2.4692662705396424 L 6.827761342928836,2.838861290982152 L 6.923141121612922,3.2196387119354877 L 6.980738906688788,3.607931438681758 L 7.0,4.0 L 7.0,4.000000000000033 L 6.980738906688785,4.392068561318274 L 6.954629233863579,4.568085677990351 L 7.114413052696017,4.472314942606576 L 7.469266270539649,4.30448186995485 L 7.838861290982158,4.172238657071162 L 8.219638711935493,4.0768588783870765 L 8.607931438681764,4.019261093311211 L 9.000000000000007,4.0 L 9.392068561318249,4.019261093311213 L 9.780361288064519,4.076858878387079 L 10.0,4.131875511680132 z\" /></g></g></svg>"
],
"text/plain": [
"<shapely.geometry.collection.GeometryCollection at 0x7f27b0571588>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"coll = clip_obj1.iloc[0, 0]\n",
"coll"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The second way returns two rows:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>geometry</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>MULTIPOLYGON (((10 4.131875511680132, 10 0, 5....</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>MULTILINESTRING ((0 0, 5.459108512695298 0), (...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" geometry\n",
"0 MULTIPOLYGON (((10 4.131875511680132, 10 0, 5....\n",
"0 MULTILINESTRING ((0 0, 5.459108512695298 0), (..."
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"clip_obj2"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f27a96a9860>"
]
},
"execution_count": 18,
"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": [
"clip_obj2.plot()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100.0\" height=\"100.0\" viewBox=\"-0.4 -0.4 10.8 10.8\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,10.0)\"><g><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"0.21600000000000003\" opacity=\"0.6\" d=\"M 10.0,4.131875511680132 L 10.0,0.0 L 5.459108512695298,0.0 L 5.5276850573934215,0.11441305269601121 L 5.695518130045148,0.4692662705396424 L 5.827761342928836,0.8388612909821516 L 5.923141121612922,1.2196387119354877 L 5.933150651538313,1.2871174815280866 L 6.092041813450949,1.4624268633454203 L 6.325878449210182,1.777719067921593 L 6.5276850573934215,2.114413052696011 L 6.695518130045148,2.4692662705396424 L 6.827761342928836,2.838861290982152 L 6.923141121612922,3.2196387119354877 L 6.980738906688788,3.607931438681758 L 7.0,4.0 L 7.0,4.000000000000033 L 6.980738906688785,4.392068561318274 L 6.954629233863579,4.568085677990351 L 7.114413052696017,4.472314942606576 L 7.469266270539649,4.30448186995485 L 7.838861290982158,4.172238657071162 L 8.219638711935493,4.0768588783870765 L 8.607931438681764,4.019261093311211 L 9.000000000000007,4.0 L 9.392068561318249,4.019261093311213 L 9.780361288064519,4.076858878387079 L 10.0,4.131875511680132 z\" /><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"0.21600000000000003\" opacity=\"0.6\" d=\"M 0.0,6.639125628455881 L 0.0,10.0 L 5.540891487304703,10.0 L 5.4723149426065785,9.885586947303988 L 5.304481869954852,9.530733729460357 L 5.172238657071164,9.161138709017846 L 5.076858878387077,8.78036128806451 L 5.019261093311212,8.392068561318238 L 5.0,7.999999999999996 L 5.019261093311213,7.607931438681753 L 5.045370766136422,7.431914322009649 L 4.885586947303975,7.527685057393429 L 4.530733729460343,7.695518130045153 L 4.161138709017835,7.82776134292884 L 3.7803612880644994,7.923141121612924 L 3.3920685613182298,7.980738906688789 L 2.9999999999999885,8.0 L 2.6079314386817476,7.980738906688787 L 2.2196387119354783,7.92314112161292 L 1.8388612909821436,7.8277613429288335 L 1.4692662705396353,7.695518130045144 L 1.1144130526960052,7.527685057393418 L 0.7777190679215882,7.32587844921018 L 0.4624268633454163,7.092041813450947 L 0.17157287525380926,6.82842712474619 L 0.0,6.639125628455881 z\" /></g></g></svg>"
],
"text/plain": [
"<shapely.geometry.multipolygon.MultiPolygon at 0x7f27b05def28>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"multipoly = clip_obj2.iloc[0,0]\n",
"multipoly"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100.0\" height=\"100.0\" viewBox=\"-0.4 -0.4 10.8 10.8\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,10.0)\"><g><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"0.0,0.0 5.459108512695298,0.0\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"0.0,1.3608743715441185 0.0,0.0\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"10.0,4.131875511680132 10.0,10.0\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"10.0,10.0 5.540891487304703,10.0\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"0.0,5.459108512695298 0.0,1.3608743715441185\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"0.0,6.639125628455881 0.0,5.459108512695298\" opacity=\"0.8\" /></g></g></svg>"
],
"text/plain": [
"<shapely.geometry.multilinestring.MultiLineString at 0x7f27b05de400>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"multiline = clip_obj2.iloc[1,0]\n",
"multiline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"But, we can see that the GeometryCollection actually contains the same multipolygon/linestring:"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'GEOMETRYCOLLECTION (LINESTRING (0 6.639125628455881, 0 5.459108512695298), LINESTRING (0 5.459108512695298, 0 1.360874371544118), LINESTRING (0 1.360874371544118, 0 0), LINESTRING (0 0, 5.459108512695298 0), LINESTRING (10 4.131875511680132, 10 10), LINESTRING (10 10, 5.540891487304703 10), POLYGON ((0 6.639125628455881, 0 10, 5.540891487304703 10, 5.472314942606578 9.885586947303988, 5.304481869954852 9.530733729460357, 5.172238657071164 9.161138709017846, 5.076858878387077 8.78036128806451, 5.019261093311212 8.392068561318238, 5 7.999999999999996, 5.019261093311213 7.607931438681753, 5.045370766136422 7.431914322009649, 4.885586947303975 7.527685057393429, 4.530733729460343 7.695518130045153, 4.161138709017835 7.82776134292884, 3.780361288064499 7.923141121612924, 3.39206856131823 7.980738906688789, 2.999999999999988 8, 2.607931438681748 7.980738906688787, 2.219638711935478 7.92314112161292, 1.838861290982144 7.827761342928834, 1.469266270539635 7.695518130045144, 1.114413052696005 7.527685057393418, 0.7777190679215882 7.32587844921018, 0.4624268633454163 7.092041813450947, 0.1715728752538093 6.82842712474619, 0 6.639125628455881)), POLYGON ((10 4.131875511680132, 10 0, 5.459108512695298 0, 5.527685057393422 0.1144130526960112, 5.695518130045148 0.4692662705396424, 5.827761342928836 0.8388612909821516, 5.923141121612922 1.219638711935488, 5.933150651538313 1.287117481528087, 6.092041813450949 1.46242686334542, 6.325878449210182 1.777719067921593, 6.527685057393422 2.114413052696011, 6.695518130045148 2.469266270539642, 6.827761342928836 2.838861290982152, 6.923141121612922 3.219638711935488, 6.980738906688788 3.607931438681758, 7 4, 7 4.000000000000033, 6.980738906688785 4.392068561318274, 6.954629233863579 4.568085677990351, 7.114413052696017 4.472314942606576, 7.469266270539649 4.30448186995485, 7.838861290982158 4.172238657071162, 8.219638711935493 4.076858878387077, 8.607931438681764 4.019261093311211, 9.000000000000007 4, 9.392068561318249 4.019261093311213, 9.780361288064519 4.076858878387079, 10 4.131875511680132)))'"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"coll.wkt"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<shapely.geometry.linestring.LineString at 0x7f27a9253080>,\n",
" <shapely.geometry.linestring.LineString at 0x7f27a9253978>,\n",
" <shapely.geometry.linestring.LineString at 0x7f27a9253588>,\n",
" <shapely.geometry.linestring.LineString at 0x7f27a9253f98>,\n",
" <shapely.geometry.linestring.LineString at 0x7f27b1ed62b0>,\n",
" <shapely.geometry.linestring.LineString at 0x7f27a9372be0>,\n",
" <shapely.geometry.polygon.Polygon at 0x7f27b029ea20>,\n",
" <shapely.geometry.polygon.Polygon at 0x7f27b029eda0>]"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"list(coll)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"from shapely.geometry import MultiPolygon, MultiLineString"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100.0\" height=\"100.0\" viewBox=\"-0.4 -0.4 10.8 10.8\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,10.0)\"><g><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"0.0,6.639125628455881 0.0,5.459108512695298\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"0.0,5.459108512695298 0.0,1.3608743715441185\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"0.0,1.3608743715441185 0.0,0.0\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"0.0,0.0 5.459108512695298,0.0\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"10.0,4.131875511680132 10.0,10.0\" opacity=\"0.8\" /><polyline fill=\"none\" stroke=\"#66cc99\" stroke-width=\"0.21600000000000003\" points=\"10.0,10.0 5.540891487304703,10.0\" opacity=\"0.8\" /></g></g></svg>"
],
"text/plain": [
"<shapely.geometry.multilinestring.MultiLineString at 0x7f27b033fc18>"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"MultiLineString(list(coll)[:6])"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"MultiLineString(list(coll)[:6]).equals(multiline)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100.0\" height=\"100.0\" viewBox=\"-0.4 -0.4 10.8 10.8\" preserveAspectRatio=\"xMinYMin meet\"><g transform=\"matrix(1,0,0,-1,0,10.0)\"><g><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"0.21600000000000003\" opacity=\"0.6\" d=\"M 0.0,6.639125628455881 L 0.0,10.0 L 5.540891487304703,10.0 L 5.4723149426065785,9.885586947303988 L 5.304481869954852,9.530733729460357 L 5.172238657071164,9.161138709017846 L 5.076858878387077,8.78036128806451 L 5.019261093311212,8.392068561318238 L 5.0,7.999999999999996 L 5.019261093311213,7.607931438681753 L 5.045370766136422,7.431914322009649 L 4.885586947303975,7.527685057393429 L 4.530733729460343,7.695518130045153 L 4.161138709017835,7.82776134292884 L 3.7803612880644994,7.923141121612924 L 3.3920685613182298,7.980738906688789 L 2.9999999999999885,8.0 L 2.6079314386817476,7.980738906688787 L 2.2196387119354783,7.92314112161292 L 1.8388612909821436,7.8277613429288335 L 1.4692662705396353,7.695518130045144 L 1.1144130526960052,7.527685057393418 L 0.7777190679215882,7.32587844921018 L 0.4624268633454163,7.092041813450947 L 0.17157287525380926,6.82842712474619 L 0.0,6.639125628455881 z\" /><path fill-rule=\"evenodd\" fill=\"#66cc99\" stroke=\"#555555\" stroke-width=\"0.21600000000000003\" opacity=\"0.6\" d=\"M 10.0,4.131875511680132 L 10.0,0.0 L 5.459108512695298,0.0 L 5.5276850573934215,0.11441305269601121 L 5.695518130045148,0.4692662705396424 L 5.827761342928836,0.8388612909821516 L 5.923141121612922,1.2196387119354877 L 5.933150651538313,1.2871174815280866 L 6.092041813450949,1.4624268633454203 L 6.325878449210182,1.777719067921593 L 6.5276850573934215,2.114413052696011 L 6.695518130045148,2.4692662705396424 L 6.827761342928836,2.838861290982152 L 6.923141121612922,3.2196387119354877 L 6.980738906688788,3.607931438681758 L 7.0,4.0 L 7.0,4.000000000000033 L 6.980738906688785,4.392068561318274 L 6.954629233863579,4.568085677990351 L 7.114413052696017,4.472314942606576 L 7.469266270539649,4.30448186995485 L 7.838861290982158,4.172238657071162 L 8.219638711935493,4.0768588783870765 L 8.607931438681764,4.019261093311211 L 9.000000000000007,4.0 L 9.392068561318249,4.019261093311213 L 9.780361288064519,4.076858878387079 L 10.0,4.131875511680132 z\" /></g></g></svg>"
],
"text/plain": [
"<shapely.geometry.multipolygon.MultiPolygon at 0x7f27a9144240>"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"MultiPolygon(list(coll)[6:])"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"MultiPolygon(list(coll)[6:]).equals(multipoly)"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"# The types show why the MultiPolygon has to be exploded. If the polygon is unexploded \n",
"# and has slivers, the slivers throw the GeoPandas intersection function off and it \n",
"# returns an empty GeometryCollection instead of a properly clipped MultiPolygon. The \n",
"# MultiPolygon and MultiLine includes the sliver geometries alongside everything else \n",
"# that should be included in the clip, where as the traditional clip method fails\n",
"# when presented with this problem. Hope this clears some confusion up!"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python (dev)",
"language": "python",
"name": "dev"
},
"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