Skip to content

Instantly share code, notes, and snippets.

@kissmygritts
Last active December 8, 2022 16:52
Show Gist options
  • Save kissmygritts/1051dc7c97cafd1b1257433227f893e0 to your computer and use it in GitHub Desktop.
Save kissmygritts/1051dc7c97cafd1b1257433227f893e0 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "1eee3a52-b47e-4e68-97e9-d992aefa7368",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import geopandas as gpd\n",
"from shapely.geometry import Polygon, LineString, MultiLineString, MultiPolygon\n",
"import shapely.ops as ops\n",
"import shapely.validation as validation\n",
"\n",
"from utils.gdf_helpers import polygon_line_intersections, has_polygon_line_intersections, intersect_polygons_with_lines\n",
"plot_colors=[\"#1F77B4\", \"#FFA500\", \"purple\", \"green\", \"gray\", \"red\", \"wheat\", \"#1F77B4\", \"#FFA500\", \"purple\", \"green\", \"gray\", \"red\", \"wheat\"]\n",
"colors=[\"blue\", \"orange\", \"purple\", \"green\"]"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "a43a434e-fc94-46eb-8853-faf80372fadc",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot: >"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"polygon_geoms = [\n",
" Polygon.from_bounds(4, 4, 5, 5),\n",
" Polygon.from_bounds(0, 0, 2, 4),\n",
"]\n",
"polygons = gpd.GeoDataFrame(\n",
" data={\n",
" \"id\": range(len(polygon_geoms)),\n",
" \"color\": colors[:len(polygon_geoms)] \n",
" },\n",
" geometry=polygon_geoms\n",
")\n",
"\n",
"line_geoms = [\n",
" LineString([(1, 1), (3, 1)]),\n",
" LineString([(0, 2), (3, 2)]),\n",
" LineString([(-1, 3), (3, 3)]),\n",
"]\n",
"lines = gpd.GeoDataFrame(\n",
" data={\"id\": range(len(line_geoms))},\n",
" geometry=line_geoms\n",
")\n",
"\n",
"base = polygons.plot()\n",
"lines.plot(ax=base, color=\"orange\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "42d0f4a7-4b23-4301-bbe6-73c1b6004614",
"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>index</th>\n",
" <th>id</th>\n",
" <th>color</th>\n",
" <th>geometry</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>blue</td>\n",
" <td>POLYGON ((4.00000 4.00000, 4.00000 5.00000, 5....</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>orange</td>\n",
" <td>POLYGON ((0.00000 0.00000, 0.00000 2.00000, 2....</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>orange</td>\n",
" <td>POLYGON ((0.00000 2.00000, 0.00000 3.00000, 2....</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>orange</td>\n",
" <td>POLYGON ((0.00000 3.00000, 0.00000 4.00000, 2....</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" index id color geometry\n",
"0 0 0 blue POLYGON ((4.00000 4.00000, 4.00000 5.00000, 5....\n",
"1 1 1 orange POLYGON ((0.00000 0.00000, 0.00000 2.00000, 2....\n",
"2 1 1 orange POLYGON ((0.00000 2.00000, 0.00000 3.00000, 2....\n",
"3 1 1 orange POLYGON ((0.00000 3.00000, 0.00000 4.00000, 2...."
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZgAAAGdCAYAAAAv9mXmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAT2klEQVR4nO3dfWid9f3w8U9s11RqEqy2tbmbStBtVvvAbJ1LmZuzXSFI78rugQ6Rsgf4CbG0BNl8+MN2KPH+Z2zQWawON+EnKcNVhc2uGa4PIh1tbe+VUqRioR215lfRnDTgKdbr/uO+Tc368PMk+eT0pK8XHPC6uM75frio5811TnKlriiKIgBglF1R7QEAGJ8EBoAUAgNACoEBIIXAAJBCYABIITAApBAYAFJMHOsFP/vsszh+/Hg0NDREXV3dWC8PwAgURRH9/f3R3NwcV1xx8WuUMQ/M8ePHo6WlZayXBWAUHTt2LGbNmnXRY8Y8MA0NDRHx/4ZrbGwc6+UBGIFSqRQtLS2D7+UXM+aB+fxjscbGRoEBqFFf5isOX/IDkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIIXAAJCiosCsXbs26urqhjyuu+66rNkAqGEV3yrmlltuib/97W+D2xMmTBjVgQAYHyoOzMSJE121APDfqvg7mMOHD0dzc3O0trbGfffdF++9995Fjy+Xy1EqlYY8ABj/KgrM7bffHi+++GL89a9/jeeeey5OnDgRixcvjg8//PCCz+nq6oqmpqbBh78FA3B5qCuKohjukwcGBuKGG26In//859HZ2XneY8rlcpTL5cHtz/+WQF9fn9v1A2Nmdfe+eLf3VLXHqKobp18Vv7nvGyN6jVKpFE1NTV/qPXxEfw9mypQpMW/evDh8+PAFj6mvr4/6+vqRLAMwYu/2noqDx31EP5ZG9Hsw5XI5Dh06FDNnzhyteQAYJyoKzMMPPxzbt2+PI0eOxD/+8Y/44Q9/GKVSKVauXJk1HwA1qqKPyP71r3/Fj370ozh58mRMmzYtvvWtb8WuXbvi+uuvz5oPgBpVUWC6u7uz5gBgnHEvMgBSCAwAKQQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIIXAAJBCYABIITAApBAYAFIIDAApBAaAFAIDQAqBASCFwACQQmAASCEwAKQQGABSCAwAKQQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIIXAAJBCYABIITAApBAYAFIIDAApBAaAFAIDQAqBASCFwACQQmAASCEwAKQQGABSCAwAKQQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUowoMF1dXVFXVxdr1qwZpXEAGC+GHZjdu3fHxo0bY/78+aM5DwDjxLACc+rUqbj//vvjueeei6uvvnq0ZwJgHJg4nCd1dHTE3XffHUuXLo0nn3zyoseWy+Uol8uD26VSaThLAozI3P/RVO0Rqu7G6VeN6XoVB6a7uzvefvvt2L1795c6vqurK9atW1fxYACj6X//Lx/nj7WKAnPs2LFYvXp1bN26NSZPnvylnvPoo49GZ2fn4HapVIqWlpbKpjyP+/90fxz6r0Mjfh3GjznT5sR//uA/qz0G8P9VFJi9e/dGb29vLFy4cHDfmTNnYseOHbF+/fool8sxYcKEIc+pr6+P+vr60Zn2Cw7916HYd2LfqL8uAKOjosAsWbIkDhw4MGTfj3/847jpppviF7/4xTlxAeDyVVFgGhoaYu7cuUP2TZkyJa655ppz9gNwefOb/ACkGNaPKX/Rtm3bRmEMAMYbVzAApBAYAFIIDAApBAaAFAIDQAqBASCFwACQQmAASCEwAKQQGABSCAwAKQQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIIXAAJBCYABIITAApBAYAFIIDAApBAaAFAIDQAqBASCFwACQQmAASCEwAKQQGABSCAwAKQQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIIXAAJBCYABIITAApBAYAFIIDAApBAaAFAIDQAqBASCFwACQQmAASFFRYDZs2BDz58+PxsbGaGxsjLa2tnj99dezZgOghlUUmFmzZsXTTz8de/bsiT179sRdd90VK1asiIMHD2bNB0CNmljJwcuXLx+y/dRTT8WGDRti165dccstt4zqYADUtooC80VnzpyJP/7xjzEwMBBtbW0XPK5cLke5XB7cLpVKw11yiFtn3joqr8P4MWfanGqPAHxBxYE5cOBAtLW1xSeffBJXXXVVbN68OW6++eYLHt/V1RXr1q0b0ZDn8/z/fH7UXxOA0VNXFEVRyRNOnz4dR48ejY8//jhefvnleP7552P79u0XjMz5rmBaWlqir68vGhsbhz34G4+/ER8d+WjYz2f8ubr16rjrqbuqPQaMa6VSKZqamr7Ue3jFgfl3S5cujRtuuCGeffbZUR/uYp699dk4se/EsJ/P+HPdN66L/3j7P6o9BoxrlbyHj/j3YIqiGHKFAgARFX4H89hjj0V7e3u0tLREf39/dHd3x7Zt22LLli1Z8wFQoyoKzAcffBAPPPBAvP/++9HU1BTz58+PLVu2xPe///2s+QCoURUF5ne/+13WHACMM+5FBkAKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIIXAAJBCYABIITAApBAYAFIIDAApBAaAFAIDQAqBASCFwACQQmAASCEwAKQQGABSCAwAKQQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIIXAAJBCYABIITAApBAYAFIIDAApBAaAFAIDQAqBASCFwACQQmAASCEwAKQQGABSCAwAKQQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUFQWmq6srbrvttmhoaIjp06fHPffcE++8807WbADUsIoCs3379ujo6Ihdu3ZFT09PfPrpp7Fs2bIYGBjImg+AGjWxkoO3bNkyZPuFF16I6dOnx969e+M73/nOqA4GQG2rKDD/rq+vLyIipk6desFjyuVylMvlwe1SqTSSJQfNvHXmqLwO48e0OdOqPQLwBXVFURTDeWJRFLFixYr46KOPYufOnRc8bu3atbFu3bpz9vf19UVjY+NwlgagSkqlUjQ1NX2p9/BhB6ajoyP+/Oc/x5tvvhmzZs264HHnu4JpaWkZeWD+z+MRp44M//mMP1e1Rix4qtpTwLhWSWCG9RHZqlWr4rXXXosdO3ZcNC4REfX19VFfXz+cZS7u+OsRH+0b/deldl39DYGBS0hFgSmKIlatWhWbN2+Obdu2RWtra9ZcANS4igLT0dERL730Urz66qvR0NAQJ06ciIiIpqamuPLKK1MGBKA2VfR7MBs2bIi+vr648847Y+bMmYOPTZs2Zc0HQI2q+CMyAPgy3IsMgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIIXAAJBCYABIITAApBAYAFIIDAApBAaAFAIDQAqBASCFwACQQmAASCEwAKQQGABSCAwAKQQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIIXAAJBCYABIITAApBAYAFIIDAApBAaAFAIDQAqBASCFwACQQmAASCEwAKQQGABSCAwAKQQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkqDsyOHTti+fLl0dzcHHV1dfHKK68kjAVAras4MAMDA7FgwYJYv359xjwAjBMTK31Ce3t7tLe3Z8wCwDhScWAqVS6Xo1wuD26XSqXsJQG4BKR/yd/V1RVNTU2Dj5aWluwlAbgEpAfm0Ucfjb6+vsHHsWPHspcE4BKQ/hFZfX191NfXZy8DwCXG78EAkKLiK5hTp07Fu+++O7h95MiR2L9/f0ydOjVmz549qsMBULsqDsyePXvie9/73uB2Z2dnRESsXLkyfv/734/aYADUtooDc+edd0ZRFBmzADCO+A4GgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIIXAAJBCYABIITAApBAYAFIIDAApBAaAFAIDQAqBASCFwACQQmAASCEwAKQQGABSCAwAKQQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIIXAAJBCYABIITAApBAYAFIIDAApBAaAFAIDQAqBASCFwACQQmAASCEwAKQQGABSCAwAKQQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACmGFZhnnnkmWltbY/LkybFw4cLYuXPnaM8FQI2rODCbNm2KNWvWxOOPPx779u2LO+64I9rb2+Po0aMZ8wFQoyoOzK9+9av46U9/Gj/72c9izpw58etf/zpaWlpiw4YNGfMBUKMmVnLw6dOnY+/evfHII48M2b9s2bJ46623zvuccrkc5XJ5cLtUKg1jzPOYeuvovA7jR9Ocak8AfEFFgTl58mScOXMmZsyYMWT/jBkz4sSJE+d9TldXV6xbt274E17I7c+P/msCMGqG9SV/XV3dkO2iKM7Z97lHH300+vr6Bh/Hjh0bzpIA1JiKrmCuvfbamDBhwjlXK729vedc1Xyuvr4+6uvrhz8hADWpoiuYSZMmxcKFC6Onp2fI/p6enli8ePGoDgZAbavoCiYiorOzMx544IFYtGhRtLW1xcaNG+Po0aPx4IMPZswHQI2qODD33ntvfPjhh/HLX/4y3n///Zg7d2785S9/ieuvvz5jPgBqVF1RFMVYLlgqlaKpqSn6+vqisbFxLJcGYIQqeQ93LzIAUggMACkEBoAUAgNACoEBIIXAAJBCYABIITAApBAYAFJUfKuYkfr8xgGj9ofHABgzn793f5mbwIx5YPr7+yMioqWlZayXBmCU9Pf3R1NT00WPGfN7kX322Wdx/PjxaGhouOAfKbuYUqkULS0tcezYMfcyC+fji5yLs5yLs5yLs0bjXBRFEf39/dHc3BxXXHHxb1nG/ArmiiuuiFmzZo34dRobGy/7fyxf5Hyc5Vyc5Vyc5VycNdJz8d9duXzOl/wApBAYAFLUXGDq6+vjiSeeiPr6+mqPcklwPs5yLs5yLs5yLs4a63Mx5l/yA3B5qLkrGABqg8AAkEJgAEghMACkqLnAPPPMM9Ha2hqTJ0+OhQsXxs6dO6s9UlXs2LEjli9fHs3NzVFXVxevvPJKtUeqiq6urrjtttuioaEhpk+fHvfcc0+888471R6rajZs2BDz588f/EW6tra2eP3116s9VtV1dXVFXV1drFmzptqjVMXatWujrq5uyOO6665LX7emArNp06ZYs2ZNPP7447Fv37644447or29PY4ePVrt0cbcwMBALFiwINavX1/tUapq+/bt0dHREbt27Yqenp749NNPY9myZTEwMFDt0api1qxZ8fTTT8eePXtiz549cdddd8WKFSvi4MGD1R6tanbv3h0bN26M+fPnV3uUqrrlllvi/fffH3wcOHAgf9Gihnzzm98sHnzwwSH7brrppuKRRx6p0kSXhogoNm/eXO0xLgm9vb1FRBTbt2+v9iiXjKuvvrp4/vnnqz1GVfT39xdf/epXi56enuK73/1usXr16mqPVBVPPPFEsWDBgjFft2auYE6fPh179+6NZcuWDdm/bNmyeOutt6o0FZeavr6+iIiYOnVqlSepvjNnzkR3d3cMDAxEW1tbtcepio6Ojrj77rtj6dKl1R6l6g4fPhzNzc3R2toa9913X7z33nvpa475zS6H6+TJk3HmzJmYMWPGkP0zZsyIEydOVGkqLiVFUURnZ2d8+9vfjrlz51Z7nKo5cOBAtLW1xSeffBJXXXVVbN68OW6++eZqjzXmuru74+23347du3dXe5Squ/322+PFF1+Mr33ta/HBBx/Ek08+GYsXL46DBw/GNddck7ZuzQTmc/9+i/+iKIZ123/Gn4ceeij++c9/xptvvlntUarq61//euzfvz8+/vjjePnll2PlypWxffv2yyoyx44di9WrV8fWrVtj8uTJ1R6n6trb2wf/e968edHW1hY33HBD/OEPf4jOzs60dWsmMNdee21MmDDhnKuV3t7ec65quPysWrUqXnvttdixY8eo/DmIWjZp0qS48cYbIyJi0aJFsXv37vjNb34Tzz77bJUnGzt79+6N3t7eWLhw4eC+M2fOxI4dO2L9+vVRLpdjwoQJVZywuqZMmRLz5s2Lw4cPp65TM9/BTJo0KRYuXBg9PT1D9vf09MTixYurNBXVVhRFPPTQQ/GnP/0p3njjjWhtba32SJecoiiiXC5Xe4wxtWTJkjhw4EDs379/8LFo0aK4//77Y//+/Zd1XCIiyuVyHDp0KGbOnJm6Ts1cwUREdHZ2xgMPPBCLFi2Ktra22LhxYxw9ejQefPDBao825k6dOhXvvvvu4PaRI0di//79MXXq1Jg9e3YVJxtbHR0d8dJLL8Wrr74aDQ0Ng1e4TU1NceWVV1Z5urH32GOPRXt7e7S0tER/f390d3fHtm3bYsuWLdUebUw1NDSc8z3clClT4pprrrksv597+OGHY/ny5TF79uzo7e2NJ598MkqlUqxcuTJ34TH/ubUR+u1vf1tcf/31xaRJk4pbb731sv1x1L///e9FRJzzWLlyZbVHG1PnOwcRUbzwwgvVHq0qfvKTnwz+/zFt2rRiyZIlxdatW6s91iXhcv4x5XvvvbeYOXNm8ZWvfKVobm4ufvCDHxQHDx5MX9ft+gFIUTPfwQBQWwQGgBQCA0AKgQEghcAAkEJgAEghMACkEBgAUggMACkEBoAUAgNACoEBIMX/BWQBonbiojK2AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = intersect_polygons_with_lines(polygons, lines)\n",
"x.plot(edgecolor=\"white\", facecolor=plot_colors[:len(x)])\n",
"x.color.tolist() == ['blue', 'orange', 'orange', 'orange']\n",
"x"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "ba57fdba-ee6f-493e-b2fa-d14d75d39cea",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot: >"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAF2CAYAAAC8gZhoAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAf+klEQVR4nO3df2xV9f3H8deVwi2D3otU2t6mRUpQ0EKRtU5qxK9aLGlJA1v3w81Ih5tJXfll04QV/1CipiTjDyQwarWg2ChuuaJdioQuo61uZWmxVcIKwVhpV1s6sngvNNstref7h+HGO1q4tz/43Ht9PpLzxzk9p+d9r5r79Nxzb22WZVkCAAAw5BbTAwAAgO82YgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGxZgeIBhff/21vvzyS8XFxclms5keBwAABMGyLF26dEnJycm65ZbRr39ERIx8+eWXSk1NNT0GAAAYg+7ubqWkpIz684iIkbi4OEnfPBiHw2F4GgAAEAyv16vU1FT/6/hoIiJGrr4143A4iBEAACLMjW6x4AZWAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo0KKkeeff142my1gSUpKuu4xjY2NyszMVGxsrObPn6/KyspxDQwAAKJLyN/Amp6erj//+c/+9SlTpoy6b2dnp/Lz8/XUU0+ppqZGf/3rX/Wb3/xGc+bMUWFh4dgmBgAAUSXkGImJibnh1ZCrKisrNXfuXO3atUuSdNddd6m1tVU7d+4kRgAAgKQx3DNy7tw5JScnKy0tTY899pg+//zzUfdtbm5Wbm5uwLZVq1aptbVVV65cGfU4n88nr9cbsAAAgOgU0pWR++67TwcPHtSdd96pCxcu6MUXX9T999+v06dPKz4+/pr9+/r6lJiYGLAtMTFRQ0NDunjxolwu14jnqaio0Pbt20MZDQCAAPN+W2d6hIjxxY7VRs8f0pWRvLw8FRYWasmSJVq5cqXq6r75B/3GG2+Mesz//qU+y7JG3P5t5eXl8ng8/qW7uzuUMQEAQAQJ+Z6Rb5sxY4aWLFmic+fOjfjzpKQk9fX1BWzr7+9XTEzMiFdSrrLb7bLb7eMZDQAARIhxfc+Iz+dTR0fHqG+3ZGdnq76+PmDbsWPHlJWVpalTp47n1AAAIEqEFCNlZWVqbGxUZ2en/v73v+vHP/6xvF6vioqKJH3z9sq6dev8+xcXF+v8+fMqLS1VR0eH9u/fr+rqapWVlU3sowAAABErpLdp/vnPf+rnP/+5Ll68qDlz5mj58uU6ceKEbr/9dklSb2+vurq6/PunpaXpyJEjeuaZZ7R3714lJydr9+7dfKwXAAD42ayrd5SGMa/XK6fTKY/HI4fDYXocAEAE4NM0wZusT9ME+/rN36YBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMCoccVIRUWFbDabtmzZMuo+DQ0Nstls1yxnzpwZz6kBAECUiBnrgS0tLaqqqlJGRkZQ+589e1YOh8O/PmfOnLGeGgAARJExXRm5fPmyHn/8cb366qu69dZbgzomISFBSUlJ/mXKlCljOTUAAIgyY4qRkpISrV69WitXrgz6mGXLlsnlciknJ0fHjx+/7r4+n09erzdgAQAA0Snkt2kOHTqkjz/+WC0tLUHt73K5VFVVpczMTPl8Pr355pvKyclRQ0ODHnzwwRGPqaio0Pbt20MdDQAARKCQYqS7u1ubN2/WsWPHFBsbG9QxCxcu1MKFC/3r2dnZ6u7u1s6dO0eNkfLycpWWlvrXvV6vUlNTQxkVAABEiJDepjl58qT6+/uVmZmpmJgYxcTEqLGxUbt371ZMTIyGh4eD+j3Lly/XuXPnRv253W6Xw+EIWAAAQHQK6cpITk6OTp06FbBt/fr1WrRokbZu3Rr0TaltbW1yuVyhnBoAAESpkGIkLi5OixcvDtg2Y8YMxcfH+7eXl5erp6dHBw8elCTt2rVL8+bNU3p6ugYHB1VTUyO32y232z1BDwEAAESyMX/PyGh6e3vV1dXlXx8cHFRZWZl6eno0ffp0paenq66uTvn5+RN9agAAEIFslmVZpoe4Ea/XK6fTKY/Hw/0jAICgzPttnekRIsYXO1ZPyu8N9vWbv00DAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADBqXDFSUVEhm82mLVu2XHe/xsZGZWZmKjY2VvPnz1dlZeV4TgsAAKLImGOkpaVFVVVVysjIuO5+nZ2dys/P14oVK9TW1qZt27Zp06ZNcrvdYz01AACIImOKkcuXL+vxxx/Xq6++qltvvfW6+1ZWVmru3LnatWuX7rrrLv3617/Wk08+qZ07d45pYAAAEF3GFCMlJSVavXq1Vq5cecN9m5ublZubG7Bt1apVam1t1ZUrV0Y8xufzyev1BiwAACA6xYR6wKFDh/Txxx+rpaUlqP37+vqUmJgYsC0xMVFDQ0O6ePGiXC7XNcdUVFRo+/btoY4GAIDfFztWmx4BQQrpykh3d7c2b96smpoaxcbGBn2czWYLWLcsa8TtV5WXl8vj8fiX7u7uUMYEAAARJKQrIydPnlR/f78yMzP924aHh9XU1KQ9e/bI5/NpypQpAcckJSWpr68vYFt/f79iYmIUHx8/4nnsdrvsdnsoowEAgAgVUozk5OTo1KlTAdvWr1+vRYsWaevWrdeEiCRlZ2frT3/6U8C2Y8eOKSsrS1OnTh3DyAAAIJqEFCNxcXFavHhxwLYZM2YoPj7ev728vFw9PT06ePCgJKm4uFh79uxRaWmpnnrqKTU3N6u6ulpvv/32BD0EAAAQySb8G1h7e3vV1dXlX09LS9ORI0fU0NCge+65Ry+88IJ2796twsLCiT41AACIQDbr6t2kYczr9crpdMrj8cjhcJgeBwAABCHY12/+Ng0AADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEaFFCP79u1TRkaGHA6HHA6HsrOz9cEHH4y6f0NDg2w22zXLmTNnxj04AACIDjGh7JySkqIdO3ZowYIFkqQ33nhDa9asUVtbm9LT00c97uzZs3I4HP71OXPmjHFcAAAQbUKKkYKCgoD1l156Sfv27dOJEyeuGyMJCQmaNWvWmAYEAADRbcz3jAwPD+vQoUMaGBhQdnb2dfddtmyZXC6XcnJydPz48Rv+bp/PJ6/XG7AAAIDoFHKMnDp1SjNnzpTdbldxcbEOHz6su+++e8R9XS6Xqqqq5Ha79e6772rhwoXKyclRU1PTdc9RUVEhp9PpX1JTU0MdEwAARAibZVlWKAcMDg6qq6tLX331ldxut1577TU1NjaOGiT/q6CgQDabTbW1taPu4/P55PP5/Oter1epqanyeDwB954AAIDw5fV65XQ6b/j6HdI9I5I0bdo0/w2sWVlZamlp0csvv6xXXnklqOOXL1+umpqa6+5jt9tlt9tDHQ0AAESgcX/PiGVZAVcxbqStrU0ul2u8pwUAAFEipCsj27ZtU15enlJTU3Xp0iUdOnRIDQ0NOnr0qCSpvLxcPT09OnjwoCRp165dmjdvntLT0zU4OKiamhq53W653e6JfyQAACAihRQjFy5c0BNPPKHe3l45nU5lZGTo6NGjevTRRyVJvb296urq8u8/ODiosrIy9fT0aPr06UpPT1ddXZ3y8/Mn9lEAAICIFfINrCYEewMMAAAIH8G+fvO3aQAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARoUUI/v27VNGRoYcDoccDoeys7P1wQcfXPeYxsZGZWZmKjY2VvPnz1dlZeW4BgYAANElpBhJSUnRjh071NraqtbWVj3yyCNas2aNTp8+PeL+nZ2dys/P14oVK9TW1qZt27Zp06ZNcrvdEzI8AACIfDbLsqzx/ILZs2frd7/7nX71q19d87OtW7eqtrZWHR0d/m3FxcX65JNP1NzcHPQ5vF6vnE6nPB6PHA7HeMa91tDAxP4+AJhMMTNMTwAELdjX75ixnmB4eFh//OMfNTAwoOzs7BH3aW5uVm5ubsC2VatWqbq6WleuXNHUqVNHPM7n88nn8/nXvV7vWMe8sT/MnLzfDQAT7Rfj+v9HICyFfAPrqVOnNHPmTNntdhUXF+vw4cO6++67R9y3r69PiYmJAdsSExM1NDSkixcvjnqOiooKOZ1O/5KamhrqmAAAIEKEfGVk4cKFam9v11dffSW3262ioiI1NjaOGiQ2my1g/eq7Qv+7/dvKy8tVWlrqX/d6vZMXJD+9PDm/FwAABCXkGJk2bZoWLFggScrKylJLS4tefvllvfLKK9fsm5SUpL6+voBt/f39iomJUXx8/KjnsNvtstvtoY42Nrz/CgCAUeP+nhHLsgLu7/i27Oxs1dfXB2w7duyYsrKyRr1fBAAAfLeEFCPbtm3Thx9+qC+++EKnTp3Ss88+q4aGBj3++OOSvnl7Zd26df79i4uLdf78eZWWlqqjo0P79+9XdXW1ysrKJvZRAACAiBXS2zQXLlzQE088od7eXjmdTmVkZOjo0aN69NFHJUm9vb3q6ury75+WlqYjR47omWee0d69e5WcnKzdu3ersLBwYh8FAACIWOP+npGbYVK/ZwQAAEyKYF+/+ds0AADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYFVKMVFRU6N5771VcXJwSEhK0du1anT179rrHNDQ0yGazXbOcOXNmXIMDAIDoEFKMNDY2qqSkRCdOnFB9fb2GhoaUm5urgYGBGx579uxZ9fb2+pc77rhjzEMDAIDoERPKzkePHg1YP3DggBISEnTy5Ek9+OCD1z02ISFBs2bNCnlAAAAQ3cZ1z4jH45EkzZ49+4b7Llu2TC6XSzk5OTp+/Ph4TgsAAKJISFdGvs2yLJWWluqBBx7Q4sWLR93P5XKpqqpKmZmZ8vl8evPNN5WTk6OGhoZRr6b4fD75fD7/utfrHeuYAAAgzNksy7LGcmBJSYnq6ur00UcfKSUlJaRjCwoKZLPZVFtbO+LPn3/+eW3fvv2a7R6PRw6HYyzjAgCAm8zr9crpdN7w9XtMb9Ns3LhRtbW1On78eMghIknLly/XuXPnRv15eXm5PB6Pf+nu7h7LmAAAIAKE9DaNZVnauHGjDh8+rIaGBqWlpY3ppG1tbXK5XKP+3G63y263j+l3AwCAyBJSjJSUlOitt97S+++/r7i4OPX19UmSnE6npk+fLumbqxo9PT06ePCgJGnXrl2aN2+e0tPTNTg4qJqaGrndbrnd7gl+KAAAIBKFFCP79u2TJD300EMB2w8cOKBf/vKXkqTe3l51dXX5fzY4OKiysjL19PRo+vTpSk9PV11dnfLz88c3OQAAiApjvoH1Zgr2BhgAABA+JvUGVgAAgIlCjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYFRIMVJRUaF7771XcXFxSkhI0Nq1a3X27NkbHtfY2KjMzEzFxsZq/vz5qqysHPPAAAAguoQUI42NjSopKdGJEydUX1+voaEh5ebmamBgYNRjOjs7lZ+frxUrVqitrU3btm3Tpk2b5Ha7xz08AACIfDbLsqyxHvyvf/1LCQkJamxs1IMPPjjiPlu3blVtba06Ojr824qLi/XJJ5+oubk5qPN4vV45nU55PB45HI6xjouJMDR6eAK4CWJmmJ4ACFqwr98x4zmJx+ORJM2ePXvUfZqbm5WbmxuwbdWqVaqurtaVK1c0derUa47x+Xzy+Xz+da/XO54xMZH+MNP0BMB32y/G/P+PQNga8w2slmWptLRUDzzwgBYvXjzqfn19fUpMTAzYlpiYqKGhIV28eHHEYyoqKuR0Ov1LamrqWMcEAABhbsxXRjZs2KBPP/1UH3300Q33tdlsAetX3xn63+1XlZeXq7S01L/u9XoJknDx08umJwAARJkxxcjGjRtVW1urpqYmpaSkXHffpKQk9fX1BWzr7+9XTEyM4uPjRzzGbrfLbrePZTRMNt6vBgBMsJDeprEsSxs2bNC7776rv/zlL0pLS7vhMdnZ2aqvrw/YduzYMWVlZY14vwgAAPhuCSlGSkpKVFNTo7feektxcXHq6+tTX1+f/vOf//j3KS8v17p16/zrxcXFOn/+vEpLS9XR0aH9+/erurpaZWVlE/coAABAxAopRvbt2yePx6OHHnpILpfLv7zzzjv+fXp7e9XV1eVfT0tL05EjR9TQ0KB77rlHL7zwgnbv3q3CwsKJexQAACBijet7Rm4WvmcEAIDIE+zrN3+bBgAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgVMgx0tTUpIKCAiUnJ8tms+m999677v4NDQ2y2WzXLGfOnBnrzAAAIIrEhHrAwMCAli5dqvXr16uwsDDo486ePSuHw+FfnzNnTqinBgAAUSjkGMnLy1NeXl7IJ0pISNCsWbNCPg4AAES3m3bPyLJly+RyuZSTk6Pjx49fd1+fzyev1xuwAACA6DTpMeJyuVRVVSW32613331XCxcuVE5OjpqamkY9pqKiQk6n07+kpqZO9pgAAMAQm2VZ1pgPttl0+PBhrV27NqTjCgoKZLPZVFtbO+LPfT6ffD6ff93r9So1NVUejyfgvhMAABC+vF6vnE7nDV+/jXy0d/ny5Tp37tyoP7fb7XI4HAELAACITkZipK2tTS6Xy8SpAQBAmAn50zSXL1/WZ5995l/v7OxUe3u7Zs+erblz56q8vFw9PT06ePCgJGnXrl2aN2+e0tPTNTg4qJqaGrndbrnd7ol7FAAAIGKFHCOtra16+OGH/eulpaWSpKKiIr3++uvq7e1VV1eX/+eDg4MqKytTT0+Ppk+frvT0dNXV1Sk/P38CxgcAAJFuXDew3izB3gADAADCR1jfwAoAAHAVMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwKOUaamppUUFCg5ORk2Ww2vffeezc8prGxUZmZmYqNjdX8+fNVWVk5llkBAEAUCjlGBgYGtHTpUu3Zsyeo/Ts7O5Wfn68VK1aora1N27Zt06ZNm+R2u0MeFgAARJ+YUA/Iy8tTXl5e0PtXVlZq7ty52rVrlyTprrvuUmtrq3bu3KnCwsJQTw9EjqEB0xMgGsXMMD0BMOFCjpFQNTc3Kzc3N2DbqlWrVF1drStXrmjq1KnXHOPz+eTz+fzrXq93sscEJt4fZpqeANHoF5bpCYAJN+k3sPb19SkxMTFgW2JiooaGhnTx4sURj6moqJDT6fQvqampkz0mAAAwZNKvjEiSzWYLWLcsa8TtV5WXl6u0tNS/7vV6CRJEnp9eNj0BAESESY+RpKQk9fX1BWzr7+9XTEyM4uPjRzzGbrfLbrdP9mjA5OK9fQAIyqS/TZOdna36+vqAbceOHVNWVtaI94sAAIDvlpBj5PLly2pvb1d7e7ukbz66297erq6uLknfvMWybt06//7FxcU6f/68SktL1dHRof3796u6ulplZWUT8wgAAEBEC/ltmtbWVj388MP+9av3dhQVFen1119Xb2+vP0wkKS0tTUeOHNEzzzyjvXv3Kjk5Wbt37+ZjvQAAQJJks67eTRrGvF6vnE6nPB6PHA6H6XEAAEAQgn395m/TAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwKib8ofyxuvqV6F4vV7DkwAAgGBdfd2+0VeaRUSMXLp0SZL4y70AAESgS5cuyel0jvrziPgG1q+//lpffvml4uLiZLPZJuz3er1epaamqru7m292DQLPV/B4roLHcxU8nqvg8VwFbzKfK8uydOnSJSUnJ+uWW0a/MyQirozccsstSklJmbTf73A4+Jc1BDxfweO5Ch7PVfB4roLHcxW8yXqurndF5CpuYAUAAEYRIwAAwKjvdIzY7XY999xzstvtpkeJCDxfweO5Ch7PVfB4roLHcxW8cHiuIuIGVgAAEL2+01dGAACAecQIAAAwihgBAABGESMAAMAoYuRbXnrpJd1///363ve+p1mzZpkeJ6z8/ve/V1pammJjY5WZmakPP/zQ9EhhqampSQUFBUpOTpbNZtN7771neqSwVFFRoXvvvVdxcXFKSEjQ2rVrdfbsWdNjha19+/YpIyPD/6VU2dnZ+uCDD0yPFfYqKipks9m0ZcsW06OEpeeff142my1gSUpKMjILMfItg4OD+slPfqKnn37a9Chh5Z133tGWLVv07LPPqq2tTStWrFBeXp66urpMjxZ2BgYGtHTpUu3Zs8f0KGGtsbFRJSUlOnHihOrr6zU0NKTc3FwNDAyYHi0spaSkaMeOHWptbVVra6seeeQRrVmzRqdPnzY9WthqaWlRVVWVMjIyTI8S1tLT09Xb2+tfTp06ZWYQC9c4cOCA5XQ6TY8RNn7wgx9YxcXFAdsWLVpk/fa3vzU0UWSQZB0+fNj0GBGhv7/fkmQ1NjaaHiVi3HrrrdZrr71meoywdOnSJeuOO+6w6uvrrf/7v/+zNm/ebHqksPTcc89ZS5cuNT2GZVmWxZURXNfg4KBOnjyp3NzcgO25ubn629/+ZmgqRBuPxyNJmj17tuFJwt/w8LAOHTqkgYEBZWdnmx4nLJWUlGj16tVauXKl6VHC3rlz55ScnKy0tDQ99thj+vzzz43MERF/KA/mXLx4UcPDw0pMTAzYnpiYqL6+PkNTIZpYlqXS0lI98MADWrx4selxwtapU6eUnZ2t//73v5o5c6YOHz6su+++2/RYYefQoUP6+OOP1dLSYnqUsHfffffp4MGDuvPOO3XhwgW9+OKLuv/++3X69GnFx8ff1Fmi/srISDfo/O/S2tpqesywZ7PZAtYty7pmGzAWGzZs0Keffqq3337b9ChhbeHChWpvb9eJEyf09NNPq6ioSP/4xz9MjxVWuru7tXnzZtXU1Cg2Ntb0OGEvLy9PhYWFWrJkiVauXKm6ujpJ0htvvHHTZ4n6KyMbNmzQY489dt195s2bd3OGiUC33XabpkyZcs1VkP7+/muulgCh2rhxo2pra9XU1KSUlBTT44S1adOmacGCBZKkrKwstbS06OWXX9Yrr7xieLLwcfLkSfX39yszM9O/bXh4WE1NTdqzZ498Pp+mTJlicMLwNmPGDC1ZskTnzp276eeO+hi57bbbdNttt5keI2JNmzZNmZmZqq+v1w9/+EP/9vr6eq1Zs8bgZIhklmVp48aNOnz4sBoaGpSWlmZ6pIhjWZZ8Pp/pMcJKTk7ONZ8GWb9+vRYtWqStW7cSIjfg8/nU0dGhFStW3PRzR32MhKKrq0v//ve/1dXVpeHhYbW3t0uSFixYoJkzZ5odzqDS0lI98cQTysrKUnZ2tqqqqtTV1aXi4mLTo4Wdy5cv67PPPvOvd3Z2qr29XbNnz9bcuXMNThZeSkpK9NZbb+n9999XXFyc/8qb0+nU9OnTDU8XfrZt26a8vDylpqbq0qVLOnTokBoaGnT06FHTo4WVuLi4a+47mjFjhuLj47kfaQRlZWUqKCjQ3Llz1d/frxdffFFer1dFRUU3fxizH+YJL0VFRZaka5bjx4+bHs24vXv3Wrfffrs1bdo06/vf/z4fwRzF8ePHR/x3qKioyPRoYWWk50iSdeDAAdOjhaUnn3zS/9/fnDlzrJycHOvYsWOmx4oIfLR3dD/72c8sl8tlTZ061UpOTrZ+9KMfWadPnzYyi82yLOvmJxAAAMA3ov7TNAAAILwRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo/4fD2MdYOAKDeIAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"polygon_geoms = [\n",
" Polygon.from_bounds(4, 4, 5, 5),\n",
" # Polygon.from_bounds(0, 0, 2, 4),\n",
"]\n",
"polygons = gpd.GeoDataFrame(\n",
" data={\n",
" \"id\": range(len(polygon_geoms)),\n",
" \"color\": colors[:len(polygon_geoms)] \n",
" },\n",
" geometry=polygon_geoms\n",
")\n",
"\n",
"line_geoms = [\n",
" LineString([(1, 1), (3, 1)]),\n",
" LineString([(0, 2), (3, 2)]),\n",
" LineString([(-1, 3), (3, 3)]),\n",
"]\n",
"lines = gpd.GeoDataFrame(\n",
" data={\"id\": range(len(line_geoms))},\n",
" geometry=line_geoms\n",
")\n",
"\n",
"base = polygons.plot()\n",
"lines.plot(ax=base, color=\"orange\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "39209432-ef80-4d66-84bc-1a4be7f4277b",
"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>id</th>\n",
" <th>color</th>\n",
" <th>geometry</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>blue</td>\n",
" <td>POLYGON ((4.00000 4.00000, 4.00000 5.00000, 5....</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id color geometry\n",
"0 0 blue POLYGON ((4.00000 4.00000, 4.00000 5.00000, 5...."
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = intersect_polygons_with_lines(polygons, lines)\n",
"x.plot(edgecolor=\"white\", facecolor=plot_colors[:len(x)])\n",
"x\n",
"x"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "49197fc2-d46a-4053-82b5-e413c8f6787a",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot: >"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"polygon_geoms = [\n",
" Polygon.from_bounds(0, 0, 2, 2),\n",
" Polygon.from_bounds(2, 2, 4, 4)\n",
"]\n",
"polygons = gpd.GeoDataFrame(\n",
" data={\n",
" \"id\": range(len(polygon_geoms)), \n",
" \"color\": colors[:len(polygon_geoms)]\n",
" },\n",
" geometry=polygon_geoms\n",
")\n",
"\n",
"line_geoms = [\n",
" LineString([(0, 1), (2, 1)]),\n",
" LineString([(2, 3), (4, 3)]),\n",
" LineString([(3, 2), (3, 4)]),\n",
" LineString([(0, 0), (4, 4)])\n",
"]\n",
"lines = gpd.GeoDataFrame(\n",
" data={\"id\": range(len(line_geoms))},\n",
" geometry=line_geoms\n",
")\n",
"\n",
"base = polygons.plot()\n",
"lines.plot(ax=base, color=\"orange\")"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "eec18c3d-8520-4564-9e35-072d08d5964b",
"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>index</th>\n",
" <th>id</th>\n",
" <th>color</th>\n",
" <th>geometry</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>blue</td>\n",
" <td>POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1....</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>blue</td>\n",
" <td>POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2....</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>blue</td>\n",
" <td>POLYGON ((2.00000 2.00000, 2.00000 1.00000, 1....</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>blue</td>\n",
" <td>POLYGON ((2.00000 1.00000, 2.00000 0.00000, 0....</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>orange</td>\n",
" <td>POLYGON ((2.00000 2.00000, 2.00000 3.00000, 3....</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>orange</td>\n",
" <td>POLYGON ((2.00000 3.00000, 2.00000 4.00000, 3....</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>orange</td>\n",
" <td>POLYGON ((3.00000 4.00000, 4.00000 4.00000, 3....</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>orange</td>\n",
" <td>POLYGON ((4.00000 4.00000, 4.00000 3.00000, 3....</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>orange</td>\n",
" <td>POLYGON ((4.00000 3.00000, 4.00000 2.00000, 3....</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>orange</td>\n",
" <td>POLYGON ((3.00000 2.00000, 2.00000 2.00000, 3....</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" index id color geometry\n",
"0 0 0 blue POLYGON ((0.00000 0.00000, 0.00000 1.00000, 1....\n",
"1 0 0 blue POLYGON ((0.00000 1.00000, 0.00000 2.00000, 2....\n",
"2 0 0 blue POLYGON ((2.00000 2.00000, 2.00000 1.00000, 1....\n",
"3 0 0 blue POLYGON ((2.00000 1.00000, 2.00000 0.00000, 0....\n",
"4 1 1 orange POLYGON ((2.00000 2.00000, 2.00000 3.00000, 3....\n",
"5 1 1 orange POLYGON ((2.00000 3.00000, 2.00000 4.00000, 3....\n",
"6 1 1 orange POLYGON ((3.00000 4.00000, 4.00000 4.00000, 3....\n",
"7 1 1 orange POLYGON ((4.00000 4.00000, 4.00000 3.00000, 3....\n",
"8 1 1 orange POLYGON ((4.00000 3.00000, 4.00000 2.00000, 3....\n",
"9 1 1 orange POLYGON ((3.00000 2.00000, 2.00000 2.00000, 3...."
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x = intersect_polygons_with_lines(polygons, lines)\n",
"x.plot(edgecolor=\"white\", facecolor=plot_colors[:len(x)])\n",
"x"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "abc1fbc9-c8ed-4e7a-a06d-95990bb3d4f2",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.10.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment