{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import os\n", "import sumolib\n", "import copy\n", "from tqdm import tqdm\n", "from datetime import datetime" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-01-05 08:25:00\n", "2024-01-05 08:30:00\n", "2024-01-05 08:35:00\n", "2024-01-05 08:45:00\n" ] } ], "source": [ "midnight = int(datetime(2024, 1, 5, 0, 0, 0).timestamp())\n", "next_day = int(datetime(2024, 1, 6, 0, 0, 0).timestamp())\n", "fmins = range(midnight, next_day, 300)\n", "m = 105 # m ranges from 26 to 287\n", "# sigtable 시작시각 : 현재시각 - 1200 = 08:25\n", "# 시뮬레이션 시작시각 : 현재시각 - 900 = 08:30\n", "# 시뮬레이션 종료시각 : 현재시각 - 600 = 08:35\n", "# 현재시각 : 08:45\n", "present_time = fmins[m]\n", "sigtable_start = fmins[m] - 1200\n", "sim_start = fmins[m] - 900\n", "sim_end = fmins[m] - 600\n", "print(datetime.fromtimestamp(sigtable_start))\n", "print(datetime.fromtimestamp(sim_start))\n", "print(datetime.fromtimestamp(sim_end))\n", "print(datetime.fromtimestamp(present_time))\n", "net = sumolib.net.readNet('../../Data/networks/sn.net.xml')\n", "inter_node = pd.read_csv('../../data/tables/inter_node.csv', index_col=0)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['i0', 'i1', 'i2', 'i3', 'i6', 'i7', 'i8', 'i9']\n" ] } ], "source": [ "histid = pd.read_csv(f'../../Data/tables/histids/histids_{fmins[50]}.csv', index_col=0)\n", "print(sorted(histid.node_id.unique()))" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{175: 'u00', 176: 'i1', 177: 'u20', 178: 'c30', 210: 'u60', 206: 'i7', 201: 'i8', 202: 'i9'}\n", "{'i0': 175, 'u00': 175, 'i1': 176, 'i2': 177, 'u20': 177, 'i3': 178, 'u30': 178, 'u31': 178, 'u32': 178, 'c30': 178, 'i6': 210, 'u60': 210, 'i7': 206, 'i8': 201, 'i9': 202}\n", "{'u00': 'i0', 'u20': 'i2', 'u30': 'i3', 'u31': 'i3', 'u32': 'i3', 'c30': 'i3'}\n", "{'i0': ['u00'], 'i1': [], 'i2': ['u20'], 'i3': ['c30', 'u30', 'u31', 'u32'], 'i6': [], 'i7': [], 'i8': [], 'i9': []}\n", "['c30', 'i0', 'i1', 'i2', 'i3', 'i6', 'i7', 'i8', 'i9', 'u00', 'u20', 'u30', 'u31', 'u32', 'u60']\n", "['i0', 'i1', 'i2', 'i3', 'i6', 'i7', 'i8', 'i9']\n", "['c30', 'u00', 'u20', 'u30', 'u31', 'u32', 'u60']\n" ] } ], "source": [ "inter2node = dict(zip(inter_node['inter_no'], inter_node['node_id']))\n", "node2inter = dict(zip(inter_node['node_id'], inter_node['inter_no']))\n", "ch2pa = {'u00': 'i0', 'u20': 'i2', 'u30': 'i3', 'u31': 'i3', 'u32': 'i3', 'c30': 'i3'}\n", "pa2ch = {'i0':['u00'], 'i1':[], 'i2':['u20'], 'i3':['c30', 'u30', 'u31', 'u32'], 'i6':[], 'i7':[], 'i8':[], 'i9':[]}\n", "node_ids = sorted(inter_node.node_id.unique())\n", "parent_ids = sorted(inter_node[inter_node.inter_type=='parent'].node_id.unique())\n", "child_ids = sorted(inter_node[inter_node.inter_type=='child'].node_id.unique())\n", "\n", "print(inter2node)\n", "print(node2inter)\n", "print(ch2pa)\n", "print(pa2ch)\n", "print(node_ids)\n", "print(parent_ids)\n", "print(child_ids)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1704411900 2024-01-05 08:45:00\n" ] }, { "data": { "text/html": [ "
\n", " | node_id | \n", "start_unix | \n", "phas_A | \n", "phas_B | \n", "duration | \n", "inc_edge_A | \n", "out_edge_A | \n", "inc_edge_B | \n", "out_edge_B | \n", "
---|---|---|---|---|---|---|---|---|---|
0 | \n", "i6 | \n", "1704410420 | \n", "1 | \n", "1 | \n", "24 | \n", "-571542115_01 | \n", "571500535_01 | \n", "NaN | \n", "NaN | \n", "
1 | \n", "i6 | \n", "1704410420 | \n", "1 | \n", "2 | \n", "19 | \n", "-571542115_01 | \n", "571500535_01 | \n", "571500535_02.18 | \n", "571542115_01 | \n", "
2 | \n", "i6 | \n", "1704410420 | \n", "2 | \n", "2 | \n", "39 | \n", "571500535_02.18 | \n", "571511538_01 | \n", "571500535_02.18 | \n", "571542115_01 | \n", "
3 | \n", "i6 | \n", "1704410420 | \n", "3 | \n", "3 | \n", "65 | \n", "571511538_02.121 | \n", "571542115_01 | \n", "571511538_02.121 | \n", "571500585_01 | \n", "
4 | \n", "i6 | \n", "1704410420 | \n", "4 | \n", "4 | \n", "23 | \n", "571500585_02 | \n", "571511538_01 | \n", "571500585_02 | \n", "571500535_01 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
215 | \n", "i0 | \n", "1704411630 | \n", "3 | \n", "4 | \n", "26 | \n", "571545870_02 | \n", "571510153_01 | \n", "571510153_02 | \n", "571545870_01 | \n", "
216 | \n", "i0 | \n", "1704411630 | \n", "4 | \n", "4 | \n", "33 | \n", "571510153_02 | \n", "571500487_01 | \n", "571510153_02 | \n", "571545870_01 | \n", "
217 | \n", "i1 | \n", "1704411670 | \n", "1 | \n", "1 | \n", "37 | \n", "-571542810_01 | \n", "-571542797_02.99 | \n", "571542797_02.99 | \n", "571542810_01 | \n", "
218 | \n", "i1 | \n", "1704411670 | \n", "2 | \n", "2 | \n", "93 | \n", "-571542810_01 | \n", "-571542797_02.99 | \n", "-571542810_01 | \n", "571543469_01 | \n", "
219 | \n", "i1 | \n", "1704411670 | \n", "3 | \n", "3 | \n", "40 | \n", "571543469_02 | \n", "-571542797_02.99 | \n", "NaN | \n", "NaN | \n", "
220 rows × 9 columns
\n", "\n", " | node_id | \n", "phase_no | \n", "ring_type | \n", "inc_edge | \n", "out_edge | \n", "
---|---|---|---|---|---|
0 | \n", "i0 | \n", "1 | \n", "A | \n", "-571542797_02 | \n", "571500487_01 | \n", "
1 | \n", "i0 | \n", "1 | \n", "B | \n", "-571500487_01 | \n", "571542797_02 | \n", "
2 | \n", "i0 | \n", "2 | \n", "A | \n", "-571500487_01 | \n", "571545870_01 | \n", "
3 | \n", "i0 | \n", "2 | \n", "B | \n", "-571542797_02 | \n", "571510153_01 | \n", "
4 | \n", "i0 | \n", "3 | \n", "A | \n", "571545870_02 | \n", "571510153_01 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
111 | \n", "u60 | \n", "2 | \n", "B | \n", "571500535_02 | \n", "-571500535_02 | \n", "
112 | \n", "u60 | \n", "3 | \n", "A | \n", "NaN | \n", "NaN | \n", "
113 | \n", "u60 | \n", "3 | \n", "B | \n", "NaN | \n", "NaN | \n", "
114 | \n", "u60 | \n", "4 | \n", "A | \n", "NaN | \n", "NaN | \n", "
115 | \n", "u60 | \n", "4 | \n", "B | \n", "NaN | \n", "NaN | \n", "
116 rows × 5 columns
\n", "\n", " | node_id | \n", "start_unix | \n", "phas_A | \n", "phas_B | \n", "duration | \n", "inc_edge_A | \n", "out_edge_A | \n", "inc_edge_B | \n", "out_edge_B | \n", "
---|---|---|---|---|---|---|---|---|---|
0 | \n", "i6 | \n", "1704410420 | \n", "1 | \n", "1 | \n", "24 | \n", "-571542115_01 | \n", "571500535_01 | \n", "NaN | \n", "NaN | \n", "
1 | \n", "i6 | \n", "1704410420 | \n", "1 | \n", "2 | \n", "19 | \n", "-571542115_01 | \n", "571500535_01 | \n", "571500535_02.18 | \n", "571542115_01 | \n", "
2 | \n", "i6 | \n", "1704410420 | \n", "2 | \n", "2 | \n", "39 | \n", "571500535_02.18 | \n", "571511538_01 | \n", "571500535_02.18 | \n", "571542115_01 | \n", "
3 | \n", "i6 | \n", "1704410420 | \n", "3 | \n", "3 | \n", "65 | \n", "571511538_02.121 | \n", "571542115_01 | \n", "571511538_02.121 | \n", "571500585_01 | \n", "
4 | \n", "i6 | \n", "1704410420 | \n", "4 | \n", "4 | \n", "23 | \n", "571500585_02 | \n", "571511538_01 | \n", "571500585_02 | \n", "571500535_01 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
411 | \n", "u00 | \n", "1704411630 | \n", "3 | \n", "4 | \n", "26 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
412 | \n", "u00 | \n", "1704411630 | \n", "4 | \n", "4 | \n", "33 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
413 | \n", "i1 | \n", "1704411670 | \n", "1 | \n", "1 | \n", "37 | \n", "-571542810_01 | \n", "-571542797_02.99 | \n", "571542797_02.99 | \n", "571542810_01 | \n", "
414 | \n", "i1 | \n", "1704411670 | \n", "2 | \n", "2 | \n", "93 | \n", "-571542810_01 | \n", "-571542797_02.99 | \n", "-571542810_01 | \n", "571543469_01 | \n", "
415 | \n", "i1 | \n", "1704411670 | \n", "3 | \n", "3 | \n", "40 | \n", "571543469_02 | \n", "-571542797_02.99 | \n", "NaN | \n", "NaN | \n", "
416 rows × 9 columns
\n", "\n", " | node_id | \n", "start_unix | \n", "phase_sumo | \n", "duration | \n", "state | \n", "start_dt | \n", "
---|---|---|---|---|---|---|
98 | \n", "i2 | \n", "1704410739 | \n", "0 | \n", "40 | \n", "GGggGGG | \n", "2024-01-05 08:25:39 | \n", "
99 | \n", "i2 | \n", "1704410739 | \n", "1 | \n", "25 | \n", "rrggrrr | \n", "2024-01-05 08:25:39 | \n", "
100 | \n", "i2 | \n", "1704410739 | \n", "2 | \n", "71 | \n", "rrggrrr | \n", "2024-01-05 08:25:39 | \n", "
101 | \n", "i2 | \n", "1704410739 | \n", "3 | \n", "34 | \n", "rrggGGG | \n", "2024-01-05 08:25:39 | \n", "
102 | \n", "u20 | \n", "1704410739 | \n", "0 | \n", "40 | \n", "ggrggg | \n", "2024-01-05 08:25:39 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
411 | \n", "u00 | \n", "1704411630 | \n", "3 | \n", "26 | \n", "ggggrgggg | \n", "2024-01-05 08:40:30 | \n", "
412 | \n", "u00 | \n", "1704411630 | \n", "4 | \n", "33 | \n", "ggggrgggg | \n", "2024-01-05 08:40:30 | \n", "
413 | \n", "i1 | \n", "1704411670 | \n", "0 | \n", "37 | \n", "gGGGGGrgrr | \n", "2024-01-05 08:41:10 | \n", "
414 | \n", "i1 | \n", "1704411670 | \n", "1 | \n", "93 | \n", "grrGGGGgrr | \n", "2024-01-05 08:41:10 | \n", "
415 | \n", "i1 | \n", "1704411670 | \n", "2 | \n", "40 | \n", "grrrrrrgGG | \n", "2024-01-05 08:41:10 | \n", "
318 rows × 6 columns
\n", "\n", " | node_id | \n", "start_unix | \n", "phase_sumo | \n", "duration | \n", "state | \n", "start_dt | \n", "
---|---|---|---|---|---|---|
106 | \n", "i6 | \n", "1704410760 | \n", "0 | \n", "24 | \n", "grrrgGGGrgrrgrrr | \n", "2024-01-05 08:26:00 | \n", "
107 | \n", "i6 | \n", "1704410760 | \n", "1 | \n", "19 | \n", "grrrgGGGrgrrgGGr | \n", "2024-01-05 08:26:00 | \n", "
108 | \n", "i6 | \n", "1704410760 | \n", "2 | \n", "39 | \n", "grrrgrrrrgrrgGGG | \n", "2024-01-05 08:26:00 | \n", "
109 | \n", "i6 | \n", "1704410760 | \n", "3 | \n", "65 | \n", "gGGGgrrrrgrrgrrr | \n", "2024-01-05 08:26:00 | \n", "
110 | \n", "i6 | \n", "1704410760 | \n", "4 | \n", "23 | \n", "grrrgrrrrgGGgrrr | \n", "2024-01-05 08:26:00 | \n", "
159 | \n", "i6 | \n", "1704410930 | \n", "0 | \n", "24 | \n", "grrrgGGGrgrrgrrr | \n", "2024-01-05 08:28:50 | \n", "
160 | \n", "i6 | \n", "1704410930 | \n", "1 | \n", "19 | \n", "grrrgGGGrgrrgGGr | \n", "2024-01-05 08:28:50 | \n", "
161 | \n", "i6 | \n", "1704410930 | \n", "2 | \n", "39 | \n", "grrrgrrrrgrrgGGG | \n", "2024-01-05 08:28:50 | \n", "
162 | \n", "i6 | \n", "1704410930 | \n", "3 | \n", "65 | \n", "gGGGgrrrrgrrgrrr | \n", "2024-01-05 08:28:50 | \n", "
163 | \n", "i6 | \n", "1704410930 | \n", "4 | \n", "23 | \n", "grrrgrrrrgGGgrrr | \n", "2024-01-05 08:28:50 | \n", "
212 | \n", "i6 | \n", "1704411100 | \n", "0 | \n", "24 | \n", "grrrgGGGrgrrgrrr | \n", "2024-01-05 08:31:40 | \n", "
213 | \n", "i6 | \n", "1704411100 | \n", "1 | \n", "19 | \n", "grrrgGGGrgrrgGGr | \n", "2024-01-05 08:31:40 | \n", "
214 | \n", "i6 | \n", "1704411100 | \n", "2 | \n", "39 | \n", "grrrgrrrrgrrgGGG | \n", "2024-01-05 08:31:40 | \n", "
215 | \n", "i6 | \n", "1704411100 | \n", "3 | \n", "65 | \n", "gGGGgrrrrgrrgrrr | \n", "2024-01-05 08:31:40 | \n", "
216 | \n", "i6 | \n", "1704411100 | \n", "4 | \n", "23 | \n", "grrrgrrrrgGGgrrr | \n", "2024-01-05 08:31:40 | \n", "
273 | \n", "i6 | \n", "1704411270 | \n", "0 | \n", "24 | \n", "grrrgGGGrgrrgrrr | \n", "2024-01-05 08:34:30 | \n", "
274 | \n", "i6 | \n", "1704411270 | \n", "1 | \n", "19 | \n", "grrrgGGGrgrrgGGr | \n", "2024-01-05 08:34:30 | \n", "
275 | \n", "i6 | \n", "1704411270 | \n", "2 | \n", "39 | \n", "grrrgrrrrgrrgGGG | \n", "2024-01-05 08:34:30 | \n", "
276 | \n", "i6 | \n", "1704411270 | \n", "3 | \n", "65 | \n", "gGGGgrrrrgrrgrrr | \n", "2024-01-05 08:34:30 | \n", "
277 | \n", "i6 | \n", "1704411270 | \n", "4 | \n", "23 | \n", "grrrgrrrrgGGgrrr | \n", "2024-01-05 08:34:30 | \n", "
338 | \n", "i6 | \n", "1704411440 | \n", "0 | \n", "24 | \n", "grrrgGGGrgrrgrrr | \n", "2024-01-05 08:37:20 | \n", "
339 | \n", "i6 | \n", "1704411440 | \n", "1 | \n", "19 | \n", "grrrgGGGrgrrgGGr | \n", "2024-01-05 08:37:20 | \n", "
340 | \n", "i6 | \n", "1704411440 | \n", "2 | \n", "39 | \n", "grrrgrrrrgrrgGGG | \n", "2024-01-05 08:37:20 | \n", "
341 | \n", "i6 | \n", "1704411440 | \n", "3 | \n", "65 | \n", "gGGGgrrrrgrrgrrr | \n", "2024-01-05 08:37:20 | \n", "
342 | \n", "i6 | \n", "1704411440 | \n", "4 | \n", "23 | \n", "grrrgrrrrgGGgrrr | \n", "2024-01-05 08:37:20 | \n", "
393 | \n", "i6 | \n", "1704411609 | \n", "0 | \n", "24 | \n", "grrrgGGGrgrrgrrr | \n", "2024-01-05 08:40:09 | \n", "
394 | \n", "i6 | \n", "1704411609 | \n", "1 | \n", "19 | \n", "grrrgGGGrgrrgGGr | \n", "2024-01-05 08:40:09 | \n", "
395 | \n", "i6 | \n", "1704411609 | \n", "2 | \n", "39 | \n", "grrrgrrrrgrrgGGG | \n", "2024-01-05 08:40:09 | \n", "
396 | \n", "i6 | \n", "1704411609 | \n", "3 | \n", "65 | \n", "gGGGgrrrrgrrgrrr | \n", "2024-01-05 08:40:09 | \n", "
397 | \n", "i6 | \n", "1704411609 | \n", "4 | \n", "23 | \n", "grrrgrrrrgGGgrrr | \n", "2024-01-05 08:40:09 | \n", "