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",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- " state | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 8 | \n",
- " 175 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 179 | \n",
- " 000 | \n",
- " NaN | \n",
- " NaN | \n",
- " u00 | \n",
- " straight | \n",
- " GGGGgGGGG | \n",
- "
\n",
- " \n",
- " 9 | \n",
- " 175 | \n",
- " 1 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 001 | \n",
- " 180 | \n",
- " NaN | \n",
- " NaN | \n",
- " u00 | \n",
- " straight | \n",
- " GGGGgGGGG | \n",
- "
\n",
- " \n",
- " 10 | \n",
- " 175 | \n",
- " 2 | \n",
- " A | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 001 | \n",
- " 090 | \n",
- " 571500487_02 | \n",
- " 571500487_01.32 | \n",
- " u00 | \n",
- " left | \n",
- " GGGGgGGGG | \n",
- "
\n",
- " \n",
- " 11 | \n",
- " 175 | \n",
- " 2 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 179 | \n",
- " 270 | \n",
- " NaN | \n",
- " NaN | \n",
- " u00 | \n",
- " left | \n",
- " GGGGgGGGG | \n",
- "
\n",
- " \n",
- " 12 | \n",
- " 175 | \n",
- " 3 | \n",
- " A | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 090 | \n",
- " 270 | \n",
- " NaN | \n",
- " NaN | \n",
- " u00 | \n",
- " straight | \n",
- " GGGGgGGGG | \n",
- "
\n",
- " \n",
- " 13 | \n",
- " 175 | \n",
- " 3 | \n",
- " B | \n",
- " 1 | \n",
- " 동 | \n",
- " 남 | \n",
- " 090 | \n",
- " 180 | \n",
- " NaN | \n",
- " NaN | \n",
- " u00 | \n",
- " left | \n",
- " GGGGgGGGG | \n",
- "
\n",
- " \n",
- " 14 | \n",
- " 175 | \n",
- " 4 | \n",
- " A | \n",
- " 5 | \n",
- " 서 | \n",
- " 북 | \n",
- " 270 | \n",
- " 000 | \n",
- " NaN | \n",
- " NaN | \n",
- " u00 | \n",
- " left | \n",
- " GGGGgGGGG | \n",
- "
\n",
- " \n",
- " 15 | \n",
- " 175 | \n",
- " 4 | \n",
- " B | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " 270 | \n",
- " 090 | \n",
- " NaN | \n",
- " NaN | \n",
- " u00 | \n",
- " straight | \n",
- " GGGGgGGGG | \n",
- "
\n",
- " \n",
- "
\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",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- " state | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 26 | \n",
- " 177 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 179 | \n",
- " 000 | \n",
- " NaN | \n",
- " NaN | \n",
- " u20 | \n",
- " straight | \n",
- " GGgGGG | \n",
- "
\n",
- " \n",
- " 27 | \n",
- " 177 | \n",
- " 1 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
- " NaN | \n",
- " NaN | \n",
- " u20 | \n",
- " straight | \n",
- " GGgGGG | \n",
- "
\n",
- " \n",
- " 28 | \n",
- " 177 | \n",
- " 2 | \n",
- " A | \n",
- " 17 | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " 571542810_01.51 | \n",
- " 571542810_02 | \n",
- " u20 | \n",
- " NaN | \n",
- " GGgGGG | \n",
- "
\n",
- " \n",
- " 29 | \n",
- " 177 | \n",
- " 2 | \n",
- " B | \n",
- " 18 | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " u20 | \n",
- " NaN | \n",
- " GGgGGG | \n",
- "
\n",
- " \n",
- "
\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",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- " state | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 46 | \n",
- " 178 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 180 | \n",
- " 000 | \n",
- " NaN | \n",
- " NaN | \n",
- " u30 | \n",
- " straight | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- " 47 | \n",
- " 178 | \n",
- " 1 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
- " NaN | \n",
- " NaN | \n",
- " u30 | \n",
- " straight | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- " 48 | \n",
- " 178 | \n",
- " 2 | \n",
- " A | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 000 | \n",
- " 090 | \n",
- " NaN | \n",
- " NaN | \n",
- " u30 | \n",
- " left | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- " 49 | \n",
- " 178 | \n",
- " 2 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 180 | \n",
- " 270 | \n",
- " NaN | \n",
- " NaN | \n",
- " u30 | \n",
- " left | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- " 50 | \n",
- " 178 | \n",
- " 3 | \n",
- " A | \n",
- " 5 | \n",
- " 서 | \n",
- " 북 | \n",
- " 270 | \n",
- " 000 | \n",
- " NaN | \n",
- " NaN | \n",
- " u30 | \n",
- " left | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- " 51 | \n",
- " 178 | \n",
- " 3 | \n",
- " B | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " 270 | \n",
- " 090 | \n",
- " NaN | \n",
- " NaN | \n",
- " u30 | \n",
- " straight | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- " 52 | \n",
- " 178 | \n",
- " 4 | \n",
- " A | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 090 | \n",
- " 270 | \n",
- " 571556452_01 | \n",
- " 571556452_02 | \n",
- " u30 | \n",
- " straight | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- " 53 | \n",
- " 178 | \n",
- " 4 | \n",
- " B | \n",
- " 1 | \n",
- " 동 | \n",
- " 남 | \n",
- " 090 | \n",
- " 180 | \n",
- " NaN | \n",
- " NaN | \n",
- " u30 | \n",
- " left | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- "
\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",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- " state | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 54 | \n",
- " 178 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 180 | \n",
- " 000 | \n",
- " 571500475_02 | \n",
- " 571500475_01.26 | \n",
- " u31 | \n",
- " straight | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- " 55 | \n",
- " 178 | \n",
- " 1 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
- " NaN | \n",
- " NaN | \n",
- " u31 | \n",
- " straight | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- " 56 | \n",
- " 178 | \n",
- " 2 | \n",
- " A | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 000 | \n",
- " 090 | \n",
- " NaN | \n",
- " NaN | \n",
- " u31 | \n",
- " left | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- " 57 | \n",
- " 178 | \n",
- " 2 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 180 | \n",
- " 270 | \n",
- " NaN | \n",
- " NaN | \n",
- " u31 | \n",
- " left | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- " 58 | \n",
- " 178 | \n",
- " 3 | \n",
- " A | \n",
- " 5 | \n",
- " 서 | \n",
- " 북 | \n",
- " 270 | \n",
- " 000 | \n",
- " NaN | \n",
- " NaN | \n",
- " u31 | \n",
- " left | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- " 59 | \n",
- " 178 | \n",
- " 3 | \n",
- " B | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " 270 | \n",
- " 090 | \n",
- " NaN | \n",
- " NaN | \n",
- " u31 | \n",
- " straight | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- " 60 | \n",
- " 178 | \n",
- " 4 | \n",
- " A | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 090 | \n",
- " 270 | \n",
- " NaN | \n",
- " NaN | \n",
- " u31 | \n",
- " straight | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- " 61 | \n",
- " 178 | \n",
- " 4 | \n",
- " B | \n",
- " 1 | \n",
- " 동 | \n",
- " 남 | \n",
- " 090 | \n",
- " 180 | \n",
- " NaN | \n",
- " NaN | \n",
- " u31 | \n",
- " left | \n",
- " GGGGgGGG | \n",
- "
\n",
- " \n",
- "
\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",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- " state | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 62 | \n",
- " 178 | \n",
- " 1 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 180 | \n",
- " 000 | \n",
- " NaN | \n",
- " NaN | \n",
- " u32 | \n",
- " straight | \n",
- " GGGGGGGg | \n",
- "
\n",
- " \n",
- " 63 | \n",
- " 178 | \n",
- " 1 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
- " 571540303_02 | \n",
- " -571540303_02 | \n",
- " u32 | \n",
- " straight | \n",
- " GGGGGGGg | \n",
- "
\n",
- " \n",
- " 64 | \n",
- " 178 | \n",
- " 2 | \n",
- " A | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 000 | \n",
- " 090 | \n",
- " NaN | \n",
- " NaN | \n",
- " u32 | \n",
- " left | \n",
- " GGGGGGGg | \n",
- "
\n",
- " \n",
- " 65 | \n",
- " 178 | \n",
- " 2 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 180 | \n",
- " 270 | \n",
- " NaN | \n",
- " NaN | \n",
- " u32 | \n",
- " left | \n",
- " GGGGGGGg | \n",
- "
\n",
- " \n",
- " 66 | \n",
- " 178 | \n",
- " 3 | \n",
- " A | \n",
- " 5 | \n",
- " 서 | \n",
- " 북 | \n",
- " 270 | \n",
- " 000 | \n",
- " NaN | \n",
- " NaN | \n",
- " u32 | \n",
- " left | \n",
- " GGGGGGGg | \n",
- "
\n",
- " \n",
- " 67 | \n",
- " 178 | \n",
- " 3 | \n",
- " B | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " 270 | \n",
- " 090 | \n",
- " NaN | \n",
- " NaN | \n",
- " u32 | \n",
- " straight | \n",
- " GGGGGGGg | \n",
- "
\n",
- " \n",
- " 68 | \n",
- " 178 | \n",
- " 4 | \n",
- " A | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 090 | \n",
- " 270 | \n",
- " NaN | \n",
- " NaN | \n",
- " u32 | \n",
- " straight | \n",
- " GGGGGGGg | \n",
- "
\n",
- " \n",
- " 69 | \n",
- " 178 | \n",
- " 4 | \n",
- " B | \n",
- " 1 | \n",
- " 동 | \n",
- " 남 | \n",
- " 090 | \n",
- " 180 | \n",
- " NaN | \n",
- " NaN | \n",
- " u32 | \n",
- " left | \n",
- " GGGGGGGg | \n",
- "
\n",
- " \n",
- "
\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",
- " inter_no | \n",
- " phase_no | \n",
- " ring_type | \n",
- " move_no | \n",
- " inc_dire | \n",
- " out_dire | \n",
- " inc_angle | \n",
- " out_angle | \n",
- " inc_edge_id | \n",
- " out_edge_id | \n",
- " node_id | \n",
- " turn_type | \n",
- " state | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 100 | \n",
- " 210 | \n",
- " 1 | \n",
- " A | \n",
- " 6 | \n",
- " 동 | \n",
- " 서 | \n",
- " 090 | \n",
- " 270 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " straight | \n",
- " GGGGGGGGg | \n",
- "
\n",
- " \n",
- " 101 | \n",
- " 210 | \n",
- " 1 | \n",
- " B | \n",
- " 18 | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " NaN | \n",
- " GGGGGGGGg | \n",
- "
\n",
- " \n",
- " 102 | \n",
- " 210 | \n",
- " 2 | \n",
- " A | \n",
- " 5 | \n",
- " 서 | \n",
- " 북 | \n",
- " 270 | \n",
- " 000 | \n",
- " 571500535_02 | \n",
- " -571500535_02 | \n",
- " u60 | \n",
- " left | \n",
- " GGGGGGGGg | \n",
- "
\n",
- " \n",
- " 103 | \n",
- " 210 | \n",
- " 2 | \n",
- " B | \n",
- " 2 | \n",
- " 서 | \n",
- " 동 | \n",
- " 270 | \n",
- " 090 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " straight | \n",
- " GGGGGGGGg | \n",
- "
\n",
- " \n",
- " 104 | \n",
- " 210 | \n",
- " 3 | \n",
- " A | \n",
- " 7 | \n",
- " 북 | \n",
- " 동 | \n",
- " 000 | \n",
- " 090 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " left | \n",
- " GGGGGGGGg | \n",
- "
\n",
- " \n",
- " 105 | \n",
- " 210 | \n",
- " 3 | \n",
- " B | \n",
- " 4 | \n",
- " 북 | \n",
- " 남 | \n",
- " 000 | \n",
- " 180 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " straight | \n",
- " GGGGGGGGg | \n",
- "
\n",
- " \n",
- " 106 | \n",
- " 210 | \n",
- " 4 | \n",
- " A | \n",
- " 8 | \n",
- " 남 | \n",
- " 북 | \n",
- " 180 | \n",
- " 000 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " straight | \n",
- " GGGGGGGGg | \n",
- "
\n",
- " \n",
- " 107 | \n",
- " 210 | \n",
- " 4 | \n",
- " B | \n",
- " 3 | \n",
- " 남 | \n",
- " 서 | \n",
- " 180 | \n",
- " 270 | \n",
- " NaN | \n",
- " NaN | \n",
- " u60 | \n",
- " left | \n",
- " GGGGGGGGg | \n",
- "
\n",
- " \n",
- "
\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']]