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 007084d1c..66ec912d0 100644 Binary files a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc and b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc differ 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):