{ "cells": [ { "cell_type": "code", "execution_count": 69, "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": 77, "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" ] }, { "data": { "text/plain": [ "{'i0': {},\n", " 'i1': {},\n", " 'i2': {},\n", " 'i3': {},\n", " 'i6': {8: ['-571542115_01']},\n", " 'i7': {2: ['571542073_01']},\n", " 'i8': {},\n", " 'i9': {}}" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "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", "self.p2UPLindices2inc_edge_ids" ] }, { "cell_type": "code", "execution_count": 124, "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", "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" ] }, { "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": [ "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", "# match6 : 신호 배정\n", "for i, row in self.match6.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.match6.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.match6.at[i, 'state'] = ''.join(state_list)\n", "\n", "# mactch6 : 비보호좌회전 신호 배정\n", "for i, row in self.match6[self.match6.node_id.isin(self.parent_ids)].iterrows():\n", " parent_id = row.node_id\n", " state = row.state\n", " UPLindices2inc_edge_ids = self.p2UPLindices2inc_edge_ids[parent_id]\n", " for UPLindex in UPLindices2inc_edge_ids:\n", " inc_edge_ids = UPLindices2inc_edge_ids[UPLindex]\n", " if inc_edge_ids:\n", " if inc_edge_id in inc_edge_ids:\n", " state = state[:UPLindex] + 'g' + state[UPLindex+1:]\n", " self.match6.at[i, 'state'] = state\n", " else: # modify_match1.py : self.match1.at[7, 'move_A'] = 17\n", " raise Exception(\n", " f\"비보호좌회전 신호를 부여할 수 없습니다. \\\n", " 신호가 부여되어 있지 않은 직진 또는 좌회전 연결이 존재하는데\\\n", " (node_id : {parent_id}, index : {UPLindex})\\\n", " 이 연결의 진입엣지(inc_edge_id : {inc_edge_id})에 부여된 신호가 없습니다.\")\n", "\n", "# mactch6 : 유턴 신호가 한번도 배정되지 않은 경우에 대해서는 유턴이동류의 신호를 항상 g로 배정\n", "for node_id in self.u_turn_ids:\n", " m6 = self.match6[self.match6.node_id==node_id]\n", " if not len(m6):\n", " continue\n", " state_list = copy.deepcopy(self.node2init[node_id])\n", " state = ''.join(state_list)\n", " uindex = self.u2uindex[node_id]\n", " values_at_uindex = [state[uindex] for state in m6.state]\n", " uturn_assigned = ('G' in values_at_uindex)\n", " if not uturn_assigned:\n", " print('uturn not assigned')\n", " state = state[:uindex] + 'g' + state[uindex+1:]\n", " print(i, state)\n", " self.match6.loc[self.match6.node_id==node_id, 'state'] = state" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4\n", "True\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
81751A8179000NaNNaNu00straightGGGGrGGGG
91751B4001180NaNNaNu00straightGGGGrGGGG
101752A7001090571500487_02571500487_01.32u00leftGGGGGGGGG
111752B3179270NaNNaNu00leftGGGGrGGGG
121753A6090270NaNNaNu00straightGGGGrGGGG
131753B1090180NaNNaNu00leftGGGGrGGGG
141754A5270000NaNNaNu00leftGGGGrGGGG
151754B2270090NaNNaNu00straightGGGGrGGGG
\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 GGGGrGGGG \n", "9 180 NaN NaN u00 straight GGGGrGGGG \n", "10 090 571500487_02 571500487_01.32 u00 left GGGGGGGGG \n", "11 270 NaN NaN u00 left GGGGrGGGG \n", "12 270 NaN NaN u00 straight GGGGrGGGG \n", "13 180 NaN NaN u00 left GGGGrGGGG \n", "14 000 NaN NaN u00 left GGGGrGGGG \n", "15 090 NaN NaN u00 straight GGGGrGGGG " ] }, "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", "
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" } ], "source": [ "node_id = self.u_turn_ids[0]\n", "uindex = self.u2uindex[node_id]\n", "m6 = self.match6[self.match6.node_id==node_id]\n", "values_at_uindex = [state[uindex] for state in m6.state]\n", "uturn_not_assigned = 'G' not in values_at_uindex\n", "print(uindex)\n", "print(uturn_not_assigned)\n", "display(m6)\n", "# if uturn_not_assigned:\n", "for i, row in m6.iterrows():\n", " state = row.state\n", " state = state[:uindex] + 'g' + state[uindex+1:]\n", " m6.at[i, 'state'] = state\n", "display(m6)" ] } ], "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 }