{ "cells": [ { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Huge-scale simulation using Chicago-Sketch dataset\n", "\n", "In this example, we demonstrate how UXsim can be used for huge-scale simulation in metropolitan area. We use [Chicago-Sketch](https://github.com/bstabler/TransportationNetworks/tree/master/Chicago-Sketch) dataset provided by Transportation Networks for Research. The scenario data for UXsim is derived from the original TNTP dataset and provided as [chicago_sketch.uxsim_scenario](https://github.com/toruseo/UXsim/blob/main/dat/chicago_sketch.uxsim_scenario) at UXsim repo. The code generated UXsim scenario file is attached to the end of this notebook.\n", "\n", "The dataset contains an abstract road network of Chicago metropolitan area with 546 nodes and 2176 links. The traffic demand is almost 1 million vehicles for 1 hour in the peak period. Note that the data is modified from the original dataset in order to make them suitable for UXsim.\n", "\n", "With this scale, we cannot simulate each individual vehicle one by one due to extremely high computational cost. Instead, by leveraging the mesoscopic nature of UXsim, we aggregate some vehicles into 1 platoon and simulate their behavior. This is achieved by changing `deltan` argument of `World`. This is very efficient approach as it does not only reduce the number of agents, but also reduce the number of time steps for the same time duration. It is known that the underlying traffic flow model output the equivalent results for within-link traffic dynamics regardless of `deltan` value. The network-scale dynamics will change as this setting alters inter-link traffic behavior, but this can be considered as an acceptable cost for the efficiency.\n", "\n", "## Simulation\n", "\n", "By loading the pre-defined scenario file `dat/chicago_sketch.uxsim_scenario`, this simulation can be done easily as follows." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "loading scenario from 'dat/chicago_sketch.uxsim_scenario'\n", " DATA SOURCE AND LICENCE : Chicago-Sketch network. This is based on https://github.com/bstabler/TransportationNetworks/tree/master/Chicago-Sketch by Transportation Networks for Research Core Team. Users need to follow their licence. Especially, this data is for academic research purposes only, and users must indicate the source of any dataset they are using in any publication that relies on any of the datasets provided in this web site.\n", " Number of loaded nodes: 546\n", " Number of loaded links: 2176\n", " Number of loaded `adddemand`s: 8406\n", "simulation setting:\n", " scenario name: \n", " simulation duration:\t 10000 s\n", " number of vehicles:\t 968520 veh\n", " total road length:\t 12115219.047323605 m\n", " time discret. width:\t 30 s\n", " platoon size:\t\t 30 veh\n", " number of timesteps:\t 333\n", " number of platoons:\t 32284\n", " number of links:\t 2176\n", " number of nodes:\t 546\n", " setup time:\t\t 4.39 s\n", "simulating...\n", " time| # of vehicles| ave speed| computation time\n", " 0 s| 0 vehs| 0.0 m/s| 0.00 s\n", " 600 s| 61170 vehs| 17.0 m/s| 2.56 s\n", " 1200 s| 125430 vehs| 15.6 m/s| 5.33 s\n", " 1800 s| 173760 vehs| 14.2 m/s| 9.08 s\n", " 2400 s| 220560 vehs| 12.3 m/s| 12.87 s\n", " 3000 s| 267330 vehs| 10.4 m/s| 16.81 s\n", " 3600 s| 322110 vehs| 8.5 m/s| 20.79 s\n", " 4200 s| 249960 vehs| 7.7 m/s| 24.45 s\n", " 4800 s| 190860 vehs| 8.0 m/s| 27.20 s\n", " 5400 s| 156390 vehs| 8.5 m/s| 29.52 s\n", " 6000 s| 120330 vehs| 9.6 m/s| 31.46 s\n", " 6600 s| 93360 vehs| 10.0 m/s| 32.93 s\n", " 7200 s| 70560 vehs| 11.1 m/s| 34.19 s\n", " 7800 s| 46410 vehs| 12.6 m/s| 35.16 s\n", " 8400 s| 26340 vehs| 15.4 m/s| 35.95 s\n", " 9000 s| 11850 vehs| 17.9 m/s| 36.48 s\n", " 9600 s| 5400 vehs| 20.8 m/s| 36.91 s\n", " 9960 s| 3870 vehs| 22.3 m/s| 37.06 s\n", " simulation finished\n", "results:\n", " average speed:\t 11.3 m/s\n", " number of completed trips:\t 964650 / 968520\n", " average travel time of trips:\t 1581.4 s\n", " average delay of trips:\t 953.2 s\n", " delay ratio:\t\t\t 0.603\n" ] } ], "source": [ "from uxsim import *\n", "\n", "W = World(\n", " name=\"\",\n", " deltan=30, #for huge scale simulation (e.g., 100000+ vehicles or 1000+ links), large deltan is recommended. \n", " tmax=10000,\n", " print_mode=1, save_mode=1, show_mode=1,\n", " random_seed=42,\n", ")\n", "\n", "W.load_scenario(\"dat/chicago_sketch.uxsim_scenario\")\n", "\n", "W.exec_simulation()\n", "W.analyzer.print_simple_stats()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can see that the simulation finishes in about 40 seconds. Now let's visualize the results." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " generating animation...\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "76675548120c4e548ac9e5a28b461ea2", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/167 [00:00" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "W.analyzer.network_fancy(animation_speed_inverse=10, sample_ratio=0.2, interval=5, trace_length=10, figsize=6, antialiasing=False)\n", "display_image_in_notebook(\"out/anim_network_fancy.gif\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can see a peak hour traffic congestion at the downtown area." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Validation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The original TNTP dataset includes traffic volumes and travel time of every links based on static traffic assignment with a BPR function. Since *static* traffic assignment and *dynamic* traffic assignment of UXsim is substantially different, these results will not match exactly. Nevertheless, it would be worth comparing these results to see whether UXsim outputs plausible results or not.\n", "\n", "First, read the link traffic states of UXsim.\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "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", " \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", "
linkstart_nodeend_nodetraffic_volumevehicles_remainfree_travel_timeaverage_travel_timestddiv_travel_time
038738839012090665.400000662.6270272.699014
13883883914200358.800000334.59459510.561172
2389388708900174.000000161.09909912.496454
339038880200286.800000-1.000000-1.000000
4391389390300260.400000266.6558564.573892
...........................
2171294192944230001322.9499001347.9692127.128038
21722943930518001543.188079-1.000000-1.000000
21732945931906300911.461779923.6535828.796265
2174294793251500420.142347-1.000000-1.000000
2175294993353449800357.600000407.70450523.938101
\n", "

2176 rows × 8 columns

\n", "
" ], "text/plain": [ " link start_node end_node traffic_volume vehicles_remain \\\n", "0 387 388 390 120 90 \n", "1 388 388 391 420 0 \n", "2 389 388 708 90 0 \n", "3 390 388 802 0 0 \n", "4 391 389 390 30 0 \n", "... ... ... ... ... ... \n", "2171 2941 929 442 300 0 \n", "2172 2943 930 518 0 0 \n", "2173 2945 931 906 30 0 \n", "2174 2947 932 515 0 0 \n", "2175 2949 933 534 4980 0 \n", "\n", " free_travel_time average_travel_time stddiv_travel_time \n", "0 665.400000 662.627027 2.699014 \n", "1 358.800000 334.594595 10.561172 \n", "2 174.000000 161.099099 12.496454 \n", "3 286.800000 -1.000000 -1.000000 \n", "4 260.400000 266.655856 4.573892 \n", "... ... ... ... \n", "2171 1322.949900 1347.969212 7.128038 \n", "2172 1543.188079 -1.000000 -1.000000 \n", "2173 911.461779 923.653582 8.796265 \n", "2174 420.142347 -1.000000 -1.000000 \n", "2175 357.600000 407.704505 23.938101 \n", "\n", "[2176 rows x 8 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_res_link = W.analyzer.link_to_pandas()\n", "df_res_link" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And then TNTP data. \n", "\n", "NOTE: If you want to execute this notebook, please obtain `ChicagoSketch_flow.tntp` and place it to an appropriate path." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
fromtovolminsec
015474989.130.0345072.070408
125486719.410.0345072.070408
2354910095.530.0345072.070408
345509444.620.0345072.070408
4555117223.820.0345072.070408
..................
2945931906157.0015.707724942.463430
294693238625.000.0345072.070408
294793251522.006.347704380.862240
29489333875468.000.0345072.070408
29499335345837.0013.119813787.188793
\n", "

2950 rows × 5 columns

\n", "
" ], "text/plain": [ " from to vol min sec\n", "0 1 547 4989.13 0.034507 2.070408\n", "1 2 548 6719.41 0.034507 2.070408\n", "2 3 549 10095.53 0.034507 2.070408\n", "3 4 550 9444.62 0.034507 2.070408\n", "4 5 551 17223.82 0.034507 2.070408\n", "... ... ... ... ... ...\n", "2945 931 906 157.00 15.707724 942.463430\n", "2946 932 386 25.00 0.034507 2.070408\n", "2947 932 515 22.00 6.347704 380.862240\n", "2948 933 387 5468.00 0.034507 2.070408\n", "2949 933 534 5837.00 13.119813 787.188793\n", "\n", "[2950 rows x 5 columns]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df_tntp_flow = pd.read_csv('out/ChicagoSketch_flow.tntp', sep='\\t')\n", "df_tntp_flow.columns = [\"from\", \"to\", \"vol\", \"min\"]\n", "df_tntp_flow[\"sec\"] = df_tntp_flow[\"min\"]*60\n", "\n", "display(df_tntp_flow)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "from pylab import *\n", "\n", "res_tntp = {} #{(start_node, end_node): {}}\n", "res_uxsim = {} #{(start_node, end_node): {}}\n", "for i in lange(df_tntp_flow):\n", " res_tntp[df_tntp_flow[\"from\"][i], df_tntp_flow[\"to\"][i]] = {\"vol\": df_tntp_flow[\"vol\"][i], \"sec\": df_tntp_flow[\"sec\"][i]}\n", " \n", "for i in lange(df_res_link):\n", " if df_res_link[\"traffic_volume\"][i] > 0:\n", " res_uxsim[int(df_res_link[\"start_node\"][i]), int(df_res_link[\"end_node\"][i])] = {\"vol\": df_res_link[\"traffic_volume\"][i], \"sec\": df_res_link[\"average_travel_time\"][i]}\n", "\n", "for key in list(res_tntp.keys()):\n", " if key not in res_uxsim.keys():\n", " del res_tntp[key]\n", " #print(key, end=\", \")\n", "#print(\"\")\n", "\n", "for key in list(res_uxsim.keys()):\n", " if key not in res_tntp.keys():\n", " del res_tntp[key]\n", " #print(key, end=\", \")\n", "\n", "res_tntp_vol = array([res_tntp[key][\"vol\"] for key in res_uxsim.keys()])\n", "res_uxsim_vol = array([res_uxsim[key][\"vol\"] for key in res_uxsim.keys()])\n", "res_tntp_sec = array([res_tntp[key][\"sec\"] for key in res_uxsim.keys()])\n", "res_uxsim_sec = array([res_uxsim[key][\"sec\"] for key in res_uxsim.keys()])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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pqYm2e32DvvsdruampoCFJG1ORwOrV27ViNGjNCCBQu6vX7etoUbf1xDru9XLn6/Sv653qHqrbfe0jvvvKOSkhLepwA6CJefX3//HrQiwzBUVlamf/mXf1F0dLR7f7icvySdPn1akrR27VqtW7dOKSkpWrhwYVhdA0l66aWX9MQTT8hut2vTpk36+c9/HnbXQCJXDxQKGJcQGxvb6Y3icrncw3nwD+vWrdOLL76okSNHqrS0VB9++KGioqIuef26u7Zc93/w9jpxfbvX1fu1paWFa9pDDodDc+bM0dNPP62rrrqK9ymADsLh57c3fg9a0fr163X69GnNnj27w/5wOX/pq+kSklRWVqYxY8Zo8eLF2rhxY1jlva2trfrOd76jH/7wh6qqqlJBQYHmzp0bVu+DduRAgUEB4xLS0tLkcDjcjxsbG1VfX++e94h/GD9+vPsX+sCBA9XW1qahQ4de8vp1d2257v/g7XXi+navq/drfX0917QHzp8/r+9+97u68847NW/ePEm8TwF0FOo/v731e9CK3n77bTmdTg0ePFjJyclqaGjQXXfdpUGDBoXF+UvSFVdcIUlKSUmRJA0ePFitra1hlfe+//77qqmp0WOPPaaRI0dq9erV+v3vfx82PwcXIgcKkAAvImpZ27dvN+Lj442zZ88ahmEY//mf/2mkpKQYbW1tAY7MWt5++20jIyPD/fjDDz807Ha7sXXr1ktev+6ubbhfd12wsrG314nr29GF1/RS79eWlhauaQ+sXr3ayMzMdJ+rYfA+BdBRqP/89tbvQStqvwtD+5aQkGC8+eabYXP+hmEYbW1txoABA4z169cbhmEYBw4cMCIjI8PqGmzYsMEYOnSo+7HL5TIiIiLC5hqQqwceBYxLaGtrM6677jqjuLjYqKmpMb72ta8ZP/vZzwIdluUcO3bMiI2NNX79618bR48eNQoKCowHHnig2+vnbVs4uPCXoj+uYThe3wuv6aXer4bBNb2curo6IykpydiwYYPhcrncG+9TABcK5Z/f3vw9GAz69+9vlJeXh935/+hHPzLGjx9vHD161HjooYeMW2+9NayuQX19vZGYmGj8r//1v4zPP//cWLRokTFixAijpaUlLK4BuXrgUcDoxmeffWZMnjzZ6N+/v1FUVGR8+eWXgQ7Jkn77298aGRkZRv/+/Y25c+e6K4bdXT9v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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "figure(figsize=(12,4))\n", "subplot(121, aspect=\"equal\")\n", "hist2d(res_tntp_vol, res_uxsim_vol, bins=20, cmap=\"Greys\", norm=mpl.colors.LogNorm())\n", "colorbar()\n", "xlabel(\"TNTP link traffic volume\")\n", "ylabel(\"UXsim link traffic volume\")\n", "\n", "subplot(122, aspect=\"equal\")\n", "hist2d(res_tntp_vol, res_uxsim_vol, bins=20, range=[[0,10000], [0,10000]], cmap=\"Greys\", norm=mpl.colors.LogNorm())\n", "colorbar()\n", "xlabel(\"TNTP link traffic volume\")\n", "ylabel(\"UXsim link traffic volume\")\n", "\n", "\n", "tight_layout()\n", "show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above figures show the comparison of link traffic volume. Roughly speaking, they are mostly correlated." ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "all links\n" ] }, { "data": { "image/png": "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luLiYtXV1Tkf1dXVbrcPAOA+jydlLr/8cj322GN67733tHHjxrMe7poxY4aGDx+uL7/8UpGRkSoqKnLuCj98+HBt3bpVmzdv1pIlSyTJdBnQGVj5FnHe8tWYBQD4F3LHHF9l0ptvvim73a4+ffqoZ8+eqq+v13XXXafevXurqqrK+b6GhgbV1tYqLS1N6enp7Za1JTo6WomJia0eABAsVs4djy9fapklf/HFF88qs9lsmjx5coef4XA4VFZWplWrVql379667bbb9Jvf/Mb0jvHsJo/OzsrL+bzlizELANAauWOOrzLpkUce0e9+9zvn8+HDh+upp55Sv3799NBDD8nhcCg2NlYbNmxQamqqBg0apLy8PD344INtlgFAqLNy7ng8KbN+/XqvD3rixAnddtttzpn548ePy2azmd4xnt3k0dn5YpDKyclRZGSkCgoKVFBQ4MvmBZUvxiwAQGtWPjn2J19lUnJyspKTk53PbTabevXqpby8PGVmZqqoqEhFRUUqKSlRYWGhbDabyzIACHVWzp2g3Iqke/fueuKJJ5zPX331VV155ZWmd4z3dDd5wGoiIiJMrwprqVdeXs7SZISEffv2maoXHx/vcZ3du3ebOtbRo0c9rpOTk2PqWKHuzTffNFVv1KhRHtdJSkoydSz4ni9yB75ns9lUWlqqqVOnKisrS5MmTdLcuXM7LOvs9u7da6reD//+8Ldzzz3X4zqff/65qWNt377dVD0z9uzZ43Gdv/71r6aOZeY8YcWKFaaO9e2333pc54cTrTiblXMn6PeHff311/X222/r888/18KFC03tGO/pbvISt/kDAACANfxwonjAgAHtrshxVQYACA63JmUiIyPV2NioqKgoRUREtLn8x8ztZauqqjRt2jQ99thjOuecc0zvGO/pbvISt/mDtVh5OZ8Z/hqzAACnkTvuI5MAwHtWzh23JmW++uorRUVFSZIqKyt9cuBTp07pV7/6la699lrNmDFDkpSenq5169Y533PmjvFmytpTXFysOXPmOJ/X19e7fD8Qyqw8SJnhjzELAPAv5I77yCQA8J6Vc8etSZkBAwa0+d/eWLlypWpqavTBBx84X3O1K7zZsvZER0crOjraJ30Bgs3Kg5QZ/hizAAD/Qu64j0wCAO9ZOXeCsuPNN998o/nz5+sPf/iDIiIidPz4cR0/frzVrvB2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gcydWbNmqW/fvtq4caPzNTZLB4DOxRe5k5OTo2HDhmnFihVB7k1rPv1r7G9/+5svPw4A/MpXY9abb74pu92uPn36qGfPnqqvr9d1112n3r17q6qqyvm+hoYG1dbWKi0tTenp6e2WtSU6OlqJiYmtHgAQzs68JLOpqanN9y1atEhff/11q9esuFk659EA4F/l5eXavn27CgoKgt2UVjyelLn++uvV0NDQ6rWPPvpI48aN02WXXeazhgFwn5WvsfRWIMasRx55RLt371ZFRYUqKiqUkJCgp556Spdddpm2bNniXBGzYcMGpaamatCgQcrLy2u3DABCnS9yJy0tTUlJSc7H4sWL2zxWcnKy+vfv3+q1cN0snfNoADDHyn/veDwp07VrV11wwQX67LPPtHbtWo0aNUo/+9nP9H/+z/9RZWWlP9oIoANWHqS8FYgxq+UPhpaHzWZTr169lJeXp8zMTBUVFclut6ukpESFhYWy2WwuywAg1Pkid6qrq1tdlllcXOz28T3dLD1UcB4NAOZY+e8djzf6ffnll/XEE09o5MiRstlsmj9/vt555x1TmzkC8A0rb3zlrWCOWTabTaWlpZo6daqysrI0adIkzZ07t8MyAAh1vsgdby7F9HSz9FDBeTQAmGPlv3dM3X3p9ttvV25urm644QbZ7fZ2N6bEvxw7dsxleUJCgsvyHj16+PXzOzP+7awv0GPW0aNHnf89YMAArV+/vs33uSoDALTP3c3Sd+zYEchmuYXzaADAD7k1KRMREdHm7JJhGNq9e7eWL18uwzBks9l06tQpnzcSgGtWnjk2gzELAPwr2LmTnp6udevWOZ93tFl6MJFJAOC9YOeOP7k1KcM1rkBos9lspm9tHeqDlBmMWQDgX8HOnby8PD344INyOByKjY0N6c3SySQA8F6wc8ef3JqUGTBgQKvnJ06c0KFDh2QYhl8aBcAzVp45NoMxCwD8K9i588PN0ouKikJ6s3QyCQC8F+zc8SeP95R54okndOedd+rEiRNnlbHsEggOKw9S3mLMAgDf80Xu5OTkKDIyUgUFBSooKPD4M8Jxs3QyCQDMCXbu+JPHkzIlJSX67//+b/3yl7/0R3sAWNiJEyd0ww036C9/+UvAjsmYBQChqby83KO7L525siQcN0snkwAgeDzNnUDxeFKmR48euvjii/3RFgAmhcNKmVOn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4G3ulJeXa/v27ZafkPFnJh06dEhjxoxRRUWF87WqqiqNHTtWycnJKiws1MmTJ90qA4BQZ9W/d9yalElPT9dNN92kjz766KyyQ4cOacGCBUpLS1NRUZHPGwigY1bejdyMQI9Zb7/9to4cOaLx48crJibG+aiqqlJpaam2bdumrKwsjRw5UnPnzpV0+mfWXhkAhDpyx33+yqRZs2apb9++zttrS5JhGJo4caKGDx+urVu3avPmzVqyZEmHZQAQ6qycO25NylRUVKhv376aOHGizj//fD3++OPasGGDfv3rXys9PV2bN2/W448/rq+++srf7QWADgV6zJo8ebIMwzjrkZGRoQEDBmj9+vU6evSoli9fri5d/nXVqKsyAIA1+CuTFi1apK+//rrVa2VlZdq5c6eWLl2qtLQ0LVy4UMuWLVNzc7PLMgBA8Lj1F8CQIUP0yCOPaMmSJbrvvvucS+z79++vjz/+WBdddJG/2wkAbmPMAgCECn9lUnJyspKTk1u9VlZWptzcXOed/PLz81VTU6M9e/a4LPPmLpoAAO+4tVLG4XDo6aef1qhRo/Tkk09q5syZWr58uVJSUnTFFVdo9uzZ2rNnj7/bCqAdVl7OZwZjFgD4F7njvkBmkt1uV0ZGhvN5fHy8UlJSZLfbXZa1pampSfX19a0eABAsVs4dt1bK9O3bV+np6br99ts1efJkJSQkSDp9LeumTZu0fPlyDR8+XJdddpneeecdvzYYwNm8GWxCfZAygzELAPyL3HFfIDPJ4XA4V8K0iImJkcPhcFnWlsWLF2vBggVetQcAfMXKuePWpMwbb7yh0aNHt1k2evRojR49Wna7XU888YRPGwfAPVYepMxgzAIA/yJ33BfITIqNjT1rkqWxsVFxcXEuy9pSXFysOXPmOJ/X19crLS3N6zYCgBlWzh23JmW6d++urVu3tluekpKi/v376/e//73PGgYgsHJychQZGamCgoKwvz0pYxYAIFQEMpPS09O1bt065/OGhgbV1tYqLS3NZVlboqOjFR0d7XWbACBUhOrfO25NyowYMaLD92RkZOill17SpZde6m2bAARBeXm5EhMTg90Mn2DMAgCEikBmUl5enh588EE5HA7FxsZqw4YNSk1N1aBBg1yWAUBnEKp/77i10W9zc7PLx7FjxzR58mTdfvvt/m4vgDZYeeMrMxizAMC/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fbbDzysuLlZjY6NGjRqlP/7xj2psbNQnn3zS6j2ffPKJ7rnnHt15552aMGGC8/WbbrpJ11xzjQ4cOKAJEybo7rvvliRdfvnl2rVrlw4cOCBJ2rx5s/r27atBgwZJkm6++Wb169dPBw8e1I9//GNNmTLFq38Td/rQnvr6er3wwgt67rnnNH78eF1zzTV69913fdLOrVu36qKLLnI+NwxDN998s+bMmaPKykrV1dVp8eLFznJXx7vhhhuUmJio3bt3Kz8/X7feemurY1188cX6/PPPPWoffIPMgVnkDrlD7sAMf+YOly8B8In09HStW7fO+byhoUG1tbWtNsgC2jJp0iSNHDlSdXV1btepr69Xz5495XA4FB0drZUrV2rw4MF+a+OxY8e0fPlyDRo0SOecc45uvPFGHTp0yFleUVGhOXPmaNOmTUpKSurw81qWyUdERKhr165tLrXesWOHPv74Y1166aXO11pORufMmaO4uDgdPXrUubt/QkKC8vLytG7dOk2ZMkVr167VT37yE0mnb+u4fv16rVmzRt26ddPs2bO1aNEi1dXVudVes31oz/jx43XOOedIkq699lpt27ZNe/fu9Uk7a2pq1Lt3b+fz5uZmHT9+XElJSerVq5eWL1/u/Nm5Ot7Bgwf10Ucf6S9/+Yvi4+N111136Ysvvmi1/LlXr146fPiw2/2G75A58Aa5Q+6QO/CUP3OHlTIWEx0drfnz53u8H0goslJfJOv150x5eXnasmWLcwZ5w4YNSk1NdX5bArTn4osv1sCBA7VmzRq36yQkJKiiokKVlZU6cuSIpk+f7scWSj169NDQoUMlyXliZPzgzg433HCDpNMnZr5yxRVXtDoxlqSYmBgtXbpUDz30kAYMGKD169e3asdPfvIT5wnD2rVrdfXVV0uSKisrZRiGhgwZoj59+mj48OGKjY3VwYMHfdZeT7Ts2XDmf/uinfHx8a3ueBgZGalVq1Zp5syZuv7661VXV+e8i4qr433++efKyMhQfHy8JKlPnz568803W12P3tDQ4CxHYJE58Aa50zZyh9xB+/yZO0zKWEx0dLQeeOABS/zhb6W+SNbrz5ny8vKUmZmpoqIi2e12lZSUqLCwMKw3zkbgTJo0yaOl5DabTf3791dqampAfsc6OgG66qqrNH/+fC1cuNBnx2xrA/DGxkbl5eXp888/1zvv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nTpVN9xwg/bt2+d1ewcMGKDGxkavP8ddoTQpY5arPgT637PFPffco0cffVR9+vTxy+f36dNH//Vf/6V77rnHL58PAAAAAAgOS03KREZGqlu3boqKipIkdevWTd26dVNExOluRkREqLS0VMePH/eoXstrPXv21N1336309HRt3LjR6/babDZ169bN68/BacH49/ziiy909OhRXXXVVX49zrhx4/Ttt99qx44dfj0OAAAAACBwLDUp05GhQ4eqW7duevPNN736nK5du+rUqVNet6ety202bNigjIwMffDBB8rMzFRKSopWrlzZZv2bbrpJEydO7PA4v//972Wz2bRx40ZNmzZNNptNI0aMcJY/8MADmjp1qv77v/9bvXv31gMPPOAs+/vf/66LLrpIsbGxys7O1v/7f/9PkvSXv/xF559/vvN9J06cUHx8vL788ktJ0qFDh3Tttdeqe/fuGjt2rCorK939ZzHVB6ntf88xY8bolltuUb9+/TR16lRNmzZNiYmJWrNmjU/a+cYbb+j6669v9dratWt13nnnKT4+Xj//+c919OhRZ5mr4x05ckQ33nijkpKSdMkll+if//xnq8/9xS9+oTfeeMOj9gEAAAAAQlenmpTp0qWLbrrppjYvYXKHYRh69dVXtWPHDuXm5vq4df9y5MgRLVq0SO+8846eeOIJ3XnnnWet7nniiSf0ySef6Nlnn+3w84qLi9XY2KhRo0bpj3/8oxobG/XJJ5+0es8nn3yie+65R3feeacmTJjgfP2mm27SNddcowMHDmjChAm6++67JUmXX365du3apQMHDkiSNm/erL59+2rQoEGSpJtvvln9+vXTwYMH9eMf/1hTpkzx6t/EnT60p76+Xi+88IKee+45jR8/Xtdcc43effddn7Rz69atuuiii5zPDcPQzTffrDlz5qiyslJ1dXVavHixs9zV8W644QYlJiZq9+7dys/P16233trqWBdffLE+//xzj9oHAAAAAAhdXYLdgECbNGmSRo4cqbq6Orfr1NfXq2fPnnI4HIqOjtbKlSs1ePBgv7Xx2LFjWr58uQYNGqRzzjlHN954ow4dOuQsr6io0Jw5c7Rp0yYlJSV1+HmRkZGKjIxURESEunbt2uYlPjt27NDHH3+sSy+91PlayyTInDlzFBcXp6NHj2r//v2SpISEBOXl5WndunWaMmWK1q5dq5/85CeSTq8GWb9+vdasWaNu3bpp9uzZWrRokerq6txqr9k+tGf8+PE655xzJEnXXnuttm3bpr179/qknTU1Nerdu7fzeXNzs44fP66kpCT16tVLy5cvd/7sXB3v4MGD+uijj/SXv/xF8fHxuuuuu/TFF1/IMAzn6p9evXrp8OHDbvcbAAAAABDaOt2kzMUXX6yBAwc6L19xR0JCgioqKtS1a1f17t3b73f46dGjh4YOHSpJzmMZhuEsv+GGGySdnhDwlSuuuKLVhIwkxcTEaOnSpXrooYf0/PPPKykpqVU7fvKTn7SalFm0aJEkqbKyUoZhaMiQIc73xsbG6uDBg6YnZbzRslfQmf/ti3bGx8eroaHB+TwyMlKrVq3SzJkztWbNGt11110aO3Zsh8f7/PPPlZGRofj4eEmnN/c98zK7hoYGZzkAAAAAIPx1qsuXWkyaNMmjS5hsNpv69++v1NTUgNxyuaM/vK+66irNnz9fCxcu9Nkx+/Xrd9ZrjY2NysvL0+eff6533nlHjz/+eKvyq6++Wu+//77279+vXbt2OScfpNMTOgcPHnQ+GhoadN555/msvb7ibTvT09Nb7Qtz8uRJjRs3TpWVlRoxYoTGjRun5cuXu3W8M3+3Vq9e3WplTGVlpdLT0812FQAAAAAQYjrlpMzNN9/sk7snBcujjz6qO+64Q//85z/92o/33ntPNTU1ev3115Wdna0TJ060Ks/OzlbXrl310EMPadSoUYqJiZEkDR482HkLcUlqamrSmDFjVF1d7be2muGLdl555ZV65513nM+3b9+uPn36KCUlRSUlJVq5cqX++Mc/dni8wYMHq7q62nlL76NHj2ratGmt9hJ65513/H6XJwAAAABA4HTKSZmMjAy/btTrb126dFFCQoIKCws9Wi0TFRWliooKffXVVyotLdWRI0dcvj8xMVHfffedtm3bpt27d2vu3Llqbm5u9Z6WlSAt+8lIUs+ePTV+/HjNmzdPNTU1euqpp7Rv3z7179/fs476oA+u+KKdl19+uTZv3uzcN+bcc89VYmKiXn75ZdXW1mrTpk3O/WxcHW/EiBHKzs7W3LlzdfjwYc2bN0+5ubnOlTGHDh3Sxx9/3Go1EgAAAAAgvHXKSRlJuuWWW4LdBK/9x3/8hz7++GO370J066236sUXX1R2drYWL1581sqXM40ZM0Z33HGHRo8erQkTJui6667T/v37nXdckk7vK3Pq1CldffXVreo+/fTTqqmp0TnnnKNnnnlGr732mk8u/fK0Dx3xtp3R0dG69957ddddd0k6fXnSCy+8oAULFmjAgAGqrq5uddmXq+O9+uqr2rlzpwYPHqwvvvhCL774orPenDlzdO+99yo6Otqr/gIAAAAAQofN+OHOrQBMueGGG3TNNddo6tSpPv/sZ599VmvXrtWf/vQnn382AAAAACB4mJQBfMDhcOjkyZNKTEz0+WfX19erS5cuio2N9flnAwAAAACCh0kZAAAAAACAIOi0e8oAAAAAAAAEE5MyAAAAAAAAQcCkDAAAAAAAQBAwKQMAAAAAABAETMoAAAAAAAAEAZMyAAAAAAAAQcCkDAAAAAAAQBAwKQMAAAAAABAETMoAAAAAAAAEAZMyAAAAAAAAQfD/A5aUntrJdT0rAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "links with non-small traffic volume only. This is because travel time of links with small traffic volume is almost equal to free flow travel time and may not be meaningful comparison\n" ] }, { "data": { "image/png": "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VXN5/Pjx4i/uISEh6OrqUnTmOvo6Qc25w0EGInKq5ORkHD16VBwFLikpQVhYGGJiYpxcM8ts2rQJer0er732mrjNXJtcob0vv/wyzpw5g4qKClRUVKB///7YunUrbrvtNpduV3R0NAYMGIDTp08DuDy5r7u7u8u36+r3cWs0GgiC4PLfh92ktsOV2kiO42rfF67wPe5qOfj5558jISFBXPfw8IAgCJgyZYpi6+yKufzpp59i2LBh4npVVRV8fHwwadIkxdZZrdcJTuHMV1soSferRO69917h/vvvF+6//35h+vTpJsvNN99sdomLizNZNm7caLJ89913JovayPkKy4sXLwodHR1WLxcvXlT8K13IVFdXl3DTTTcJWVlZQk1NjfDrX/9a+MMf/uDsallEr9cLwcHBwqeffioYjUZxMdcmV2xvYGCgUFxcrIp2PfbYY8L48eOF2tpa4cknnxSmTJni8u1qaGgQgoKChD//+c/ChQsXhOXLlwsjRowQ2tvbXbZduOIVflL//1jaRuZO36L0731BkOf731FcMQfr6+sFf39/4fXXXxfq6+uFefPmCVOnTlV0na/mCrl87tw5wdfXV3j77beF2tpaISUlRViyZImi6ywIjrlO6Au5w0GG/8NBBttxkIGk+uGHH4TJkycLgYGBQmZmpvDzzz87u0oWefPNNwUA1yzV1dVm2+Rq7e2+mBEE83V3hXa1tLQIDz74oNC/f39h4sSJQnV1tSAIrt+uAwcOCHFxcYKPj4/wm9/8RvwFxVXbdeUvWYIgvR2WtJG50/co+XtfEOT7/ncEV83Bv//970JsbKzg5+cn3HXXXcLZs2evWy9n1/lKrpLLH3zwgRAdHS0EBgYKGRkZwk8//aT4OjviOqEv5I5GEATBEXdMKF1zczMCAwNx7733iu8ab2xsNPmMXq83e4zW1laT9UcffdRkffr06Sbrw4cPl1hbZer+GjY1NSEgIMCmY1y8eFHSMZqbmxEcHGxTHYiIqO9g7hARkSP1hdzxcHYFiHoidVITV5gIhYiIlIe5Q0REjqTm3OHEj0REREREREQkCw4ykCIp/ZUunZ2dePDBB3HjjTeazKZMRESuiblDRESOpObc4SADkQS7du3CoEGDUF5eji1btuD8+fPOrhIREakYc4eIiBzJltzhIAMRgLq6OkyePBkVFRXiNq1Wi9TUVAQFBSErK8vkXfQHDhzAfffdBw8PD8yaNQuHDh1yQq2JiMhVMXeIiMiRHJk7HGQgRXLk7UNLly7FkCFDTDqOIAhIS0tDXFwcjh8/jtLSUhQUFIjltbW1iIiIAAAMHToUtbW1tjeaiKgXhYWFeO+99+xy7Pfeew+FhYV2ObYrYe4QEf2CuWN/as4dDjL8n+43ef7888/i0tHRYbJ0dnZatRiNRpPl0qVLJktzc7Pqliu/lrawtQ5Xb2tra+v1XGvWrMGPP/5osq2srAyVlZVYu3YtIiIisHr1aqxfvx5dXV3XfM8IguASs7yS7Xbs2NHjD/qSkhKxbP/+/eLnry7rab+SkhJx3cPDA/Hx8dizZ4/Fdfrhhx96/f4zVybH56+2Y8cOk9FxZ5LaFnNtsPXrI9WpU6eQl5eHlJQUuxw/JSUFeXl5qKystMvxXQVzh5SIuWMec8c+mDuOoercEUgQBEGoqakRAHCRYampqZH8/8FoNAqDBw+26fz+/v7XbFu5cuV1zw1A+OqrrwRBEISCggJhypQpYtmlS5cEjUYjVFZWCoIgCAsWLBDKysoEQRCEZ599VvjrX/8quc3kOjo6OgSj0SgUFRUJgYGBgtFoFIxGo9DZ2Sm88cYbAgAhPT1d/DwAobi42Ox+xcXF4ja9Xi/8v//3/wQ/Pz9Bp9NZVKfq6mqhtx/lXV1dgtFotLh95o5liZSUFOGNN96QvL+cpLbFXBus/XrK5be//a1QVFRk13Ps3btXmDlzpl3PoVTMHVIy5o55zB37YO7YV1/IHQ8QACA8PBw1NTXo37+/XUYMm5ubERERgZqaGgQEBMh+fCWcRxAEXLp0CeHh4ZKP6+3tjerqarS3t0s+htDDSJuXl5dVx9DpdIiOjhbX/f39ERwcDJ1Oh9jYWEyZMgW7d+/G//zP/+CTTz7Bo48+Krm+5Drc3d3h7u4OT09PAJe/X6/k5uaGwsJCbNq0yaTsevt1b/P29saTTz6J7du349ChQ3jwwQdtqq9Go+nxXCSNM76e3377LRobG3HHHXfY9TzTpk3Diy++iFOnTmH06NF2PZfSMHdIyZg7fRtzR536Qu7wcYn/4+bmhqFDhyIwMBABAQF2WQDY7dhKOE9gYCCGDh0KNzfbvq28vb1tqldP/w+t7XQGgwE+Pj4m23x8fGAwGAAADzzwAM6fP48bbrgBixYtwuDBg21qM6nDmDFj4O3tjU8++cSm4/Tr1w+dnZ0216en2yxLSkoQHR2NgwcPIjY2FsHBwdi0aVOP+z/wwANIS0u77nlefPFFaDQaHDp0CAsXLoRGo8G4cePE8ueffx7p6el4++23ERoaiueff14sO3bsGG6++Wb4+voiISEB//jHPwAAH374IW644Qbxc+3t7fD398d3330H4PLkRbNmzcKAAQOQmpqK6upqS78sktoA9Pz1nDx5Mh566CGEh4cjPT0dCxcuREBAAHbv3i1LPT/++GPMnj3bZFtRURFGjRoFf39//O53v0NjY6NYZu58Fy9exH333YfAwED85je/wX/+8x+T49577734+OOPraqfWjB3yFUxd5g7zB3XpPbc4SADUQ98fX3FDtbNaDTCz88PwOW/ELz77rv45ptv+NckEnl4eOCBBx7Au+++K2l/QRDw/vvv49SpU0hKSpK5dr+4ePEi1qxZg88++wybN2/G448/jtbWVpPPbN68GV9++SXeeOON6x4vNzcXRqMREydOxOuvvw6j0Ygvv/zS5DNffvklnnrqKTz++OOYOXOmuP2BBx7AXXfdhXPnzmHmzJl48sknAQC33347Tp8+jXPnzgEASktLMWTIEMTExAAA5s6di/DwcJw/fx633norFixYYNPXxJI29Ka5uRk7d+7Em2++iRkzZuCuu+7C3r17Zann8ePHcfPNN4vrgiBg7ty5WL58Oaqrq9HU1IT8/Hyx3Nz55syZg4CAAJw5cwYpKSl4+OGHTc41fvx4nDhxwqr6kXyYOyQFc4e5w9whqeyZO3xcgqgHkZGR2Ldvn7je0tKChoYGcYZVot7MmzcPEyZMQFNTk8X7NDc3Y+DAgTAYDPDy8sKmTZswYsQIu9Xx0qVL2LBhA2JiYjB8+HDcd999qKurE8srKiqwfPlyHD58GIGBgdc9XvdtuW5ubujXr1+Pt3aeOnUKR44cwS233CJu6764Wr58Ofz8/NDY2CjOXNy/f38kJydj3759WLBgAYqKinDnnXcCuPxXk+LiYuzevRve3t5YtmwZ1qxZg6amJovqK7UNvZkxYwaGDx8OAJg1axZOnjyJH374QZZ66vV6hIaGiutdXV1obW1FYGAgBg0ahA0bNoj/78yd7/z58/jiiy/w4Ycfwt/fH0888QS+/fZbk9stBw0ahPr6eovbTfJi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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(\"all links\")\n", "figure(figsize=(12,4))\n", "subplot(131, aspect=\"equal\")\n", "hist2d(res_tntp_sec, res_uxsim_sec, bins=20, cmap=\"Greys\", norm=mpl.colors.LogNorm())\n", "xlabel(\"TNTP link travel time (sec)\")\n", "ylabel(\"UXsim link travel time (sec)\")\n", "colorbar()\n", "\n", "subplot(132, aspect=\"equal\")\n", "hist2d(res_tntp_sec, res_uxsim_sec, bins=20, range=[[0,1000], [0,1000]], cmap=\"Greys\", norm=mpl.colors.LogNorm())\n", "xlabel(\"TNTP link travel time (sec)\")\n", "ylabel(\"UXsim link travel time (sec)\")\n", "colorbar()\n", "\n", "subplot(133, aspect=\"equal\")\n", "hist2d(res_tntp_sec, res_uxsim_sec, bins=20, range=[[0,600], [0,600]], cmap=\"Greys\", norm=mpl.colors.LogNorm())\n", "xlabel(\"TNTP link travel time (sec)\")\n", "ylabel(\"UXsim link travel time (sec)\")\n", "colorbar()\n", "\n", "tight_layout()\n", "show()\n", "\n", "\n", "\n", "print(\"links with non-small traffic volume only. This is because travel time of links with small traffic volume is almost equal to free flow travel time and may not be meaningful comparison\")\n", "threth = 2000 \n", "figure(figsize=(12,4))\n", "subplot(131, aspect=\"equal\")\n", "hist2d(res_tntp_sec[res_tntp_vol>threth], res_uxsim_sec[res_tntp_vol>threth], bins=20, cmap=\"Greys\", norm=mpl.colors.LogNorm())\n", "xlabel(\"TNTP link travel time (sec)\")\n", "ylabel(\"UXsim link travel time (sec)\")\n", "colorbar()\n", "\n", "subplot(132, aspect=\"equal\")\n", "hist2d(res_tntp_sec[res_tntp_vol>threth], res_uxsim_sec[res_tntp_vol>threth], bins=20, range=[[0,1000], [0,1000]], cmap=\"Greys\", norm=mpl.colors.LogNorm())\n", "xlabel(\"TNTP link travel time (sec)\")\n", "ylabel(\"UXsim link travel time (sec)\")\n", "colorbar()\n", "\n", "subplot(133, aspect=\"equal\")\n", "hist2d(res_tntp_sec[res_tntp_vol>threth], res_uxsim_sec[res_tntp_vol>threth], bins=20, range=[[0,600], [0,600]], cmap=\"Greys\", norm=mpl.colors.LogNorm())\n", "xlabel(\"TNTP link travel time (sec)\")\n", "ylabel(\"UXsim link travel time (sec)\")\n", "colorbar()\n", "\n", "tight_layout()\n", "show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above figures show the comparison of link traffic travel time. You can see a clear 45-degree line, suggesting that both results are similar for many links. \n", "\n", "However, there is a noticeable difference that many links in UXsim experienced substantially longer travel time than TNTP. This is a reasonable result, because in dynamic traffic assignment with hard traffic capacity, traffic congestion can grow significantly and extend to the upstream links if the demand exceeds the capacity. This kind of realistic phenomena is not captured by the static traffic assignment model." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we compare the total travel time in the entire network. As shown in below, the results are not so different. From these results, we can say that UXsim output a plausible result for this scenario." ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total travel time (h)\n", "TNTP:\t 311681.3229930834\n", "UXsim:\t 347367.7123302059\n" ] } ], "source": [ "print(\"total travel time (h)\")\n", "print(\"TNTP:\\t\", sum(res_tntp_sec*res_tntp_vol)/3600)\n", "print(\"UXsim:\\t\", sum(res_uxsim_sec*res_uxsim_vol)/3600)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Code to translate TNTP files to UXsim scenario\n", "\n", "Below if the code used to generate `chicago_sketch.uxsim_scenario` from TNTP datasets.\n", "To execute this code, please obtain TNTP files from [TNTP repo](https://github.com/bstabler/TransportationNetworks) and place them to appropriate path in advance. This code is applicable to other TNTP files with slight modifications." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "from tqdm.notebook import tqdm\n", "\n", "from uxsim import *\n", "\n", "############################################\n", "# tntp parser customized for Chicago-sketch\n", "############################################\n", "\n", "def import_links(filename):\n", " \"\"\"\n", " Modified from `parsing networks in Python.ipynb` in https://github.com/bstabler/TransportationNetworks\n", " Credit: Transportation Networks for Research Core Team. Transportation Networks for Research. https://github.com/bstabler/TransportationNetworks. Accessed 2021-10-01.\n", " \"\"\"\n", " net = pd.read_csv(filename, skiprows=8, sep='\\t')\n", "\n", " trimmed= [s.strip().lower() for s in net.columns]\n", " net.columns = trimmed\n", "\n", " # And drop the silly first andlast columns\n", " net.drop(['~', ';'], axis=1, inplace=True)\n", " return net\n", "\n", "def import_nodes(filename):\n", " \"\"\"\n", " Modified from `parsing networks in Python.ipynb` in https://github.com/bstabler/TransportationNetworks\n", " Credit: Transportation Networks for Research Core Team. Transportation Networks for Research. https://github.com/bstabler/TransportationNetworks. Accessed 2021-10-01. \n", " \"\"\"\n", " net = pd.read_csv(filename, skiprows=0, sep='\\t')\n", "\n", " trimmed= [s.strip().lower() for s in net.columns]\n", " net.columns = trimmed\n", "\n", " net.drop([';'], axis=1, inplace=True)\n", "\n", " return net\n", "\n", "def import_odmatrix_chicago(matfile, nodefile):\n", " \"\"\"\n", " Modified from `parsing networks in Python.ipynb` in https://github.com/bstabler/TransportationNetworks\n", " Credit: Transportation Networks for Research Core Team. Transportation Networks for Research. https://github.com/bstabler/TransportationNetworks. Accessed 2021-10-01.\n", " \"\"\"\n", " f = open(matfile, 'r')\n", " all_rows = f.read()\n", " blocks = all_rows.split('Origin')[1:]\n", " matrix = {}\n", " for k in range(len(blocks)):\n", " orig = blocks[k].split('\\n')\n", " dests = orig[1:]\n", " orig=int(orig[0])\n", "\n", " d = [eval('{'+a.replace(';',',').replace(' ','') +'}') for a in dests]\n", " destinations = {}\n", " for i in d:\n", " destinations = {**destinations, **i}\n", " matrix[orig] = destinations\n", " zones = max(matrix.keys())\n", " \n", " # mat = np.zeros((zones, zones))\n", " # for i in range(zones):\n", " # for j in range(zones):\n", " # # We map values to a index i-1, as Numpy is base 0\n", " # mat[i, j] = matrix.get(i+1,{}).get(j+1,0)\n", "\n", " mat = [[0 for i in range(zones)] for j in range(zones)]\n", " for i in range(zones):\n", " for j in range(zones):\n", " # We map values to a index i-1, as Python is base 0\n", " mat[i][j] = matrix.get(i+1,{}).get(j+1,0)\n", "\n", " index = np.arange(zones) + 1\n", " \n", " nodelist = [i for i in range(387)]#list(import_nodes(nodefile)[\"node\"])\n", "\n", " df = pd.DataFrame(mat, columns=nodelist)\n", " df[\"origin\"] = nodelist\n", " df = df.reindex(columns=[\"origin\"]+nodelist)\n", " return df\n", "\n", "df_nodes = import_nodes(\"_private_files/ChicagoSketch_node.tntp\")\n", "df_links = import_links(\"_private_files/ChicagoSketch_net.tntp\")\n", "df_demand = import_odmatrix_chicago(\"_private_files/ChicagoSketch_trips.tntp\", \"_private_files/ChicagoSketch_node.tntp\")\n", "\n", "############################################\n", "# prepare for deleting dummy links/nodes\n", "############################################\n", "\n", "map_dummy2real = {}\n", "map_real2dummy = {}\n", "for i in lange(df_links):\n", " if df_links[\"capacity\"][i] == 49500: #dummy link between dummy node and real node\n", " if df_links[\"init_node\"][i] not in map_dummy2real.keys() and df_links[\"init_node\"][i] < df_links[\"term_node\"][i]:\n", " #print(\"delete: link\", (df_links[\"init_node\"][i], df_links[\"term_node\"][i]), end=\", \")\n", " map_dummy2real[df_links[\"init_node\"][i]] = df_links[\"term_node\"][i]\n", "print(\"\")\n", "\n", "############################################\n", "# uxsim setup\n", "############################################\n", "\n", "\n", "W = World(\n", " name=\"\",\n", " deltan=30,\n", " tmax=10000,\n", " print_mode=1, save_mode=1, show_mode=1,\n", " random_seed=42,\n", " vehicle_logging_timestep_interval=1,\n", " meta_data = {\"DATA SOURCE AND LICENCE\": \"Chicago-Sketch network. This is based on https://github.com/bstabler/TransportationNetworks/tree/master/Chicago-Sketch by Transportation Networks for Research Core Team. Users need to follow their licence. Especially, this data is for academic research purposes only, and users must indicate the source of any dataset they are using in any publication that relies on any of the datasets provided in this web site.\"}\n", ")\n", "\n", "for i in range(len(df_nodes)):\n", " if i+1 not in map_dummy2real.keys():\n", " name = str(i+1)\n", " x = float(df_nodes[\"x\"][i])\n", " y = float(df_nodes[\"y\"][i])\n", " W.addNode(name, x, y)\n", "\n", "for i in range(len(df_links)):\n", " start_node = df_links[\"init_node\"][i]\n", " end_node = df_links[\"term_node\"][i]\n", "\n", " if start_node in map_dummy2real.keys() or end_node in map_dummy2real.keys(): #delete dummy node\n", " continue\n", "\n", " length = df_links[\"length\"][i]*1609.34 #mile to m\n", " if length < 100:\n", " length = 100\n", " \n", " capacity = df_links[\"capacity\"][i]/3600\n", " n_lanes = int(capacity/0.5) #based on the assumption that flow capacity per lane is 0.5 veh/s in arterial roads\n", " if n_lanes < 1:\n", " n_lanes = 1\n", " if df_links[\"link_type\"][i] == 2: #highway\n", " n_lanes = 3\n", " \n", " free_flow_time = df_links[\"free_flow_time\"][i]*60\n", " if free_flow_time > 0:\n", " free_flow_speed = length/free_flow_time\n", " else:\n", " free_flow_speed = 10\n", " if free_flow_speed < 10:\n", " free_flow_speed = 10\n", " elif free_flow_speed > 40:\n", " free_flow_speed = 40\n", " \n", " W.addLink(str(i), str(start_node), str(end_node), length=length, free_flow_speed=free_flow_speed, number_of_lanes=n_lanes)\n", " \n", "\n", "demand_multipiler = 1/0.85 #compensete some demands that are filtered out by pre-processing\n", "demand_threthhold = 30 #delete too small demand (<= deltan) as they cause peculiar traffic pattern at the beginning of simulation\n", "for i in tqdm(range(len(df_demand))):\n", " origin = str(i+1)\n", " if int(origin) in map_dummy2real.keys():\n", " origin = str(map_dummy2real[int(origin)])\n", " for j in range(len(df_demand)):\n", " destination = str(j+1)\n", " \n", " if int(destination) in map_dummy2real.keys():\n", " destination = str(map_dummy2real[int(destination)])\n", " \n", " if origin == destination:\n", " continue\n", " \n", " demand = df_demand.loc[i, j]*demand_multipiler\n", " if demand > demand_threthhold:\n", " try:\n", " W.adddemand(origin, destination, 0, 3600, volume=demand)\n", " except:\n", " print(\"inconsistent demand:\", origin, destination, demand)\n", "\n", "W.save_scenario(\"out/chicago_sketch.uxsim_scenario\")\n", "\n", "W.exec_simulation()\n", "W.analyzer.print_simple_stats()\n", "\n", "W.analyzer.network_fancy(animation_speed_inverse=15, sample_ratio=0.2, interval=5, trace_length=10, figsize=6, antialiasing=False)" ] } ], "metadata": { "anaconda-cloud": {}, "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.19" } }, "nbformat": 4, "nbformat_minor": 2 }