From 60bbf8e03cc067a1d25a3f2041549ad5b407304c Mon Sep 17 00:00:00 2001 From: govin08 Date: Wed, 17 Apr 2024 11:49:56 +0900 Subject: [PATCH] a value of self.p2UPLindices is now set to dictionary that maps UPLindex into inc_edge_ids --- .../0416_initialize_state.ipynb | 2602 +---------------- .../0417_assign_signal.ipynb | 304 ++ .../raw_tables/0409_make_sample_table.ipynb | 1242 ++++---- .../preprocess_daily.cpython-38.pyc | Bin 27418 -> 29181 bytes Scripts/preprocess_daily.py | 1 + 5 files changed, 1009 insertions(+), 3140 deletions(-) create mode 100644 Analysis/0411_unp-left_p-right-uturn/0417_assign_signal.ipynb 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 08b012be0..2a1751f9e 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 @@ -253,18 +253,12 @@ "text": [ "1. 데이터를 로드합니다.\n", "1-1. 네트워크가 로드되었습니다.\n", - "1-2. 테이블들이 로드되었습니다.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "1-2. 테이블들이 로드되었습니다.\n", "1-3. 네트워크의 모든 clean state requirement들을 체크했습니다.\n", "1-4. 테이블들의 무결성 검사를 완료했습니다.\n", "1-5. 주요 객체 (리스트, 딕셔너리)들을 저장했습니다.\n", "2-1. 매칭 테이블들을 생성했습니다.\n", - "2-2. 비보호우회전(g)을 배정했습니다.\n" + "2-2. 초기화 신호가 지정되었습니다. (우회전 : g)\n" ] } ], @@ -872,18 +866,12 @@ "text": [ "1. 데이터를 로드합니다.\n", "1-1. 네트워크가 로드되었습니다.\n", - "1-2. 테이블들이 로드되었습니다.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "1-2. 테이블들이 로드되었습니다.\n", "1-3. 네트워크의 모든 clean state requirement들을 체크했습니다.\n", "1-4. 테이블들의 무결성 검사를 완료했습니다.\n", "1-5. 주요 객체 (리스트, 딕셔너리)들을 저장했습니다.\n", "2-1. 매칭 테이블들을 생성했습니다.\n", - "2-2. 비보호우회전(g)을 배정했습니다.\n" + "2-2. 초기화 신호가 지정되었습니다. (우회전 : g)\n" ] } ], @@ -895,2481 +883,139 @@ "self.initialize_state() # 2-2 신호 초기화" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "self.p2UPLindices = dict() # parent id to unprotected left index\n", + "for parent_id in self.parent_ids:\n", + " init_state = self.node2init[parent_id]\n", + " # 우회전 이동류 인덱스\n", + " indices_right = [i for i in range(len(init_state)) if init_state[i]=='g']\n", + " # from-to가 지정된 이동류 인덱스\n", + " indices_assigned = []\n", + " m5 = self.match5[(self.match5.node_id==parent_id)].dropna(subset=['inc_edge_id', 'out_edge_id'])\n", + " for row in m5.itertuples():\n", + " inc_edge = self.net.getEdge(row.inc_edge_id)\n", + " out_edge = self.net.getEdge(row.out_edge_id)\n", + " conns = inc_edge.getConnections(out_edge)\n", + " indices = [conn for conn in conns if conn.getTLLinkIndex()>=0]\n", + " indices = [conn for conn in conns if conn.getJunctionIndex()>=0]\n", + " indices = [conn.getTLLinkIndex() for conn in conns]\n", + " indices_assigned.extend(indices)\n", + " # 좌회전 이동류 인덱스\n", + " indices_left = []\n", + " for row in self.turn_type[self.turn_type.turn_type=='left'].itertuples():\n", + " inc_edge = self.net.getEdge(row.inc_edge_id)\n", + " out_edge = self.net.getEdge(row.out_edge_id)\n", + " conns = inc_edge.getConnections(out_edge)\n", + " indices = [conn for conn in conns if conn.getTLLinkIndex()>=0]\n", + " indices = [conn for conn in conns if conn.getJunctionIndex()>=0]\n", + " indices = [conn.getTLLinkIndex() for conn in conns]\n", + " indices_left.extend(indices)\n", + " # 비보호좌회전 인덱스 (unprotected left index)\n", + " UPLindices = list((set(range(len(init_state))) - set(indices_right) - set(indices_assigned)).intersection(indices_left))\n", + " self.p2UPLindices[parent_id] = UPLindices\n" + ] + }, { "cell_type": "code", "execution_count": 24, "metadata": {}, + "outputs": [], + "source": [ + "self.p2UPLindices = dict() # parent id to unprotected left index\n", + "for parent_id in self.parent_ids:\n", + " init_state = self.node2init[parent_id]\n", + " # 우회전 이동류 인덱스\n", + " indices_right = [i for i in range(len(init_state)) if init_state[i]=='g']\n", + " # from-to가 지정된 이동류 인덱스\n", + " indices_assigned = []\n", + " m5 = self.match5[(self.match5.node_id==parent_id)].dropna(subset=['inc_edge_id', 'out_edge_id'])\n", + " for row in m5.itertuples():\n", + " inc_edge = self.net.getEdge(row.inc_edge_id)\n", + " out_edge = self.net.getEdge(row.out_edge_id)\n", + " conns = inc_edge.getConnections(out_edge)\n", + " indices = [conn for conn in conns if conn.getTLLinkIndex()>=0]\n", + " indices = [conn for conn in conns if conn.getJunctionIndex()>=0]\n", + " indices = [conn.getTLLinkIndex() for conn in conns]\n", + " indices_assigned.extend(indices)\n", + " # 좌회전 이동류 인덱스\n", + " indices_left = []\n", + " for row in self.turn_type[self.turn_type.turn_type=='left'].itertuples():\n", + " inc_edge = self.net.getEdge(row.inc_edge_id)\n", + " out_edge = self.net.getEdge(row.out_edge_id)\n", + " conns = inc_edge.getConnections(out_edge)\n", + " indices = [conn for conn in conns if conn.getTLLinkIndex()>=0]\n", + " indices = [conn for conn in conns if conn.getJunctionIndex()>=0]\n", + " indices = [conn.getTLLinkIndex() for conn in conns]\n", + " indices_left.extend(indices)\n", + " # 비보호좌회전 인덱스 (unprotected left index)\n", + " UPLindices = list((set(range(len(init_state))) - set(indices_right) - set(indices_assigned)).intersection(indices_left))\n", + " self.p2UPLindices[parent_id] = dict()\n", + " for UPLindex in UPLindices:\n", + " node = self.net.getNode(parent_id)\n", + " conns = node.getConnections()\n", + " conns = [conn for conn in conns if conn.getTLLinkIndex() == UPLindex]\n", + " inc_edge_ids = [conn.getFrom().getID() for conn in conns]\n", + " self.p2UPLindices[parent_id][UPLindex] = inc_edge_ids" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{2: ['571542073_01']}" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "self.p2UPLindices[self.parent_ids[5]]" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "i0\n" + "2\n", + "571542073_01\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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
11751B4001180-571500487_01571542797_02i0straight
21752A7001090-571500487_01571545870_01i0left
31752B3179270-571542797_02571510153_01i0left
41753A6090270571545870_02571510153_01i0straight
51753B1090180571545870_02571542797_02i0left
61754A5270000571510153_02571500487_01i0left
71754B2270090571510153_02571545870_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", - "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", - "5 175 3 B 1 동 남 090 \n", - "6 175 4 A 5 서 북 270 \n", - "7 175 4 B 2 서 동 270 \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", - "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 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[]\n", - "i1\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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
81761A8180356-571542810_01-571542797_02.99i1straight
91761B4359180571542797_02.99571542810_01i1straight
101762A8180356-571542810_01-571542797_02.99i1straight
111762B3180270-571542810_01571543469_01i1left
121763A5270356571543469_02-571542797_02.99i1left
\n", - "
" - ], - "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "8 176 1 A 8 남 북 180 \n", - "9 176 1 B 4 북 남 359 \n", - "10 176 2 A 8 남 북 180 \n", - "11 176 2 B 3 남 서 180 \n", - "12 176 3 A 5 서 북 270 \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id turn_type \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 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[]\n", - "i2\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", - " \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
141771A8179000-571542809_01571542811_01i2straight
151771B4000180571542811_02571542809_01i2straight
\n", - "
" - ], - "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "14 177 1 A 8 남 북 179 \n", - "15 177 1 B 4 북 남 000 \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id turn_type \n", - "14 000 -571542809_01 571542811_01 i2 straight \n", - "15 180 571542811_02 571542809_01 i2 straight " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[]\n", - "i3\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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
181781A8180000571540304_02571556450_01i3straight
191781B4000180571556450_02571540304_01i3straight
201782A7000090571556450_02571500475_01i3left
211782B3180270571540304_02571540303_01i3left
221783A5270000571540303_02.21571556450_01i3left
231783B2270090571540303_02.21571500475_01i3straight
241784A6090270-571500475_01571540303_01i3straight
251784B1090180-571500475_01571540304_01i3left
\n", - "
" - ], - "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "18 178 1 A 8 남 북 180 \n", - "19 178 1 B 4 북 남 000 \n", - "20 178 2 A 7 북 동 000 \n", - "21 178 2 B 3 남 서 180 \n", - "22 178 3 A 5 서 북 270 \n", - "23 178 3 B 2 서 동 270 \n", - "24 178 4 A 6 동 서 090 \n", - "25 178 4 B 1 동 남 090 \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id turn_type \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 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[]\n", - "i6\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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
482101A6090270-571542115_01571500535_01i6straight
502102A5270000571500535_02.18571511538_01i6left
512102B2270090571500535_02.18571542115_01i6straight
522103A7000090571511538_02.121571542115_01i6left
532103B4000180571511538_02.121571500585_01i6straight
542104A8180000571500585_02571511538_01i6straight
552104B3180270571500585_02571500535_01i6left
\n", - "
" - ], - "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "48 210 1 A 6 동 서 090 \n", - "50 210 2 A 5 서 북 270 \n", - "51 210 2 B 2 서 동 270 \n", - "52 210 3 A 7 북 동 000 \n", - "53 210 3 B 4 북 남 000 \n", - "54 210 4 A 8 남 북 180 \n", - "55 210 4 B 3 남 서 180 \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id turn_type \n", - "48 270 -571542115_01 571500535_01 i6 straight \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 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[8]\n", - "i7\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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
402061A8180000-571511538_02571542073_02i7straight
412061B4000180571542073_01571511538_02i7straight
442063A8180000-571511538_02571542073_02i7straight
452063B4000180571542073_01571511538_02i7straight
\n", - "
" - ], - "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "40 206 1 A 8 남 북 180 \n", - "41 206 1 B 4 북 남 000 \n", - "44 206 3 A 8 남 북 180 \n", - "45 206 3 B 4 북 남 000 \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id turn_type \n", - "40 000 -571511538_02 571542073_02 i7 straight \n", - "41 180 571542073_01 571511538_02 i7 straight \n", - "44 000 -571511538_02 571542073_02 i7 straight \n", - "45 180 571542073_01 571511538_02 i7 straight " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[2]\n", - "i8\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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
262011A8180000-571500569_01571500583_02i8straight
272011B3180270-571500569_01571500618_01i8left
282012A5270000571500618_02571500583_02i8left
292012B2270090571500618_02571500617_01i8straight
302013A6090270571500617_02571500618_01i8straight
312013B2270090571500618_02571500617_01i8straight
322014A6090270571500617_02571500618_01i8straight
332014B1090180571500617_02571500569_01i8left
342015A7000090571500583_01571500617_01i8left
352015B4000180571500583_01571500569_01i8straight
\n", - "
" - ], - "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "26 201 1 A 8 남 북 180 \n", - "27 201 1 B 3 남 서 180 \n", - "28 201 2 A 5 서 북 270 \n", - "29 201 2 B 2 서 동 270 \n", - "30 201 3 A 6 동 서 090 \n", - "31 201 3 B 2 서 동 270 \n", - "32 201 4 A 6 동 서 090 \n", - "33 201 4 B 1 동 남 090 \n", - "34 201 5 A 7 북 동 000 \n", - "35 201 5 B 4 북 남 000 \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id turn_type \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 090 571500583_01 571500617_01 i8 left \n", - "35 180 571500583_01 571500569_01 i8 straight " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[]\n", - "i9\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", - " \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
362021A6090270571510152_02-571510152_01i9straight
372021B2270090571510152_01571510152_01.65i9straight
\n", - "
" - ], - "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "36 202 1 A 6 동 서 090 \n", - "37 202 1 B 2 서 동 270 \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id turn_type \n", - "36 270 571510152_02 -571510152_01 i9 straight \n", - "37 090 571510152_01 571510152_01.65 i9 straight " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[]\n" - ] - } - ], - "source": [ - "self.p2PLindices = dict() # parent id to protected left index\n", - "for parent_id in self.parent_ids:\n", - " print(parent_id)\n", - " init_state = self.node2init[parent_id]\n", - " # 우회전 이동류 인덱스\n", - " indices_right = [i for i in range(len(init_state)) if init_state[i]=='g']\n", - " # from-to가 지정된 이동류 인덱스\n", - " indices_assigned = []\n", - " m5 = self.match5[(self.match5.node_id==parent_id)].dropna(subset=['inc_edge_id', 'out_edge_id'])\n", - " display(m5)\n", - " for row in m5.itertuples():\n", - " inc_edge = self.net.getEdge(row.inc_edge_id)\n", - " out_edge = self.net.getEdge(row.out_edge_id)\n", - " conns = inc_edge.getConnections(out_edge)\n", - " indices = [conn for conn in conns if conn.getTLLinkIndex()>=0]\n", - " indices = [conn for conn in conns if conn.getJunctionIndex()>=0]\n", - " indices = [conn.getTLLinkIndex() for conn in conns]\n", - " indices_assigned.extend(indices)\n", - " # 좌회전 이동류 인덱스\n", - " indices_left = []\n", - " for row in self.turn_type[self.turn_type.turn_type=='left'].itertuples():\n", - " inc_edge = self.net.getEdge(row.inc_edge_id)\n", - " out_edge = self.net.getEdge(row.out_edge_id)\n", - " conns = inc_edge.getConnections(out_edge)\n", - " indices = [conn for conn in conns if conn.getTLLinkIndex()>=0]\n", - " indices = [conn for conn in conns if conn.getJunctionIndex()>=0]\n", - " indices = [conn.getTLLinkIndex() for conn in conns]\n", - " indices_left.extend(indices)\n", - "\n", - " PLindices = list((set(range(len(init_state))) - set(indices_right) - set(indices_assigned)).intersection(indices_left))\n", - " self.p2PLindices[parent_id] = PLindices\n", - " print(PLindices)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "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", - "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
141771A8179000-571542809_01571542811_01i2straight
151771B4000180571542811_02571542809_01i2straight
161772A17NaNNaNNaNNaNNaNNaNi2NaN
171772B18NaNNaNNaNNaNNaNNaNi2NaN
\n", - "
" - ], - "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "14 177 1 A 8 남 북 179 \n", - "15 177 1 B 4 북 남 000 \n", - "16 177 2 A 17 NaN NaN NaN \n", - "17 177 2 B 18 NaN NaN NaN \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id turn_type \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 " - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "self.match5[(self.match5.node_id=='i2')]" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "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" - ] - }, - { - "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_idmove_noinc_direout_direinc_edge_idout_edge_idturn_type
32177i21571542107_02571542809_01left
33177i22-571542809_01571542107_01straight
34177i23-571542809_01571542809_01left
35177i24571542811_02571542809_01straight
36177i25-571542809_01571542811_01straight
37177i26571542107_02571542809_01straight
38177i27571542811_02571542107_01left
39177i28-571542809_01571542811_01straight
40177i29북동남동571542107_02571542809_01left
41177i210남서북동-571542809_01571542107_01straight
42177i211남동남서-571542809_01571542809_01left
43177i212북서남동571542811_02571542809_01straight
44177i213남서북서-571542809_01571542811_01straight
45177i214북동남서571542107_02571542809_01straight
46177i215북서북동571542811_02571542107_01left
47177i216남동북서-571542809_01571542811_01straight
\n", - "
" - ], - "text/plain": [ - " inter_no node_id move_no inc_dire out_dire inc_edge_id out_edge_id \\\n", - "32 177 i2 1 동 남 571542107_02 571542809_01 \n", - "33 177 i2 2 서 동 -571542809_01 571542107_01 \n", - "34 177 i2 3 남 서 -571542809_01 571542809_01 \n", - "35 177 i2 4 북 남 571542811_02 571542809_01 \n", - "36 177 i2 5 서 북 -571542809_01 571542811_01 \n", - "37 177 i2 6 동 서 571542107_02 571542809_01 \n", - "38 177 i2 7 북 동 571542811_02 571542107_01 \n", - "39 177 i2 8 남 북 -571542809_01 571542811_01 \n", - "40 177 i2 9 북동 남동 571542107_02 571542809_01 \n", - "41 177 i2 10 남서 북동 -571542809_01 571542107_01 \n", - "42 177 i2 11 남동 남서 -571542809_01 571542809_01 \n", - "43 177 i2 12 북서 남동 571542811_02 571542809_01 \n", - "44 177 i2 13 남서 북서 -571542809_01 571542811_01 \n", - "45 177 i2 14 북동 남서 571542107_02 571542809_01 \n", - "46 177 i2 15 북서 북동 571542811_02 571542107_01 \n", - "47 177 i2 16 남동 북서 -571542809_01 571542811_01 \n", - "\n", - " turn_type \n", - "32 left \n", - "33 straight \n", - "34 left \n", - "35 straight \n", - "36 straight \n", - "37 straight \n", - "38 left \n", - "39 straight \n", - "40 left \n", - "41 straight \n", - "42 left \n", - "43 straight \n", - "44 straight \n", - "45 straight \n", - "46 left \n", - "47 straight " - ] - }, - "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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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_idmove_noinc_direout_direinc_edge_idout_edge_idturn_typestate
32177i21571542107_02571542809_01leftrrggrrr
33177i22-571542809_01571542107_01straightrrgGrrr
34177i23-571542809_01571542809_01leftrrggrrr
35177i24571542811_02571542809_01straightGGggrrr
36177i25-571542809_01571542811_01straightrrggGGG
37177i26571542107_02571542809_01straightrrggrrr
38177i27571542811_02571542107_01leftrrggrrr
39177i28-571542809_01571542811_01straightrrggGGG
40177i29북동남동571542107_02571542809_01leftrrggrrr
41177i210남서북동-571542809_01571542107_01straightrrgGrrr
42177i211남동남서-571542809_01571542809_01leftrrggrrr
43177i212북서남동571542811_02571542809_01straightGGggrrr
44177i213남서북서-571542809_01571542811_01straightrrggGGG
45177i214북동남서571542107_02571542809_01straightrrggrrr
46177i215북서북동571542811_02571542107_01leftrrggrrr
47177i216남동북서-571542809_01571542811_01straightrrggGGG
\n", - "
" - ], - "text/plain": [ - " inter_no node_id move_no inc_dire out_dire inc_edge_id out_edge_id \\\n", - "32 177 i2 1 동 남 571542107_02 571542809_01 \n", - "33 177 i2 2 서 동 -571542809_01 571542107_01 \n", - "34 177 i2 3 남 서 -571542809_01 571542809_01 \n", - "35 177 i2 4 북 남 571542811_02 571542809_01 \n", - "36 177 i2 5 서 북 -571542809_01 571542811_01 \n", - "37 177 i2 6 동 서 571542107_02 571542809_01 \n", - "38 177 i2 7 북 동 571542811_02 571542107_01 \n", - "39 177 i2 8 남 북 -571542809_01 571542811_01 \n", - "40 177 i2 9 북동 남동 571542107_02 571542809_01 \n", - "41 177 i2 10 남서 북동 -571542809_01 571542107_01 \n", - "42 177 i2 11 남동 남서 -571542809_01 571542809_01 \n", - "43 177 i2 12 북서 남동 571542811_02 571542809_01 \n", - "44 177 i2 13 남서 북서 -571542809_01 571542811_01 \n", - "45 177 i2 14 북동 남서 571542107_02 571542809_01 \n", - "46 177 i2 15 북서 북동 571542811_02 571542107_01 \n", - "47 177 i2 16 남동 북서 -571542809_01 571542811_01 \n", - "\n", - " turn_type state \n", - "32 left rrggrrr \n", - "33 straight rrgGrrr \n", - "34 left rrggrrr \n", - "35 straight GGggrrr \n", - "36 straight rrggGGG \n", - "37 straight rrggrrr \n", - "38 left rrggrrr \n", - "39 straight rrggGGG \n", - "40 left rrggrrr \n", - "41 straight rrgGrrr \n", - "42 left rrggrrr \n", - "43 straight GGggrrr \n", - "44 straight rrggGGG \n", - "45 straight rrggrrr \n", - "46 left rrggrrr \n", - "47 straight rrggGGG " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import copy\n", - "self = DailyPreprocessor()\n", - "self.load_data() # 1. 데이터 불러오기\n", - "self.get_matches() # 2-1 매칭테이블 생성\n", - "self.initialize_state() # 2-2 신호 초기화\n", - "display(self.matching[self.matching.node_id=='i2'])\n", - "# matching에 신호 배정\n", - "for i, row in self.matching.iterrows():\n", - " node_id = row.node_id\n", - " move_no = row.move_no\n", - " inc_edge = self.net.getEdge(row.inc_edge_id)\n", - " out_edge = self.net.getEdge(row.out_edge_id)\n", - " state = copy.deepcopy(self.node2init[node_id])\n", - " for conn in inc_edge.getConnections(out_edge):\n", - " index = conn.getTLLinkIndex()\n", - " if index >= 0:\n", - " state[index] = 'G'\n", - " self.matching.at[i, 'state'] = ''.join(state)\n", - "\n", - "display(self.matching[self.matching.node_id=='i2'])" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "# matching의 각 행을 순회\n", - "for row in self.matching.itertuples(index=True):\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", - " state = copy.deepcopy(self.node2init)[node_id]\n", - "\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", - " state[index] = 'G'\n", - " self.matching.at[row.Index, 'state'] = ''.join(state)\n", - "\n", - "self.matching = self.matching.dropna(subset='state')\n", - "self.matching = self.matching.reset_index(drop=True)\n", - "self.matching = self.matching[['inter_no', 'node_id', 'move_no', 'inc_edge_id', 'out_edge_id', 'state']]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 13, - "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", - "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_type
01751A8179000-571542797_02571500487_01i0straight
11751B4001180-571500487_01571542797_02i0straight
21752A7001090-571500487_01571545870_01i0left
31752B3179270-571542797_02571510153_01i0left
41753A6090270571545870_02571510153_01i0straight
.......................................
1032102B2270090NaNNaNu60straight
1042103A7000090NaNNaNu60left
1052103B4000180NaNNaNu60straight
1062104A8180000NaNNaNu60straight
1072104B3180270NaNNaNu60left
\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" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2-3. 직진 및 좌회전(G)을 배정했습니다.\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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
...........................
103210u602B2NaNNaNGGGGGGGGr
104210u603A7NaNNaNGGGGGGGGr
105210u603B4NaNNaNGGGGGGGGr
106210u604A8NaNNaNGGGGGGGGr
107210u604B3NaNNaNGGGGGGGGr
\n", - "

108 rows × 8 columns

\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", - ".. ... ... ... ... ... ... \n", - "103 210 u60 2 B 2 NaN \n", - "104 210 u60 3 A 7 NaN \n", - "105 210 u60 3 B 4 NaN \n", - "106 210 u60 4 A 8 NaN \n", - "107 210 u60 4 B 3 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", - ".. ... ... \n", - "103 NaN GGGGGGGGr \n", - "104 NaN GGGGGGGGr \n", - "105 NaN GGGGGGGGr \n", - "106 NaN GGGGGGGGr \n", - "107 NaN GGGGGGGGr \n", - "\n", - "[108 rows x 8 columns]" - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ - "display(self.match6)\n", - "self.assign_signals() # 2-3 신호배정\n", - "display(self.match6)" + "for UPLindex in UPLindices:\n", + " node = self.net.getNode(parent_id)\n", + " conns = node.getConnections()\n", + " conns = [conn for conn in conns if conn.getTLLinkIndex() == UPLindex]\n", + " inc_edge_ids = [conn.getFrom().getID() for conn in conns]\n", + "\n", + "\n", + "parent_id = self.parent_ids[5]\n", + "UPLindices = self.p2UPLindices[parent_id]\n", + "UPLindex = UPLindices[0]\n", + "print(UPLindex)\n", + "\n", + "node = self.net.getNode(parent_id)\n", + "conns = node.getConnections()\n", + "conns = [conn for conn in conns if conn.getTLLinkIndex() == UPLindex]\n", + "conn = conns[0]\n", + "inc_edge = conn.getFrom().getID()\n", + "print(inc_edge)" ] } ], diff --git a/Analysis/0411_unp-left_p-right-uturn/0417_assign_signal.ipynb b/Analysis/0411_unp-left_p-right-uturn/0417_assign_signal.ipynb new file mode 100644 index 000000000..850dc5032 --- /dev/null +++ b/Analysis/0411_unp-left_p-right-uturn/0417_assign_signal.ipynb @@ -0,0 +1,304 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import pandas as pd\n", + "import numpy as np\n", + "import sys\n", + "import copy\n", + "sys.path.append('../../Scripts')\n", + "from preprocess_daily import DailyPreprocessor\n", + "from generate_signals import SignalGenerator" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "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", + "2-3. 유턴 인덱스 / 비보호좌회전 인덱스를 지정했습니다.\n", + "i6\n", + "[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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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
922101A6090270-571542115_01571500535_01i6straight
932101B18NaNNaNNaNNaNNaNNaNi6NaN
942102A5270000571500535_02.18571511538_01i6left
952102B2270090571500535_02.18571542115_01i6straight
962103A7000090571511538_02.121571542115_01i6left
972103B4000180571511538_02.121571500585_01i6straight
982104A8180000571500585_02571511538_01i6straight
992104B3180270571500585_02571500535_01i6left
\n", + "
" + ], + "text/plain": [ + " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", + "92 210 1 A 6 동 서 090 \n", + "93 210 1 B 18 NaN NaN NaN \n", + "94 210 2 A 5 서 북 270 \n", + "95 210 2 B 2 서 동 270 \n", + "96 210 3 A 7 북 동 000 \n", + "97 210 3 B 4 북 남 000 \n", + "98 210 4 A 8 남 북 180 \n", + "99 210 4 B 3 남 서 180 \n", + "\n", + " out_angle inc_edge_id out_edge_id node_id turn_type \n", + "92 270 -571542115_01 571500535_01 i6 straight \n", + "93 NaN NaN NaN i6 NaN \n", + "94 000 571500535_02.18 571511538_01 i6 left \n", + "95 090 571500535_02.18 571542115_01 i6 straight \n", + "96 090 571511538_02.121 571542115_01 i6 left \n", + "97 180 571511538_02.121 571500585_01 i6 straight \n", + "98 000 571500585_02 571511538_01 i6 straight \n", + "99 270 571500585_02 571500535_01 i6 left " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "self = DailyPreprocessor()\n", + "self.load_data() # 1. 데이터 불러오기\n", + "self.get_matches() # 2-1\n", + "self.initialize_state() # 2-2\n", + "self.assign_indices() # 2-3\n", + "\n", + "parent_id = self.parent_ids[4]\n", + "print(parent_id)\n", + "UPLindices = self.p2UPLindices[parent_id]\n", + "print(UPLindices)\n", + "m6 = self.match6[self.match6.node_id==parent_id].copy()\n", + "\n", + "# matching에 신호 배정\n", + "for i, row in self.match6.iterrows():\n", + " node_id = row.node_id\n", + " move_no = row.move_no\n", + " if (pd.isna(row.inc_edge_id)) or (pd.isna(row.out_edge_id)):\n", + " continue\n", + " inc_edge = self.net.getEdge(row.inc_edge_id)\n", + " out_edge = self.net.getEdge(row.out_edge_id)\n", + " state = copy.deepcopy(self.node2init[node_id])\n", + " for conn in inc_edge.getConnections(out_edge):\n", + " index = conn.getTLLinkIndex()\n", + " if index >= 0:\n", + " state[index] = 'G'\n", + " self.match6.at[i, 'state'] = ''.join(state)\n", + " if node_id in self.parent_ids:\n", + " UPLindices = self.p2UPLindices[node_id]\n", + " self.match6.at[i, 'unprotected_left'] = ''.join([state[j] for j in UPLindices])\n", + "display(self.match6[self.match6.node_id==parent_id])" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['b', 'c']" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "L = 'abcd'\n", + "UPLindices = [1,2]\n", + "[L[i] for i in UPLindices]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "sts", + "language": "python", + "name": "sts" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/Data/tables/raw_tables/0409_make_sample_table.ipynb b/Data/tables/raw_tables/0409_make_sample_table.ipynb index 66b96609c..3368e47c6 100644 --- a/Data/tables/raw_tables/0409_make_sample_table.ipynb +++ b/Data/tables/raw_tables/0409_make_sample_table.ipynb @@ -604,38 +604,38 @@ " 0\n", " 160\n", " 57\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", " \n", " \n", " 1\n", @@ -660,38 +660,38 @@ " 0\n", " 170\n", " 40\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", " \n", " \n", " 2\n", @@ -716,38 +716,38 @@ " 0\n", " 180\n", " 28\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", " \n", " \n", " 3\n", @@ -772,38 +772,38 @@ " 0\n", " 190\n", " 18\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 5\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", " \n", " \n", " 4\n", @@ -1068,22 +1068,22 @@ " 4\n", " 4\n", " 4\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", " \n", " \n", " 9\n", @@ -1124,22 +1124,22 @@ " 4\n", " 4\n", " 4\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", " \n", " \n", " 10\n", @@ -1180,22 +1180,22 @@ " 4\n", " 4\n", " 4\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", " \n", " \n", " 11\n", @@ -1236,22 +1236,22 @@ " 4\n", " 4\n", " 4\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", - " 1\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", " \n", " \n", " 12\n", @@ -1292,22 +1292,22 @@ " 4\n", " 4\n", " 4\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", " \n", " \n", " 13\n", @@ -1341,29 +1341,29 @@ " 4\n", " 4\n", " 4\n", - " 4\n", - " 4\n", - " 4\n", - " 4\n", - " 4\n", - " 4\n", - " 4\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 4\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", " \n", " \n", " 14\n", @@ -1404,22 +1404,22 @@ " 4\n", " 4\n", " 4\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", " \n", " \n", " 15\n", @@ -1460,22 +1460,22 @@ " 4\n", " 4\n", " 4\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", - " 0\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", + " 1\n", " \n", " \n", " 16\n", @@ -1964,22 +1964,22 @@ " 4\n", " 4\n", " 4\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", " \n", " \n", " 25\n", @@ -2020,22 +2020,22 @@ " 4\n", " 4\n", " 4\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", " \n", " \n", " 26\n", @@ -2076,22 +2076,22 @@ " 4\n", " 4\n", " 4\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", " \n", " \n", " 27\n", @@ -2132,22 +2132,22 @@ " 4\n", " 4\n", " 4\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", - " 2\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", " \n", " \n", " 28\n", @@ -2447,10 +2447,10 @@ "31 0 0 0 0 24 66 75 25 \n", "\n", " dura_B5 dura_B6 dura_B7 dura_B8 cycle offset yellow_A1 yellow_B1 \\\n", - "0 0 0 0 0 160 57 5 5 \n", - "1 0 0 0 0 170 40 5 5 \n", - "2 0 0 0 0 180 28 5 5 \n", - "3 0 0 0 0 190 18 5 5 \n", + "0 0 0 0 0 160 57 4 4 \n", + "1 0 0 0 0 170 40 4 4 \n", + "2 0 0 0 0 180 28 4 4 \n", + "3 0 0 0 0 190 18 4 4 \n", "4 0 0 0 0 150 131 4 4 \n", "5 0 0 0 0 170 153 4 4 \n", "6 0 0 0 0 180 169 4 4 \n", @@ -2481,10 +2481,10 @@ "31 0 0 0 0 190 143 4 4 \n", "\n", " yellow_A2 yellow_B2 yellow_A3 yellow_B3 yellow_A4 yellow_B4 \\\n", - "0 5 5 5 5 5 5 \n", - "1 5 5 5 5 5 5 \n", - "2 5 5 5 5 5 5 \n", - "3 5 5 5 5 5 5 \n", + "0 4 4 4 4 4 4 \n", + "1 4 4 4 4 4 4 \n", + "2 4 4 4 4 4 4 \n", + "3 4 4 4 4 4 4 \n", "4 4 4 4 4 4 4 \n", "5 4 4 4 4 4 4 \n", "6 4 4 4 4 4 4 \n", @@ -2515,10 +2515,10 @@ "31 4 4 4 4 4 4 \n", "\n", " yellow_A5 yellow_B5 yellow_A6 yellow_B6 yellow_A7 yellow_B7 \\\n", - "0 5 5 5 5 5 5 \n", - "1 5 5 5 5 5 5 \n", - "2 5 5 5 5 5 5 \n", - "3 5 5 5 5 5 5 \n", + "0 4 4 4 4 4 4 \n", + "1 4 4 4 4 4 4 \n", + "2 4 4 4 4 4 4 \n", + "3 4 4 4 4 4 4 \n", "4 4 4 4 4 4 4 \n", "5 4 4 4 4 4 4 \n", "6 4 4 4 4 4 4 \n", @@ -2549,22 +2549,22 @@ "31 4 4 4 4 4 4 \n", "\n", " yellow_A8 yellow_B8 red_A1 red_B1 red_A2 red_B2 red_A3 red_B3 \\\n", - "0 5 5 2 2 2 2 2 2 \n", - "1 5 5 2 2 2 2 2 2 \n", - "2 5 5 2 2 2 2 2 2 \n", - "3 5 5 2 2 2 2 2 2 \n", + "0 4 4 1 1 1 1 1 1 \n", + "1 4 4 1 1 1 1 1 1 \n", + "2 4 4 1 1 1 1 1 1 \n", + "3 4 4 1 1 1 1 1 1 \n", "4 4 4 2 2 2 2 2 2 \n", "5 4 4 2 2 2 2 2 2 \n", "6 4 4 2 2 2 2 2 2 \n", "7 4 4 2 2 2 2 2 2 \n", - "8 4 4 1 1 1 1 1 1 \n", - "9 4 4 1 1 1 1 1 1 \n", - "10 4 4 1 1 1 1 1 1 \n", - "11 4 4 1 1 1 1 1 1 \n", - "12 4 4 0 0 0 0 0 0 \n", - "13 4 4 0 0 0 0 0 0 \n", - "14 4 4 0 0 0 0 0 0 \n", - "15 4 4 0 0 0 0 0 0 \n", + "8 4 4 0 0 0 0 0 0 \n", + "9 4 4 0 0 0 0 0 0 \n", + "10 4 4 0 0 0 0 0 0 \n", + "11 4 4 0 0 0 0 0 0 \n", + "12 4 4 1 1 1 1 1 1 \n", + "13 4 4 1 1 1 1 1 1 \n", + "14 4 4 1 1 1 1 1 1 \n", + "15 4 4 1 1 1 1 1 1 \n", "16 4 4 1 1 1 1 1 1 \n", "17 4 4 1 1 1 1 1 1 \n", "18 4 4 1 1 1 1 1 1 \n", @@ -2573,32 +2573,32 @@ "21 5 5 1 1 1 1 1 1 \n", "22 5 5 1 1 1 1 1 1 \n", "23 5 5 1 1 1 1 1 1 \n", - "24 4 4 2 2 2 2 2 2 \n", - "25 4 4 2 2 2 2 2 2 \n", - "26 4 4 2 2 2 2 2 2 \n", - "27 4 4 2 2 2 2 2 2 \n", + "24 4 4 0 0 0 0 0 0 \n", + "25 4 4 0 0 0 0 0 0 \n", + "26 4 4 0 0 0 0 0 0 \n", + "27 4 4 0 0 0 0 0 0 \n", "28 4 4 1 1 1 1 1 1 \n", "29 4 4 1 1 1 1 1 1 \n", "30 4 4 1 1 1 1 1 1 \n", "31 4 4 1 1 1 1 1 1 \n", "\n", " red_A4 red_B4 red_A5 red_B5 red_A6 red_B6 red_A7 red_B7 red_A8 \\\n", - "0 2 2 2 2 2 2 2 2 2 \n", - "1 2 2 2 2 2 2 2 2 2 \n", - "2 2 2 2 2 2 2 2 2 2 \n", - "3 2 2 2 2 2 2 2 2 2 \n", + "0 1 1 1 1 1 1 1 1 1 \n", + "1 1 1 1 1 1 1 1 1 1 \n", + "2 1 1 1 1 1 1 1 1 1 \n", + "3 1 1 1 1 1 1 1 1 1 \n", "4 2 2 2 2 2 2 2 2 2 \n", "5 2 2 2 2 2 2 2 2 2 \n", "6 2 2 2 2 2 2 2 2 2 \n", "7 2 2 2 2 2 2 2 2 2 \n", - "8 1 1 1 1 1 1 1 1 1 \n", - "9 1 1 1 1 1 1 1 1 1 \n", - "10 1 1 1 1 1 1 1 1 1 \n", - "11 1 1 1 1 1 1 1 1 1 \n", - "12 0 0 0 0 0 0 0 0 0 \n", - "13 0 0 0 0 0 0 0 0 0 \n", - "14 0 0 0 0 0 0 0 0 0 \n", - "15 0 0 0 0 0 0 0 0 0 \n", + "8 0 0 0 0 0 0 0 0 0 \n", + "9 0 0 0 0 0 0 0 0 0 \n", + "10 0 0 0 0 0 0 0 0 0 \n", + "11 0 0 0 0 0 0 0 0 0 \n", + "12 1 1 1 1 1 1 1 1 1 \n", + "13 1 1 1 1 1 1 1 1 1 \n", + "14 1 1 1 1 1 1 1 1 1 \n", + "15 1 1 1 1 1 1 1 1 1 \n", "16 1 1 1 1 1 1 1 1 1 \n", "17 1 1 1 1 1 1 1 1 1 \n", "18 1 1 1 1 1 1 1 1 1 \n", @@ -2607,32 +2607,32 @@ "21 1 1 1 1 1 1 1 1 1 \n", "22 1 1 1 1 1 1 1 1 1 \n", "23 1 1 1 1 1 1 1 1 1 \n", - "24 2 2 2 2 2 2 2 2 2 \n", - "25 2 2 2 2 2 2 2 2 2 \n", - "26 2 2 2 2 2 2 2 2 2 \n", - "27 2 2 2 2 2 2 2 2 2 \n", + "24 0 0 0 0 0 0 0 0 0 \n", + "25 0 0 0 0 0 0 0 0 0 \n", + "26 0 0 0 0 0 0 0 0 0 \n", + "27 0 0 0 0 0 0 0 0 0 \n", "28 1 1 1 1 1 1 1 1 1 \n", "29 1 1 1 1 1 1 1 1 1 \n", "30 1 1 1 1 1 1 1 1 1 \n", "31 1 1 1 1 1 1 1 1 1 \n", "\n", " red_B8 \n", - "0 2 \n", - "1 2 \n", - "2 2 \n", - "3 2 \n", + "0 1 \n", + "1 1 \n", + "2 1 \n", + "3 1 \n", "4 2 \n", "5 2 \n", "6 2 \n", "7 2 \n", - "8 1 \n", - "9 1 \n", - "10 1 \n", - "11 1 \n", - "12 0 \n", - "13 0 \n", - "14 0 \n", - "15 0 \n", + "8 0 \n", + "9 0 \n", + "10 0 \n", + "11 0 \n", + "12 1 \n", + "13 1 \n", + "14 1 \n", + "15 1 \n", "16 1 \n", "17 1 \n", "18 1 \n", @@ -2641,10 +2641,10 @@ "21 1 \n", "22 1 \n", "23 1 \n", - "24 2 \n", - "25 2 \n", - "26 2 \n", - "27 2 \n", + "24 0 \n", + "25 0 \n", + "26 0 \n", + "27 0 \n", "28 1 \n", "29 1 \n", "30 1 \n", @@ -2783,26 +2783,26 @@ " \n", " \n", " 1\n", - " 178\n", + " 202\n", " 1704380540\n", - " 38\n", " 39\n", - " 40\n", - " 23\n", + " 101\n", + " 0\n", + " 0\n", " 0\n", " 0\n", " 0\n", " 0\n", - " 38\n", " 39\n", - " 40\n", - " 23\n", + " 101\n", + " 0\n", + " 0\n", " 0\n", " 0\n", " 0\n", " 0\n", " 140\n", - " 50\n", + " 103\n", " \n", " \n", " 2\n", @@ -2829,49 +2829,49 @@ " \n", " \n", " 3\n", - " 202\n", - " 1704380540\n", + " 178\n", + " 1704380541\n", + " 38\n", " 39\n", - " 101\n", - " 0\n", - " 0\n", + " 40\n", + " 23\n", " 0\n", " 0\n", " 0\n", " 0\n", + " 38\n", " 39\n", - " 101\n", - " 0\n", - " 0\n", + " 40\n", + " 23\n", " 0\n", " 0\n", " 0\n", " 0\n", " 140\n", - " 103\n", + " 50\n", " \n", " \n", " 4\n", - " 177\n", - " 1704380549\n", - " 36\n", - " 20\n", - " 68\n", - " 26\n", + " 210\n", + " 1704380550\n", + " 43\n", + " 29\n", + " 56\n", + " 22\n", " 0\n", " 0\n", " 0\n", " 0\n", - " 36\n", - " 20\n", - " 68\n", - " 26\n", + " 24\n", + " 48\n", + " 56\n", + " 22\n", " 0\n", " 0\n", " 0\n", " 0\n", " 150\n", - " 35\n", + " 115\n", " \n", " \n", " 5\n", @@ -2921,26 +2921,26 @@ " \n", " \n", " 7\n", - " 210\n", - " 1704380550\n", - " 43\n", + " 175\n", + " 1704380560\n", + " 37\n", + " 39\n", + " 55\n", " 29\n", - " 56\n", - " 22\n", " 0\n", " 0\n", " 0\n", " 0\n", - " 24\n", - " 48\n", - " 56\n", - " 22\n", + " 37\n", + " 39\n", + " 25\n", + " 59\n", " 0\n", " 0\n", " 0\n", " 0\n", - " 150\n", - " 115\n", + " 160\n", + " 57\n", " \n", " \n", " 8\n", @@ -2967,31 +2967,31 @@ " \n", " \n", " 9\n", - " 175\n", - " 1704380670\n", - " 37\n", - " 39\n", - " 55\n", - " 29\n", - " 0\n", - " 0\n", + " 201\n", + " 1704380680\n", + " 24\n", + " 24\n", + " 17\n", + " 58\n", + " 17\n", " 0\n", " 0\n", - " 37\n", - " 39\n", - " 25\n", - " 59\n", " 0\n", + " 24\n", + " 24\n", + " 17\n", + " 58\n", + " 17\n", " 0\n", " 0\n", " 0\n", - " 160\n", - " 57\n", + " 140\n", + " 133\n", " \n", " \n", " 10\n", " 178\n", - " 1704380679\n", + " 1704380680\n", " 38\n", " 39\n", " 40\n", @@ -3036,95 +3036,95 @@ " \n", " \n", " 12\n", - " 201\n", - " 1704380680\n", - " 24\n", - " 24\n", - " 17\n", - " 58\n", - " 17\n", + " 176\n", + " 1704380700\n", + " 37\n", + " 73\n", + " 40\n", + " 0\n", " 0\n", " 0\n", " 0\n", - " 24\n", - " 24\n", - " 17\n", - " 58\n", - " 17\n", " 0\n", + " 37\n", + " 73\n", + " 40\n", " 0\n", " 0\n", - " 140\n", - " 133\n", + " 0\n", + " 0\n", + " 0\n", + " 150\n", + " 131\n", " \n", " \n", " 13\n", - " 177\n", + " 210\n", " 1704380700\n", - " 36\n", - " 20\n", - " 68\n", - " 26\n", + " 43\n", + " 29\n", + " 56\n", + " 22\n", " 0\n", " 0\n", " 0\n", " 0\n", - " 36\n", - " 20\n", - " 68\n", - " 26\n", + " 24\n", + " 48\n", + " 56\n", + " 22\n", " 0\n", " 0\n", " 0\n", " 0\n", " 150\n", - " 35\n", + " 115\n", " \n", " \n", " 14\n", - " 176\n", + " 177\n", " 1704380700\n", - " 37\n", - " 73\n", - " 40\n", - " 0\n", - " 0\n", + " 36\n", + " 20\n", + " 68\n", + " 26\n", " 0\n", " 0\n", " 0\n", - " 37\n", - " 73\n", - " 40\n", " 0\n", + " 36\n", + " 20\n", + " 68\n", + " 26\n", " 0\n", " 0\n", " 0\n", " 0\n", " 150\n", - " 131\n", + " 35\n", " \n", " \n", " 15\n", - " 210\n", - " 1704380700\n", - " 43\n", + " 175\n", + " 1704380720\n", + " 37\n", + " 39\n", + " 55\n", " 29\n", - " 56\n", - " 22\n", " 0\n", " 0\n", " 0\n", " 0\n", - " 24\n", - " 48\n", - " 56\n", - " 22\n", + " 37\n", + " 39\n", + " 25\n", + " 59\n", " 0\n", " 0\n", " 0\n", " 0\n", - " 150\n", - " 115\n", + " 160\n", + " 57\n", " \n", " \n", " 16\n", @@ -3151,29 +3151,6 @@ " \n", " \n", " 17\n", - " 201\n", - " 1704380820\n", - " 24\n", - " 24\n", - " 17\n", - " 58\n", - " 17\n", - " 0\n", - " 0\n", - " 0\n", - " 24\n", - " 24\n", - " 17\n", - " 58\n", - " 17\n", - " 0\n", - " 0\n", - " 0\n", - " 140\n", - " 133\n", - " \n", - " \n", - " 18\n", " 178\n", " 1704380820\n", " 38\n", @@ -3196,7 +3173,7 @@ " 50\n", " \n", " \n", - " 19\n", + " 18\n", " 202\n", " 1704380820\n", " 39\n", @@ -3218,6 +3195,29 @@ " 140\n", " 103\n", " \n", + " \n", + " 19\n", + " 201\n", + " 1704380820\n", + " 24\n", + " 24\n", + " 17\n", + " 58\n", + " 17\n", + " 0\n", + " 0\n", + " 0\n", + " 24\n", + " 24\n", + " 17\n", + " 58\n", + " 17\n", + " 0\n", + " 0\n", + " 0\n", + " 140\n", + " 133\n", + " \n", " \n", "\n", "" @@ -3225,69 +3225,69 @@ "text/plain": [ " inter_no end_unix dura_A1 dura_A2 dura_A3 dura_A4 dura_A5 dura_A6 \\\n", "0 206 1704380520 33 35 26 26 0 0 \n", - "1 178 1704380540 38 39 40 23 0 0 \n", + "1 202 1704380540 39 101 0 0 0 0 \n", "2 201 1704380540 24 24 17 58 17 0 \n", - "3 202 1704380540 39 101 0 0 0 0 \n", - "4 177 1704380549 36 20 68 26 0 0 \n", + "3 178 1704380541 38 39 40 23 0 0 \n", + "4 210 1704380550 43 29 56 22 0 0 \n", "5 176 1704380550 37 73 40 0 0 0 \n", "6 177 1704380550 36 20 68 26 0 0 \n", - "7 210 1704380550 43 29 56 22 0 0 \n", + "7 175 1704380560 37 39 55 29 0 0 \n", "8 206 1704380640 33 35 26 26 0 0 \n", - "9 175 1704380670 37 39 55 29 0 0 \n", - "10 178 1704380679 38 39 40 23 0 0 \n", + "9 201 1704380680 24 24 17 58 17 0 \n", + "10 178 1704380680 38 39 40 23 0 0 \n", "11 202 1704380680 39 101 0 0 0 0 \n", - "12 201 1704380680 24 24 17 58 17 0 \n", - "13 177 1704380700 36 20 68 26 0 0 \n", - "14 176 1704380700 37 73 40 0 0 0 \n", - "15 210 1704380700 43 29 56 22 0 0 \n", + "12 176 1704380700 37 73 40 0 0 0 \n", + "13 210 1704380700 43 29 56 22 0 0 \n", + "14 177 1704380700 36 20 68 26 0 0 \n", + "15 175 1704380720 37 39 55 29 0 0 \n", "16 206 1704380760 33 35 26 26 0 0 \n", - "17 201 1704380820 24 24 17 58 17 0 \n", - "18 178 1704380820 38 39 40 23 0 0 \n", - "19 202 1704380820 39 101 0 0 0 0 \n", + "17 178 1704380820 38 39 40 23 0 0 \n", + "18 202 1704380820 39 101 0 0 0 0 \n", + "19 201 1704380820 24 24 17 58 17 0 \n", "\n", " dura_A7 dura_A8 dura_B1 dura_B2 dura_B3 dura_B4 dura_B5 dura_B6 dura_B7 \\\n", "0 0 0 33 35 26 26 0 0 0 \n", - "1 0 0 38 39 40 23 0 0 0 \n", + "1 0 0 39 101 0 0 0 0 0 \n", "2 0 0 24 24 17 58 17 0 0 \n", - "3 0 0 39 101 0 0 0 0 0 \n", - "4 0 0 36 20 68 26 0 0 0 \n", + "3 0 0 38 39 40 23 0 0 0 \n", + "4 0 0 24 48 56 22 0 0 0 \n", "5 0 0 37 73 40 0 0 0 0 \n", "6 0 0 36 20 68 26 0 0 0 \n", - "7 0 0 24 48 56 22 0 0 0 \n", + "7 0 0 37 39 25 59 0 0 0 \n", "8 0 0 33 35 26 26 0 0 0 \n", - "9 0 0 37 39 25 59 0 0 0 \n", + "9 0 0 24 24 17 58 17 0 0 \n", "10 0 0 38 39 40 23 0 0 0 \n", "11 0 0 39 101 0 0 0 0 0 \n", - "12 0 0 24 24 17 58 17 0 0 \n", - "13 0 0 36 20 68 26 0 0 0 \n", - "14 0 0 37 73 40 0 0 0 0 \n", - "15 0 0 24 48 56 22 0 0 0 \n", + "12 0 0 37 73 40 0 0 0 0 \n", + "13 0 0 24 48 56 22 0 0 0 \n", + "14 0 0 36 20 68 26 0 0 0 \n", + "15 0 0 37 39 25 59 0 0 0 \n", "16 0 0 33 35 26 26 0 0 0 \n", - "17 0 0 24 24 17 58 17 0 0 \n", - "18 0 0 38 39 40 23 0 0 0 \n", - "19 0 0 39 101 0 0 0 0 0 \n", + "17 0 0 38 39 40 23 0 0 0 \n", + "18 0 0 39 101 0 0 0 0 0 \n", + "19 0 0 24 24 17 58 17 0 0 \n", "\n", " dura_B8 cycle offset \n", "0 0 120 10 \n", - "1 0 140 50 \n", + "1 0 140 103 \n", "2 0 140 133 \n", - "3 0 140 103 \n", - "4 0 150 35 \n", + "3 0 140 50 \n", + "4 0 150 115 \n", "5 0 150 131 \n", "6 0 150 35 \n", - "7 0 150 115 \n", + "7 0 160 57 \n", "8 0 120 10 \n", - "9 0 160 57 \n", + "9 0 140 133 \n", "10 0 140 50 \n", "11 0 140 103 \n", - "12 0 140 133 \n", - "13 0 150 35 \n", - "14 0 150 131 \n", - "15 0 150 115 \n", + "12 0 150 131 \n", + "13 0 150 115 \n", + "14 0 150 35 \n", + "15 0 160 57 \n", "16 0 120 10 \n", - "17 0 140 133 \n", - "18 0 140 50 \n", - "19 0 140 103 " + "17 0 140 50 \n", + "18 0 140 103 \n", + "19 0 140 133 " ] }, "execution_count": 7, @@ -4052,13 +4052,13 @@ "turn_type = turn_type[['node_id', 'inc_edge_id', 'out_edge_id', 'turn_type']]\n", "additional_turn_type1 = pd.DataFrame({'node_id':['i6'], 'inc_edge_id':['-571542115_01'], 'out_edge_id':['571500585_01'], 'turn_type':['left']})\n", "additional_turn_type2 = pd.DataFrame({'node_id':['i7'], 'inc_edge_id':['571542073_01'], 'out_edge_id':['571542071_01'], 'turn_type':['left']})\n", - "turn_type = pd.concat([turn_type, additional_turn_type1, additional_turn_type1])#.sort_values(by='node_id')\n", + "turn_type = pd.concat([turn_type, additional_turn_type1, additional_turn_type2])#.sort_values(by='node_id')\n", "turn_type.to_csv('../turn_type.csv', index=0)" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -4082,139 +4082,67 @@ " \n", " \n", " \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", + " node_id\n", " inc_edge_id\n", " out_edge_id\n", - " node_id\n", " turn_type\n", " \n", " \n", " \n", " \n", - " 92\n", - " 210\n", - " 1\n", - " A\n", - " 6\n", - " 동\n", - " 서\n", - " 090\n", - " 270\n", + " 39\n", + " i6\n", " -571542115_01\n", " 571500535_01\n", - " i6\n", " straight\n", " \n", " \n", - " 93\n", - " 210\n", - " 1\n", - " B\n", - " 18\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", - " NaN\n", + " 40\n", " i6\n", - " NaN\n", - " \n", - " \n", - " 94\n", - " 210\n", - " 2\n", - " A\n", - " 5\n", - " 서\n", - " 북\n", - " 270\n", - " 000\n", " 571500535_02.18\n", " 571511538_01\n", - " i6\n", " left\n", " \n", " \n", - " 95\n", - " 210\n", - " 2\n", - " B\n", - " 2\n", - " 서\n", - " 동\n", - " 270\n", - " 090\n", + " 41\n", + " i6\n", " 571500535_02.18\n", " 571542115_01\n", - " i6\n", " straight\n", " \n", " \n", - " 96\n", - " 210\n", - " 3\n", - " A\n", - " 7\n", - " 북\n", - " 동\n", - " 000\n", - " 090\n", + " 42\n", + " i6\n", " 571511538_02.121\n", " 571542115_01\n", - " i6\n", " left\n", " \n", " \n", - " 97\n", - " 210\n", - " 3\n", - " B\n", - " 4\n", - " 북\n", - " 남\n", - " 000\n", - " 180\n", + " 43\n", + " i6\n", " 571511538_02.121\n", " 571500585_01\n", - " i6\n", " straight\n", " \n", " \n", - " 98\n", - " 210\n", - " 4\n", - " A\n", - " 8\n", - " 남\n", - " 북\n", - " 180\n", - " 000\n", + " 44\n", + " i6\n", " 571500585_02\n", " 571511538_01\n", - " i6\n", " straight\n", " \n", " \n", - " 99\n", - " 210\n", - " 4\n", - " B\n", - " 3\n", - " 남\n", - " 서\n", - " 180\n", - " 270\n", + " 45\n", + " i6\n", " 571500585_02\n", " 571500535_01\n", + " left\n", + " \n", + " \n", + " 46\n", " i6\n", + " -571542115_01\n", + " 571500585_01\n", " left\n", " \n", " \n", @@ -4222,34 +4150,24 @@ "" ], "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "92 210 1 A 6 동 서 090 \n", - "93 210 1 B 18 NaN NaN NaN \n", - "94 210 2 A 5 서 북 270 \n", - "95 210 2 B 2 서 동 270 \n", - "96 210 3 A 7 북 동 000 \n", - "97 210 3 B 4 북 남 000 \n", - "98 210 4 A 8 남 북 180 \n", - "99 210 4 B 3 남 서 180 \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id turn_type \n", - "92 270 -571542115_01 571500535_01 i6 straight \n", - "93 NaN NaN NaN i6 NaN \n", - "94 000 571500535_02.18 571511538_01 i6 left \n", - "95 090 571500535_02.18 571542115_01 i6 straight \n", - "96 090 571511538_02.121 571542115_01 i6 left \n", - "97 180 571511538_02.121 571500585_01 i6 straight \n", - "98 000 571500585_02 571511538_01 i6 straight \n", - "99 270 571500585_02 571500535_01 i6 left " + " node_id inc_edge_id out_edge_id turn_type\n", + "39 i6 -571542115_01 571500535_01 straight\n", + "40 i6 571500535_02.18 571511538_01 left\n", + "41 i6 571500535_02.18 571542115_01 straight\n", + "42 i6 571511538_02.121 571542115_01 left\n", + "43 i6 571511538_02.121 571500585_01 straight\n", + "44 i6 571500585_02 571511538_01 straight\n", + "45 i6 571500585_02 571500535_01 left\n", + "46 i6 -571542115_01 571500585_01 left" ] }, - "execution_count": 21, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "self.match6[self.match6.node_id=='i6']" + "self.turn_type[self.turn_type.node_id=='i6']" ] } ], diff --git a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc index 007084d1c89c1903b56cae50df63edd642f5a837..66ec912d0603e75692bce356dac34d571888091e 100644 GIT binary patch delta 7038 zcmb7J3v`pmmHtOB%aSDS2q6y?j1c~1A=&9*b75=>9iY`Q5;x_iI*{ZLrg zvuhuJ|D8Mc-nswGojdm*KmIQJ;#bUlyUXQJ=qG@n~YiuSI=gbN+d@Ce!7(ld_hl26V8#aWs!F8G%yyv8euNQB+%gZ*9)SdJfvk}-7lTx5?f9A6L zUgp|HoU9dAW5oK)qMul1^bm`$0<0$RGJZ22W)27VRzRQFRaU|_i2KXdI#&?m!jHi1 z$^5jemzDc$YJvy+E2V>QVN#<6ejK5{n1uj-@KqvEvAA$taqCc$0_#NQ>mH5q!Mw^_wUQyUIulNCoS=BJ75V;!?K5@%HquAZ_Tk*PO znRv9hmD$AKH@D}7H8tEHjEUbg-_ys zUkCgx;O_|bI)(%B{+(SN{juFA8NXkgY4x&R@r%~Ry01Xy5x~~~n4YXHz(d1dEym@X{SdOxio+eNt*41B z&Ai*OfVDpc?pp*je~;56Yl>>U6y#Fn8Fao2z~(3A#ho7OOGM7hZ0l?=v14Li_sq3V zpbw#$b%f(V9#4!6(L&4Dgkd8heV{O1S+f?=cGQ)sZ(_Sx z&rnaNST{G!{*cMc{nV5>wcs#g>&118s;t;b+r-_Abmy<3|8IbQms;rYi_44JoLK1# z(u?DwYw>!Q;forL%guRk@hllQ_cGd$wPMA_R{L*BLH1de%#tJMqH{^(e5{AD0&f$w zng0OoJrXI<`czu-$dI);gvH3v17e+>J|kWgn(OO46w-5mUNo zR9U4QHT7Li7U%_$X-OAhanem#k}M>2B#Q{$$!Ub8$zsB?WC>~7(&eKHo{>D=HE60* zlBIfSq(Zf+c_EW(Kf)rFYQE|?!iewIOI7DGMQ6IJO3{l+HdUq;=!(CJRP3rtb(4yf zRGjI8xNDT9t4Eb&dAufFtCx>5qU!W=wXjmz&p_>G6^g;BAWnrLS#L<{<@8%dZdFw% zgH{@-LRzU9Wol8Cq864b$x7Xea$J?m&D9D4DfDOpdHTQ4E1 zLGr2wO_EbLXj-8pJv#auRFb4tBhem}Wc7wZh1%0)yL7TWBVH3B8P%*>LMB>(LbYtr zbkxLum(q*$X(1S%u6vB`0TR$WBvMWyW?qyd(KsbBVXR6?&lpuAO=^W&d4#2#X~CNG zCek~vH>R6L6{0p@-GX*d_oP#X$nG4GTsH>v>ElKo&5@Ws<%YIOpD`}+a*o7|9Es_A z!??ux90{5y$fQChysz#|&(upt8B=zBL_sr4t)lmuO_X<($#yl#5I@qQGSwMoYRwVi z`)A2%g?z1AC&SmWOi}BlMuVZDR%0iq4HFU=RCR`&6#vlgQPQotlfudw2SwXR$99|* zGE?-o(Zp7e0jJzd7HlR`YN!78iA{xe=H$vkw)K75(^CnDPAFR}u_G3Y^Q)#%q@N28 zs2EuV)NueM4TWC-$g}Eapw5fZ9&ZXsgYN~*1K`A=L;9cTk+p}lem^P>BV~cQPzoWO zNWI>Uobzon*tY}ZL3RSvX8?GVwW&NhLfQFAaAfv`dvwyr;-z~=f=0qdLgmQX{6mrL znV)(Gjs$oh9*$~8F@^IWYl%g9oXZR?>j;@b<+1q-beo5w{rn4< zI{>&3APQ7WTKaoH6Qv5 z0h31puYkEq0-vp4D)XO<6RUskI7?z*CpIPM$JR6zn=Pz}*>Zm~@2~l_twDM{wRpv_ zRst|aphCS){PE`5t^thNN}6HPe`161CISZ6M1YSV*GnWhR{baKSq{IamLrL8YqV*i28Km1RzD8_-?@_Pg^>a)k3c=gL`uJ-O!7FjH>8+r%^K z3Iu8`Q;Lk5!e^993;79gd1G}-T9Q-y0F20)mVqe4_)g-Xu%O!EJ#@>#5pn#_fRg|j zaQ_8L!MHbr@&f({xD5Cc;B&xK&0^FdDPm^rGEBl+NJb$y!3;_o{!ak;q3|>)8J1<} zo!k|?9L*N$^?GF~;>#Q9Hog&LfWkwcjka-jSmp9v&q)r|BH)yW;!RDgUM$?Sajkqe z8QOjfW`%9e}Eo2D1Kz^Fsl_X#|i*4yr| zHe*&$5P~fiR8~}9j+t+ZXYM-A`X_78QxrpMo!g-z1*dvm5U*@mRe#fD&!nBKec4c8 zc!wIe{zcK?J8GK^U#9eacuk8xB8&4<+zWYWt!0v$G|pRz_hX7!-bO^0tgCCteb?LF=p0S70mmWR)(W(19W6$0G8v3=>wi6o{+cKTWfs$aWY25>clYoE^70A zfKk9y0FI!!gTQCSwM5jH7vRA)QTn!spocbw!evY$6pa;GM0>@kZ?k!%vzjVZaaU7) zihm0t4Fuj2qwbXph;YeT`=go`%UWac0DZlnj?J3-!#+C=<{!XleZ=ya`Xf`{{5g{* zqYIIQZ!S&avY!49X&6f&L!>Sr?Y}1Yrf~K7856^OUCrbvr3^(e(_icZvJhAH;|Rv_ zZc3X`{PxjpKwnu(iR7j2I-S2sEA@f45N*?~>3rQrr5g&lJUuV%kYz8^seIT~JZ=qV zcL9~rtZzrsPP9w6S1E^-uPOsfHL2zU_P9G1u3#i^OA5e61gobdb_Aj;ab6dJ2 zU7}N=O?A&}o7S~;Fs(9`&p$zPY0gq3f(N2;70*pPlBLZ|jJ4yjK} zV!pevAP|d%Lv#m&3l#CDquiAfqHZP{)mmYkq{Xd#I}8U1CX(6wiBXN1m3a@g|3nF; zMhwwk+Fjga=*euf=o$*2ONGzNU82uXaJ|mb%BW(zn_(G)@@px7@#S+g=kzabp7Qyc z>Q=LObxZYxx8oZBtG6~oW8B@;|I^((+P9O(egb*CyL~QY$Zw=C9XRb7J8|~nkr&1u ze9AM&bMgBJE@nwr#3$Rj=qt&}CPSZd{8CWnM4ab7*SI%+d3o(CnrIr4 z8&p%g4jy*Hn~94+9}O>G!HS_(-6Nx0IeZ{t__*ns83A=tbphu zlbxOpQ?<#$>Ltg`9K^?O0r9GtyM)LImfO@q?7be5-d;7~OXgVLb0#xi$b>7<(s|O< z%m0-|qVJ7q^x)SzYD*|eaMTKaZ<(m+cZ=7ym&}<V= zhniWt8Vru${_tv%WxVY#A!l7D<5Hf$@)k-S$SGKqCEypJegY6Hcht<4@p836F&jpa zCJQo|jP8e;y!W%6BC^Pwd2YukMrRqZ<;u$|et9c*lekyCv84w+s{ow@bUzl>eE9_a z{yqIeL5|`&jEaX}6qnSEwx=LDOY{W0*{x!CaC=P}3=au-=`)prE~v#5u+-f?Uwj+20rV`k)eP_g$e#g6I8jZ zXA5N^q$P$8Ph)(lcDMmnWpuwlR@Y} zyJ>zJ@Dkt*;Cq0x0947cz~R`49BanmwBf{hQ5R{XP+T6VuE@7Li)!t~c8A?#Uu#b( z4*Nd)YJ0oTBA!(U8~RsLVwhs@5okLBVSt?aVogp@OV5s#H0Hovt%&X zQ`lj7%ffWAq^Q%O+Y>xJnTe#*x=0kg#cnC|72mjF%7CgQmrx89mejop$`;|ESFTv}kU8>!zxCbBjHn@KU1 znD}s^wCrQ7G)f%ZiZQdqdeHTfrMaJ2d=p?ZL4fgX_%Tc4JOch*;(U1p+bSM%Z*puP z#>E%G?JxYwJ;17Tn>xv(k#*9ES)UAz3QXfT{m)tm;0NC%)(vq?!F)Gh7oY|(PN3V9xj5(P{aGFauLnGHbbOqD6wM*=LQNanCN9^!%=Q(| zdHR`cHTY|Ut?vF69|3t7aNSZonuXV zN#@$JTVglbIPt9aO(tgN@mvc#S|7_6D?u8Z_oAa$9(a%pTy8R05_VilFI1T zDCg0Gd>v$tz?ju=`aUp@i(CBN>_B0^zguz1jnu%No%WMW``K>M)x3o561$ssx5!nx z9Rj_85MT%}19%j0hq%z}w(SJ@x8hIDjW)S#gQBTrsrz2y>Q*($DRy>40=pwzLk;4d zmMg4F9BAznXIguiRlL*ME$Z7gTjdEWjJ2(0)^CvP<-*zaBC~A}y4%HfJKSuGc%!4$ zia0TgzjS2SX_4t%%<^KUvtk*hLz9*3@()n?9^eJQKN1`&o`~jRdzJ)a*?p%OzlT@@ zfl6_+!!53MI@zEo?P~OX3epb)P604k-4^AEiRb}7E3#96ZZ&=sbwp=Lei9buc_U`JR+l{oraZIXBI*x?OI?#}r}S1jdNVQg1u#Q7fcHUo zEkI5Mv)~&EPBUE@J~$94;xAE4r^w12)EC6kPX{+z|BlFtg1Kio z>wW~>*9ig&{~P+zm2_%=qFSmvfzF=*!hkbkWU*f??zgbk!m-6Zg*_ipH<_W7W=s=?jkv=`%VpHfsc4G-3z|QMj!o{tQhr#}^e%DZ2)$qRHJkSLyTYK!krl#x*tZJ9R_c3wX zs>Ws5EMt4#AZiDH9_{r61A%t_3pD1!@)3MJE_+$2vKClx*!r}w9z zzAO*&3Xm%a!j4R68&wH48H;BFwMJ;;c*qoI=nac|R|kV>V(R92O69)=WlvA$BKzX8 ztU<}`_#^Z#0Nxe$>?3?13Yu=g4S!5u%5~jREGmR?K6k)7)mrsvy}CfPCls~lI2-k<#j4{tBfe9sR!c~YX{8>M zwvc3N)KZG!2GX#rPPL3Qtfb+XF3FY7uxa0nDeuYoryDg7x#Gz+X&%*8V>--09cI-g z{7$K^YGPFzqRob==ApkD@~@%VG-joNYNeT4V;-uj%9O9u%y1)Lq!np(^jrTvC(7nI z;g#B6a>7ePdapa-rE#a=1+iwGfM~NOMKv$|NhfMdV~mDqkY*aliE@ugI^okS(urcN zSo4vDpPVSx7LFC5JG?!MMfZ=wnS-g6)d+OGCoEAfV1RArt9@F%q z8PjM$tyXJ}v*`}npmweOgoW2=Ez^M+iaLJc#uidXwdPrgZ_blwo*N@IqP0%Vio8Bg zq;;N1pVl@j@%woaZSy3Wv?eJ5m*yr%%Q7dUIi@?c>KVpNdw)YA(xrN6THQniXQr5B z)Y6QpW3)$QYDto*b;pSx>5{7mg?iO1!_~6Jq&7$mpP`}FBJfq;H3CtdvyAoy!_9e8g^-W};M4lZB&JHPsNFa3W453{(ysnH5y+!ArUr$(6 z{%qOF;cPs|DRY?k4f8N^+{I#aUjQJH@`nJI0kROj4eA|nWqqI;C4p;zr2tfIx+A

rhww1N`=hW2Af7{!_}~pM10&+mfxF+|<3s6BDCDY*h}pN0 z44L;}@;}I0rTFpIP9N?B{67J|1E9JY6%7UsDA(=|T~h83=>4z%D|ZkB!B_d%c|-)a z)!rhfK09I3x*qk$zE)x-$^mbXnsMhC2n4wwECfy1xMJPJXT-^EwNuiNv~e$nuYwqg zz7e@$qHyP+YlVy-IW~fdQ@SwmuY!^>rJ!jB;IYRMwfuhoe+FCy`~`3fAfwB;rmUm3 zZkM5uOeJKTaVyNo8|N#KeiU#TAOo)ky*ipd0C>dMV1plygl)-GER-AW-+sH*j>*d_q5sYrc_n;GeBjOpSR7YPd3`)*gh0cJI?=GR!V!aM z86;9fs(f3#5?(5f?sTyM@$k-i_Kf(}&J(sy3^!-z{Qqy~HL|m8stbB@gzoEWx+&VRJBUB-?KW*G>FA&9Ix&)<6TmtK)R_BFA1$UTK^4qK6Q=mD0^ zMd?xU8nJXGmJHjYJRTWI(*xx$NGY+=xwrc~i`R1)o>Hlld>it!q+zUQD=4{&-z4gB zTE*<0M3_pem`xGi8yYk#hnmE5JDbF+U8RLjsGnC#!o^t1h;&CZCc1ilN%B-t%ISyy zwf*_^wf#9165ok<#MR^i@r6W1&r+K34*nvkUUWmBnzSf{99E5N@I0t)!0Y1e#PZNh z=w1Q%YoisLsT0vKTR%nro)*?C#`g41wSy}QLocYG$?>FZz+6T`zR~S!Jf6V|)Ywq$ z&b&G%CoCT-R{0T%%WaiMTkf*l;6a#`CF)gB!ket?l}A|aygbo!gJL!2st#X{<~>l8 zFGpK}$SX?WNb)Rm+zqxo1M+K;JahqZ$Jpi$SsLUwti>clkEmoSTtpCw9gK~~IkIe0 z9;hqgpT@S?9*3b0;TsQ?^w6?hs}16=v1Q^jv-2W7;r7f$;|Cxuqwz@+TvT{u zqMnt(fkW2G+(`Ed`XKjV@nY%$n^gIn7)~!@%fzwtly UjNt)=fvUwzd%LU~?R1OyU#LrD$^ZZW diff --git a/Scripts/preprocess_daily.py b/Scripts/preprocess_daily.py index 933cbd6ed..63c99bd12 100644 --- a/Scripts/preprocess_daily.py +++ b/Scripts/preprocess_daily.py @@ -733,6 +733,7 @@ class DailyPreprocessor(): # json 파일로 저장 with open(os.path.join(self.path_intermediates, 'node2init.json'), 'w') as file: json.dump(self.node2init, file) + print('2-2. 초기화 신호가 지정되었습니다. (우회전 : g)') # 2-3 유턴 인덱스 / 비보호좌회전 인덱스 지정 def assign_indices(self):