{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Simple network data preprocessing\n", "\n", "This guide introduces a selection of tools to preprocess the street network and eliminate unwanted gaps in the network and fix its topology." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:53.925222Z", "iopub.status.busy": "2024-06-14T22:02:53.924991Z", "iopub.status.idle": "2024-06-14T22:02:54.934155Z", "shell.execute_reply": "2024-06-14T22:02:54.933854Z" } }, "outputs": [], "source": [ "import geopandas as gpd\n", "import momepy\n", "from shapely.geometry import LineString" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Close gaps\n", "\n", "The first issue which may happen is the network which is disconnected. The endpoints do not match. Such a network would result in incorrect results of any graph-based analysis. `momepy.close_gaps` can fix the issue by snapping nearby endpoints to a midpoint between the two." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:54.936005Z", "iopub.status.busy": "2024-06-14T22:02:54.935814Z", "iopub.status.idle": "2024-06-14T22:02:54.938563Z", "shell.execute_reply": "2024-06-14T22:02:54.938338Z" } }, "outputs": [], "source": [ "l1 = LineString([(1, 0), (2, 1)])\n", "l2 = LineString([(2.1, 1), (3, 2)])\n", "l3 = LineString([(3.1, 2), (4, 0)])\n", "l4 = LineString([(4.1, 0), (5, 0)])\n", "l5 = LineString([(5.1, 0), (6, 0)])" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:54.939938Z", "iopub.status.busy": "2024-06-14T22:02:54.939834Z", "iopub.status.idle": "2024-06-14T22:02:55.191005Z", "shell.execute_reply": "2024-06-14T22:02:55.190729Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df = gpd.GeoDataFrame([\"a\", \"b\", \"c\", \"d\", \"e\"], geometry=[l1, l2, l3, l4, l5])\n", "df.plot(figsize=(10, 10)).set_axis_off()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "All LineStrings above need to be fixed." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:55.192810Z", "iopub.status.busy": "2024-06-14T22:02:55.192603Z", "iopub.status.idle": "2024-06-14T22:02:55.196232Z", "shell.execute_reply": "2024-06-14T22:02:55.195905Z" } }, "outputs": [], "source": [ "df.geometry = momepy.close_gaps(df, 0.25)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:55.197811Z", "iopub.status.busy": "2024-06-14T22:02:55.197724Z", "iopub.status.idle": "2024-06-14T22:02:55.231674Z", "shell.execute_reply": "2024-06-14T22:02:55.231281Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df.plot(figsize=(10, 10)).set_axis_off()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can compare how the fixed network looks compared to the original one." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:55.233496Z", "iopub.status.busy": "2024-06-14T22:02:55.233244Z", "iopub.status.idle": "2024-06-14T22:02:55.275697Z", "shell.execute_reply": "2024-06-14T22:02:55.275424Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = df.plot(alpha=0.5, figsize=(10, 10))\n", "gpd.GeoDataFrame(geometry=[l1, l2, l3, l4, l5]).plot(\n", " ax=ax, color=\"r\", alpha=0.5\n", ")\n", "ax.set_axis_off()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Remove false nodes\n", "\n", "A very common issue is incorrect topology. LineString should end either at road intersections or in dead-ends. However, we often see geometry split randomly along the way. `momepy.remove_false_nodes` can fix that.\n", "\n", "We will use `mapclassify.greedy` to highlight each segment." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:55.277441Z", "iopub.status.busy": "2024-06-14T22:02:55.277335Z", "iopub.status.idle": "2024-06-14T22:02:55.923658Z", "shell.execute_reply": "2024-06-14T22:02:55.923394Z" } }, "outputs": [], "source": [ "from mapclassify import greedy" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:55.925333Z", "iopub.status.busy": "2024-06-14T22:02:55.925174Z", "iopub.status.idle": "2024-06-14T22:02:55.989997Z", "shell.execute_reply": "2024-06-14T22:02:55.989735Z" } }, "outputs": [], "source": [ "df = gpd.read_file(momepy.datasets.get_path(\"tests\"), layer=\"broken_network\")" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:55.991620Z", "iopub.status.busy": "2024-06-14T22:02:55.991475Z", "iopub.status.idle": "2024-06-14T22:02:56.034500Z", "shell.execute_reply": "2024-06-14T22:02:56.034263Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/martin/miniforge3/envs/momepy/lib/python3.11/site-packages/mapclassify/greedy.py:304: FutureWarning: `use_index` defaults to False but will default to True in future. Set True/False directly to control this behavior and silence this warning\n", " sw = Queen.from_dataframe(gdf, silence_warnings=silence_warnings)\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAicAAAMWCAYAAAAqASZhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAACAEklEQVR4nOz9d3Tk933f+z+/3+90lEHvwGJ7r1x2UqRIqktUsS3TKpbcE8exE9+Ue65/5+bc5OZ3nPNLcn9J7F8Sx5YtS1a1CinKkkiJEntZktt7wy56b4Pp8/38/hgslmULsBjgOwO8HufgYHYwM983luDgte9Ps4wxBhEREZEiYXtdgIiIiMhbKZyIiIhIUVE4ERERkaKicCIiIiJFReFEREREiorCiYiIiBQVhRMREREpKgonIiIiUlQUTkRERKSoKJyIiIhIUVE4ERERkaKicCIiIiJFReFEREREiorCiYiIiBQVhRMREREpKgonIiIiUlQUTkRERKSoKJyIiIhIUVE4ERERkaKicCIiIiJFReFEREREiorCiYiIiBQVhRMREREpKgonIiIiUlQUTkRERKSoKJyIiIhIUVE4ERERkaKicCIiIiJFReFEREREiorCiYiIiBQVhRMREREpKgonIiIiUlQUTkRERKSoKJyIiIhIUVE4ERERkaKicCIiIiJFReFEREREiorCiYiIiBQVhRMREREpKgonIiIiUlQUTkRERKSoKJyIiIhIUVE4ERERkaKicLIAOTdNzk17XYaIiMiKpnCyAP0zB/nRpX/G64P/0+tSREREViyFkwWIZ0cB8NsRjysRERFZuRROFiAxG07CvlqPKxEREVm5FE4WIJ4dAyCicCIiIrJkFE4WYK5z4lc4ERERWSoKJwuQceMA+K2Qx5WIiIisXAonC1DmbwAglhn0uBIREZGVS+FkASr8rQBMZ/o8rkRERGTlUjhZgIpAMwDTaYUTERGRpaJwsgCVgRYAptP9HlciIiKycimcLEDFbDiZyQ5rG3sREZElonCyAAG7goBdDhimMwNelyMiIrIiKZwsgGVZlM/OO4lp3omIiMiSUDhZoAr/7KRYdU5ERESWhMLJAmnFjoiIyNJSOFmg8tnOSSyjFTsiIiJLQeFkga50TuLZMbJuyuNqREREVh6FkwUKOldX7GgbexERkcJTOLkFWrEjIiKydBROboFW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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df.plot(\n", " greedy(df), categorical=True, figsize=(10, 10), cmap=\"Set3\"\n", ").set_axis_off()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can see that the topology of the network above is not as it should be.\n", "\n", "For a reference, let's check how many geometries we have now:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:56.036017Z", "iopub.status.busy": "2024-06-14T22:02:56.035924Z", "iopub.status.idle": "2024-06-14T22:02:56.038063Z", "shell.execute_reply": "2024-06-14T22:02:56.037825Z" } }, "outputs": [ { "data": { "text/plain": [ "83" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(df)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Okay, 83 is a starting value. Now let's remove false nodes." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:56.039388Z", "iopub.status.busy": "2024-06-14T22:02:56.039294Z", "iopub.status.idle": "2024-06-14T22:02:56.045134Z", "shell.execute_reply": "2024-06-14T22:02:56.044902Z" } }, "outputs": [], "source": [ "fixed = momepy.remove_false_nodes(df)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:56.046466Z", "iopub.status.busy": "2024-06-14T22:02:56.046395Z", "iopub.status.idle": "2024-06-14T22:02:56.086768Z", "shell.execute_reply": "2024-06-14T22:02:56.086512Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/martin/miniforge3/envs/momepy/lib/python3.11/site-packages/mapclassify/greedy.py:304: FutureWarning: `use_index` defaults to False but will default to True in future. Set True/False directly to control this behavior and silence this warning\n", " sw = Queen.from_dataframe(gdf, silence_warnings=silence_warnings)\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAicAAAMWCAYAAAAqASZhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB+7UlEQVR4nOz9d3hk+X3f+b7POZVRhZxTo3NO02EyhxymYY5iViRFWZItex1W93qf597nru1de9feXcvKIiVKIinmMExDcsiZ4eTp3NM5Ao2cUQAqV51z/ygA3T2dEAo4BeDzeh48AAtVdb5oYqo++P6S4TiOg4iIiEiRMN0uQERERORGCiciIiJSVBROREREpKgonIiIiEhRUTgRERGRoqJwIiIiIkVF4URERESKisKJiIiIFBWFExERESkqCiciIiJSVBROREREpKgonIiIiEhRUTgRERGRoqJwIiIiIkVF4URERESKisKJiIiIFBWFExERESkqCiciIiJSVBROREREpKgonIiIiEhRUTgRERGRoqJwIiIiIkVF4URERESKisKJiIiIFBWFExERESkqCiciIiJSVBROREREpKgonIiIiEhRUTgRERGRoqJwIiIiIkVF4URERESKisKJiIiIFBWFExERESkqCiciIiJSVBROREREpKgonIiIiEhRUTgRERGRoqJwIiIiIkVF4URERESKisKJiIiIFBWFExERESkqCiciIiJSVBROREREpKgonMxBxrbJ2LbbZYiIiKxoHrcLWE4uRod5qvsyG0oreH/rZrfLERERWZHUOZmD8UwKAL+pTCciIrJYFE7mIJrOh5Myn9/lSkRERFYuhZM5mO6clHoVTkRERBaLwskcjE91TkrVOREREVk0CidzkLSzAPhNy+VKREREVi6Fkzmo8AUBGEknXa5ERERk5VI4mYPqQAiAoWTc5UpERERWLoWTOaj25zsnwymFExERkcWicDIH1zsnCZcrERERWbkUTuagKpDvnIylk9rGXkREZJEonMxByPIStPK7w45oaEdERGRRKJzMgWEYVE3PO9HQjoiIyKJQOJmjqql5J8MphRMREZHFoHAyR1VasSMiIrKoFE7mSMM6IiIii0vhZI6mh3WimRQZO+dyNSIiIiuPwskchTw3rthR90RERKTQFE7mQUM7IiIii0fhZB60YkdERGTxKJzMg1bs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iYiIFIjeSaQgrndO9CslIiILo3cSKYjrq3U0rCMiIgujcCIFYaNzdUREpDAUTkRERKSoKJyIiIhIUVE4ERERkaKicCIiIiJFReFEREREiorCiYiIiBQVhRMREREpKgonIiIiUlQUTqQwHLcLEBGRlULhRAoi52iHWBERKQyFEymI9MzBfzpbR0REFkbhRApCpxKLiEih6J1ECmL6VGKfOiciIrJACidSEBrWERGRQlE4kYLITnVONKwjIiILpXcSKYjpzomGdUREZKEUTqQgMhrWERGRAlE4kYLIaFhHREQKRO8kUhDT4cSjcCIiIgukdxIpkPwOsSbaIVZERBZG4URERESKisKJiIiIFBWFExERESkqCiciIiJSVBROREREpKgonIiIiEhRUTgRERGRoqJwIiIiIkVF4URERESKisKJiIiIFBWFExERESkqCidSUI7bBYiIyLKncCIFYRr5XyXbUTwREZGFUTiRgrCM/GnEOcd2uRIREVnuFE6kIKypzonCiYiILJTCiRTE9c6JhnVERGRhFE6kICxTnRMRESkMhRMpiJnOia3OiYiILIzCiRTE9JyTrDonIiKyQAonUhCacyIiIoWicCIF4Z2ac5K11TkREZGFUTiRgvCaFgBpO+dyJSIistwpnEhB+KbCSUbhREREFkjhRApielgno2EdERFZIIUTKQifhnVERKRAFE6kIDzahE1ERApE4UQKYmafE23CJiIiC6RwIgXhMXUqsYiIFIbCiRTE9c6JwomIiCyMwokUhMfQnBMRESkMhRMpiOlTibPavl5ERBZI4UQKYvpsHQ3riIjIQimcSEFoWEdERApF4UQKwpzqnNga1hERkQVSOJGCmB7WySmciIjIAimcSEFYGtYREZECUTiRgrA0rCMiIgWicCIFYU51ThwUUEREZGEUTqQgpjsnoHknIiKyMAonUhA3hhNb805ERGQBFE6kIEx1TkREpEAUTqQgbowjxh3vJSIicm8KJ1IQqVx25mufZblYiYiILHcKJ1IQKTsH5Lexn97zREREZD70LiIFkcrlw4lfXRMREVkghRMpiMxU58RrKpyIiMjCKJxIQWTt/PJhr6lfKRERWRi9k0hBZKf2NvFovomIiCyQ3kmkIKY7Jx51TkREZIH0TiIFMdM5UTgREZEF0juJFETG1rCOiIgUht5JpCCmV+v4tFpH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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fixed.plot(\n", " greedy(fixed), categorical=True, figsize=(10, 10), cmap=\"Set3\"\n", ").set_axis_off()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From the figure above, it is clear that the network is now topologically correct. How many features are there now?" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:56.088268Z", "iopub.status.busy": "2024-06-14T22:02:56.088172Z", "iopub.status.idle": "2024-06-14T22:02:56.090269Z", "shell.execute_reply": "2024-06-14T22:02:56.090028Z" } }, "outputs": [ { "data": { "text/plain": [ "56" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(fixed)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have been able to represent the same network using 27 features less.\n", "\n", "## Extend lines\n", "\n", "In some cases, like in generation of [enclosures](../elements/enclosed.ipynb), we may want to close some gaps by extending existing LineStrings until they meet other geometry." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:56.091673Z", "iopub.status.busy": "2024-06-14T22:02:56.091582Z", "iopub.status.idle": "2024-06-14T22:02:56.093581Z", "shell.execute_reply": "2024-06-14T22:02:56.093357Z" } }, "outputs": [], "source": [ "l1 = LineString([(0, 0), (2, 0)])\n", "l2 = LineString([(2.1, -1), (2.1, 1)])\n", "l3 = LineString([(3.1, 2), (4, 0.1)])\n", "l4 = LineString([(3.5, 0), (5, 0)])\n", "l5 = LineString([(2.2, 0), (3.5, 1)])" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:56.094907Z", "iopub.status.busy": "2024-06-14T22:02:56.094814Z", "iopub.status.idle": "2024-06-14T22:02:56.127253Z", "shell.execute_reply": "2024-06-14T22:02:56.127003Z" } }, "outputs": [ { "data": { "image/png": "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QOWEBgAAUDmhAQAAVE5oAAAAlRMaAABA5YQGAABQOaEBAABUTmgAAACVExoAAEDlhAYAAFA5oQEAAFROaAAAAJUTGgAAQOWEBgAAUDmhAQAAVE5oAAAAlRMaAABA5YQGAABQOaEBAABUTmgAAACVExoAAEDlhAYAAFA5oQEAAFROaAAAAJUTGgAAQOWEBgAAUDmhAQAAVE5oAAAAlRMaAABA5YQGAABQOaEBAABUTmgAAACVExoAAEDlhAYAAFA5oQEAAFROaAAAAJUTGgAAQOWEBgAAUDmhAQAAVE5oAAAAlRMaAABA5YQGAABQOaEBAABUTmgAAACVExoAAEDlhAYAAFA5oQEAAFROaAAAAJUTGgAAQOWEBgAAUDmhAQAAVE5oAAAAlRMaAABA5YQGAABQOaEBAABUTmgAAACVExoAAEDlhAYAAFA5oQEAAFROaAAAAJUTGgAAQOWEBgAAUDmhAQAAVE5oAAAAlRMaAABA5YQGAABQOaEBAABUTmgAAACVExoAAEDlhAYAAFA5oQEAAFROaAAAAJUTGgAAQOWEBgAAUDmhAQAAVE5oAAAAlRMaAABA5YQGAABQOaEBAABUTmgAAACVExoAAEDlhAYAAFA5oQEAAFROaAAAAJUTGgAAQOWEBgAAUDmhAQAAVE5oAAAAlRMaAABA5YQGAABQOaEBAABUTmgAAACVExoAAEDlhAYAAFA5oQEAAFROaAAAAJUTGgAAQOWEBgAAUDmhAQAAVE5oAAAAlRMaAABA5YQGAABQOaEBAABUTmgAAACVExoAAEDlhAYAAFA5oQEAAFROaAAAAJUTGgAAQOWEBgAAUDmhAQAAVE5oAAAAlRMaAABA5YQGAABQOaEBAABUTmgAAACVExoAAEDlhAYAAFA5oQEAAFROaAAAAJUTGgAAQOWEBgAAUDmhAQAAVE5oAAAAlRMaAABA5YQGAABQOaEBAABUTmgAAACVExoAAEDlhAYAAFA5oQEAAFROaAAAAJUTGgAAQOWEBgAAUDmhAQAAVE5oAAAAlRMaAABA5WrNZrNZegQAANBZvGgAAACVExoAAEDlhAYAAFA5oQEAAFROaAAAAJUTGgAAQOWEBgAAUDmhAQAAVE5oAAAAlRMaAABA5YQGAABQOaEBAABUTmgAAACVExoAAEDlhAYAAFA5oQEAAFROaAAAAJUTGgAAQOWEBgAAUDmhAQAAVE5oAAAAlRMaAABA5YQGAABQOaEBAABUTmgAAACVExoAAEDlhAYAAFA5oQEAAFROaAAAAJUTGgAAQOX+A7K7uJld3moaAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df = gpd.GeoDataFrame([\"a\", \"b\", \"c\", \"d\", \"e\"], geometry=[l1, l2, l3, l4, l5])\n", "df.plot(figsize=(10, 10)).set_axis_off()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The situation above is typical. The network is almost connected, but there are gaps. Let's extend geometries and close them. Note that we cannot use `momepy.close_gaps` in this situation as we are not snapping endpoints to endpoints." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:56.128901Z", "iopub.status.busy": "2024-06-14T22:02:56.128796Z", "iopub.status.idle": "2024-06-14T22:02:56.136291Z", "shell.execute_reply": "2024-06-14T22:02:56.136048Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/martin/miniforge3/envs/momepy/lib/python3.11/site-packages/pandas/core/arraylike.py:492: RuntimeWarning: invalid value encountered in intersection\n", " return getattr(ufunc, method)(*new_inputs, **kwargs)\n", "/Users/martin/miniforge3/envs/momepy/lib/python3.11/site-packages/pandas/core/arraylike.py:492: RuntimeWarning: invalid value encountered in intersection\n", " return getattr(ufunc, method)(*new_inputs, **kwargs)\n", "/Users/martin/miniforge3/envs/momepy/lib/python3.11/site-packages/pandas/core/arraylike.py:492: RuntimeWarning: invalid value encountered in intersection\n", " return getattr(ufunc, method)(*new_inputs, **kwargs)\n" ] } ], "source": [ "extended = momepy.extend_lines(df, tolerance=0.2)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:56.137628Z", "iopub.status.busy": "2024-06-14T22:02:56.137553Z", "iopub.status.idle": "2024-06-14T22:02:56.169519Z", "shell.execute_reply": "2024-06-14T22:02:56.169285Z" } }, "outputs": [ { "data": { "image/png": "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z7BAq7kxM5uf+Y3fSfLVLxqNRjO/9c//IL/5O/MH+H567dfy9l9+wgE+OpLf2VCddvtPp9pr7R9rt7/IAN93+fpM/oPfPpVjZy8lmb/y/evPP+YAHx3L72zoXv7uB1gkH378Wd76R7+fsat/lL7eev76C193gA+AjiU0ABbY/JXvC/mN757JzblmHl7543n75W84wAdARxMaAAvo+vRsvvk//x/5p6fHkiQ//9Nr8jf+7S0O8AHQ8YQGwAIZvjiZNw79foYvXsuSei3/8c9vzp6nH3aAD4CuIDQAFsB3To/lm//TR7kxM5fVX1uav/3L38i29T9ZehYALBqhAVCx3/ju/53/4X//OIkr3wB0L6EBULHvR4Yr3wB0M6EBUDFXvgFAaABU7p+8uT2Prva/rgWgu9VLDwDoNIMP/FjpCQBQnNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqFyt2Ww2S48AAAA6ixcNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKjc/w+PdJWBOFMctwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "extended.plot(figsize=(10, 10)).set_axis_off()" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "execution": { "iopub.execute_input": "2024-06-14T22:02:56.170926Z", "iopub.status.busy": "2024-06-14T22:02:56.170849Z", "iopub.status.idle": "2024-06-14T22:02:56.209767Z", "shell.execute_reply": "2024-06-14T22:02:56.209497Z" } }, "outputs": [ { "data": { "image/png": "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AwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAACoXMfs7Oxs6REAAEBr8R0NAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKic0AAAAConNAAAgMoJDQAAoHJCAwAAqJzQAAAAKic0AACAygkNAACgckIDAAConNAAAAAqJzQAAIDKCQ0AAKByQgMAAKjc/w/xrlxm4BwqAAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = extended.plot(figsize=(10, 10), color=\"r\")\n", "df.plot(ax=ax)\n", "ax.set_axis_off()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The figures above are self-explanatory. However, remember that the extended network is not topologically correct and is not suitable for network analysis directly. For `enclosures` it is perfect though.\n", "\n", "For more details and further options, see the [API documentation](../../api.rst)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.10.5 ('geo_dev')", "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.11.8" }, "vscode": { "interpreter": { "hash": "8d1b2c984ad473d756980598d6fae8279815dc9c89a9d51a262cfb04eba7ee8f" } } }, "nbformat": 4, "nbformat_minor": 4 }