From dd75fed36b3648f5ab6b385f98b356c5b9283f7d Mon Sep 17 00:00:00 2001 From: govin08 Date: Mon, 15 Apr 2024 11:10:43 +0900 Subject: [PATCH] found that the only valid modifications so far is on 'match6. --- .../0411_uturn.ipynb | 1271 ++++++++++++++--- .../generate_signals.cpython-38.pyc | Bin 26084 -> 26084 bytes .../preprocess_daily.cpython-38.pyc | Bin 25581 -> 26396 bytes 3 files changed, 1039 insertions(+), 232 deletions(-) diff --git a/Analysis/0411_unp-left_p-right-uturn/0411_uturn.ipynb b/Analysis/0411_unp-left_p-right-uturn/0411_uturn.ipynb index 9f4bb791d..6c6147767 100644 --- a/Analysis/0411_unp-left_p-right-uturn/0411_uturn.ipynb +++ b/Analysis/0411_unp-left_p-right-uturn/0411_uturn.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -55,7 +55,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -93,11 +93,10 @@ " \n", " parent_id\n", " child_id\n", - " adj_from_edge_id\n", - " adj_to_edge_id\n", - " from_edge_id\n", - " to_edge_id\n", - " condition\n", + " adj_inc_edge_id\n", + " adj_out_edge_id\n", + " inc_edge_id\n", + " out_edge_id\n", " \n", " \n", " \n", @@ -109,7 +108,6 @@ " 571500487_01\n", " 571500487_02\n", " 571500487_01.32\n", - " 좌회전시\n", " \n", " \n", " 1\n", @@ -119,7 +117,6 @@ " 571542811_01\n", " 571542810_01.51\n", " 571542810_02\n", - " 보행신호시\n", " \n", " \n", " 2\n", @@ -129,7 +126,6 @@ " 571556450_01\n", " 571556452_01\n", " 571556452_02\n", - " 보행신호시\n", " \n", " \n", " 3\n", @@ -139,7 +135,6 @@ " 571500475_01\n", " 571500475_02\n", " 571500475_01.26\n", - " 보행신호시\n", " \n", " \n", " 4\n", @@ -149,7 +144,6 @@ " 571540303_01\n", " 571540303_02\n", " -571540303_02\n", - " 보행신호시\n", " \n", " \n", " 5\n", @@ -159,28 +153,27 @@ " 571500535_01\n", " 571500535_02\n", " -571500535_02\n", - " 좌회전시\n", " \n", " \n", "\n", "" ], "text/plain": [ - " parent_id child_id adj_from_edge_id adj_to_edge_id from_edge_id \\\n", - "0 i0 u00 -571500487_01 571500487_01 571500487_02 \n", - "1 i2 u20 571542811_02 571542811_01 571542810_01.51 \n", - "2 i3 u30 571556450_02 571556450_01 571556452_01 \n", - "3 i3 u31 -571500475_01 571500475_01 571500475_02 \n", - "4 i3 u32 571540303_02.21 571540303_01 571540303_02 \n", - "5 i6 u60 571500535_02.18 571500535_01 571500535_02 \n", + " parent_id child_id adj_inc_edge_id adj_out_edge_id inc_edge_id \\\n", + "0 i0 u00 -571500487_01 571500487_01 571500487_02 \n", + "1 i2 u20 571542811_02 571542811_01 571542810_01.51 \n", + "2 i3 u30 571556450_02 571556450_01 571556452_01 \n", + "3 i3 u31 -571500475_01 571500475_01 571500475_02 \n", + "4 i3 u32 571540303_02.21 571540303_01 571540303_02 \n", + "5 i6 u60 571500535_02.18 571500535_01 571500535_02 \n", "\n", - " to_edge_id condition \n", - "0 571500487_01.32 좌회전시 \n", - "1 571542810_02 보행신호시 \n", - "2 571556452_02 보행신호시 \n", - "3 571500475_01.26 보행신호시 \n", - "4 -571540303_02 보행신호시 \n", - "5 -571500535_02 좌회전시 " + " out_edge_id \n", + "0 571500487_01.32 \n", + "1 571542810_02 \n", + "2 571556452_02 \n", + "3 571500475_01.26 \n", + "4 -571540303_02 \n", + "5 -571500535_02 " ] }, "metadata": {}, @@ -195,143 +188,17 @@ "self.make_match3()\n", "self.make_match4()\n", "self.make_match5()\n", - "self.u_turn = pd.merge(self.u_turn, self.u_condition, on='child_id')\n", "display(self.u_turn)" ] }, { "cell_type": "code", - "execution_count": 3, - "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", - "
parent_idchild_idadj_from_edge_idadj_to_edge_idfrom_edge_idto_edge_idcondition
0i0u00-571500487_01571500487_01571500487_02571500487_01.32좌회전시
1i2u20571542811_02571542811_01571542810_01.51571542810_02보행신호시
2i3u30571556450_02571556450_01571556452_01571556452_02보행신호시
3i3u31-571500475_01571500475_01571500475_02571500475_01.26보행신호시
4i3u32571540303_02.21571540303_01571540303_02-571540303_02보행신호시
5i6u60571500535_02.18571500535_01571500535_02-571500535_02좌회전시
\n", - "
" - ], - "text/plain": [ - " parent_id child_id adj_from_edge_id adj_to_edge_id from_edge_id \\\n", - "0 i0 u00 -571500487_01 571500487_01 571500487_02 \n", - "1 i2 u20 571542811_02 571542811_01 571542810_01.51 \n", - "2 i3 u30 571556450_02 571556450_01 571556452_01 \n", - "3 i3 u31 -571500475_01 571500475_01 571500475_02 \n", - "4 i3 u32 571540303_02.21 571540303_01 571540303_02 \n", - "5 i6 u60 571500535_02.18 571500535_01 571500535_02 \n", - "\n", - " to_edge_id condition \n", - "0 571500487_01.32 좌회전시 \n", - "1 571542810_02 보행신호시 \n", - "2 571556452_02 보행신호시 \n", - "3 571500475_01.26 보행신호시 \n", - "4 -571540303_02 보행신호시 \n", - "5 -571500535_02 좌회전시 " - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "self.u_turn" - ] - }, - { - "cell_type": "code", - "execution_count": 4, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ + "self.u_turn = pd.merge(self.u_turn, self.u_condition, on='child_id')\n", + "\n", "# p2inc_edge2angle : node_id to inc_edge2angle\n", "p2inc_edge2angle = dict()\n", "# p2out_edge2angle : node_id to out_edge2angle\n", @@ -354,24 +221,18 @@ " p2inc_angle2edge[node_id] = inc_angle2edge\n", " # out_angle2edge : out_angle to out_edge_id\n", " out_angle2edge = dict(zip(m5.out_angle.astype(int), m5.out_edge_id))\n", - " p2out_angle2edge[node_id] = out_angle2edge" - ] - }, - { - "cell_type": "code", - "execution_count": 111, - "metadata": {}, - "outputs": [], - "source": [ + " p2out_angle2edge[node_id] = out_angle2edge\n", + "\n", + "# 각 uturn node에 대하여 (inc_edge_id, out_edge_id) 부여\n", "cmatches = []\n", "for row in self.u_turn.itertuples():\n", " parent_id = row.parent_id\n", " child_id = row.child_id\n", " condition = row.condition\n", - " inc_edge_id = row.from_edge_id\n", - " out_edge_id = row.to_edge_id\n", - " adj_inc_edge_id = row.adj_from_edge_id\n", - " adj_out_edge_id = row.adj_to_edge_id\n", + " inc_edge_id = row.inc_edge_id\n", + " out_edge_id = row.out_edge_id\n", + " adj_inc_edge_id = row.adj_inc_edge_id\n", + " adj_out_edge_id = row.adj_out_edge_id\n", "\n", " # match5에서 부모노드id에 해당하는 행들을 가져옴 (cmatch)\n", " cmatch = self.match5.copy()[self.match5.node_id==parent_id] # match dataframe for a child node\n", @@ -452,13 +313,12 @@ " cmatch.loc[all_redsigns, ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id]\n", " # 진출엣지 미포함시\n", " elif out_true.any():\n", - " cmatch.loc[~ out_true, ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id]\n", - " cmatches.append(cmatch)" + " cmatch.loc[~ out_true, ['inc_edge_id', 'out_edge_id']] = [inc_edge_id, out_edge_id]" ] }, { "cell_type": "code", - "execution_count": 112, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -482,105 +342,1052 @@ " \n", " \n", " \n", - " parent_id\n", - " child_id\n", - " adj_from_edge_id\n", - " adj_to_edge_id\n", - " from_edge_id\n", - " to_edge_id\n", - " condition\n", + " inter_no\n", + " phase_no\n", + " ring_type\n", + " move_no\n", + " inc_dire\n", + " out_dire\n", + " inc_angle\n", + " out_angle\n", + " inc_edge_id\n", + " out_edge_id\n", + " node_id\n", + " turn_type\n", " \n", " \n", " \n", " \n", " 0\n", + " 175\n", + " 1\n", + " A\n", + " 8\n", + " 남\n", + " 북\n", + " 179\n", + " 000\n", + " -571542797_02\n", + " 571500487_01\n", " i0\n", - " u00\n", + " straight\n", + " \n", + " \n", + " 1\n", + " 175\n", + " 1\n", + " B\n", + " 4\n", + " 북\n", + " 남\n", + " 001\n", + " 180\n", " -571500487_01\n", - " 571500487_01\n", - " 571500487_02\n", - " 571500487_01.32\n", - " 좌회전시\n", + " 571542797_02\n", + " i0\n", + " straight\n", + " \n", + " \n", + " 2\n", + " 175\n", + " 2\n", + " A\n", + " 7\n", + " 북\n", + " 동\n", + " 001\n", + " 090\n", + " -571500487_01\n", + " 571545870_01\n", + " i0\n", + " left\n", + " \n", + " \n", + " 3\n", + " 175\n", + " 2\n", + " B\n", + " 3\n", + " 남\n", + " 서\n", + " 179\n", + " 270\n", + " -571542797_02\n", + " 571510153_01\n", + " i0\n", + " left\n", + " \n", + " \n", + " 4\n", + " 175\n", + " 3\n", + " A\n", + " 6\n", + " 동\n", + " 서\n", + " 090\n", + " 270\n", + " 571545870_02\n", + " 571510153_01\n", + " i0\n", + " straight\n", + " \n", + " \n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " ...\n", + " \n", + " \n", + " 103\n", + " 210\n", + " 2\n", + " B\n", + " 2\n", + " 서\n", + " 동\n", + " 270\n", + " 090\n", + " NaN\n", + " NaN\n", + " u60\n", + " straight\n", + " \n", + " \n", + " 104\n", + " 210\n", + " 3\n", + " A\n", + " 7\n", + " 북\n", + " 동\n", + " 000\n", + " 090\n", + " NaN\n", + " NaN\n", + " u60\n", + " left\n", + " \n", + " \n", + " 105\n", + " 210\n", + " 3\n", + " B\n", + " 4\n", + " 북\n", + " 남\n", + " 000\n", + " 180\n", + " NaN\n", + " NaN\n", + " u60\n", + " straight\n", + " \n", + " \n", + " 106\n", + " 210\n", + " 4\n", + " A\n", + " 8\n", + " 남\n", + " 북\n", + " 180\n", + " 000\n", + " NaN\n", + " NaN\n", + " u60\n", + " straight\n", + " \n", + " \n", + " 107\n", + " 210\n", + " 4\n", + " B\n", + " 3\n", + " 남\n", + " 서\n", + " 180\n", + " 270\n", + " NaN\n", + " NaN\n", + " u60\n", + " left\n", + " \n", + " \n", + "\n", + "

108 rows × 12 columns

\n", + "" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "0 175 1 A 8 남 북 179 \n", + "1 175 1 B 4 북 남 001 \n", + "2 175 2 A 7 북 동 001 \n", + "3 175 2 B 3 남 서 179 \n", + "4 175 3 A 6 동 서 090 \n", + ".. ... ... ... ... ... ... ... \n", + "103 210 2 B 2 서 동 270 \n", + "104 210 3 A 7 북 동 000 \n", + "105 210 3 B 4 북 남 000 \n", + "106 210 4 A 8 남 북 180 \n", + "107 210 4 B 3 남 서 180 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "0 000 -571542797_02 571500487_01 i0 straight \n", + "1 180 -571500487_01 571542797_02 i0 straight \n", + "2 090 -571500487_01 571545870_01 i0 left \n", + "3 270 -571542797_02 571510153_01 i0 left \n", + "4 270 571545870_02 571510153_01 i0 straight \n", + ".. ... ... ... ... ... \n", + "103 090 NaN NaN u60 straight \n", + "104 090 NaN NaN u60 left \n", + "105 180 NaN NaN u60 straight \n", + "106 000 NaN NaN u60 straight \n", + "107 270 NaN NaN u60 left \n", + "\n", + "[108 rows x 12 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", + " \n", + " \n", + " \n", + "
inter_nomove_noinc_direout_direinc_edge_idout_edge_idnode_id
01751571545870_02571542797_02i0
1i2u20571542811_02571542811_01571542810_01.51571542810_02보행신호시1752571510153_02571545870_01i0
2i3u30571556450_02571556450_01571556452_01571556452_02보행신호시1753-571542797_02571510153_01i0
3i3u31-571500475_01571500475_01571500475_02571500475_01.26보행신호시1754-571500487_01571542797_02i0
4i3u32571540303_02.21571540303_01571540303_02-571540303_02보행신호시1755571510153_02571500487_01i0
5........................
6021021571511538_02.121571500535_01i6u60
6121021571500535_02.18571500535_01571500585_01i6
6221021571500585_02571542115_01i6
6321021-571542115_01571511538_01i6
642105571500535_02-571500535_02좌회전시u60
\n", + "

65 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " inter_no move_no inc_dire out_dire inc_edge_id out_edge_id \\\n", + "0 175 1 동 남 571545870_02 571542797_02 \n", + "1 175 2 서 동 571510153_02 571545870_01 \n", + "2 175 3 남 서 -571542797_02 571510153_01 \n", + "3 175 4 북 남 -571500487_01 571542797_02 \n", + "4 175 5 서 북 571510153_02 571500487_01 \n", + ".. ... ... ... ... ... ... \n", + "60 210 21 북 서 571511538_02.121 571500535_01 \n", + "61 210 21 서 남 571500535_02.18 571500585_01 \n", + "62 210 21 남 동 571500585_02 571542115_01 \n", + "63 210 21 동 북 -571542115_01 571511538_01 \n", + "64 210 5 서 북 571500535_02 -571500535_02 \n", + "\n", + " node_id \n", + "0 i0 \n", + "1 i0 \n", + "2 i0 \n", + "3 i0 \n", + "4 i0 \n", + ".. ... \n", + "60 i6 \n", + "61 i6 \n", + "62 i6 \n", + "63 i6 \n", + "64 u60 \n", + "\n", + "[65 rows x 7 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "self.make_match6()\n", + "display(self.match6)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "self.match6" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2. 중간산출물을 생성합니다.\n", + "2-1. 매칭 테이블들을 생성했습니다.\n", + "2-2. 비보호우회전(g)을 배정했습니다.\n", + "2-3. 직진 및 좌회전(G)을 배정했습니다.\n", + "2-2. node2num_cycles.json를 저장했습니다.\n" + ] + } + ], + "source": [ + "self.get_intermediates()" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "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", + "
inter_nomove_noinc_direout_direinc_edge_idout_edge_idnode_id
642105571500535_02-571500535_02u60
\n", + "
" + ], + "text/plain": [ + " inter_no move_no inc_dire out_dire inc_edge_id out_edge_id node_id\n", + "64 210 5 서 북 571500535_02 -571500535_02 u60" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "self.matching[self.matching.node_id=='u60']" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "ggggggggg\n", + "ggggrgggg\n", + "ggggrgggg\n" + ] + } + ], + "source": [ + "NODE_ID = 'u00'\n", + "self.nodes = [self.net.getNode(node_id) for node_id in self.node_ids]\n", + "self.node2init = {}\n", + "# 모든 노드들을 순회\n", + "for node in self.nodes:\n", + " node_id = node.getID()\n", + " # 모든 connection\n", + " conns = [(c.getJunctionIndex(), c) for c in node.getConnections()]\n", + " conns = [c for c in conns if c[0] >= 0]\n", + " conns = sorted(conns, key=lambda x: x[0])\n", + " state = []\n", + " # i번째 connection : ci\n", + " for i, ci in conns:\n", + " if ci.getTLLinkIndex() < 0:\n", + " continue\n", + " are_foes = False\n", + " # j번째 connection : cj\n", + " # 합류지점이 다르면서 상충되는 cj가 존재하면 are_foes = True (r)\n", + " # 그외의 경우에는 are_foes = False (g)\n", + " for j, cj in conns:\n", + " # ci, cj의 합류지점이 같으면 통과\n", + " if ci.getTo() == cj.getTo():\n", + " continue\n", + " # ci, cj가 상충되면 are_foes를 True로 지정.\n", + " if node.areFoes(i, j):\n", + " are_foes = True\n", + " break\n", + " state.append('r' if are_foes else 'g')\n", + " self.node2init[node_id] = state\n", + "print(''.join(self.node2init[NODE_ID]))\n", + "\n", + "# 어떤 연결과도 상충이 일어나지는 않지만, 신호가 부여되어 있는 경우에는 r을 부여\n", + "for _, row in self.matching.iterrows():\n", + " node_id = row.node_id\n", + " move_no = row.move_no\n", + " inc_edge_id = row.inc_edge_id\n", + " out_edge_id = row.out_edge_id\n", + " if move_no != 21:\n", + " inc_edge = self.net.getEdge(inc_edge_id)\n", + " out_edge = self.net.getEdge(out_edge_id)\n", + " for conn in inc_edge.getConnections(out_edge):\n", + " index = conn.getTLLinkIndex()\n", + " if index >= 0:\n", + " self.node2init[node_id][index] = 'r'\n", + "print(''.join(self.node2init[NODE_ID]))\n", + "\n", + "# 유턴교차로\n", + "for _, row in self.u_turn.iterrows():\n", + " node_id = row.child_id\n", + " inc_edge_id = row.inc_edge_id\n", + " out_edge = row.out_edge_id\n", + " if not (pd.isna(inc_edge_id) and pd.isna(out_edge_id)):\n", + " inc_edge = self.net.getEdge(inc_edge_id)\n", + " out_edge = self.net.getEdge(out_edge_id)\n", + " for conn in inc_edge.getConnections(out_edge):\n", + " index = conn.getTLLinkIndex()\n", + " if index >= 0:\n", + " self.node2init[node_id][index] = 'r'\n", + "print(''.join(self.node2init[NODE_ID]))\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2-2. 비보호우회전(g)을 배정했습니다.\n" + ] + }, + { + "data": { + "text/plain": [ + "['g', 'g', 'g', 'g', 'g', 'g']" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "self.initialize_state()\n", + "\n", + "self.node2init['u20']" + ] + }, + { + "cell_type": "code", + "execution_count": 131, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['r', 'r', 'g', 'g', 'r', 'r', 'r']" + ] + }, + "execution_count": 131, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "self.node2init['i2']" + ] + }, + { + "cell_type": "code", + "execution_count": 132, + "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", + " \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", + "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstate
0175i01A8-571542797_02571500487_01grrrgrrrgGGGGrgrr
1175i01B4-571500487_01571542797_02gGGrgrrrgrrrrrgrr
2175i02A7-571500487_01571545870_01grrGgrrrgrrrrrgrr
3175i02B3-571542797_02571510153_01grrrgrrrgrrrrGgrr
4175i03A6571545870_02571510153_01grrrgGGrgrrrrrgrr
5175i03B1571545870_02571542797_02grrrgrrGgrrrrrgrr
6175i04A5571510153_02571500487_01grrrgrrrgrrrrrgrG
7175i04B2571510153_02571545870_01grrrgrrrgrrrrrgGr
8175u001A8NaNNaNggggrgggg
9175u001B4NaNNaNggggrgggg
10175u002A7571500487_02571500487_01.32ggggGgggg
11175u002B3NaNNaNggggrgggg
12175u003A6NaNNaNggggrgggg
13175u003B1NaNNaNggggrgggg
14175u004A5NaNNaNggggrgggg
15175u004B2NaNNaNggggrgggg
\n", + "
" + ], + "text/plain": [ + " inter_no node_id phase_no ring_type move_no inc_edge_id \\\n", + "0 175 i0 1 A 8 -571542797_02 \n", + "1 175 i0 1 B 4 -571500487_01 \n", + "2 175 i0 2 A 7 -571500487_01 \n", + "3 175 i0 2 B 3 -571542797_02 \n", + "4 175 i0 3 A 6 571545870_02 \n", + "5 175 i0 3 B 1 571545870_02 \n", + "6 175 i0 4 A 5 571510153_02 \n", + "7 175 i0 4 B 2 571510153_02 \n", + "8 175 u00 1 A 8 NaN \n", + "9 175 u00 1 B 4 NaN \n", + "10 175 u00 2 A 7 571500487_02 \n", + "11 175 u00 2 B 3 NaN \n", + "12 175 u00 3 A 6 NaN \n", + "13 175 u00 3 B 1 NaN \n", + "14 175 u00 4 A 5 NaN \n", + "15 175 u00 4 B 2 NaN \n", + "\n", + " out_edge_id state \n", + "0 571500487_01 grrrgrrrgGGGGrgrr \n", + "1 571542797_02 gGGrgrrrgrrrrrgrr \n", + "2 571545870_01 grrGgrrrgrrrrrgrr \n", + "3 571510153_01 grrrgrrrgrrrrGgrr \n", + "4 571510153_01 grrrgGGrgrrrrrgrr \n", + "5 571542797_02 grrrgrrGgrrrrrgrr \n", + "6 571500487_01 grrrgrrrgrrrrrgrG \n", + "7 571545870_01 grrrgrrrgrrrrrgGr \n", + "8 NaN ggggrgggg \n", + "9 NaN ggggrgggg \n", + "10 571500487_01.32 ggggGgggg \n", + "11 NaN ggggrgggg \n", + "12 NaN ggggrgggg \n", + "13 NaN ggggrgggg \n", + "14 NaN ggggrgggg \n", + "15 NaN ggggrgggg " + ] + }, + "execution_count": 132, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "self.match6[self.match6.node_id.isin(['i0', 'u00'])]" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "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", "
inter_nonode_idphase_noring_typemove_noinc_edge_idout_edge_idstate
22177i21A8-571542809_01571542811_01rrggGGG
23177i21B4571542811_02571542809_01GGggrrr
24177i22A17NaNNaNrrggrrr
25177i22B18NaNNaNrrggrrr
26177u201A8NaNNaNgggggg
27177u201B4NaNNaNgggggg
28177u202A17571542810_01.51571542810_02ggGggg
29177u202B18NaNNaNgggggg
\n", "
" ], "text/plain": [ - " parent_id child_id adj_from_edge_id adj_to_edge_id from_edge_id \\\n", - "0 i0 u00 -571500487_01 571500487_01 571500487_02 \n", - "1 i2 u20 571542811_02 571542811_01 571542810_01.51 \n", - "2 i3 u30 571556450_02 571556450_01 571556452_01 \n", - "3 i3 u31 -571500475_01 571500475_01 571500475_02 \n", - "4 i3 u32 571540303_02.21 571540303_01 571540303_02 \n", - "5 i6 u60 571500535_02.18 571500535_01 571500535_02 \n", + " inter_no node_id phase_no ring_type move_no inc_edge_id \\\n", + "22 177 i2 1 A 8 -571542809_01 \n", + "23 177 i2 1 B 4 571542811_02 \n", + "24 177 i2 2 A 17 NaN \n", + "25 177 i2 2 B 18 NaN \n", + "26 177 u20 1 A 8 NaN \n", + "27 177 u20 1 B 4 NaN \n", + "28 177 u20 2 A 17 571542810_01.51 \n", + "29 177 u20 2 B 18 NaN \n", "\n", - " to_edge_id condition \n", - "0 571500487_01.32 좌회전시 \n", - "1 571542810_02 보행신호시 \n", - "2 571556452_02 보행신호시 \n", - "3 571500475_01.26 보행신호시 \n", - "4 -571540303_02 보행신호시 \n", - "5 -571500535_02 좌회전시 " + " out_edge_id state \n", + "22 571542811_01 rrggGGG \n", + "23 571542809_01 GGggrrr \n", + "24 NaN rrggrrr \n", + "25 NaN rrggrrr \n", + "26 NaN gggggg \n", + "27 NaN gggggg \n", + "28 571542810_02 ggGggg \n", + "29 NaN gggggg " ] }, - "execution_count": 112, + "execution_count": 127, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "self.u_turn" + "self.match6[self.match6.node_id.isin(['i2', 'u20'])]" ] }, { diff --git a/Scripts/__pycache__/generate_signals.cpython-38.pyc b/Scripts/__pycache__/generate_signals.cpython-38.pyc index ee8a8970dae4a7e046233a9c337e4575fef6023c..2b7ad65bc8455b1c927be2be2268bdcb49073bfb 100644 GIT binary patch delta 22 ccmaEIn(@hLM($8vUM>b8C}@+}$bB;v09NV-@c;k- delta 22 ccmaEIn(@hLM($8vUM>b8;3$^Z$bB;v08@+xasU7T diff --git a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc index 3dbbca8320cf581158a9851b6cc632f5e6e195e7..b3114b1ae02374be8d6f947320a479bc35bcc3de 100644 GIT binary patch delta 5379 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