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 index 11d9a02a1..0b599fc2d 100644 --- a/Analysis/0411_unp-left_p-right-uturn/0417_assign_signal.ipynb +++ b/Analysis/0411_unp-left_p-right-uturn/0417_assign_signal.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 69, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -18,7 +18,7 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -49,7 +49,7 @@ " 'i9': {}}" ] }, - "execution_count": 77, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -65,7 +65,7 @@ }, { "cell_type": "code", - "execution_count": 124, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -80,1142 +80,8 @@ "1-5. 주요 객체 (리스트, 딕셔너리)들을 저장했습니다.\n", "2-1. 매칭 테이블들을 생성했습니다.\n", "2-2. 초기화 신호가 지정되었습니다. (우회전 : g)\n", - "2-3. 유턴 인덱스 / 비보호좌회전 인덱스를 지정했습니다.\n", - "uturn not assigned\n", - "99 GGGGgGGGG\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", - "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_typestate
81751A8179000NaNNaNu00straightGGGGgGGGG
91751B4001180NaNNaNu00straightGGGGgGGGG
101752A7001090571500487_02571500487_01.32u00leftGGGGgGGGG
111752B3179270NaNNaNu00leftGGGGgGGGG
121753A6090270NaNNaNu00straightGGGGgGGGG
131753B1090180NaNNaNu00leftGGGGgGGGG
141754A5270000NaNNaNu00leftGGGGgGGGG
151754B2270090NaNNaNu00straightGGGGgGGGG
\n", - "
" - ], - "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "8 175 1 A 8 남 북 179 \n", - "9 175 1 B 4 북 남 001 \n", - "10 175 2 A 7 북 동 001 \n", - "11 175 2 B 3 남 서 179 \n", - "12 175 3 A 6 동 서 090 \n", - "13 175 3 B 1 동 남 090 \n", - "14 175 4 A 5 서 북 270 \n", - "15 175 4 B 2 서 동 270 \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id turn_type state \n", - "8 000 NaN NaN u00 straight GGGGgGGGG \n", - "9 180 NaN NaN u00 straight GGGGgGGGG \n", - "10 090 571500487_02 571500487_01.32 u00 left GGGGgGGGG \n", - "11 270 NaN NaN u00 left GGGGgGGGG \n", - "12 270 NaN NaN u00 straight GGGGgGGGG \n", - "13 180 NaN NaN u00 left GGGGgGGGG \n", - "14 000 NaN NaN u00 left GGGGgGGGG \n", - "15 090 NaN NaN u00 straight GGGGgGGGG " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "uturn not assigned\n", - "99 GGgGGG\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", - "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_typestate
261771A8179000NaNNaNu20straightGGgGGG
271771B4000180NaNNaNu20straightGGgGGG
281772A17NaNNaNNaNNaN571542810_01.51571542810_02u20NaNGGgGGG
291772B18NaNNaNNaNNaNNaNNaNu20NaNGGgGGG
\n", - "
" - ], - "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "26 177 1 A 8 남 북 179 \n", - "27 177 1 B 4 북 남 000 \n", - "28 177 2 A 17 NaN NaN NaN \n", - "29 177 2 B 18 NaN NaN NaN \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id turn_type state \n", - "26 000 NaN NaN u20 straight GGgGGG \n", - "27 180 NaN NaN u20 straight GGgGGG \n", - "28 NaN 571542810_01.51 571542810_02 u20 NaN GGgGGG \n", - "29 NaN NaN NaN u20 NaN GGgGGG " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "uturn not assigned\n", - "99 GGGGgGGG\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", - "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_typestate
461781A8180000NaNNaNu30straightGGGGgGGG
471781B4000180NaNNaNu30straightGGGGgGGG
481782A7000090NaNNaNu30leftGGGGgGGG
491782B3180270NaNNaNu30leftGGGGgGGG
501783A5270000NaNNaNu30leftGGGGgGGG
511783B2270090NaNNaNu30straightGGGGgGGG
521784A6090270571556452_01571556452_02u30straightGGGGgGGG
531784B1090180NaNNaNu30leftGGGGgGGG
\n", - "
" - ], - "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "46 178 1 A 8 남 북 180 \n", - "47 178 1 B 4 북 남 000 \n", - "48 178 2 A 7 북 동 000 \n", - "49 178 2 B 3 남 서 180 \n", - "50 178 3 A 5 서 북 270 \n", - "51 178 3 B 2 서 동 270 \n", - "52 178 4 A 6 동 서 090 \n", - "53 178 4 B 1 동 남 090 \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id turn_type state \n", - "46 000 NaN NaN u30 straight GGGGgGGG \n", - "47 180 NaN NaN u30 straight GGGGgGGG \n", - "48 090 NaN NaN u30 left GGGGgGGG \n", - "49 270 NaN NaN u30 left GGGGgGGG \n", - "50 000 NaN NaN u30 left GGGGgGGG \n", - "51 090 NaN NaN u30 straight GGGGgGGG \n", - "52 270 571556452_01 571556452_02 u30 straight GGGGgGGG \n", - "53 180 NaN NaN u30 left GGGGgGGG " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "uturn not assigned\n", - "99 GGGGgGGG\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", - "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_typestate
541781A8180000571500475_02571500475_01.26u31straightGGGGgGGG
551781B4000180NaNNaNu31straightGGGGgGGG
561782A7000090NaNNaNu31leftGGGGgGGG
571782B3180270NaNNaNu31leftGGGGgGGG
581783A5270000NaNNaNu31leftGGGGgGGG
591783B2270090NaNNaNu31straightGGGGgGGG
601784A6090270NaNNaNu31straightGGGGgGGG
611784B1090180NaNNaNu31leftGGGGgGGG
\n", - "
" - ], - "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "54 178 1 A 8 남 북 180 \n", - "55 178 1 B 4 북 남 000 \n", - "56 178 2 A 7 북 동 000 \n", - "57 178 2 B 3 남 서 180 \n", - "58 178 3 A 5 서 북 270 \n", - "59 178 3 B 2 서 동 270 \n", - "60 178 4 A 6 동 서 090 \n", - "61 178 4 B 1 동 남 090 \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id turn_type state \n", - "54 000 571500475_02 571500475_01.26 u31 straight GGGGgGGG \n", - "55 180 NaN NaN u31 straight GGGGgGGG \n", - "56 090 NaN NaN u31 left GGGGgGGG \n", - "57 270 NaN NaN u31 left GGGGgGGG \n", - "58 000 NaN NaN u31 left GGGGgGGG \n", - "59 090 NaN NaN u31 straight GGGGgGGG \n", - "60 270 NaN NaN u31 straight GGGGgGGG \n", - "61 180 NaN NaN u31 left GGGGgGGG " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "uturn not assigned\n", - "99 GGGGGGGg\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", - "
inter_nophase_noring_typemove_noinc_direout_direinc_angleout_angleinc_edge_idout_edge_idnode_idturn_typestate
621781A8180000NaNNaNu32straightGGGGGGGg
631781B4000180571540303_02-571540303_02u32straightGGGGGGGg
641782A7000090NaNNaNu32leftGGGGGGGg
651782B3180270NaNNaNu32leftGGGGGGGg
661783A5270000NaNNaNu32leftGGGGGGGg
671783B2270090NaNNaNu32straightGGGGGGGg
681784A6090270NaNNaNu32straightGGGGGGGg
691784B1090180NaNNaNu32leftGGGGGGGg
\n", - "
" - ], - "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "62 178 1 A 8 남 북 180 \n", - "63 178 1 B 4 북 남 000 \n", - "64 178 2 A 7 북 동 000 \n", - "65 178 2 B 3 남 서 180 \n", - "66 178 3 A 5 서 북 270 \n", - "67 178 3 B 2 서 동 270 \n", - "68 178 4 A 6 동 서 090 \n", - "69 178 4 B 1 동 남 090 \n", - "\n", - " out_angle inc_edge_id out_edge_id node_id turn_type state \n", - "62 000 NaN NaN u32 straight GGGGGGGg \n", - "63 180 571540303_02 -571540303_02 u32 straight GGGGGGGg \n", - "64 090 NaN NaN u32 left GGGGGGGg \n", - "65 270 NaN NaN u32 left GGGGGGGg \n", - "66 000 NaN NaN u32 left GGGGGGGg \n", - "67 090 NaN NaN u32 straight GGGGGGGg \n", - "68 270 NaN NaN u32 straight GGGGGGGg \n", - "69 180 NaN NaN u32 left GGGGGGGg " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "uturn not assigned\n", - "99 GGGGGGGGg\n" + "2-3. 유턴 인덱스 / 비보호좌회전 인덱스를 지정했습니다.\n" ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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_typestate
1002101A6090270NaNNaNu60straightGGGGGGGGg
1012101B18NaNNaNNaNNaNNaNNaNu60NaNGGGGGGGGg
1022102A5270000571500535_02-571500535_02u60leftGGGGGGGGg
1032102B2270090NaNNaNu60straightGGGGGGGGg
1042103A7000090NaNNaNu60leftGGGGGGGGg
1052103B4000180NaNNaNu60straightGGGGGGGGg
1062104A8180000NaNNaNu60straightGGGGGGGGg
1072104B3180270NaNNaNu60leftGGGGGGGGg
\n", - "
" - ], - "text/plain": [ - " inter_no phase_no ring_type move_no inc_dire out_dire inc_angle \\\n", - "100 210 1 A 6 동 서 090 \n", - "101 210 1 B 18 NaN NaN NaN \n", - "102 210 2 A 5 서 북 270 \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 state \n", - "100 270 NaN NaN u60 straight GGGGGGGGg \n", - "101 NaN NaN NaN u60 NaN GGGGGGGGg \n", - "102 000 571500535_02 -571500535_02 u60 left GGGGGGGGg \n", - "103 090 NaN NaN u60 straight GGGGGGGGg \n", - "104 090 NaN NaN u60 left GGGGGGGGg \n", - "105 180 NaN NaN u60 straight GGGGGGGGg \n", - "106 000 NaN NaN u60 straight GGGGGGGGg \n", - "107 270 NaN NaN u60 left GGGGGGGGg " - ] - }, - "metadata": {}, - "output_type": "display_data" } ], "source": [ @@ -1278,6 +144,115 @@ " self.match6.loc[self.match6.node_id==node_id, 'state'] = state" ] }, + { + "cell_type": "code", + "execution_count": 4, + "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" + ] + } + ], + "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", + "# assign signals on matching\n", + "self.matching['init_state'] = self.matching['node_id'].map(self.node2init)\n", + "self.matching['state'] = self.matching['init_state'].map(lambda x:''.join(x))\n", + "# 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" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "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", + "for i, row in self.matching.iterrows():\n", + " node_id = row.node_id\n", + " move_no = row.move_no\n", + " inc_edge_id = row.inc_edge_id\n", + " out_edge_id = row.out_edge_id\n", + " state_list = copy.deepcopy(self.node2init[node_id])\n", + " self.matching.at[i, 'state'] = ''.join(state_list)\n", + " if (pd.isna(inc_edge_id)) or (pd.isna(out_edge_id)):\n", + " continue\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_list[index] = 'G'\n", + " self.matching.at[i, 'state'] = ''.join(state_list)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "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", + "# matching : 신호 배정\n", + "for i, row in self.matching.iterrows():\n", + " node_id = row.node_id\n", + " move_no = row.move_no\n", + " inc_edge_id = row.inc_edge_id\n", + " out_edge_id = row.out_edge_id\n", + " state_list = copy.deepcopy(self.node2init[node_id])\n", + " self.matching.at[i, 'state'] = ''.join(state_list)\n", + " if (pd.isna(inc_edge_id)) or (pd.isna(out_edge_id)):\n", + " continue\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_list[index] = 'G'\n", + " self.matching.at[i, 'state'] = ''.join(state_list)\n" + ] + }, { "cell_type": "code", "execution_count": 47, diff --git a/Results/sn_1704419100.add.xml b/Results/sn_1704419100.add.xml index 8f2a5f2c3..a0efaeea5 100644 --- a/Results/sn_1704419100.add.xml +++ b/Results/sn_1704419100.add.xml @@ -1,50 +1,50 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + @@ -84,176 +84,161 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - + + + + + + + + - - + + - - + + - - + + - - + + - - + + - + - + @@ -326,7 +311,7 @@ - + @@ -383,28 +368,28 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + - + - + @@ -444,230 +429,215 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - + - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + \ No newline at end of file diff --git a/Results/sn_1704419400.add.xml b/Results/sn_1704419400.add.xml index 1e3aa312b..4acd109ed 100644 --- a/Results/sn_1704419400.add.xml +++ b/Results/sn_1704419400.add.xml @@ -1,50 +1,50 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + @@ -84,176 +84,158 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - + + - - + + - - + + + + + - - + + - - + + - - + + - + - + @@ -326,7 +308,7 @@ - + @@ -383,28 +365,28 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + - + - + @@ -444,230 +426,212 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - + + + - - - - - + + - - + + - - + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - + + + + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - - - - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + \ No newline at end of file diff --git a/Scripts/__pycache__/preprocess_daily.cpython-38.pyc b/Scripts/__pycache__/preprocess_daily.cpython-38.pyc index b6468416e..12e8d554b 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 176f024ba..bb5d60af2 100644 --- a/Scripts/preprocess_daily.py +++ b/Scripts/preprocess_daily.py @@ -787,26 +787,23 @@ class DailyPreprocessor(): # 2-4 신호배정 def assign_signals(self): - # assign signals on matching - self.matching['init_state'] = self.matching['node_id'].map(self.node2init) - self.matching['state'] = self.matching['init_state'].map(lambda x:''.join(x)) - # matching의 각 행을 순회 - for row in self.matching.itertuples(index=True): + # matching : 신호 배정 + for i, row in self.matching.iterrows(): node_id = row.node_id move_no = row.move_no inc_edge_id = row.inc_edge_id out_edge_id = row.out_edge_id - state = copy.deepcopy(self.node2init)[node_id] - - if move_no != 21: - inc_edge = self.net.getEdge(inc_edge_id) - out_edge = self.net.getEdge(out_edge_id) - for conn in inc_edge.getConnections(out_edge): - index = conn.getTLLinkIndex() - if index >= 0: - state[index] = 'G' - self.matching.at[row.Index, 'state'] = ''.join(state) - + state_list = copy.deepcopy(self.node2init[node_id]) + self.matching.at[i, 'state'] = ''.join(state_list) + if (pd.isna(inc_edge_id)) or (pd.isna(out_edge_id)): + continue + inc_edge = self.net.getEdge(inc_edge_id) + out_edge = self.net.getEdge(out_edge_id) + for conn in inc_edge.getConnections(out_edge): + index = conn.getTLLinkIndex() + if index >= 0: + state_list[index] = 'G' + self.matching.at[i, 'state'] = ''.join(state_list) self.matching = self.matching.dropna(subset='state') self.matching = self.matching.reset_index(drop=True) self.matching = self.matching[['inter_no', 'node_id', 'move_no', 'inc_edge_id', 'out_edge_id', 'state']]