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 ee8a8970d..2b7ad65bc 100644 Binary files a/Scripts/__pycache__/generate_signals.cpython-38.pyc and b/Scripts/__pycache__/generate_signals.cpython-38.pyc differ diff --git a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc index 3dbbca832..b3114b1ae 100644 Binary files a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc and b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc differ