{ "cells": [ { "cell_type": "markdown", "source": [ "# Extract graph" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%% md\n" } } }, { "cell_type": "code", "execution_count": 1, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "# Import libraries\n", "import numpy as np\n", "import pandas as pd\n", "\n", "from pytrack.graph import graph, distance\n", "from pytrack.analytics import visualization" ] }, { "cell_type": "code", "execution_count": 2, "outputs": [ { "data": { "text/plain": " datetime latitude longitude\n0 23-04-21 16:46:19:583000 43.759650 11.291561\n1 23-04-21 16:46:36:570000 43.759645 11.291544\n2 23-04-21 16:46:52:647000 43.759671 11.291162\n3 23-04-21 16:47:37:568000 43.759677 11.291148\n4 23-04-21 16:47:49:639000 43.759691 11.290932\n.. ... ... ...\n94 23-04-21 17:12:37:573000 43.779596 11.254733\n95 23-04-21 17:12:51:592000 43.779583 11.254295\n96 23-04-21 17:13:05:572000 43.779206 11.253978\n97 23-04-21 17:13:20:592000 43.779205 11.253974\n98 23-04-21 17:13:36:590000 43.778464 11.253364\n\n[99 rows x 3 columns]", "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetimelatitudelongitude
023-04-21 16:46:19:58300043.75965011.291561
123-04-21 16:46:36:57000043.75964511.291544
223-04-21 16:46:52:64700043.75967111.291162
323-04-21 16:47:37:56800043.75967711.291148
423-04-21 16:47:49:63900043.75969111.290932
............
9423-04-21 17:12:37:57300043.77959611.254733
9523-04-21 17:12:51:59200043.77958311.254295
9623-04-21 17:13:05:57200043.77920611.253978
9723-04-21 17:13:20:59200043.77920511.253974
9823-04-21 17:13:36:59000043.77846411.253364
\n

99 rows × 3 columns

\n
" }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_excel(\"dataset.xlsx\")\n", "df" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } }, { "cell_type": "code", "execution_count": 3, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "latitude = df[\"latitude\"].to_list()\n", "longitude = df[\"longitude\"].to_list()\n", "\n", "points = [(lat, lon) for lat, lon in zip(latitude, longitude)]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloaded 1,773.29kB\n" ] } ], "source": [ "# Create BBOX\n", "north, east = np.max(np.array([*points]), 0)\n", "south, west = np.min(np.array([*points]), 0)\n", "\n", "# Extract road network graph\n", "G = graph.graph_from_bbox(*distance.enlarge_bbox(north, south, west, east, 500), simplify=True, network_type='drive')" ] }, { "cell_type": "code", "execution_count": 5, "outputs": [ { "data": { "text/plain": "", "text/html": "
Make this Notebook Trusted to load map: File -> Trust Notebook
" }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Show extracted graph\n", "maps = visualization.Map(location=(np.mean(latitude), np.mean(longitude)))\n", "maps.add_graph(G, plot_nodes=True)\n", "maps" ], "metadata": { "collapsed": false, "pycharm": { "name": "#%%\n" } } } ], "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.9.12" } }, "nbformat": 4, "nbformat_minor": 1 }