diff --git a/Analysis/0411_unp-left_p-right-uturn/0416_initialize_state.ipynb b/Analysis/0411_unp-left_p-right-uturn/0416_initialize_state.ipynb index 5c8967713..c1d238268 100644 --- a/Analysis/0411_unp-left_p-right-uturn/0416_initialize_state.ipynb +++ b/Analysis/0411_unp-left_p-right-uturn/0416_initialize_state.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 68, "metadata": {}, "outputs": [], "source": [ @@ -17,7 +17,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 69, "metadata": {}, "outputs": [ { @@ -39,14 +39,2518 @@ "self.make_match1() # 2-1-1\n", "self.make_match2() # 2-1-2\n", "self.make_match3() # 2-1-3\n", - "self.make_match4() # 2-1-4\n", - "self.make_match5() # 2-1-5\n", - "self.make_match6() # 2-1-6" + "self.make_match4() # 2-1-4" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 70, + "metadata": {}, + "outputs": [], + "source": [ + "self.match5 = self.match4.copy()\n", + "# 진입진출ID 매칭\n", + "for index, row in self.match5.iterrows():\n", + " node_id = self.inter2node[row.inter_no]\n", + " node = self.net.getNode(node_id)\n", + " # 교차로의 모든 (from / to) edges\n", + " inc_edges = [edge for edge in node.getIncoming() if edge.getFunction() == ''] # incoming edges\n", + " out_edges = [edge for edge in node.getOutgoing() if edge.getFunction() == ''] # outgoing edges\n", + " # 교차로의 모든 (from / to) unit vector\n", + " inc_vecs = []\n", + " for inc_edge in inc_edges:\n", + " start = inc_edge.getShape()[-1]\n", + " end = inc_edge.getShape()[-2]\n", + " inc_vec = np.array(end) - np.array(start)\n", + " inc_vec = inc_vec / (inc_vec ** 2).sum() ** 0.5\n", + " inc_vecs.append(inc_vec)\n", + " out_vecs = []\n", + " for out_edge in out_edges:\n", + " start = out_edge.getShape()[0]\n", + " end = out_edge.getShape()[1]\n", + " out_vec = np.array(end) - np.array(start)\n", + " out_vec = out_vec / (out_vec ** 2).sum() ** 0.5\n", + " out_vecs.append(out_vec)\n", + " # 진입각, 진출각 불러오기\n", + " if not pd.isna(row.inc_angle):\n", + " inc_angle = int(row.inc_angle)\n", + " out_angle = int(row.out_angle)\n", + " # 방위각을 일반각으로 가공, 라디안 변환, 단위벡터로 변환\n", + " inc_angle = (90 - inc_angle) % 360\n", + " inc_angle = inc_angle * np.pi / 180.\n", + " inc_vec_true = np.array([np.cos(inc_angle), np.sin(inc_angle)])\n", + " out_angle = (90 - out_angle) % 360\n", + " out_angle = out_angle * np.pi / 180.\n", + " out_vec_true = np.array([np.cos(out_angle), np.sin(out_angle)])\n", + " # 매칭 엣지 반환\n", + " inc_index = np.array([np.dot(inc_vec, inc_vec_true) for inc_vec in inc_vecs]).argmax()\n", + " out_index = np.array([np.dot(out_vec, out_vec_true) for out_vec in out_vecs]).argmax()\n", + " inc_edge_id = inc_edges[inc_index].getID()\n", + " out_edge_id = out_edges[out_index].getID()\n", + " self.match5.at[index, 'inc_edge_id'] = inc_edge_id\n", + " self.match5.at[index, 'out_edge_id'] = out_edge_id\n", + "self.match5['node_id'] = self.match5['inter_no'].map(self.inter2node)\n", + "self.match5 = self.match5.sort_values(by=['inter_no','phase_no','ring_type']).reset_index(drop=True)\n", + "\n", + "# n2io2turn : dictionary that maps node_id to io2turn\n", + "self.n2io2turn = dict()\n", + "for node_id in self.parent_ids:\n", + " turn = self.turn_type[self.turn_type.node_id==node_id]\n", + " io = list(zip(turn.inc_edge_id, turn.out_edge_id))\n", + " # io2turn : dictionary that maps (inc_edge_id, out_edge_id) to turn_type\n", + " io2turn = dict(zip(io, turn.turn_type))\n", + " self.n2io2turn[node_id] = io2turn\n", + "\n", + "# turn_type 지정\n", + "for i, row in self.match5.iterrows():\n", + " node_id = row.node_id\n", + " inc_edge_id = row.inc_edge_id\n", + " out_edge_id = row.out_edge_id\n", + " if not (pd.isna(inc_edge_id) and pd.isna(out_edge_id)):\n", + " turn_type = self.n2io2turn[node_id][(inc_edge_id, out_edge_id)]\n", + " self.match5.at[i, 'turn_type'] = turn_type\n" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1. 데이터를 로드합니다.\n", + "1-1. 네트워크가 로드되었습니다.\n", + "1-2. 테이블들이 로드되었습니다.\n", + "1-3. 네트워크의 모든 clean state requirement들을 체크했습니다.\n", + "1-4. 테이블들의 무결성 검사를 완료했습니다.\n", + "1-5. 주요 객체 (리스트, 딕셔너리)들을 저장했습니다.\n", + "2-1. 매칭 테이블들을 생성했습니다.\n", + "2-2. 비보호우회전(g)을 배정했습니다.\n" + ] + } + ], + "source": [ + "self = DailyPreprocessor() \n", + "self.load_data() # 1\n", + "self.get_matches() # 2\n", + "self.initialize_state() # 2-1" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "i0\n", + "['g', 'r', 'r', 'r', 'g', 'r', 'r', 'r', 'g', 'r', 'r', 'r', 'r', 'r', 'g', 'r', 'r']\n", + "17\n", + "13\n", + "17\n", + "1\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
11751B4001180-571500487_01571542797_02i0straight
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "1 175 1 B 4 북 남 001 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "1 180 -571500487_01 571542797_02 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
11751B4001180-571500487_01571542797_02i0straight
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "1 175 1 B 4 북 남 001 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "1 180 -571500487_01 571542797_02 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
21752A7001090-571500487_01571545870_01i0left
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "2 175 2 A 7 북 동 001 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "2 090 -571500487_01 571545870_01 i0 left " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
01751A8179000-571542797_02571500487_01i0straight
\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", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "0 000 -571542797_02 571500487_01 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
01751A8179000-571542797_02571500487_01i0straight
\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", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "0 000 -571542797_02 571500487_01 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
01751A8179000-571542797_02571500487_01i0straight
\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", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "0 000 -571542797_02 571500487_01 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
31752B3179270-571542797_02571510153_01i0left
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "3 175 2 B 3 남 서 179 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "3 270 -571542797_02 571510153_01 i0 left " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [inter_no, phase_no, ring_type, move_no, inc_dire, out_dire, inc_angle, out_angle, inc_edge_id, out_edge_id, node_id, turn_type]\n", + "Index: []" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "11\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
71754B2270090571510153_02571545870_01i0straight
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "7 175 4 B 2 서 동 270 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "7 090 571510153_02 571545870_01 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
61754A5270000571510153_02571500487_01i0left
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "6 175 4 A 5 서 북 270 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "6 000 571510153_02 571500487_01 i0 left " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "13\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [inter_no, phase_no, ring_type, move_no, inc_dire, out_dire, inc_angle, out_angle, inc_edge_id, out_edge_id, node_id, turn_type]\n", + "Index: []" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "15\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
41753A6090270571545870_02571510153_01i0straight
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "4 175 3 A 6 동 서 090 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "4 270 571545870_02 571510153_01 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "16\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
51753B1090180571545870_02571542797_02i0left
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "5 175 3 B 1 동 남 090 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "5 180 571545870_02 571542797_02 i0 left " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "parent_id = self.parent_ids[0]\n", + "node = self.net.getNode(parent_id)\n", + "print(parent_id)\n", + "init_state = self.node2init[parent_id]\n", + "print(init_state)\n", + "indices_excluding_g = [i for i in range(len(init_state)) if init_state[i]=='r']\n", + "PLindices = []\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", + "conns = [c for c in node.getConnections() if c.getTLLinkIndex() >= 0]\n", + "# print(sorted([conn.getTLLinkIndex() for conn in conns]))\n", + "print(len(conns))\n", + "print(len(indices_excluding_g))\n", + "print(len(init_state))\n", + "for i in indices_excluding_g:\n", + " conn = conns[i]\n", + " inc_edge_id = conn.getFrom().getID()\n", + " out_edge_id = conn.getTo().getID()\n", + " m5 = self.match5[(self.match5.inc_edge_id==inc_edge_id) & (self.match5.out_edge_id==out_edge_id)]\n", + " print(i)\n", + " display(m5)" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "i0\n", + "0\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [inter_no, phase_no, ring_type, move_no, inc_dire, out_dire, inc_angle, out_angle, inc_edge_id, out_edge_id, node_id, turn_type]\n", + "Index: []" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inter_no 175\n", + "phase_no 1\n", + "ring_type B\n", + "move_no 4\n", + "inc_dire 북\n", + "out_dire 남\n", + "inc_angle 001\n", + "out_angle 180\n", + "inc_edge_id -571500487_01\n", + "out_edge_id 571542797_02\n", + "node_id i0\n", + "turn_type straight\n", + "Name: 1, dtype: object\n", + "1\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
11751B4001180-571500487_01571542797_02i0straight
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "1 175 1 B 4 북 남 001 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "1 180 -571500487_01 571542797_02 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inter_no 175\n", + "phase_no 1\n", + "ring_type B\n", + "move_no 4\n", + "inc_dire 북\n", + "out_dire 남\n", + "inc_angle 001\n", + "out_angle 180\n", + "inc_edge_id -571500487_01\n", + "out_edge_id 571542797_02\n", + "node_id i0\n", + "turn_type straight\n", + "Name: 1, dtype: object\n", + "2\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
11751B4001180-571500487_01571542797_02i0straight
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "1 175 1 B 4 북 남 001 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "1 180 -571500487_01 571542797_02 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inter_no 175\n", + "phase_no 2\n", + "ring_type A\n", + "move_no 7\n", + "inc_dire 북\n", + "out_dire 동\n", + "inc_angle 001\n", + "out_angle 090\n", + "inc_edge_id -571500487_01\n", + "out_edge_id 571545870_01\n", + "node_id i0\n", + "turn_type left\n", + "Name: 2, dtype: object\n", + "3\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
21752A7001090-571500487_01571545870_01i0left
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "2 175 2 A 7 북 동 001 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "2 090 -571500487_01 571545870_01 i0 left " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "8\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [inter_no, phase_no, ring_type, move_no, inc_dire, out_dire, inc_angle, out_angle, inc_edge_id, out_edge_id, node_id, turn_type]\n", + "Index: []" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inter_no 175\n", + "phase_no 1\n", + "ring_type A\n", + "move_no 8\n", + "inc_dire 남\n", + "out_dire 북\n", + "inc_angle 179\n", + "out_angle 000\n", + "inc_edge_id -571542797_02\n", + "out_edge_id 571500487_01\n", + "node_id i0\n", + "turn_type straight\n", + "Name: 0, dtype: object\n", + "9\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
01751A8179000-571542797_02571500487_01i0straight
\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", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "0 000 -571542797_02 571500487_01 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inter_no 175\n", + "phase_no 1\n", + "ring_type A\n", + "move_no 8\n", + "inc_dire 남\n", + "out_dire 북\n", + "inc_angle 179\n", + "out_angle 000\n", + "inc_edge_id -571542797_02\n", + "out_edge_id 571500487_01\n", + "node_id i0\n", + "turn_type straight\n", + "Name: 0, dtype: object\n", + "10\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
01751A8179000-571542797_02571500487_01i0straight
\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", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "0 000 -571542797_02 571500487_01 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inter_no 175\n", + "phase_no 1\n", + "ring_type A\n", + "move_no 8\n", + "inc_dire 남\n", + "out_dire 북\n", + "inc_angle 179\n", + "out_angle 000\n", + "inc_edge_id -571542797_02\n", + "out_edge_id 571500487_01\n", + "node_id i0\n", + "turn_type straight\n", + "Name: 0, dtype: object\n", + "11\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
01751A8179000-571542797_02571500487_01i0straight
\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", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "0 000 -571542797_02 571500487_01 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inter_no 175\n", + "phase_no 1\n", + "ring_type A\n", + "move_no 8\n", + "inc_dire 남\n", + "out_dire 북\n", + "inc_angle 179\n", + "out_angle 000\n", + "inc_edge_id -571542797_02\n", + "out_edge_id 571500487_01\n", + "node_id i0\n", + "turn_type straight\n", + "Name: 0, dtype: object\n", + "12\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
01751A8179000-571542797_02571500487_01i0straight
\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", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "0 000 -571542797_02 571500487_01 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inter_no 175\n", + "phase_no 2\n", + "ring_type B\n", + "move_no 3\n", + "inc_dire 남\n", + "out_dire 서\n", + "inc_angle 179\n", + "out_angle 270\n", + "inc_edge_id -571542797_02\n", + "out_edge_id 571510153_01\n", + "node_id i0\n", + "turn_type left\n", + "Name: 3, dtype: object\n", + "13\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
31752B3179270-571542797_02571510153_01i0left
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "3 175 2 B 3 남 서 179 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "3 270 -571542797_02 571510153_01 i0 left " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "14\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [inter_no, phase_no, ring_type, move_no, inc_dire, out_dire, inc_angle, out_angle, inc_edge_id, out_edge_id, node_id, turn_type]\n", + "Index: []" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inter_no 175\n", + "phase_no 4\n", + "ring_type B\n", + "move_no 2\n", + "inc_dire 서\n", + "out_dire 동\n", + "inc_angle 270\n", + "out_angle 090\n", + "inc_edge_id 571510153_02\n", + "out_edge_id 571545870_01\n", + "node_id i0\n", + "turn_type straight\n", + "Name: 7, dtype: object\n", + "15\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
71754B2270090571510153_02571545870_01i0straight
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "7 175 4 B 2 서 동 270 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "7 090 571510153_02 571545870_01 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inter_no 175\n", + "phase_no 4\n", + "ring_type A\n", + "move_no 5\n", + "inc_dire 서\n", + "out_dire 북\n", + "inc_angle 270\n", + "out_angle 000\n", + "inc_edge_id 571510153_02\n", + "out_edge_id 571500487_01\n", + "node_id i0\n", + "turn_type left\n", + "Name: 6, dtype: object\n", + "16\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
61754A5270000571510153_02571500487_01i0left
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "6 175 4 A 5 서 북 270 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "6 000 571510153_02 571500487_01 i0 left " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
\n", + "
" + ], + "text/plain": [ + "Empty DataFrame\n", + "Columns: [inter_no, phase_no, ring_type, move_no, inc_dire, out_dire, inc_angle, out_angle, inc_edge_id, out_edge_id, node_id, turn_type]\n", + "Index: []" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inter_no 175\n", + "phase_no 3\n", + "ring_type A\n", + "move_no 6\n", + "inc_dire 동\n", + "out_dire 서\n", + "inc_angle 090\n", + "out_angle 270\n", + "inc_edge_id 571545870_02\n", + "out_edge_id 571510153_01\n", + "node_id i0\n", + "turn_type straight\n", + "Name: 4, dtype: object\n", + "5\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
41753A6090270571545870_02571510153_01i0straight
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "4 175 3 A 6 동 서 090 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "4 270 571545870_02 571510153_01 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inter_no 175\n", + "phase_no 3\n", + "ring_type A\n", + "move_no 6\n", + "inc_dire 동\n", + "out_dire 서\n", + "inc_angle 090\n", + "out_angle 270\n", + "inc_edge_id 571545870_02\n", + "out_edge_id 571510153_01\n", + "node_id i0\n", + "turn_type straight\n", + "Name: 4, dtype: object\n", + "6\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
41753A6090270571545870_02571510153_01i0straight
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "4 175 3 A 6 동 서 090 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "4 270 571545870_02 571510153_01 i0 straight " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "inter_no 175\n", + "phase_no 3\n", + "ring_type B\n", + "move_no 1\n", + "inc_dire 동\n", + "out_dire 남\n", + "inc_angle 090\n", + "out_angle 180\n", + "inc_edge_id 571545870_02\n", + "out_edge_id 571542797_02\n", + "node_id i0\n", + "turn_type left\n", + "Name: 5, dtype: object\n", + "7\n" + ] + }, + { + "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", + "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
51753B1090180571545870_02571542797_02i0left
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "5 175 3 B 1 동 남 090 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "5 180 571545870_02 571542797_02 i0 left " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "571545870_02\n", + "571542797_02\n", + "[]\n" + ] + } + ], + "source": [ + "self.p2PLindices = dict() # parent id to protected left index\n", + "# for parent_id in sorted(self.match5.node_id.unique()):\n", + "parent_id = sorted(self.match5.node_id.unique())[0]\n", + "node = self.net.getNode(parent_id)\n", + "PLindices = []\n", + "print(parent_id)\n", + "conns = node.getConnections()\n", + "conns = [c for c in node.getConnections() if c.getTLLinkIndex() >= 0]\n", + "for conn in conns:\n", + " inc_edge_id = conn.getFrom().getID()\n", + " out_edge_id = conn.getTo().getID()\n", + " m5 = self.match5[(self.match5.inc_edge_id==inc_edge_id) & (self.match5.out_edge_id==out_edge_id)]\n", + " if (len(m5)!=0) & (m5.iloc[0].turn_type=='left') :\n", + " row = m5.iloc[0]\n", + " print(row)\n", + " print(conn.getTLLinkIndex())\n", + " display(m5)\n", + "\n", + "# if ids_in_match5:\n", + "# pass\n", + "# else:\n", + "# PLindices.append(conn.getTLLinkIndex())\n", + "print(inc_edge_id)\n", + "print(out_edge_id)\n", + "print(PLindices)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[('-571542797_02', '571500487_01'),\n", + " ('-571500487_01', '571542797_02'),\n", + " ('-571500487_01', '571545870_01'),\n", + " ('-571542797_02', '571510153_01'),\n", + " ('571545870_02', '571510153_01'),\n", + " ('571545870_02', '571542797_02'),\n", + " ('571510153_02', '571500487_01'),\n", + " ('571510153_02', '571545870_01'),\n", + " ('-571542810_01', '-571542797_02.99'),\n", + " ('571542797_02.99', '571542810_01'),\n", + " ('-571542810_01', '-571542797_02.99'),\n", + " ('-571542810_01', '571543469_01'),\n", + " ('571543469_02', '-571542797_02.99'),\n", + " (nan, nan),\n", + " ('-571542809_01', '571542811_01'),\n", + " ('571542811_02', '571542809_01'),\n", + " (nan, nan),\n", + " (nan, nan),\n", + " ('571540304_02', '571556450_01'),\n", + " ('571556450_02', '571540304_01'),\n", + " ('571556450_02', '571500475_01'),\n", + " ('571540304_02', '571540303_01'),\n", + " ('571540303_02.21', '571556450_01'),\n", + " ('571540303_02.21', '571500475_01'),\n", + " ('-571500475_01', '571540303_01'),\n", + " ('-571500475_01', '571540304_01'),\n", + " ('-571500569_01', '571500583_02'),\n", + " ('-571500569_01', '571500618_01'),\n", + " ('571500618_02', '571500583_02'),\n", + " ('571500618_02', '571500617_01'),\n", + " ('571500617_02', '571500618_01'),\n", + " ('571500618_02', '571500617_01'),\n", + " ('571500617_02', '571500618_01'),\n", + " ('571500617_02', '571500569_01'),\n", + " ('571500583_01', '571500569_01'),\n", + " ('571500583_01', '571500569_01'),\n", + " ('571510152_02', '-571510152_01'),\n", + " ('571510152_01', '571510152_01.65'),\n", + " (nan, nan),\n", + " (nan, nan),\n", + " ('-571511538_02', '571542073_02'),\n", + " ('571542073_01', '571511538_02'),\n", + " (nan, nan),\n", + " (nan, nan),\n", + " ('-571511538_02', '571542073_02'),\n", + " ('571542073_01', '571511538_02'),\n", + " (nan, nan),\n", + " (nan, nan),\n", + " ('-571542115_01', '571500535_01'),\n", + " (nan, nan),\n", + " ('571500535_02.18', '571511538_01'),\n", + " ('571500535_02.18', '571542115_01'),\n", + " ('571511538_02.121', '571542115_01'),\n", + " ('571511538_02.121', '571500585_01'),\n", + " ('571500585_02', '571511538_01'),\n", + " ('571500585_02', '571500535_01')]" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -78,6 +2582,10 @@ " 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", @@ -91,6 +2599,10 @@ " 북\n", " 179\n", " 000\n", + " -571542797_02\n", + " 571500487_01\n", + " i0\n", + " straight\n", " \n", " \n", " 1\n", @@ -102,6 +2614,10 @@ " 남\n", " 001\n", " 180\n", + " -571500487_01\n", + " 571542797_02\n", + " i0\n", + " straight\n", " \n", " \n", " 2\n", @@ -113,6 +2629,10 @@ " 동\n", " 001\n", " 090\n", + " -571500487_01\n", + " 571545870_01\n", + " i0\n", + " left\n", " \n", " \n", " 3\n", @@ -124,6 +2644,10 @@ " 서\n", " 179\n", " 270\n", + " -571542797_02\n", + " 571510153_01\n", + " i0\n", + " left\n", " \n", " \n", " 4\n", @@ -135,6 +2659,10 @@ " 서\n", " 090\n", " 270\n", + " 571545870_02\n", + " 571510153_01\n", + " i0\n", + " straight\n", " \n", " \n", " 5\n", @@ -146,6 +2674,10 @@ " 남\n", " 090\n", " 180\n", + " 571545870_02\n", + " 571542797_02\n", + " i0\n", + " left\n", " \n", " \n", " 6\n", @@ -157,6 +2689,10 @@ " 북\n", " 270\n", " 000\n", + " 571510153_02\n", + " 571500487_01\n", + " i0\n", + " left\n", " \n", " \n", " 7\n", @@ -168,6 +2704,10 @@ " 동\n", " 270\n", " 090\n", + " 571510153_02\n", + " 571545870_01\n", + " i0\n", + " straight\n", " \n", " \n", " 8\n", @@ -179,6 +2719,10 @@ " 북\n", " 180\n", " 356\n", + " -571542810_01\n", + " -571542797_02.99\n", + " i1\n", + " straight\n", " \n", " \n", " 9\n", @@ -190,6 +2734,10 @@ " 남\n", " 359\n", " 180\n", + " 571542797_02.99\n", + " 571542810_01\n", + " i1\n", + " straight\n", " \n", " \n", " 10\n", @@ -201,6 +2749,10 @@ " 북\n", " 180\n", " 356\n", + " -571542810_01\n", + " -571542797_02.99\n", + " i1\n", + " straight\n", " \n", " \n", " 11\n", @@ -212,6 +2764,10 @@ " 서\n", " 180\n", " 270\n", + " -571542810_01\n", + " 571543469_01\n", + " i1\n", + " left\n", " \n", " \n", " 12\n", @@ -223,6 +2779,10 @@ " 북\n", " 270\n", " 356\n", + " 571543469_02\n", + " -571542797_02.99\n", + " i1\n", + " left\n", " \n", " \n", " 13\n", @@ -234,6 +2794,10 @@ " NaN\n", " NaN\n", " NaN\n", + " NaN\n", + " NaN\n", + " i1\n", + " NaN\n", " \n", " \n", " 14\n", @@ -245,6 +2809,10 @@ " 북\n", " 179\n", " 000\n", + " -571542809_01\n", + " 571542811_01\n", + " i2\n", + " straight\n", " \n", " \n", " 15\n", @@ -256,6 +2824,10 @@ " 남\n", " 000\n", " 180\n", + " 571542811_02\n", + " 571542809_01\n", + " i2\n", + " straight\n", " \n", " \n", " 16\n", @@ -267,6 +2839,10 @@ " NaN\n", " NaN\n", " NaN\n", + " NaN\n", + " NaN\n", + " i2\n", + " NaN\n", " \n", " \n", " 17\n", @@ -278,6 +2854,10 @@ " NaN\n", " NaN\n", " NaN\n", + " NaN\n", + " NaN\n", + " i2\n", + " NaN\n", " \n", " \n", " 18\n", @@ -289,6 +2869,10 @@ " 북\n", " 180\n", " 000\n", + " 571540304_02\n", + " 571556450_01\n", + " i3\n", + " straight\n", " \n", " \n", " 19\n", @@ -300,6 +2884,10 @@ " 남\n", " 000\n", " 180\n", + " 571556450_02\n", + " 571540304_01\n", + " i3\n", + " straight\n", " \n", " \n", " 20\n", @@ -311,6 +2899,10 @@ " 동\n", " 000\n", " 090\n", + " 571556450_02\n", + " 571500475_01\n", + " i3\n", + " left\n", " \n", " \n", " 21\n", @@ -322,6 +2914,10 @@ " 서\n", " 180\n", " 270\n", + " 571540304_02\n", + " 571540303_01\n", + " i3\n", + " left\n", " \n", " \n", " 22\n", @@ -333,6 +2929,10 @@ " 북\n", " 270\n", " 000\n", + " 571540303_02.21\n", + " 571556450_01\n", + " i3\n", + " left\n", " \n", " \n", " 23\n", @@ -344,6 +2944,10 @@ " 동\n", " 270\n", " 090\n", + " 571540303_02.21\n", + " 571500475_01\n", + " i3\n", + " straight\n", " \n", " \n", " 24\n", @@ -355,6 +2959,10 @@ " 서\n", " 090\n", " 270\n", + " -571500475_01\n", + " 571540303_01\n", + " i3\n", + " straight\n", " \n", " \n", " 25\n", @@ -366,6 +2974,10 @@ " 남\n", " 090\n", " 180\n", + " -571500475_01\n", + " 571540304_01\n", + " i3\n", + " left\n", " \n", " \n", " 26\n", @@ -377,6 +2989,10 @@ " 북\n", " 180\n", " 000\n", + " -571500569_01\n", + " 571500583_02\n", + " i8\n", + " straight\n", " \n", " \n", " 27\n", @@ -388,6 +3004,10 @@ " 서\n", " 180\n", " 270\n", + " -571500569_01\n", + " 571500618_01\n", + " i8\n", + " left\n", " \n", " \n", " 28\n", @@ -399,6 +3019,10 @@ " 북\n", " 270\n", " 000\n", + " 571500618_02\n", + " 571500583_02\n", + " i8\n", + " left\n", " \n", " \n", " 29\n", @@ -410,6 +3034,10 @@ " 동\n", " 270\n", " 090\n", + " 571500618_02\n", + " 571500617_01\n", + " i8\n", + " straight\n", " \n", " \n", " 30\n", @@ -421,6 +3049,10 @@ " 서\n", " 090\n", " 270\n", + " 571500617_02\n", + " 571500618_01\n", + " i8\n", + " straight\n", " \n", " \n", " 31\n", @@ -432,6 +3064,10 @@ " 동\n", " 270\n", " 090\n", + " 571500618_02\n", + " 571500617_01\n", + " i8\n", + " straight\n", " \n", " \n", " 32\n", @@ -443,6 +3079,10 @@ " 서\n", " 090\n", " 270\n", + " 571500617_02\n", + " 571500618_01\n", + " i8\n", + " straight\n", " \n", " \n", " 33\n", @@ -454,6 +3094,10 @@ " 남\n", " 090\n", " 180\n", + " 571500617_02\n", + " 571500569_01\n", + " i8\n", + " left\n", " \n", " \n", " 34\n", @@ -465,6 +3109,10 @@ " 남\n", " 000\n", " 180\n", + " 571500583_01\n", + " 571500569_01\n", + " i8\n", + " straight\n", " \n", " \n", " 35\n", @@ -476,6 +3124,10 @@ " 남\n", " 000\n", " 180\n", + " 571500583_01\n", + " 571500569_01\n", + " i8\n", + " straight\n", " \n", " \n", " 36\n", @@ -487,6 +3139,10 @@ " 서\n", " 090\n", " 270\n", + " 571510152_02\n", + " -571510152_01\n", + " i9\n", + " straight\n", " \n", " \n", " 37\n", @@ -498,6 +3154,10 @@ " 동\n", " 270\n", " 090\n", + " 571510152_01\n", + " 571510152_01.65\n", + " i9\n", + " straight\n", " \n", " \n", " 38\n", @@ -509,6 +3169,10 @@ " NaN\n", " NaN\n", " NaN\n", + " NaN\n", + " NaN\n", + " i9\n", + " NaN\n", " \n", " \n", " 39\n", @@ -520,6 +3184,10 @@ " NaN\n", " NaN\n", " NaN\n", + " NaN\n", + " NaN\n", + " i9\n", + " NaN\n", " \n", " \n", " 40\n", @@ -531,6 +3199,10 @@ " 북\n", " 180\n", " 000\n", + " -571511538_02\n", + " 571542073_02\n", + " i7\n", + " straight\n", " \n", " \n", " 41\n", @@ -542,6 +3214,10 @@ " 남\n", " 000\n", " 180\n", + " 571542073_01\n", + " 571511538_02\n", + " i7\n", + " straight\n", " \n", " \n", " 42\n", @@ -553,6 +3229,10 @@ " NaN\n", " NaN\n", " NaN\n", + " NaN\n", + " NaN\n", + " i7\n", + " NaN\n", " \n", " \n", " 43\n", @@ -564,6 +3244,10 @@ " NaN\n", " NaN\n", " NaN\n", + " NaN\n", + " NaN\n", + " i7\n", + " NaN\n", " \n", " \n", " 44\n", @@ -575,6 +3259,10 @@ " 북\n", " 180\n", " 000\n", + " -571511538_02\n", + " 571542073_02\n", + " i7\n", + " straight\n", " \n", " \n", " 45\n", @@ -586,6 +3274,10 @@ " 남\n", " 000\n", " 180\n", + " 571542073_01\n", + " 571511538_02\n", + " i7\n", + " straight\n", " \n", " \n", " 46\n", @@ -597,6 +3289,10 @@ " NaN\n", " NaN\n", " NaN\n", + " NaN\n", + " NaN\n", + " i7\n", + " NaN\n", " \n", " \n", " 47\n", @@ -608,6 +3304,10 @@ " NaN\n", " NaN\n", " NaN\n", + " NaN\n", + " NaN\n", + " i7\n", + " NaN\n", " \n", " \n", " 48\n", @@ -619,6 +3319,10 @@ " 서\n", " 090\n", " 270\n", + " -571542115_01\n", + " 571500535_01\n", + " i6\n", + " straight\n", " \n", " \n", " 49\n", @@ -630,6 +3334,10 @@ " NaN\n", " NaN\n", " NaN\n", + " NaN\n", + " NaN\n", + " i6\n", + " NaN\n", " \n", " \n", " 50\n", @@ -641,6 +3349,10 @@ " 북\n", " 270\n", " 000\n", + " 571500535_02.18\n", + " 571511538_01\n", + " i6\n", + " left\n", " \n", " \n", " 51\n", @@ -652,6 +3364,10 @@ " 동\n", " 270\n", " 090\n", + " 571500535_02.18\n", + " 571542115_01\n", + " i6\n", + " straight\n", " \n", " \n", " 52\n", @@ -663,6 +3379,10 @@ " 동\n", " 000\n", " 090\n", + " 571511538_02.121\n", + " 571542115_01\n", + " i6\n", + " left\n", " \n", " \n", " 53\n", @@ -674,6 +3394,10 @@ " 남\n", " 000\n", " 180\n", + " 571511538_02.121\n", + " 571500585_01\n", + " i6\n", + " straight\n", " \n", " \n", " 54\n", @@ -685,6 +3409,10 @@ " 북\n", " 180\n", " 000\n", + " 571500585_02\n", + " 571511538_01\n", + " i6\n", + " straight\n", " \n", " \n", " 55\n", @@ -696,6 +3424,10 @@ " 서\n", " 180\n", " 270\n", + " 571500585_02\n", + " 571500535_01\n", + " i6\n", + " left\n", " \n", " \n", "\n", @@ -760,72 +3492,72 @@ "54 210 4 A 8 남 북 180 \n", "55 210 4 B 3 남 서 180 \n", "\n", - " out_angle \n", - "0 000 \n", - "1 180 \n", - "2 090 \n", - "3 270 \n", - "4 270 \n", - "5 180 \n", - "6 000 \n", - "7 090 \n", - "8 356 \n", - "9 180 \n", - "10 356 \n", - "11 270 \n", - "12 356 \n", - "13 NaN \n", - "14 000 \n", - "15 180 \n", - "16 NaN \n", - "17 NaN \n", - "18 000 \n", - "19 180 \n", - "20 090 \n", - "21 270 \n", - "22 000 \n", - "23 090 \n", - "24 270 \n", - "25 180 \n", - "26 000 \n", - "27 270 \n", - "28 000 \n", - "29 090 \n", - "30 270 \n", - "31 090 \n", - "32 270 \n", - "33 180 \n", - "34 180 \n", - "35 180 \n", - "36 270 \n", - "37 090 \n", - "38 NaN \n", - "39 NaN \n", - "40 000 \n", - "41 180 \n", - "42 NaN \n", - "43 NaN \n", - "44 000 \n", - "45 180 \n", - "46 NaN \n", - "47 NaN \n", - "48 270 \n", - "49 NaN \n", - "50 000 \n", - "51 090 \n", - "52 090 \n", - "53 180 \n", - "54 000 \n", - "55 270 " + " 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", + "5 180 571545870_02 571542797_02 i0 left \n", + "6 000 571510153_02 571500487_01 i0 left \n", + "7 090 571510153_02 571545870_01 i0 straight \n", + "8 356 -571542810_01 -571542797_02.99 i1 straight \n", + "9 180 571542797_02.99 571542810_01 i1 straight \n", + "10 356 -571542810_01 -571542797_02.99 i1 straight \n", + "11 270 -571542810_01 571543469_01 i1 left \n", + "12 356 571543469_02 -571542797_02.99 i1 left \n", + "13 NaN NaN NaN i1 NaN \n", + "14 000 -571542809_01 571542811_01 i2 straight \n", + "15 180 571542811_02 571542809_01 i2 straight \n", + "16 NaN NaN NaN i2 NaN \n", + "17 NaN NaN NaN i2 NaN \n", + "18 000 571540304_02 571556450_01 i3 straight \n", + "19 180 571556450_02 571540304_01 i3 straight \n", + "20 090 571556450_02 571500475_01 i3 left \n", + "21 270 571540304_02 571540303_01 i3 left \n", + "22 000 571540303_02.21 571556450_01 i3 left \n", + "23 090 571540303_02.21 571500475_01 i3 straight \n", + "24 270 -571500475_01 571540303_01 i3 straight \n", + "25 180 -571500475_01 571540304_01 i3 left \n", + "26 000 -571500569_01 571500583_02 i8 straight \n", + "27 270 -571500569_01 571500618_01 i8 left \n", + "28 000 571500618_02 571500583_02 i8 left \n", + "29 090 571500618_02 571500617_01 i8 straight \n", + "30 270 571500617_02 571500618_01 i8 straight \n", + "31 090 571500618_02 571500617_01 i8 straight \n", + "32 270 571500617_02 571500618_01 i8 straight \n", + "33 180 571500617_02 571500569_01 i8 left \n", + "34 180 571500583_01 571500569_01 i8 straight \n", + "35 180 571500583_01 571500569_01 i8 straight \n", + "36 270 571510152_02 -571510152_01 i9 straight \n", + "37 090 571510152_01 571510152_01.65 i9 straight \n", + "38 NaN NaN NaN i9 NaN \n", + "39 NaN NaN NaN i9 NaN \n", + "40 000 -571511538_02 571542073_02 i7 straight \n", + "41 180 571542073_01 571511538_02 i7 straight \n", + "42 NaN NaN NaN i7 NaN \n", + "43 NaN NaN NaN i7 NaN \n", + "44 000 -571511538_02 571542073_02 i7 straight \n", + "45 180 571542073_01 571511538_02 i7 straight \n", + "46 NaN NaN NaN i7 NaN \n", + "47 NaN NaN NaN i7 NaN \n", + "48 270 -571542115_01 571500535_01 i6 straight \n", + "49 NaN NaN NaN i6 NaN \n", + "50 000 571500535_02.18 571511538_01 i6 left \n", + "51 090 571500535_02.18 571542115_01 i6 straight \n", + "52 090 571511538_02.121 571542115_01 i6 left \n", + "53 180 571511538_02.121 571500585_01 i6 straight \n", + "54 000 571500585_02 571511538_01 i6 straight \n", + "55 270 571500585_02 571500535_01 i6 left " ] }, - "execution_count": 5, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "self.match4" + "self.match5" ] }, {