Skip to content

Instantly share code, notes, and snippets.

@jGaboardi
Last active October 29, 2024 01:41
Show Gist options
  • Save jGaboardi/8d3c61e0c7ecfdaf263cda57038d509c to your computer and use it in GitHub Desktop.
Save jGaboardi/8d3c61e0c7ecfdaf263cda57038d509c to your computer and use it in GitHub Desktop.
sgeop_issues_with_fix_topology
Display the source blob
Display the rendered blob
Raw
{"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.12.7"},"gist_info":{"gist_url":"https://gist.github.com/jGaboardi/8d3c61e0c7ecfdaf263cda57038d509c","gist_id":"8d3c61e0c7ecfdaf263cda57038d509c","create_date":"2024-10-28T01:15:23Z"}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"44af586a-3eba-4313-9fc6-dda44fdc8438","cell_type":"markdown","source":"# potential issues\n## with `fix_topology()`\n### `induce_nodes()` & `remove_false_nodes()`)\n\n1. diamond - correct node induction; ***incorrect*** loop order – ***FIXED!***\n2. triangle - correct node induction; correct loop order\n3. diamond - correct node induction; correct loop order\n4. diamond - correct node induction; correct loop order\n5. diamond - ***incorrect*** node induction; correct loop order – ***FIXED!***\n6. diamond - ***incorrect*** node induction; ***incorrect*** loop order – ***FIXED!***","metadata":{}},{"id":"b152cfaa-512f-47b0-bdac-6e1314bbcdac","cell_type":"code","source":"%load_ext watermark\n%watermark","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:49.903227Z","iopub.execute_input":"2024-10-29T01:34:49.903512Z","iopub.status.idle":"2024-10-29T01:34:49.925810Z","shell.execute_reply.started":"2024-10-29T01:34:49.903485Z","shell.execute_reply":"2024-10-29T01:34:49.925469Z"},"trusted":true},"outputs":[{"name":"stdout","text":"Last updated: 2024-10-28T21:34:49.918434-04:00\n\nPython implementation: CPython\nPython version : 3.12.7\nIPython version : 8.29.0\n\nCompiler : Clang 17.0.6 \nOS : Darwin\nRelease : 24.0.0\nMachine : arm64\nProcessor : arm\nCPU cores : 8\nArchitecture: 64bit\n\n","output_type":"stream"}],"execution_count":1},{"id":"fb19cecd-1fc9-4374-8854-a8bb85b5cae7","cell_type":"code","source":"import geopandas\nimport shapely\n\nimport sgeop\n\n%watermark -w\n%watermark -iv","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:49.926340Z","iopub.execute_input":"2024-10-29T01:34:49.926470Z","iopub.status.idle":"2024-10-29T01:34:50.753038Z","shell.execute_reply.started":"2024-10-29T01:34:49.926454Z","shell.execute_reply":"2024-10-29T01:34:50.752826Z"},"trusted":true},"outputs":[{"name":"stdout","text":"Watermark: 2.5.0\n\nsgeop : 0.1.dev9+g4b6dc23.d20241005\nshapely : 2.0.6\ngeopandas: 1.0.1\n\n","output_type":"stream"}],"execution_count":2},{"id":"26053708-c760-4204-9813-571b0e97146b","cell_type":"markdown","source":"------------------------------\n## 1. diamond - correct node induction; incorrect loop order – ***FIXED!***","metadata":{}},{"id":"880a7c59-b653-4668-a07c-be7efa8996c5","cell_type":"code","source":"p10 = shapely.Point(1,0)\np40 = shapely.Point(4,0)\np50 = shapely.Point(5,0)\np31 = shapely.Point(3,1)\np22 = shapely.Point(2,2)\np33 = shapely.Point(3,3)\np42 = shapely.Point(4,2)\n\nline1050 = shapely.LineString((p10, p50))\nline4031 = shapely.LineString((p40, p31))\nline3122 = shapely.LineString((p31, p22))\nline2233 = shapely.LineString((p22, p33))\nline3342 = shapely.LineString((p33, p42))\nline4231 = shapely.LineString((p42, p31))","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:50.753335Z","iopub.execute_input":"2024-10-29T01:34:50.753456Z","iopub.status.idle":"2024-10-29T01:34:50.755732Z","shell.execute_reply.started":"2024-10-29T01:34:50.753449Z","shell.execute_reply":"2024-10-29T01:34:50.755538Z"},"trusted":true},"outputs":[],"execution_count":3},{"id":"c0d914ba-3bee-4647-9ca0-18e49ddcb108","cell_type":"code","source":"frame = geopandas.GeoDataFrame(\n geometry=[\n line1050,\n line4031,\n line3122,\n line2233,\n line3342,\n line4231,\n ]\n)\nframe","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:50.756022Z","iopub.execute_input":"2024-10-29T01:34:50.756086Z","iopub.status.idle":"2024-10-29T01:34:50.760832Z","shell.execute_reply.started":"2024-10-29T01:34:50.756078Z","shell.execute_reply":"2024-10-29T01:34:50.760665Z"},"trusted":true},"outputs":[{"execution_count":4,"output_type":"execute_result","data":{"text/plain":" geometry\n0 LINESTRING (1 0, 5 0)\n1 LINESTRING (4 0, 3 1)\n2 LINESTRING (3 1, 2 2)\n3 LINESTRING (2 2, 3 3)\n4 LINESTRING (3 3, 4 2)\n5 LINESTRING (4 2, 3 1)","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>LINESTRING (1 0, 5 0)</td>\n </tr>\n <tr>\n <th>1</th>\n <td>LINESTRING (4 0, 3 1)</td>\n </tr>\n <tr>\n <th>2</th>\n <td>LINESTRING (3 1, 2 2)</td>\n </tr>\n <tr>\n <th>3</th>\n <td>LINESTRING (2 2, 3 3)</td>\n </tr>\n <tr>\n <th>4</th>\n <td>LINESTRING (3 3, 4 2)</td>\n </tr>\n <tr>\n <th>5</th>\n <td>LINESTRING (4 2, 3 1)</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":4},{"id":"7234bd03-8060-461a-b0c6-ad981c001676","cell_type":"code","source":"frame.plot(lw=5, alpha=0.75, cmap=\"Paired\")","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:50.761166Z","iopub.execute_input":"2024-10-29T01:34:50.761252Z","iopub.status.idle":"2024-10-29T01:34:50.910849Z","shell.execute_reply.started":"2024-10-29T01:34:50.761245Z","shell.execute_reply":"2024-10-29T01:34:50.910595Z"},"trusted":true},"outputs":[{"execution_count":5,"output_type":"execute_result","data":{"text/plain":"<Axes: >"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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"},"metadata":{}}],"execution_count":5},{"id":"f2f7718f-2288-4cc2-947e-0ba8be707372","cell_type":"code","source":"sgeop.nodes.fix_topology(frame)","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:50.912245Z","iopub.execute_input":"2024-10-29T01:34:50.912337Z","iopub.status.idle":"2024-10-29T01:34:50.928642Z","shell.execute_reply.started":"2024-10-29T01:34:50.912328Z","shell.execute_reply":"2024-10-29T01:34:50.928389Z"},"trusted":true},"outputs":[{"execution_count":6,"output_type":"execute_result","data":{"text/plain":" geometry _status\n0.0 LINESTRING (3 1, 2 2, 3 3, 4 2, 3 1) None\n1.0 LINESTRING (4 0, 3 1) None\n6.0 LINESTRING (1 0, 4 0) changed\n7.0 LINESTRING (4 0, 5 0) changed","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 <th>_status</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0.0</th>\n <td>LINESTRING (3 1, 2 2, 3 3, 4 2, 3 1)</td>\n <td>None</td>\n </tr>\n <tr>\n <th>1.0</th>\n <td>LINESTRING (4 0, 3 1)</td>\n <td>None</td>\n </tr>\n <tr>\n <th>6.0</th>\n <td>LINESTRING (1 0, 4 0)</td>\n <td>changed</td>\n </tr>\n <tr>\n <th>7.0</th>\n <td>LINESTRING (4 0, 5 0)</td>\n <td>changed</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":6},{"id":"61cc39c6-72e4-4132-9636-64276f641ebd","cell_type":"code","source":"sgeop.nodes.fix_topology(frame).plot(lw=5, alpha=0.75, cmap=\"Paired\")","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:50.928947Z","iopub.execute_input":"2024-10-29T01:34:50.929025Z","iopub.status.idle":"2024-10-29T01:34:50.979610Z","shell.execute_reply.started":"2024-10-29T01:34:50.929018Z","shell.execute_reply":"2024-10-29T01:34:50.979343Z"},"trusted":true},"outputs":[{"execution_count":7,"output_type":"execute_result","data":{"text/plain":"<Axes: >"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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"},"metadata":{}}],"execution_count":7},{"id":"981aefc9-ce00-4c88-a9d5-c851bb4d6a04","cell_type":"markdown","source":"-------------------------\n## 2. triangle - correct node induction; correct loop order","metadata":{}},{"id":"85d67d69-c85c-4550-b1ea-8dc80b5a1363","cell_type":"code","source":"line2242 = shapely.LineString((p22, p42))\nframe = geopandas.GeoDataFrame(\n geometry=[\n line1050,\n line4031,\n line3122,\n line2242,\n line4231,\n ]\n)\nframe","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:50.979983Z","iopub.execute_input":"2024-10-29T01:34:50.980103Z","iopub.status.idle":"2024-10-29T01:34:50.989290Z","shell.execute_reply.started":"2024-10-29T01:34:50.980077Z","shell.execute_reply":"2024-10-29T01:34:50.989044Z"},"trusted":true},"outputs":[{"execution_count":8,"output_type":"execute_result","data":{"text/plain":" geometry\n0 LINESTRING (1 0, 5 0)\n1 LINESTRING (4 0, 3 1)\n2 LINESTRING (3 1, 2 2)\n3 LINESTRING (2 2, 4 2)\n4 LINESTRING (4 2, 3 1)","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>LINESTRING (1 0, 5 0)</td>\n </tr>\n <tr>\n <th>1</th>\n <td>LINESTRING (4 0, 3 1)</td>\n </tr>\n <tr>\n <th>2</th>\n <td>LINESTRING (3 1, 2 2)</td>\n </tr>\n <tr>\n <th>3</th>\n <td>LINESTRING (2 2, 4 2)</td>\n </tr>\n <tr>\n <th>4</th>\n <td>LINESTRING (4 2, 3 1)</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":8},{"id":"1433ab6c-8f84-422b-909e-4ba4f75a5c99","cell_type":"code","source":"frame.plot(lw=5, alpha=0.75, cmap=\"Paired\")","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:50.989747Z","iopub.execute_input":"2024-10-29T01:34:50.989894Z","iopub.status.idle":"2024-10-29T01:34:51.031117Z","shell.execute_reply.started":"2024-10-29T01:34:50.989879Z","shell.execute_reply":"2024-10-29T01:34:51.030888Z"},"trusted":true},"outputs":[{"execution_count":9,"output_type":"execute_result","data":{"text/plain":"<Axes: >"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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"},"metadata":{}}],"execution_count":9},{"id":"162a392f-7af1-4abf-9ed5-02152f724885","cell_type":"code","source":"sgeop.nodes.fix_topology(frame)","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.031491Z","iopub.execute_input":"2024-10-29T01:34:51.031564Z","iopub.status.idle":"2024-10-29T01:34:51.044894Z","shell.execute_reply.started":"2024-10-29T01:34:51.031556Z","shell.execute_reply":"2024-10-29T01:34:51.044684Z"},"trusted":true},"outputs":[{"execution_count":10,"output_type":"execute_result","data":{"text/plain":" geometry _status\n0.0 LINESTRING (3 1, 2 2, 4 2, 3 1) None\n1.0 LINESTRING (4 0, 3 1) None\n5.0 LINESTRING (1 0, 4 0) changed\n6.0 LINESTRING (4 0, 5 0) changed","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 <th>_status</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0.0</th>\n <td>LINESTRING (3 1, 2 2, 4 2, 3 1)</td>\n <td>None</td>\n </tr>\n <tr>\n <th>1.0</th>\n <td>LINESTRING (4 0, 3 1)</td>\n <td>None</td>\n </tr>\n <tr>\n <th>5.0</th>\n <td>LINESTRING (1 0, 4 0)</td>\n <td>changed</td>\n </tr>\n <tr>\n <th>6.0</th>\n <td>LINESTRING (4 0, 5 0)</td>\n <td>changed</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":10},{"id":"77b5e216-ce70-4f81-ba38-959277cc3846","cell_type":"code","source":"sgeop.nodes.fix_topology(frame).plot(lw=5, alpha=0.75, cmap=\"Paired\")","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.045198Z","iopub.execute_input":"2024-10-29T01:34:51.045290Z","iopub.status.idle":"2024-10-29T01:34:51.091017Z","shell.execute_reply.started":"2024-10-29T01:34:51.045282Z","shell.execute_reply":"2024-10-29T01:34:51.090788Z"},"trusted":true},"outputs":[{"execution_count":11,"output_type":"execute_result","data":{"text/plain":"<Axes: >"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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"},"metadata":{}}],"execution_count":11},{"id":"b1bfa970-625e-4e1d-bb75-5d636d35c44d","cell_type":"markdown","source":"-----------------------------------------------------------------------------\n## 3. diamond - correct node induction; correct loop order","metadata":{}},{"id":"5f1736bd-e69c-455a-b759-b77bf3dd63b3","cell_type":"code","source":"line403515 = shapely.LineString((p40, shapely.Point(3.5, 1.5)))\n\nframe = geopandas.GeoDataFrame(\n geometry=[\n line1050,\n line403515,\n line3122,\n line2233,\n line3342,\n line4231,\n ]\n)\nframe","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.091342Z","iopub.execute_input":"2024-10-29T01:34:51.091426Z","iopub.status.idle":"2024-10-29T01:34:51.095315Z","shell.execute_reply.started":"2024-10-29T01:34:51.091417Z","shell.execute_reply":"2024-10-29T01:34:51.095100Z"},"trusted":true},"outputs":[{"execution_count":12,"output_type":"execute_result","data":{"text/plain":" geometry\n0 LINESTRING (1 0, 5 0)\n1 LINESTRING (4 0, 3.5 1.5)\n2 LINESTRING (3 1, 2 2)\n3 LINESTRING (2 2, 3 3)\n4 LINESTRING (3 3, 4 2)\n5 LINESTRING (4 2, 3 1)","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>LINESTRING (1 0, 5 0)</td>\n </tr>\n <tr>\n <th>1</th>\n <td>LINESTRING (4 0, 3.5 1.5)</td>\n </tr>\n <tr>\n <th>2</th>\n <td>LINESTRING (3 1, 2 2)</td>\n </tr>\n <tr>\n <th>3</th>\n <td>LINESTRING (2 2, 3 3)</td>\n </tr>\n <tr>\n <th>4</th>\n <td>LINESTRING (3 3, 4 2)</td>\n </tr>\n <tr>\n <th>5</th>\n <td>LINESTRING (4 2, 3 1)</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":12},{"id":"efa6d74c-d6a8-4e45-8870-d8c649f59836","cell_type":"code","source":"frame.plot(lw=5, alpha=0.75, cmap=\"Paired\")","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.095657Z","iopub.execute_input":"2024-10-29T01:34:51.095728Z","iopub.status.idle":"2024-10-29T01:34:51.138117Z","shell.execute_reply.started":"2024-10-29T01:34:51.095720Z","shell.execute_reply":"2024-10-29T01:34:51.137888Z"},"trusted":true},"outputs":[{"execution_count":13,"output_type":"execute_result","data":{"text/plain":"<Axes: >"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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9Kc/HXZfE69dLOdn2rWTpKefflq//e1v9eqrr05of9OuYaznZ9I1XLZsmXbs2KEbb7xR7733nn7wgx/o85//vI4eParp06eP2T9d144AuYzH4wn52vr4g2Iv326isrIylZWVBb+urKxUV1eXHn30Udv9BbrUvffeq9dff10vvfTSuPuaeP0men6mXb+ysjIdOXJEf/rTn9TY2Ki1a9eqtbU14g9p065dLOdn2rXr6urSt771Le3fv1+5ubkTPs6UaxjP+Zl0DVetWhX858985jOqrKzU9ddfr5/97Geqq6sLe0w6rh0jmEvMmDFDPT09IdvOnj2rrKyssNXoBMuXL9fJkyfTvYyI7rvvPu3Zs0fNzc2aOXNm1H1NvH6xnF84dr5+OTk5uuGGG1RRUaGGhgYtWrRIP/7xj8Pua+K1i+X8wrHztTt8+LDOnj2r8vJyZWVlKSsrS62trdq8ebOysrI0PDw85hiTrmE85xeOna/hpa688kp95jOfibjWdF07XgG5RGVlpZ577rmQbfv371dFRYWys7PTtKrkam9vt91Lo9Jofd93333avXu3WlpaVFpaOu4xJl2/eM4vHLtev3Asy1J/f3/Y50y6dpFEO79w7Hztqqqqxrxr4mtf+5puuukmPfDAA8rMzBxzjEnXMJ7zC8fO1/BS/f39OnbsmFasWBH2+bRdu6Te4ppmFy5csNrb26329nZLkvWjH/3Iam9vt06fPm1ZlmU9+OCD1l133RXc/9SpU9YVV1xhffvb37befPNNa/v27VZ2drb1y1/+Ml2nEFWs5/dv//Zv1u7du63f//731u9+9zvrwQcftCRZjY2N6TqFiO655x7L5/NZLS0tVnd3d/Dx4YcfBvcx+frFc34mXb/6+nrrwIEDVkdHh/X6669bGzdutDIyMqz9+/dblmX2tbOs2M/PpGsXyeXvEjH9Gl5uvPMz6Rr+4z/+o9XS0mKdOnXKOnTokPWXf/mXVl5envX2229blmWfa+foAAm8beryx9q1ay3Lsqy1a9dat956a8gxLS0t1pIlS6ycnBxr9uzZ1pYtW1K/8AmK9fx++MMfWtdff72Vm5trTZ061br55putvXv3pmfx4wh3XpKsJ598MriPydcvnvMz6fp9/etft6677jorJyfHuvbaa62qqqrgD2fLMvvaWVbs52fStYvk8h/Qpl/Dy413fiZdwzvvvNMqKiqysrOzreLiYusrX/mKdfTo0eDzdrl2Hsv6+E4TAACAFOEmVAAAkHIECAAASDkCBAAApBwBAgAAUo4AAQAAKUeAAACAlCNAAABAyhEgAAAg5QgQAACQcgQIAABIOQIEAACkHAECAABS7v8DKRpUZnELKAMAAAAASUVORK5CYII="},"metadata":{}}],"execution_count":13},{"id":"ebe99715-699e-47b9-8019-6ec41fc0839e","cell_type":"code","source":"sgeop.nodes.fix_topology(frame)","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.138482Z","iopub.execute_input":"2024-10-29T01:34:51.138561Z","iopub.status.idle":"2024-10-29T01:34:51.152750Z","shell.execute_reply.started":"2024-10-29T01:34:51.138553Z","shell.execute_reply":"2024-10-29T01:34:51.152522Z"},"trusted":true},"outputs":[{"execution_count":14,"output_type":"execute_result","data":{"text/plain":" geometry _status\n0.0 LINESTRING (3.5 1.5, 3 1, 2 2, 3 3, 4 2, 3.5 1.5) changed\n1.0 LINESTRING (4 0, 3.5 1.5) None\n5.0 LINESTRING (1 0, 4 0) changed\n6.0 LINESTRING (4 0, 5 0) changed","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 <th>_status</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0.0</th>\n <td>LINESTRING (3.5 1.5, 3 1, 2 2, 3 3, 4 2, 3.5 1.5)</td>\n <td>changed</td>\n </tr>\n <tr>\n <th>1.0</th>\n <td>LINESTRING (4 0, 3.5 1.5)</td>\n <td>None</td>\n </tr>\n <tr>\n <th>5.0</th>\n <td>LINESTRING (1 0, 4 0)</td>\n <td>changed</td>\n </tr>\n <tr>\n <th>6.0</th>\n <td>LINESTRING (4 0, 5 0)</td>\n <td>changed</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":14},{"id":"9656dbc0-b555-406e-91af-775e1bf1deb3","cell_type":"code","source":"sgeop.nodes.fix_topology(frame).plot(lw=5, alpha=0.75, cmap=\"Paired\")","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.153095Z","iopub.execute_input":"2024-10-29T01:34:51.153261Z","iopub.status.idle":"2024-10-29T01:34:51.204332Z","shell.execute_reply.started":"2024-10-29T01:34:51.153251Z","shell.execute_reply":"2024-10-29T01:34:51.204097Z"},"trusted":true},"outputs":[{"execution_count":15,"output_type":"execute_result","data":{"text/plain":"<Axes: >"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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"},"metadata":{}}],"execution_count":15},{"id":"5965be70-2913-4621-8cc2-47cea98349b9","cell_type":"markdown","source":"------------------------------\n## 4. diamond - correct node induction; correct loop order","metadata":{}},{"id":"2e37bfcb-60e2-4f7a-b143-9a1008a8ff2e","cell_type":"code","source":"line42312233 = shapely.LineString((p42, p31, p22, p33, p42))\n\nframe = geopandas.GeoDataFrame(\n geometry=[\n line1050,\n line4031,\n line42312233,\n ]\n)\nframe","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.204750Z","iopub.execute_input":"2024-10-29T01:34:51.204827Z","iopub.status.idle":"2024-10-29T01:34:51.208675Z","shell.execute_reply.started":"2024-10-29T01:34:51.204819Z","shell.execute_reply":"2024-10-29T01:34:51.208465Z"},"trusted":true},"outputs":[{"execution_count":16,"output_type":"execute_result","data":{"text/plain":" geometry\n0 LINESTRING (1 0, 5 0)\n1 LINESTRING (4 0, 3 1)\n2 LINESTRING (4 2, 3 1, 2 2, 3 3, 4 2)","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>LINESTRING (1 0, 5 0)</td>\n </tr>\n <tr>\n <th>1</th>\n <td>LINESTRING (4 0, 3 1)</td>\n </tr>\n <tr>\n <th>2</th>\n <td>LINESTRING (4 2, 3 1, 2 2, 3 3, 4 2)</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":16},{"id":"c7fcae6f-3949-4d85-bae9-a2d5be21c1c4","cell_type":"code","source":"frame.plot(lw=5, alpha=0.75, cmap=\"Paired\")","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.209020Z","iopub.execute_input":"2024-10-29T01:34:51.209087Z","iopub.status.idle":"2024-10-29T01:34:51.251209Z","shell.execute_reply.started":"2024-10-29T01:34:51.209080Z","shell.execute_reply":"2024-10-29T01:34:51.250957Z"},"trusted":true},"outputs":[{"execution_count":17,"output_type":"execute_result","data":{"text/plain":"<Axes: >"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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"},"metadata":{}}],"execution_count":17},{"id":"a707e76f-a2dd-4c72-84a7-b088d847a712","cell_type":"code","source":"sgeop.nodes.fix_topology(frame)","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.251583Z","iopub.execute_input":"2024-10-29T01:34:51.251656Z","iopub.status.idle":"2024-10-29T01:34:51.264324Z","shell.execute_reply.started":"2024-10-29T01:34:51.251649Z","shell.execute_reply":"2024-10-29T01:34:51.264092Z"},"trusted":true},"outputs":[{"execution_count":18,"output_type":"execute_result","data":{"text/plain":" geometry _status\n0.0 LINESTRING (3 1, 2 2, 3 3, 4 2, 3 1) changed\n1.0 LINESTRING (4 0, 3 1) None\n2.0 LINESTRING (1 0, 4 0) changed\n3.0 LINESTRING (4 0, 5 0) changed","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 <th>_status</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0.0</th>\n <td>LINESTRING (3 1, 2 2, 3 3, 4 2, 3 1)</td>\n <td>changed</td>\n </tr>\n <tr>\n <th>1.0</th>\n <td>LINESTRING (4 0, 3 1)</td>\n <td>None</td>\n </tr>\n <tr>\n <th>2.0</th>\n <td>LINESTRING (1 0, 4 0)</td>\n <td>changed</td>\n </tr>\n <tr>\n <th>3.0</th>\n <td>LINESTRING (4 0, 5 0)</td>\n <td>changed</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":18},{"id":"e434e0c4-0877-45e3-b74a-f8736ab916ec","cell_type":"code","source":"sgeop.nodes.fix_topology(frame).plot(lw=5, alpha=0.75, cmap=\"Paired\")","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.264732Z","iopub.execute_input":"2024-10-29T01:34:51.264804Z","iopub.status.idle":"2024-10-29T01:34:51.315226Z","shell.execute_reply.started":"2024-10-29T01:34:51.264796Z","shell.execute_reply":"2024-10-29T01:34:51.314984Z"},"trusted":true},"outputs":[{"execution_count":19,"output_type":"execute_result","data":{"text/plain":"<Axes: >"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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"},"metadata":{}}],"execution_count":19},{"id":"7b4b436c-c7af-4536-b75c-7fe310d059c4","cell_type":"markdown","source":"------------------------------\n## 5. diamond - ***incorrect*** node induction; correct loop order – ***FIXED!***","metadata":{}},{"id":"816d9906-bab4-460c-ba13-a9e8ba78500b","cell_type":"code","source":"p10 = shapely.Point(1,0)\np20 = shapely.Point(2,0)\np30 = shapely.Point(3,0)\np50 = shapely.Point(5,0)\np21 = shapely.Point(2,1)\np32 = shapely.Point(3,2)\np41 = shapely.Point(4,1)","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.315617Z","iopub.execute_input":"2024-10-29T01:34:51.315692Z","iopub.status.idle":"2024-10-29T01:34:51.318184Z","shell.execute_reply.started":"2024-10-29T01:34:51.315684Z","shell.execute_reply":"2024-10-29T01:34:51.317909Z"},"trusted":true},"outputs":[],"execution_count":20},{"id":"f3a713a4-0754-4286-949a-5be97727c09c","cell_type":"code","source":"line1020 = shapely.LineString((p10, p20))\nline2040 = shapely.LineString((p20, p40))\nline4050 = shapely.LineString((p40, p50))\nline3041323130 = shapely.LineString((p30, p41, p32, p21, p30))","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.320606Z","iopub.execute_input":"2024-10-29T01:34:51.320697Z","iopub.status.idle":"2024-10-29T01:34:51.322509Z","shell.execute_reply.started":"2024-10-29T01:34:51.320690Z","shell.execute_reply":"2024-10-29T01:34:51.322298Z"},"trusted":true},"outputs":[],"execution_count":21},{"id":"5a80a261-d36c-441c-b550-b3e800e9169b","cell_type":"code","source":"frame = geopandas.GeoDataFrame(\n geometry=[\n line1020,\n line2040,\n line4050,\n line3041323130,\n ]\n)\nframe","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.322892Z","iopub.execute_input":"2024-10-29T01:34:51.323001Z","iopub.status.idle":"2024-10-29T01:34:51.326998Z","shell.execute_reply.started":"2024-10-29T01:34:51.322994Z","shell.execute_reply":"2024-10-29T01:34:51.326775Z"},"trusted":true},"outputs":[{"execution_count":22,"output_type":"execute_result","data":{"text/plain":" geometry\n0 LINESTRING (1 0, 2 0)\n1 LINESTRING (2 0, 4 0)\n2 LINESTRING (4 0, 5 0)\n3 LINESTRING (3 0, 4 1, 3 2, 2 1, 3 0)","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>LINESTRING (1 0, 2 0)</td>\n </tr>\n <tr>\n <th>1</th>\n <td>LINESTRING (2 0, 4 0)</td>\n </tr>\n <tr>\n <th>2</th>\n <td>LINESTRING (4 0, 5 0)</td>\n </tr>\n <tr>\n <th>3</th>\n <td>LINESTRING (3 0, 4 1, 3 2, 2 1, 3 0)</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":22},{"id":"7a10612b-6dfd-42e0-9f26-bb219b22b491","cell_type":"code","source":"frame.plot(lw=5, alpha=0.75, cmap=\"Paired\")","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.327336Z","iopub.execute_input":"2024-10-29T01:34:51.327410Z","iopub.status.idle":"2024-10-29T01:34:51.365430Z","shell.execute_reply.started":"2024-10-29T01:34:51.327402Z","shell.execute_reply":"2024-10-29T01:34:51.365196Z"},"trusted":true},"outputs":[{"execution_count":23,"output_type":"execute_result","data":{"text/plain":"<Axes: >"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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"},"metadata":{}}],"execution_count":23},{"id":"c26ffbc2-64fa-405c-a0e7-0f4bfe8267b5","cell_type":"code","source":"sgeop.nodes.fix_topology(frame)","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.365992Z","iopub.execute_input":"2024-10-29T01:34:51.366103Z","iopub.status.idle":"2024-10-29T01:34:51.378309Z","shell.execute_reply.started":"2024-10-29T01:34:51.366095Z","shell.execute_reply":"2024-10-29T01:34:51.378049Z"},"trusted":true},"outputs":[{"execution_count":24,"output_type":"execute_result","data":{"text/plain":" geometry _status\n0.0 LINESTRING (1 0, 2 0, 3 0) changed\n1.0 LINESTRING (3 0, 4 0, 5 0) changed\n4.0 LINESTRING (3 0, 4 1, 3 2, 2 1, 3 0) None","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 <th>_status</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0.0</th>\n <td>LINESTRING (1 0, 2 0, 3 0)</td>\n <td>changed</td>\n </tr>\n <tr>\n <th>1.0</th>\n <td>LINESTRING (3 0, 4 0, 5 0)</td>\n <td>changed</td>\n </tr>\n <tr>\n <th>4.0</th>\n <td>LINESTRING (3 0, 4 1, 3 2, 2 1, 3 0)</td>\n <td>None</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":24},{"id":"7b9292c7-22fe-4fda-bc77-4b1477ea505d","cell_type":"code","source":"sgeop.nodes.fix_topology(frame).plot(lw=5, alpha=0.75, cmap=\"Paired\")","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.378635Z","iopub.execute_input":"2024-10-29T01:34:51.378699Z","iopub.status.idle":"2024-10-29T01:34:51.460040Z","shell.execute_reply.started":"2024-10-29T01:34:51.378693Z","shell.execute_reply":"2024-10-29T01:34:51.459798Z"},"trusted":true},"outputs":[{"execution_count":25,"output_type":"execute_result","data":{"text/plain":"<Axes: >"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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"},"metadata":{}}],"execution_count":25},{"id":"8552a7eb-134e-4bfe-afe4-4d297815df11","cell_type":"markdown","source":"------------------------------\n## 6. diamond - ***incorrect*** node induction; ***incorrect*** loop order – ***FIXED!***","metadata":{}},{"id":"bd902ca1-0ba3-449f-a5c6-e62d857076d4","cell_type":"code","source":"line4132313041 = shapely.LineString((p41, p32, p21, p30, p41))\nframe = geopandas.GeoDataFrame(\n geometry=[\n line1020,\n line2040,\n line4050,\n line4132313041,\n ]\n)\nframe","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.460368Z","iopub.execute_input":"2024-10-29T01:34:51.460438Z","iopub.status.idle":"2024-10-29T01:34:51.464259Z","shell.execute_reply.started":"2024-10-29T01:34:51.460431Z","shell.execute_reply":"2024-10-29T01:34:51.464038Z"},"trusted":true},"outputs":[{"execution_count":26,"output_type":"execute_result","data":{"text/plain":" geometry\n0 LINESTRING (1 0, 2 0)\n1 LINESTRING (2 0, 4 0)\n2 LINESTRING (4 0, 5 0)\n3 LINESTRING (4 1, 3 2, 2 1, 3 0, 4 1)","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>LINESTRING (1 0, 2 0)</td>\n </tr>\n <tr>\n <th>1</th>\n <td>LINESTRING (2 0, 4 0)</td>\n </tr>\n <tr>\n <th>2</th>\n <td>LINESTRING (4 0, 5 0)</td>\n </tr>\n <tr>\n <th>3</th>\n <td>LINESTRING (4 1, 3 2, 2 1, 3 0, 4 1)</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":26},{"id":"d8759d53-c927-4b01-b32a-1d7c61ce0adb","cell_type":"code","source":"frame.plot(lw=5, alpha=0.75, cmap=\"Paired\")","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.464592Z","iopub.execute_input":"2024-10-29T01:34:51.464667Z","iopub.status.idle":"2024-10-29T01:34:51.503063Z","shell.execute_reply.started":"2024-10-29T01:34:51.464659Z","shell.execute_reply":"2024-10-29T01:34:51.502801Z"},"trusted":true},"outputs":[{"execution_count":27,"output_type":"execute_result","data":{"text/plain":"<Axes: >"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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rI17GO/6bNzDsrIydXZ26m9/+5saGxt13333qbW1Neo3bNv2z8n6bNu/np4ePfjgg2pqalJubm7c19m0h4ms0aZ9rK2tDf/vG2+8UVVVVbr22mv1m9/8RnV1dRGvcWP/eJnmAjNnzlRfX9+oc/39/crKyopYkF6wePFiHT582O1pxPTAAw9o9+7d2rt3r2bNmhVzrI176GR9kWT6Hk6ZMkXXXXedKisr1dDQoEWLFunnP/95xLE27p+T9UWSyfv39ttvq7+/XxUVFcrKylJWVpZaW1u1adMmZWVl6ezZs2OusW0PE1ljJJm8jxe67LLLdOONN0adq1v7x52RC1RVVemVV14Zda6pqUmVlZXKzs52aVap1dHRkZG3TaXzNf7AAw9o586damlpUWlp6bjX2LSHiawvkkzew0iMMRoeHo74OZv2L5pY64skk/evurp6zE9efP3rX9cNN9yg9evXa/LkyWOusW0PE1ljJJm8jxcaHh7WgQMHtGTJkoifd23/Uvp4rMsGBwdNR0eH6ejoMJLMU089ZTo6OszRo0eNMcY88sgj5p577gmPP3LkiLn00kvNww8/bN5//32zY8cOk52dbX73u9+5tYSYnK7vZz/7mdm5c6f54IMPzJ///GfzyCOPGEmmsbHRrSXE9J3vfMcUFBSYlpYW09vbGz7+/ve/h8fYvIeJrM+2Payvrzf79u0zXV1d5t133zUbNmwwkyZNMk1NTcYYu/fPGOfrs23/Irn4J01s38NIxlujTfv4ve99z7S0tJgjR46YN99803zlK18xeXl55sMPPzTGZM7+eTpGQj9+dfFx3333GWOMue+++8wdd9wx6pqWlhZTXl5upkyZYq655hqzdevW9E88Tk7X95Of/MRce+21Jjc311x55ZXmtttuM6+++qo7k49DpLVJMr/+9a/DY2zew0TWZ9sefuMb3zCzZ882U6ZMMVdddZWprq4Of6M2xu79M8b5+mzbv0gu/kZt+x5GMt4abdrHu+++2xQVFZns7GxTXFxs7rrrLrN///7w5zNl/wLGfPpkCgAAgAt4gBUAALiKGAEAAK4iRgAAgKuIEQAA4CpiBAAAuIoYAQAAriJGAACAq4gRAADgKmIEAAC4ihgBAACuIkYAAICr/j8vQNcllnUs2gAAAABJRU5ErkJggg=="},"metadata":{}}],"execution_count":27},{"id":"9fe62cad-89a1-4c80-9866-8a6cc0536495","cell_type":"code","source":"sgeop.nodes.fix_topology(frame)","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.503458Z","iopub.execute_input":"2024-10-29T01:34:51.503552Z","iopub.status.idle":"2024-10-29T01:34:51.515259Z","shell.execute_reply.started":"2024-10-29T01:34:51.503544Z","shell.execute_reply":"2024-10-29T01:34:51.515038Z"},"trusted":true},"outputs":[{"execution_count":28,"output_type":"execute_result","data":{"text/plain":" geometry _status\n0 LINESTRING (1 0, 2 0, 3 0) changed\n1 LINESTRING (3 0, 4 0, 5 0) changed\n2 LINESTRING (3 0, 4 1, 3 2, 2 1, 3 0) changed","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 <th>_status</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>LINESTRING (1 0, 2 0, 3 0)</td>\n <td>changed</td>\n </tr>\n <tr>\n <th>1</th>\n <td>LINESTRING (3 0, 4 0, 5 0)</td>\n <td>changed</td>\n </tr>\n <tr>\n <th>2</th>\n <td>LINESTRING (3 0, 4 1, 3 2, 2 1, 3 0)</td>\n <td>changed</td>\n </tr>\n </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":28},{"id":"14de4eb4-85de-430d-ab6a-17e250200e0d","cell_type":"code","source":"sgeop.nodes.fix_topology(frame).plot(lw=5, alpha=0.75, cmap=\"Paired\")","metadata":{"execution":{"iopub.status.busy":"2024-10-29T01:34:51.515608Z","iopub.execute_input":"2024-10-29T01:34:51.515687Z","iopub.status.idle":"2024-10-29T01:34:51.562079Z","shell.execute_reply.started":"2024-10-29T01:34:51.515678Z","shell.execute_reply":"2024-10-29T01:34:51.561840Z"},"trusted":true},"outputs":[{"execution_count":29,"output_type":"execute_result","data":{"text/plain":"<Axes: >"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAiMAAAEjCAYAAADgwgEsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAe2UlEQVR4nO3df3BU5eHv8c+GhKTVJEWU/LhEDIqRgmCaeCWWYKdpw4SWkcp07L296vSHU1rwV8pUQ+9oRzuTtuNYylChfIu9tbbqfBvh4kjnJjMlQWv8XmMTtIiUe40kV5KmWJuFWAOB5/5Bd8uS3c2eze6efc55v2bOjDl5DnmeedS8OXuyCRhjjAAAAFyS4/YEAACAvxEjAADAVcQIAABwFTECAABcRYwAAABXESMAAMBVxAgAAHBVrtsTSMTZs2d17NgxFRYWKhAIuD0dAACQAGOMTpw4ofLycuXkxL7/YUWMHDt2TBUVFW5PAwAAJGFwcFBz586N+XkrYqSwsFDSucUUFRW5PBsAAJCIYDCoioqK8PfxWKyIkdBLM0VFRcQIAACWmeoRCx5gBQAAriJGAACAq4gRAADgKmIEAAC4ihgBAACuchQjra2tuv7661VYWKg5c+ZozZo1Onz48JTXdXV1qaamRgUFBZo/f762b9+e9IQBeMPEh2Pq7/iNDvzbgzqw83saOfCSjDFuTwuACxzFSFdXl9avX69XXnlFHR0dmpiYUGNjo8bGxmJe09/fr1WrVqm+vl69vb3atGmT7r77brW1tU178gDs9OH7I+rb8d917D/+l07+5ahODvXryPP/psP/vkVnz0y4PT0AGRYw0/iryF//+lfNmTNHXV1dWrFiRdQx999/v/bs2aNDhw6Fz61bt04HDhxQd3d3Ql8nGAyquLhYo6OjvM8IYLkP3x/Rn37VqvHg36J+/pKrq1W1doNyZljxNkgA4kj0+/e0nhkZHR2VJF1yySUxx3R3d6uxsTHi3MqVK9XT06PTp09HvWZ8fFzBYDDiAGC/qUJEkv72514dbtvKHRLAR5KOEWOMmpubtXz5ci1evDjmuOHhYZWUlEScKykp0cTEhI4fPx71mtbWVhUXF4cPfi8NYL9EQiSEIAH8JekY2bBhg15//XU9/fTTU4698G1gQ68MxXp72JaWFo2OjoaPwcHBZKcJIAs4CZEQggTwj6Ri5K677tKePXu0b9++uL+FT5JKS0s1PDwccW5kZES5ubmaPXt21Gvy8/PDv4eG30cD2C2ZEAkhSAB/cBQjxhht2LBBzz33nH7/+9+rsrJyymvq6urU0dERca69vV21tbXKy8tzNlsAVplOiIQQJID3OYqR9evX66mnntJvfvMbFRYWanh4WMPDw/rHP/4RHtPS0qLbb789/PG6det09OhRNTc369ChQ3riiSe0c+dObdy4MXWrAJB1Eg2Ri8sqlVtwUdwxBAngbY5iZNu2bRodHdWnPvUplZWVhY9nn302PGZoaEgDAwPhjysrK7V37151dnbquuuu0yOPPKItW7Zo7dq1qVsFgKySaIgUVVytRf/tfi368ncIEsDHpvU+I5nC+4wA9nASIgu/1Kzc/I9Ikk4OvaODv/6RJj6M/SaKEu9DAtgkI+8zAgDnSzZEJOnisiu4QwL4FDECICWmEyIhBAngT8QIgGlLRYiEECSA/xAjAKYllSESQpAA/kKMAEhaOkIkhCAB/IMYAZCUdIZICEEC+AMxAsCxTIRICEECeB8xAsCRTIZICEECeBsxAiBhboRICEECeBcxAiAhboZICEECeBMxAmBK2RAiIQQJ4D3ECIC4silEQggSwFuIEQAxZWOIhBAkgHcQIwCiyuYQCSFIAG8gRgBMYkOIhBAkgP2IEQARbAqREIIEsBsxAiDMxhAJIUgAexEjACTZHSIhBAlgJ2IEgCdCJIQgAexDjAA+56UQCSFIALsQI4CPeTFEQggSwB7ECOBTXg6REIIEsAMxAviQH0IkhCABsh8xAviMn0IkhCABshsxAviIH0MkhCABshcxAviEn0MkhCABshMxAvgAIfIvBAmQfYgRwOMIkckIEiC7ECOAhxEisREkQPYgRgCPIkSmRpAA2YEYATyIEEkcQQK4jxgBPIYQcY4gAdxFjAAeQogkjyAB3EOMAB5BiEwfQQK4gxgBPIAQSR2CBMg8YgSwHCGSegQJkFnECGAxQiR9CBIgc4gRwFKESPoRJEBmECOAhQiRzCFIgPQjRgDLECKZR5AA6UWMABYhRNxDkADpQ4wAliBE3EeQAOlBjAAWIESyB0ECpB4xAmQ5QiT7ECRAahEjQBYjRLIXQQKkjuMY2b9/v1avXq3y8nIFAgHt3r077vjOzk4FAoFJx1tvvZXsnAFfIESyH0ECpIbjGBkbG9PSpUu1detWR9cdPnxYQ0ND4WPBggVOvzTgG4SIPQgSYPpynV7Q1NSkpqYmx19ozpw5+tjHPub4OsBvCBH7hILk4K9/pIkPx2KOCwVJ1doNypnh+H+/gGdl7JmR6upqlZWVqaGhQfv27Ys7dnx8XMFgMOIA/IAQsRd3SIDkpT1GysrKtGPHDrW1tem5555TVVWVGhoatH///pjXtLa2qri4OHxUVFSke5qA6wgR+xEkQHICxhiT9MWBgHbt2qU1a9Y4um716tUKBALas2dP1M+Pj49rfHw8/HEwGFRFRYVGR0dVVFSU7HSBrEWIeMvJoXemfMlGki65upqXbOBpwWBQxcXFU37/duVHe5ctW6YjR47E/Hx+fr6KiooiDsCrCBHv4Q4J4IwrMdLb26uysjI3vjSQVQgR7yJIgMQ5jpGTJ0+qr69PfX19kqT+/n719fVpYGBAktTS0qLbb789PH7z5s3avXu3jhw5ooMHD6qlpUVtbW3asGFDalYAWIoQ8T6CBEiM4xjp6elRdXW1qqurJUnNzc2qrq7Wgw8+KEkaGhoKh4kknTp1Shs3btSSJUtUX1+vl156SS+88IJuueWWFC0BsA8h4h8ECTC1aT3AmimJPgAD2IAQ8SceaoUfZfUDrIBfESL+xR0SIDZiBMgQQgQECRAdMQJkACGCEIIEmIwYAdKMEMGFCBIgEjECpBEhglgIEuBfiBEgTQgRTIUgAc4hRoA0IESQKIIEIEaAlCNE4BRBAr8jRoAUIkSQLIIEfkaMAClCiGC6CBL4FTECpAAhglQhSOBHxAgwTYQIUo0ggd8QI8A0ECJIF4IEfkKMAEkiRJBuBAn8ghgBkkCIIFMIEvgBMQI4RIgg0wgSeB0xAjhAiMAtBAm8jBgBEkSIwG0ECbyKGAESQIggWxAk8CJiBJgCIYJsQ5DAa4gRIA5CBNmKIIGXECNADIQIsh1BAq8gRoAoCBHYgiCBFxAjwAUIEdiGIIHtiBHgPIQIbEWQwGbECPBPhAhsR5DAVsQIIEIE3kGQwEbECHyPEIHXECSwDTECXyNE4FUECWxCjMC3CBF4HUECWxAj8CVCBH5BkMAGxAh8hxCB3xAkyHbECHyFEIFfESTIZsQIfIMQgd8RJMhWxAh8gRABziFIkI2IEXgeIQJEIkiQbYgReBohAkRHkCCbECPwLEIEiI8gQbYgRuBJhAiQGIIE2YAYgecQIoAzBAncRozAUwgRIDkECdxEjMAzCBFgeggSuIUYgScQIkBqECRwAzEC6xEiQGoRJMg0YgRWI0SA9CBIkEnECKxFiADpRZAgUxzHyP79+7V69WqVl5crEAho9+7dU17T1dWlmpoaFRQUaP78+dq+fXsycwXCCBEgM5wGiTl7JkMzg5c4jpGxsTEtXbpUW7duTWh8f3+/Vq1apfr6evX29mrTpk26++671dbW5niygCQZY/R/9/4PQgTIECdBMvza7zM0K3hJrtMLmpqa1NTUlPD47du36/LLL9fmzZslSQsXLlRPT48effRRrV27Nuo14+PjGh8fD38cDAadThMeNjZ8VH/vPxh3DCECpFYoSA7++kea+HAs5rj/94cXVHb9ZzM4M3hB2p8Z6e7uVmNjY8S5lStXqqenR6dPn456TWtrq4qLi8NHRUVFuqcJi5w9fWrKMWXXf5YQAVLsotJ5mnXV0rhjzk5M/d8ncKG0x8jw8LBKSkoizpWUlGhiYkLHjx+Pek1LS4tGR0fDx+DgYLqnCYsUXFKiGXn5cccc+Z8/0/v/5/UMzQjwPmOM3un4jf76p5fjjruodF6GZgQvychP0wQCgYiPjTFRz4fk5+erqKgo4gBCZl5crIr6m+OOOXtmQm/9+08IEiAFQiFy7H+3xx0XyJmhys/+1wzNCl6S9hgpLS3V8PBwxLmRkRHl5uZq9uzZ6f7y8KjyulVTvi5NkADT5yRErvni3bqohJfV4VzaY6Surk4dHR0R59rb21VbW6u8vLx0f3l4VCAQUGXjlwkSII2chsglC67LzMTgOY5j5OTJk+rr61NfX5+kcz+629fXp4GBAUnnnve4/fbbw+PXrVuno0ePqrm5WYcOHdITTzyhnTt3auPGjalZAXyLIAHShxBBJjmOkZ6eHlVXV6u6ulqS1NzcrOrqaj344IOSpKGhoXCYSFJlZaX27t2rzs5OXXfddXrkkUe0ZcuWmD/WCzhBkACpR4gg0wIm9DRpFgsGgyouLtbo6CgPsyIqY4z623+toVc74o7LmZGra754j2ZdtSRDMwPsQogglRL9/s3vpoEncIcEmD5CBG4hRuAZBAmQPEIEbiJG4CkECeAcIQK3ESPwHIIESBwhgmxAjMCTCBJgaoQIsgUxAs8iSIDYCBFkE2IEnkaQAJMRIsg2xAg8jyAB/oUQQTYiRuALBAlAiCB7ESPwDYIEfkaIIJsRI/AVggR+RIgg2xEj8B2CBH5CiMAGxAh8iSCBHxAisAUxAt8iSOBlhAhsQozA1wgSeBEhAtsQI/A9ggReQojARsQIIIIE3kCIwFbECPBPBAlsRojAZsQIcB6CBDYiRGA7YgS4AEECmxAi8AJiBIiCIIENCBF4BTECxECQIJsRIvASYgSIgyBBNiJE4DXECDAFggTZhBCBFxEjQAIIEmQDQgReRYwACSJI4CZCBF5GjAAOECRwAyECryNGAIcIEmQSIQI/IEaAJBAkyARCBH5BjABJIkiQToQI/IQYAaaBIEE6ECLwG2IEmCaCBKlEiMCPiBEgBQgSpAIhAr8iRoAUIUgwHYQI/IwYAVKIIEEyCBH4HTECpBhBAicIEYAYAdKCIEEiCBHgHGIESBOCBPEQIsC/ECNAGhEkiIYQASIRI0CaESQ4HyECTEaMABlAkEAiRIBYiBEgQwgSfyNEgNiIESCDCBJ/IkSA+IgRIMMIEn8hRICpESOACwgSfyBEgMQkFSOPP/64KisrVVBQoJqaGr344osxx3Z2dioQCEw63nrrraQnDXgBQeJthAiQOMcx8uyzz+ree+/Vd7/7XfX29qq+vl5NTU0aGBiIe93hw4c1NDQUPhYsWJD0pAGvIEi8iRABnHEcI4899pi+9rWv6etf/7oWLlyozZs3q6KiQtu2bYt73Zw5c1RaWho+ZsyYkfSkAS8hSLyFEAGccxQjp06d0muvvabGxsaI842NjXr55ZfjXltdXa2ysjI1NDRo3759cceOj48rGAxGHICXESTeQIgAyXEUI8ePH9eZM2dUUlIScb6kpETDw8NRrykrK9OOHTvU1tam5557TlVVVWpoaND+/ftjfp3W1lYVFxeHj4qKCifTBKxEkNiNEAGSl5vMRYFAIOJjY8ykcyFVVVWqqqoKf1xXV6fBwUE9+uijWrFiRdRrWlpa1NzcHP44GAwSJPCFUJBI0tCrHTHHhYLkmi/eo1lXLcnU9BADIQJMj6M7I5deeqlmzJgx6S7IyMjIpLsl8SxbtkxHjhyJ+fn8/HwVFRVFHIBfcIfELoQIMH2OYmTmzJmqqalRR0fk39g6Ojp04403Jvzn9Pb2qqyszMmXBnyFILEDIQKkhuOXaZqbm3XbbbeptrZWdXV12rFjhwYGBrRu3TpJ515ieffdd/Xkk09KkjZv3qwrrrhCixYt0qlTp/TUU0+pra1NbW1tqV0J4DG8ZJPdCBEgdRzHyK233qr33ntPDz/8sIaGhrR48WLt3btX8+bNkyQNDQ1FvOfIqVOntHHjRr377rv6yEc+okWLFumFF17QqlWrUrcKwKMIkuxEiACpFTDGGLcnMZVgMKji4mKNjo7y/Ah8yRij/vZfxw0SScqZkUuQpBkhAiQu0e/f/G4awAI8Q5IdCBEgPYgRwBIEibsIESB9iBHAIgSJOwgRIL2IEcAyBElmESJA+hEjgIUIkswgRIDMIEYASxEk6UWIAJlDjAAWI0jSgxABMosYASxHkKQWIQJkHjECeABBkhqECOAOYgTwCIJkeggRwD3ECOAhBElyCBHAXcQI4DEEiTOECOA+YgTwIIIkMYQIkB2IEcCjCJL4CBEgexAjgIcRJNERIkB2IUYAjyNIIhEiQPYhRgAfIEjOIUSA7ESMAD7h9yAhRIDsRYwAPuLXICFEgOxGjAA+47cgIUSA7EeMAD7klyAhRAA7ECOAT3k9SAgRwB7ECOBjXg0SQgSwCzEC+JzXgoQQAexDjADwTJAQIoCdiBEAkuwPEkIEsBcxAiDM1iAhRAC7ESMAItgWJIQIYD9iBMAktgQJIQJ4AzECIKpsDxJCBPAOYgRATNkaJIQI4C3ECIC4si1ICBHAe4gRAFPKliAhRABvIkYAJMTtICFEAO8iRgAkzK0gIUQAbyNGADiS6SAhRADvI0YAOJapICFEAH8gRgAkJd1BQogA/kGMAEhauoKEEAH8hRgBMC2pDhJCBPAfYgTAtKUqSAgRwJ+IEQApMd0gIUQA/yJGAKRMskFCiAD+RowASCnnQXKAEAF8LtftCQDwnlCQSNLQqx0xx509M6E3n3ls6j+PEAE8Lak7I48//rgqKytVUFCgmpoavfjii3HHd3V1qaamRgUFBZo/f762b9+e1GQB2CPROyRT/jmECOB5ju+MPPvss7r33nv1+OOP65Of/KR+9rOfqampSW+++aYuv/zySeP7+/u1atUq3XnnnXrqqaf0hz/8Qd/61rd02WWXae3atSlZxHT0vzem/vc/cHsagGeZ+Y06/deTOvPm/phjLtIHyjt7ctL5QCBHVfXL9LEPXtbZAy+nc5qArwVKahUo/c/ufX1jjHFywQ033KBPfOIT2rZtW/jcwoULtWbNGrW2tk4af//992vPnj06dOhQ+Ny6det04MABdXd3J/Q1g8GgiouLNTo6qqKiIifTndLb742p/2/ECJBOxhhN/MdzmjgUPUgu1pjyzoxFnAvkBFRVf4NmlZdmYoqArwVKrleg7IaU/7mJfv929DLNqVOn9Nprr6mxsTHifGNjo15+OfrfWrq7uyeNX7lypXp6enT69Omo14yPjysYDEYcAOwVCASUe8Mtyl24IrHxhAjgK45i5Pjx4zpz5oxKSkoizpeUlGh4eDjqNcPDw1HHT0xM6Pjx41GvaW1tVXFxcfioqKhwMk0AWShqkASkvOX/RUXzF/7rFCEC+E5SD7AGAoGIj40xk85NNT7a+ZCWlhaNjo6Gj8HBwWSmCSDLRARJQMpb/mXlLlim/7SiSZfOm0uIAD7l6AHWSy+9VDNmzJh0F2RkZGTS3Y+Q0tLSqONzc3M1e/bsqNfk5+crPz/fydQAWCIUJDOurFXOZfPOncvJ0VXLPqGyqit18exZLs8QQKY5ipGZM2eqpqZGHR0d+sIXvhA+39HRoZtvvjnqNXV1dXr++ecjzrW3t6u2tlZ5eXlJTDm1ApLi3NQBkAaBQECaM+/8MwrMyNXFl0b/CwqANHP5G6HjH+1tbm7WbbfdptraWtXV1WnHjh0aGBjQunXrJJ17ieXdd9/Vk08+KencT85s3bpVzc3NuvPOO9Xd3a2dO3fq6aefTu1KklQ5+yJVzr7I7WkAPneZpOVuTwKASxzHyK233qr33ntPDz/8sIaGhrR48WLt3btX8+ad+1vO0NCQBgYGwuMrKyu1d+9e3XffffrpT3+q8vJybdmyJSveYwQAALjP8fuMuCGd7zMCAADSIy3vMwIAAJBqxAgAAHAVMQIAAFzl+AFWN4Qea+Ft4QEAsEfo+/ZUj6daESMnTpyQJN4WHgAAC504cULFxcUxP2/FT9OcPXtWx44dU2FhYdy3nXcqGAyqoqJCg4ODnv0pHa+vkfXZz+tr9Pr6JO+vkfUlzxijEydOqLy8XDk5sZ8MseLOSE5OjubOnZu2P7+oqMiT/4Kdz+trZH328/oavb4+yftrZH3JiXdHJIQHWAEAgKuIEQAA4Cpfx0h+fr4eeughT/+GYK+vkfXZz+tr9Pr6JO+vkfWlnxUPsAIAAO/y9Z0RAADgPmIEAAC4ihgBAACuIkYAAICriBEAAOAqT8fI/v37tXr1apWXlysQCGj37t1TXtPV1aWamhoVFBRo/vz52r59e/onmiSn6+vs7FQgEJh0vPXWW5mZsEOtra26/vrrVVhYqDlz5mjNmjU6fPjwlNfZsofJrM+2Pdy2bZuWLFkSfmfHuro6/e53v4t7jS37Jzlfn237d6HW1lYFAgHde++9ccfZtIcXSmSNNu3j9773vUnzLC0tjXuNG/vn6RgZGxvT0qVLtXXr1oTG9/f3a9WqVaqvr1dvb682bdqku+++W21tbWmeaXKcri/k8OHDGhoaCh8LFixI0wynp6urS+vXr9crr7yijo4OTUxMqLGxUWNjYzGvsWkPk1lfiC17OHfuXP3gBz9QT0+Penp69OlPf1o333yzDh48GHW8TfsnOV9fiC37d75XX31VO3bs0JIlS+KOs20Pz5foGkNs2cdFixZFzPONN96IOda1/TM+Icns2rUr7pjvfOc75pprrok4941vfMMsW7YsjTNLjUTWt2/fPiPJvP/++xmZU6qNjIwYSaarqyvmGJv3MJH12b6Hxhgza9Ys8/Of/zzq52zev5B467N1/06cOGEWLFhgOjo6zE033WTuueeemGNt3UMna7RpHx966CGzdOnShMe7tX+evjPiVHd3txobGyPOrVy5Uj09PTp9+rRLs0q96upqlZWVqaGhQfv27XN7OgkbHR2VJF1yySUxx9i8h4msL8TGPTxz5oyeeeYZjY2Nqa6uLuoYm/cvkfWF2LZ/69ev1+c+9zl95jOfmXKsrXvoZI0htuzjkSNHVF5ersrKSn3pS1/S22+/HXOsW/tnxW/tzZTh4WGVlJREnCspKdHExISOHz+usrIyl2aWGmVlZdqxY4dqamo0Pj6uX/3qV2poaFBnZ6dWrFjh9vTiMsaoublZy5cv1+LFi2OOs3UPE12fjXv4xhtvqK6uTh9++KEuvvhi7dq1Sx//+MejjrVx/5ysz8b9e+aZZ/THP/5Rr776akLjbdxDp2u0aR9vuOEGPfnkk7r66qv1l7/8Rd///vd144036uDBg5o9e/ak8W7tHzFygUAgEPGx+ee75V943kZVVVWqqqoKf1xXV6fBwUE9+uijWfcf0IU2bNig119/XS+99NKUY23cw0TXZ+MeVlVVqa+vT3//+9/V1tamO+64Q11dXTG/Ydu2f07WZ9v+DQ4O6p577lF7e7sKCgoSvs6mPUxmjTbtY1NTU/ifr732WtXV1enKK6/UL3/5SzU3N0e9xo3942Wa85SWlmp4eDji3MjIiHJzc6MWpBcsW7ZMR44ccXsacd11113as2eP9u3bp7lz58Yda+MeOllfNNm+hzNnztRVV12l2tpatba2aunSpfrJT34SdayN++dkfdFk8/699tprGhkZUU1NjXJzc5Wbm6uuri5t2bJFubm5OnPmzKRrbNvDZNYYTTbv4/kuuugiXXvttTHn6tb+cWfkPHV1dXr++ecjzrW3t6u2tlZ5eXkuzSq9ent7s/K2qXSuxu+66y7t2rVLnZ2dqqysnPIam/YwmfVFk817GI0xRuPj41E/Z9P+xRJvfdFk8/41NDRM+smLr3zlK7rmmmt0//33a8aMGZOusW0Pk1ljNNm8j+cbHx/XoUOHVF9fH/Xzru1fWh+PddmJEydMb2+v6e3tNZLMY489Znp7e83Ro0eNMcY88MAD5rbbbguPf/vtt81HP/pRc99995k333zT7Ny50+Tl5Znf/va3bi0hLqfr+/GPf2x27dpl/vznP5s//elP5oEHHjCSTFtbm1tLiOub3/ymKS4uNp2dnWZoaCh8fPDBB+ExNu9hMuuzbQ9bWlrM/v37TX9/v3n99dfNpk2bTE5OjmlvbzfG2L1/xjhfn237F82FP2li+x5GM9UabdrHb3/726azs9O8/fbb5pVXXjGf//znTWFhoXnnnXeMMdmzf56OkdCPX1143HHHHcYYY+644w5z0003RVzT2dlpqqurzcyZM80VV1xhtm3blvmJJ8jp+n74wx+aK6+80hQUFJhZs2aZ5cuXmxdeeMGdyScg2tokmV/84hfhMTbvYTLrs20Pv/rVr5p58+aZmTNnmssuu8w0NDSEv1EbY/f+GeN8fbbtXzQXfqO2fQ+jmWqNNu3jrbfeasrKykxeXp4pLy83t9xyizl48GD489myfwFj/vlkCgAAgAt4gBUAALiKGAEAAK4iRgAAgKuIEQAA4CpiBAAAuIoYAQAAriJGAACAq4gRAADgKmIEAAC4ihgBAACuIkYAAICr/j85V8UvHZqnnwAAAABJRU5ErkJggg=="},"metadata":{}}],"execution_count":29}]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment