{ "cells": [ { "cell_type": "markdown", "id": "4dc8b5b9755684aa", "metadata": {}, "source": [ "# Coverage zones\n", "\n", "This notebook builds coverage zones of the example services on an intermodal `UrbanGraph`: every place is assigned\n", "to the service it reaches at the lowest network cost within a budget, so zones do not overlap. It shows\n", "\n", "- `get_graph_coverage` by distance (800 m) and by time (10 min);\n", "- `get_stepped_graph_coverage` in bands of 2 minutes, as Voronoi cells and as separate buffers;\n", "- the graph-free `get_radius_coverage`.\n", "\n", "The method is described on the [coverage page](../coverage.rst). The interactive maps show a light copy of every result\n", "(`for_map`: outlines simplified by 2 m), which keeps the notebook small.\n", "\n", "The last section, *Your own area*, shows what to replace to get the same pictures for another territory." ] }, { "cell_type": "code", "execution_count": 1, "id": "db56d2861ab407be", "metadata": { "ExecuteTime": { "end_time": "2026-07-10T10:05:52.330251Z", "start_time": "2026-07-10T10:05:52.325735Z" }, "execution": { "iopub.execute_input": "2026-11-06T16:15:52.509926Z", "iopub.status.busy": "2026-11-06T16:15:52.508921Z", "iopub.status.idle": "2026-11-06T16:15:52.513095Z", "shell.execute_reply": "2026-11-06T16:15:52.513095Z" } }, "outputs": [], "source": [ "# Install required packages (uncomment if needed)\n", "# !pip install iduedu pyarrow objectnat" ] }, { "cell_type": "code", "execution_count": 2, "id": "d568e9b461c6086a", "metadata": { "ExecuteTime": { "end_time": "2026-07-10T10:06:00.545968Z", "start_time": "2026-07-10T10:05:52.332766Z" }, "execution": { "iopub.execute_input": "2026-11-06T16:15:52.514099Z", "iopub.status.busy": "2026-11-06T16:15:52.514099Z", "iopub.status.idle": "2026-11-06T16:15:55.277734Z", "shell.execute_reply": "2026-11-06T16:15:55.277734Z" } }, "outputs": [], "source": [ "import geopandas as gpd\n", "import iduedu\n", "from iduedu import get_4326_boundary, get_intermodal_graph\n", "\n", "from objectnat import get_graph_coverage, get_radius_coverage, get_stepped_graph_coverage" ] }, { "cell_type": "code", "execution_count": 3, "id": "9e307cbd", "metadata": { "execution": { "iopub.execute_input": "2026-11-06T16:15:55.279796Z", "iopub.status.busy": "2026-11-06T16:15:55.279796Z", "iopub.status.idle": "2026-11-06T16:15:55.411469Z", "shell.execute_reply": "2026-11-06T16:15:55.411469Z" } }, "outputs": [], "source": [ "import folium\n", "\n", "\n", "def for_map(gdf, tolerance=2.0):\n", " \"\"\"A light copy for a web map: outlines simplified by `tolerance` metres, coordinates rounded to about 10 cm.\"\"\"\n", " local = gdf.to_crs(gdf.estimate_utm_crs())\n", " local[\"geometry\"] = local.simplify(tolerance)\n", " light = local.to_crs(4326)\n", " light[\"geometry\"] = light.geometry.set_precision(1e-6)\n", " return light[~light.is_empty]\n", "\n", "def grey_tiles():\n", " \"\"\"Light grey base map (Esri World Light Gray); its tiles end at zoom 16 and are stretched beyond it.\"\"\"\n", " return folium.TileLayer(\"Esri.WorldGrayCanvas\", max_zoom=19, max_native_zoom=16)" ] }, { "cell_type": "markdown", "id": "5084078ebb6beef2", "metadata": {}, "source": [ "## 1. Intermodal graph" ] }, { "cell_type": "code", "execution_count": 4, "id": "initial_id", "metadata": { "ExecuteTime": { "end_time": "2026-07-10T10:06:04.759829Z", "start_time": "2026-07-10T10:06:00.601794Z" }, "collapsed": true, "execution": { "iopub.execute_input": "2026-11-06T16:15:55.413525Z", "iopub.status.busy": "2026-11-06T16:15:55.413525Z", "iopub.status.idle": "2026-11-06T16:16:01.228856Z", "shell.execute_reply": "2026-11-06T16:16:01.228856Z" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "7f61903f300c47a29258b24e42288318", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Parsing ground PT routes: 0%| | 0/57 [00:00
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Calculate coverage zones by distance (800m cutoff)\n", "result_length = get_graph_coverage(\n", " G_intermodal,\n", " gdf_destinations=services,\n", " weight_type=\"length_meter\",\n", " weight_value_cutoff=800,\n", ")\n", "\n", "# Coverage results are indexed like the input services. Join service attributes\n", "# back by index before coloring or filtering by service columns such as \"name\".\n", "result_length = result_length.join(services[['name']], how=\"left\")\n", "\n", "# Visualize results\n", "for_map(result_length).explore(column='name', legend=False, tiles=grey_tiles())" ] }, { "cell_type": "markdown", "id": "5f8d6888bdbf4716", "metadata": {}, "source": [ "## 4. Coverage by time\n", "\n", "Zones within 10 minutes (`weight_type=\"time_min\"`), clipped to the district boundary with `zone`." ] }, { "cell_type": "code", "execution_count": 7, "id": "3fe99dad99d0c066", "metadata": { "ExecuteTime": { "end_time": "2026-07-10T10:06:53.475685Z", "start_time": "2026-07-10T10:06:52.513709Z" }, "execution": { "iopub.execute_input": "2026-11-06T16:16:06.695256Z", "iopub.status.busy": "2026-11-06T16:16:06.695256Z", "iopub.status.idle": "2026-11-06T16:16:07.523450Z", "shell.execute_reply": "2026-11-06T16:16:07.523450Z" } }, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Prepare zone boundary\n", "zone = gpd.GeoDataFrame(geometry=[poly], crs=4326)\n", "\n", "# Calculate coverage zones by time (10min cutoff)\n", "result_time = get_graph_coverage(\n", " G_intermodal,\n", " gdf_destinations=services,\n", " weight_type=\"time_min\",\n", " weight_value_cutoff=10,\n", " zone=zone,\n", ")\n", "\n", "# Coverage results preserve the input service index, so service attributes can\n", "# be joined back by index for visualization.\n", "result_time = result_time.join(services[['name']], how=\"left\")\n", "\n", "# Visualize results\n", "for_map(result_time).explore(column='name', legend=False, tiles=grey_tiles())" ] }, { "cell_type": "markdown", "id": "ac980132a47eb200", "metadata": {}, "source": [ "### Parameters used\n", "\n", "- `weight_type`: `\"length_meter\"` (metres) or `\"time_min\"` (minutes);\n", "- `weight_value_cutoff`: the budget, in the units of `weight_type`;\n", "- `zone` (optional): polygon the zones are clipped to; without it they are clipped to the concave hull of the\n", " reachable nodes;\n", "- `geometry_type` (optional): `\"radius\"` or `\"ways\"` additionally clips the zones to residual-distance buffers or to\n", " the buffered streets." ] }, { "cell_type": "markdown", "id": "f6965db2be4d9e73", "metadata": {}, "source": [ "## 5. Stepped coverage by time\n", "\n", "The covered area split into bands of 2 minutes up to 15 minutes, with two values of `geometry_type`:\n", "\n", "- `None`: Voronoi cells of the graph nodes;\n", "- `\"separate\"`: independent buffers per band, without Voronoi cells.\n", "\n", "`\"radius\"` and `\"ways\"` clip the same Voronoi bands to the residual-distance buffers or to the buffered streets, as\n", "in the [isochrones notebook](isochrones.ipynb)." ] }, { "cell_type": "code", "execution_count": 8, "id": "4f8d216ed2c9b472", "metadata": { "ExecuteTime": { "end_time": "2026-07-10T10:06:11.525010Z", "start_time": "2026-07-10T10:06:10.205946Z" }, "execution": { "iopub.execute_input": "2026-11-06T16:16:07.525534Z", "iopub.status.busy": "2026-11-06T16:16:07.525534Z", "iopub.status.idle": "2026-11-06T16:16:08.733399Z", "shell.execute_reply": "2026-11-06T16:16:08.733399Z" } }, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stepped_cov_voronoi = get_stepped_graph_coverage(\n", " G_intermodal,\n", " gdf_destinations=services,\n", " weight_type=\"time_min\",\n", " geometry_type=None,\n", " weight_value_cutoff=15,\n", " step=2,\n", " zone=zone,\n", ")\n", "# Visualize stepped coverage\n", "for_map(stepped_cov_voronoi).explore(column='dist', tiles=grey_tiles())" ] }, { "cell_type": "code", "execution_count": 9, "id": "208ee93a136558ac", "metadata": { "ExecuteTime": { "end_time": "2026-07-10T10:06:13.810485Z", "start_time": "2026-07-10T10:06:11.548648Z" }, "execution": { "iopub.execute_input": "2026-11-06T16:16:08.735412Z", "iopub.status.busy": "2026-11-06T16:16:08.735412Z", "iopub.status.idle": "2026-11-06T16:16:10.474001Z", "shell.execute_reply": "2026-11-06T16:16:10.474001Z" } }, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stepped_cov_separate = get_stepped_graph_coverage(\n", " G_intermodal,\n", " gdf_destinations=services,\n", " weight_type=\"time_min\",\n", " geometry_type='separate',\n", " weight_value_cutoff=15,\n", " step=2,\n", ")\n", "# Visualize stepped coverage\n", "for_map(stepped_cov_separate).explore(column='dist', tiles=grey_tiles(), vmin=0)" ] }, { "cell_type": "markdown", "id": "53ecdf19492c5b74", "metadata": {}, "source": [ "## 6. Radius coverage\n", "\n", "Without a graph: Voronoi polygons of the services clipped to 500 m buffers." ] }, { "cell_type": "code", "execution_count": 10, "id": "2908f41d0603713f", "metadata": { "ExecuteTime": { "end_time": "2026-07-10T10:07:19.139867Z", "start_time": "2026-07-10T10:07:19.042050Z" }, "execution": { "iopub.execute_input": "2026-11-06T16:16:10.476156Z", "iopub.status.busy": "2026-11-06T16:16:10.476156Z", "iopub.status.idle": "2026-11-06T16:16:10.615189Z", "shell.execute_reply": "2026-11-06T16:16:10.615189Z" } }, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "radius_cov = get_radius_coverage(gdf_from=services[['name','geometry']], radius=500)\n", "# Visualize radius coverage\n", "for_map(radius_cov).explore(column='name', legend=False, tiles=grey_tiles())" ] }, { "cell_type": "markdown", "id": "045d8cca", "metadata": {}, "source": [ "## 7. Your own area\n", "\n", "The territory is an OSM relation (the `relation` of a district or a city on openstreetmap.org); `REGION` names\n", "the Geofabrik extract to cut it from (`iduedu.find_geofabrik_region` finds it for a polygon; without it IduEdu\n", "asks Overpass once to choose the extract). The result is a GeoDataFrame: draw it with matplotlib (here over the\n", "streets of the graph, with the territory boundary), explore it on a web map or save it for GIS with `to_file`." ] }, { "cell_type": "code", "execution_count": 11, "id": "ebcf3795", "metadata": { "execution": { "iopub.execute_input": "2026-11-06T16:16:10.617408Z", "iopub.status.busy": "2026-11-06T16:16:10.616395Z", "iopub.status.idle": "2026-11-06T16:16:19.385958Z", "shell.execute_reply": "2026-11-06T16:16:19.385958Z" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "509fd336b8ab4f42809f9271b8fb9d19", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Parsing ground PT routes: 0%| | 0/57 [00:00" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "OSM_ID, REGION = 1114252, \"northwestern-fed-district\" # your territory\n", "my_services = services # your services: points in any CRS\n", "\n", "with iduedu.use_pbf(osm_id=OSM_ID, region=REGION): # downloaded once, then cached\n", " my_boundary = get_4326_boundary(osm_id=OSM_ID)\n", " my_graph = get_intermodal_graph(territory=my_boundary, clip_by_territory=True)\n", "my_bands = get_stepped_graph_coverage(\n", " my_graph, gdf_destinations=my_services, weight_type=\"time_min\", weight_value_cutoff=15, step=2,\n", " zone=gpd.GeoDataFrame(geometry=[my_boundary], crs=4326),\n", ")\n", "\n", "local = my_bands.to_crs(my_graph.nodes_gdf.crs)\n", "streets = my_graph.edges_gdf[my_graph.edges_gdf[\"type\"] == \"walk\"] # the street network as the background\n", "ax = streets.plot(color=\"#c2c2c2\", linewidth=0.3, figsize=(9, 6))\n", "local.plot(ax=ax, column=\"dist\", cmap=\"YlGnBu_r\", alpha=0.85, legend=True,\n", " legend_kwds={\"label\": \"time to the nearest service, min\"})\n", "gpd.GeoSeries([my_boundary], crs=4326).to_crs(local.crs).boundary.plot(ax=ax, color=\"#3d3d3d\", linewidth=1)\n", "my_services.to_crs(local.crs).plot(ax=ax, color=\"#1f2d4d\", markersize=14, edgecolor=\"white\", zorder=5)\n", "ax.set_axis_off()\n", "plt.show()\n", "# my_bands.to_file(\"my_coverage.gpkg\") # for GIS" ] }, { "cell_type": "code", "execution_count": 12, "id": "ccf892d2", "metadata": { "execution": { "iopub.execute_input": "2026-11-06T16:16:19.388341Z", "iopub.status.busy": "2026-11-06T16:16:19.387267Z", "iopub.status.idle": "2026-11-06T16:16:19.588935Z", "shell.execute_reply": "2026-11-06T16:16:19.588935Z" } }, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for_map(my_bands).explore(column=\"dist\", cmap=\"YlGnBu_r\", tiles=grey_tiles())" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.13" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "03723786391e42c9af0689c47a1cb80f": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_2fd25572456b46d08782e86f619f80e3", "placeholder": "​", "style": "IPY_MODEL_45fe27a4cbb242c0a9e83aa0dae2db77", "tabbable": null, "tooltip": null, "value": " 57/57 [00:02<00:00, 29.46it/s]" } }, "17c8d28c5201440b94e99047d013b42b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_1b18f5545dbb425d829d1b7bf192fe10", "max": 57.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_44b6dd7684704fa7bff53207e9eec0b2", "tabbable": null, "tooltip": null, "value": 57.0 } }, "17ca262009f24aaca7141639f2e62363": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "FloatProgressModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "FloatProgressModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "ProgressView", "bar_style": "success", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_fc6d031b95204a59a450d076a70f2800", "max": 57.0, "min": 0.0, "orientation": "horizontal", "style": "IPY_MODEL_670f585eb1194c128f6fa5d099f0a650", "tabbable": null, "tooltip": null, "value": 57.0 } }, "1b18f5545dbb425d829d1b7bf192fe10": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "1cd2d6011508444ca4ee84c9e1ad6a94": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_2d137cd36c58427c939b38f95ab426dd", "placeholder": "​", "style": "IPY_MODEL_edf10eb6eca349249ebf9cf82d08a300", "tabbable": null, "tooltip": null, "value": " 57/57 [00:02<00:00, 23.05it/s]" } }, "2b2558abc27a4900b72c256ec636d78a": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "2d137cd36c58427c939b38f95ab426dd": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "2fd25572456b46d08782e86f619f80e3": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "3147ecbff9e44ab4b3dd2b07717e575c": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_5f11602a934940f9913a252decc146a3", "placeholder": "​", "style": "IPY_MODEL_be75b2ba6b9f4ead94b8bd19433037f1", "tabbable": null, "tooltip": null, "value": "Parsing ground PT routes: 100%" } }, "44b6dd7684704fa7bff53207e9eec0b2": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "45fe27a4cbb242c0a9e83aa0dae2db77": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "509fd336b8ab4f42809f9271b8fb9d19": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_3147ecbff9e44ab4b3dd2b07717e575c", "IPY_MODEL_17c8d28c5201440b94e99047d013b42b", "IPY_MODEL_1cd2d6011508444ca4ee84c9e1ad6a94" ], "layout": "IPY_MODEL_2b2558abc27a4900b72c256ec636d78a", "tabbable": null, "tooltip": null } }, "5f11602a934940f9913a252decc146a3": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "670f585eb1194c128f6fa5d099f0a650": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "ProgressStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "ProgressStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "bar_color": null, "description_width": "" } }, "7f61903f300c47a29258b24e42288318": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HBoxModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HBoxModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HBoxView", "box_style": "", "children": [ "IPY_MODEL_d87655b579e64feea1c1289c99cfd6f8", "IPY_MODEL_17ca262009f24aaca7141639f2e62363", "IPY_MODEL_03723786391e42c9af0689c47a1cb80f" ], "layout": "IPY_MODEL_ac1e5b85dd85410b966012d5443682c5", "tabbable": null, "tooltip": null } }, "a26cf68f57534612a71312134c4ddbfe": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "ac1e5b85dd85410b966012d5443682c5": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "be75b2ba6b9f4ead94b8bd19433037f1": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "d87655b579e64feea1c1289c99cfd6f8": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLModel", "_view_count": null, "_view_module": "@jupyter-widgets/controls", "_view_module_version": "2.0.0", "_view_name": "HTMLView", "description": "", "description_allow_html": false, "layout": "IPY_MODEL_a26cf68f57534612a71312134c4ddbfe", "placeholder": "​", "style": "IPY_MODEL_d8f0811f5b084a0e94cabb25fbd9b12b", "tabbable": null, "tooltip": null, "value": "Parsing ground PT routes: 100%" } }, "d8f0811f5b084a0e94cabb25fbd9b12b": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "edf10eb6eca349249ebf9cf82d08a300": { "model_module": "@jupyter-widgets/controls", "model_module_version": "2.0.0", "model_name": "HTMLStyleModel", "state": { "_model_module": "@jupyter-widgets/controls", "_model_module_version": "2.0.0", "_model_name": "HTMLStyleModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "StyleView", "background": null, "description_width": "", "font_size": null, "text_color": null } }, "fc6d031b95204a59a450d076a70f2800": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 5 }