신호생성 repo (24. 1. 5 ~).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

1722 lines
58 KiB

{
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>inter_no</th>\n",
" <th>phase_no</th>\n",
" <th>ring_type</th>\n",
" <th>move_no</th>\n",
" <th>inc_dire</th>\n",
" <th>out_dire</th>\n",
" <th>inc_angle</th>\n",
" <th>out_angle</th>\n",
" <th>inc_edge_id</th>\n",
" <th>out_edge_id</th>\n",
" <th>node_id</th>\n",
" <th>turn_type</th>\n",
" <th>state</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>175</td>\n",
" <td>1</td>\n",
" <td>A</td>\n",
" <td>8</td>\n",
" <td>남</td>\n",
" <td>북</td>\n",
" <td>179</td>\n",
" <td>000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>175</td>\n",
" <td>1</td>\n",
" <td>B</td>\n",
" <td>4</td>\n",
" <td>북</td>\n",
" <td>남</td>\n",
" <td>001</td>\n",
" <td>180</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>175</td>\n",
" <td>2</td>\n",
" <td>A</td>\n",
" <td>7</td>\n",
" <td>북</td>\n",
" <td>동</td>\n",
" <td>001</td>\n",
" <td>090</td>\n",
" <td>571500487_02</td>\n",
" <td>571500487_01.32</td>\n",
" <td>u00</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>175</td>\n",
" <td>2</td>\n",
" <td>B</td>\n",
" <td>3</td>\n",
" <td>남</td>\n",
" <td>서</td>\n",
" <td>179</td>\n",
" <td>270</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>175</td>\n",
" <td>3</td>\n",
" <td>A</td>\n",
" <td>6</td>\n",
" <td>동</td>\n",
" <td>서</td>\n",
" <td>090</td>\n",
" <td>270</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>175</td>\n",
" <td>3</td>\n",
" <td>B</td>\n",
" <td>1</td>\n",
" <td>동</td>\n",
" <td>남</td>\n",
" <td>090</td>\n",
" <td>180</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>175</td>\n",
" <td>4</td>\n",
" <td>A</td>\n",
" <td>5</td>\n",
" <td>서</td>\n",
" <td>북</td>\n",
" <td>270</td>\n",
" <td>000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>175</td>\n",
" <td>4</td>\n",
" <td>B</td>\n",
" <td>2</td>\n",
" <td>서</td>\n",
" <td>동</td>\n",
" <td>270</td>\n",
" <td>090</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>inter_no</th>\n",
" <th>phase_no</th>\n",
" <th>ring_type</th>\n",
" <th>move_no</th>\n",
" <th>inc_dire</th>\n",
" <th>out_dire</th>\n",
" <th>inc_angle</th>\n",
" <th>out_angle</th>\n",
" <th>inc_edge_id</th>\n",
" <th>out_edge_id</th>\n",
" <th>node_id</th>\n",
" <th>turn_type</th>\n",
" <th>state</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>177</td>\n",
" <td>1</td>\n",
" <td>A</td>\n",
" <td>8</td>\n",
" <td>남</td>\n",
" <td>북</td>\n",
" <td>179</td>\n",
" <td>000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u20</td>\n",
" <td>straight</td>\n",
" <td>GGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>177</td>\n",
" <td>1</td>\n",
" <td>B</td>\n",
" <td>4</td>\n",
" <td>북</td>\n",
" <td>남</td>\n",
" <td>000</td>\n",
" <td>180</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u20</td>\n",
" <td>straight</td>\n",
" <td>GGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>177</td>\n",
" <td>2</td>\n",
" <td>A</td>\n",
" <td>17</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>571542810_01.51</td>\n",
" <td>571542810_02</td>\n",
" <td>u20</td>\n",
" <td>NaN</td>\n",
" <td>GGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>177</td>\n",
" <td>2</td>\n",
" <td>B</td>\n",
" <td>18</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u20</td>\n",
" <td>NaN</td>\n",
" <td>GGgGGG</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>inter_no</th>\n",
" <th>phase_no</th>\n",
" <th>ring_type</th>\n",
" <th>move_no</th>\n",
" <th>inc_dire</th>\n",
" <th>out_dire</th>\n",
" <th>inc_angle</th>\n",
" <th>out_angle</th>\n",
" <th>inc_edge_id</th>\n",
" <th>out_edge_id</th>\n",
" <th>node_id</th>\n",
" <th>turn_type</th>\n",
" <th>state</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>178</td>\n",
" <td>1</td>\n",
" <td>A</td>\n",
" <td>8</td>\n",
" <td>남</td>\n",
" <td>북</td>\n",
" <td>180</td>\n",
" <td>000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u30</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47</th>\n",
" <td>178</td>\n",
" <td>1</td>\n",
" <td>B</td>\n",
" <td>4</td>\n",
" <td>북</td>\n",
" <td>남</td>\n",
" <td>000</td>\n",
" <td>180</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u30</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48</th>\n",
" <td>178</td>\n",
" <td>2</td>\n",
" <td>A</td>\n",
" <td>7</td>\n",
" <td>북</td>\n",
" <td>동</td>\n",
" <td>000</td>\n",
" <td>090</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u30</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>49</th>\n",
" <td>178</td>\n",
" <td>2</td>\n",
" <td>B</td>\n",
" <td>3</td>\n",
" <td>남</td>\n",
" <td>서</td>\n",
" <td>180</td>\n",
" <td>270</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u30</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>178</td>\n",
" <td>3</td>\n",
" <td>A</td>\n",
" <td>5</td>\n",
" <td>서</td>\n",
" <td>북</td>\n",
" <td>270</td>\n",
" <td>000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u30</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>51</th>\n",
" <td>178</td>\n",
" <td>3</td>\n",
" <td>B</td>\n",
" <td>2</td>\n",
" <td>서</td>\n",
" <td>동</td>\n",
" <td>270</td>\n",
" <td>090</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u30</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>52</th>\n",
" <td>178</td>\n",
" <td>4</td>\n",
" <td>A</td>\n",
" <td>6</td>\n",
" <td>동</td>\n",
" <td>서</td>\n",
" <td>090</td>\n",
" <td>270</td>\n",
" <td>571556452_01</td>\n",
" <td>571556452_02</td>\n",
" <td>u30</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>53</th>\n",
" <td>178</td>\n",
" <td>4</td>\n",
" <td>B</td>\n",
" <td>1</td>\n",
" <td>동</td>\n",
" <td>남</td>\n",
" <td>090</td>\n",
" <td>180</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u30</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>inter_no</th>\n",
" <th>phase_no</th>\n",
" <th>ring_type</th>\n",
" <th>move_no</th>\n",
" <th>inc_dire</th>\n",
" <th>out_dire</th>\n",
" <th>inc_angle</th>\n",
" <th>out_angle</th>\n",
" <th>inc_edge_id</th>\n",
" <th>out_edge_id</th>\n",
" <th>node_id</th>\n",
" <th>turn_type</th>\n",
" <th>state</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>54</th>\n",
" <td>178</td>\n",
" <td>1</td>\n",
" <td>A</td>\n",
" <td>8</td>\n",
" <td>남</td>\n",
" <td>북</td>\n",
" <td>180</td>\n",
" <td>000</td>\n",
" <td>571500475_02</td>\n",
" <td>571500475_01.26</td>\n",
" <td>u31</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>55</th>\n",
" <td>178</td>\n",
" <td>1</td>\n",
" <td>B</td>\n",
" <td>4</td>\n",
" <td>북</td>\n",
" <td>남</td>\n",
" <td>000</td>\n",
" <td>180</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u31</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>56</th>\n",
" <td>178</td>\n",
" <td>2</td>\n",
" <td>A</td>\n",
" <td>7</td>\n",
" <td>북</td>\n",
" <td>동</td>\n",
" <td>000</td>\n",
" <td>090</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u31</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>57</th>\n",
" <td>178</td>\n",
" <td>2</td>\n",
" <td>B</td>\n",
" <td>3</td>\n",
" <td>남</td>\n",
" <td>서</td>\n",
" <td>180</td>\n",
" <td>270</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u31</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>58</th>\n",
" <td>178</td>\n",
" <td>3</td>\n",
" <td>A</td>\n",
" <td>5</td>\n",
" <td>서</td>\n",
" <td>북</td>\n",
" <td>270</td>\n",
" <td>000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u31</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>59</th>\n",
" <td>178</td>\n",
" <td>3</td>\n",
" <td>B</td>\n",
" <td>2</td>\n",
" <td>서</td>\n",
" <td>동</td>\n",
" <td>270</td>\n",
" <td>090</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u31</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>60</th>\n",
" <td>178</td>\n",
" <td>4</td>\n",
" <td>A</td>\n",
" <td>6</td>\n",
" <td>동</td>\n",
" <td>서</td>\n",
" <td>090</td>\n",
" <td>270</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u31</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>61</th>\n",
" <td>178</td>\n",
" <td>4</td>\n",
" <td>B</td>\n",
" <td>1</td>\n",
" <td>동</td>\n",
" <td>남</td>\n",
" <td>090</td>\n",
" <td>180</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u31</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGG</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>inter_no</th>\n",
" <th>phase_no</th>\n",
" <th>ring_type</th>\n",
" <th>move_no</th>\n",
" <th>inc_dire</th>\n",
" <th>out_dire</th>\n",
" <th>inc_angle</th>\n",
" <th>out_angle</th>\n",
" <th>inc_edge_id</th>\n",
" <th>out_edge_id</th>\n",
" <th>node_id</th>\n",
" <th>turn_type</th>\n",
" <th>state</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>62</th>\n",
" <td>178</td>\n",
" <td>1</td>\n",
" <td>A</td>\n",
" <td>8</td>\n",
" <td>남</td>\n",
" <td>북</td>\n",
" <td>180</td>\n",
" <td>000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u32</td>\n",
" <td>straight</td>\n",
" <td>GGGGGGGg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>63</th>\n",
" <td>178</td>\n",
" <td>1</td>\n",
" <td>B</td>\n",
" <td>4</td>\n",
" <td>북</td>\n",
" <td>남</td>\n",
" <td>000</td>\n",
" <td>180</td>\n",
" <td>571540303_02</td>\n",
" <td>-571540303_02</td>\n",
" <td>u32</td>\n",
" <td>straight</td>\n",
" <td>GGGGGGGg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>64</th>\n",
" <td>178</td>\n",
" <td>2</td>\n",
" <td>A</td>\n",
" <td>7</td>\n",
" <td>북</td>\n",
" <td>동</td>\n",
" <td>000</td>\n",
" <td>090</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u32</td>\n",
" <td>left</td>\n",
" <td>GGGGGGGg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>65</th>\n",
" <td>178</td>\n",
" <td>2</td>\n",
" <td>B</td>\n",
" <td>3</td>\n",
" <td>남</td>\n",
" <td>서</td>\n",
" <td>180</td>\n",
" <td>270</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u32</td>\n",
" <td>left</td>\n",
" <td>GGGGGGGg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>66</th>\n",
" <td>178</td>\n",
" <td>3</td>\n",
" <td>A</td>\n",
" <td>5</td>\n",
" <td>서</td>\n",
" <td>북</td>\n",
" <td>270</td>\n",
" <td>000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u32</td>\n",
" <td>left</td>\n",
" <td>GGGGGGGg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>67</th>\n",
" <td>178</td>\n",
" <td>3</td>\n",
" <td>B</td>\n",
" <td>2</td>\n",
" <td>서</td>\n",
" <td>동</td>\n",
" <td>270</td>\n",
" <td>090</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u32</td>\n",
" <td>straight</td>\n",
" <td>GGGGGGGg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>68</th>\n",
" <td>178</td>\n",
" <td>4</td>\n",
" <td>A</td>\n",
" <td>6</td>\n",
" <td>동</td>\n",
" <td>서</td>\n",
" <td>090</td>\n",
" <td>270</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u32</td>\n",
" <td>straight</td>\n",
" <td>GGGGGGGg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>69</th>\n",
" <td>178</td>\n",
" <td>4</td>\n",
" <td>B</td>\n",
" <td>1</td>\n",
" <td>동</td>\n",
" <td>남</td>\n",
" <td>090</td>\n",
" <td>180</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u32</td>\n",
" <td>left</td>\n",
" <td>GGGGGGGg</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>inter_no</th>\n",
" <th>phase_no</th>\n",
" <th>ring_type</th>\n",
" <th>move_no</th>\n",
" <th>inc_dire</th>\n",
" <th>out_dire</th>\n",
" <th>inc_angle</th>\n",
" <th>out_angle</th>\n",
" <th>inc_edge_id</th>\n",
" <th>out_edge_id</th>\n",
" <th>node_id</th>\n",
" <th>turn_type</th>\n",
" <th>state</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>100</th>\n",
" <td>210</td>\n",
" <td>1</td>\n",
" <td>A</td>\n",
" <td>6</td>\n",
" <td>동</td>\n",
" <td>서</td>\n",
" <td>090</td>\n",
" <td>270</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u60</td>\n",
" <td>straight</td>\n",
" <td>GGGGGGGGg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>101</th>\n",
" <td>210</td>\n",
" <td>1</td>\n",
" <td>B</td>\n",
" <td>18</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u60</td>\n",
" <td>NaN</td>\n",
" <td>GGGGGGGGg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>102</th>\n",
" <td>210</td>\n",
" <td>2</td>\n",
" <td>A</td>\n",
" <td>5</td>\n",
" <td>서</td>\n",
" <td>북</td>\n",
" <td>270</td>\n",
" <td>000</td>\n",
" <td>571500535_02</td>\n",
" <td>-571500535_02</td>\n",
" <td>u60</td>\n",
" <td>left</td>\n",
" <td>GGGGGGGGg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>103</th>\n",
" <td>210</td>\n",
" <td>2</td>\n",
" <td>B</td>\n",
" <td>2</td>\n",
" <td>서</td>\n",
" <td>동</td>\n",
" <td>270</td>\n",
" <td>090</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u60</td>\n",
" <td>straight</td>\n",
" <td>GGGGGGGGg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>104</th>\n",
" <td>210</td>\n",
" <td>3</td>\n",
" <td>A</td>\n",
" <td>7</td>\n",
" <td>북</td>\n",
" <td>동</td>\n",
" <td>000</td>\n",
" <td>090</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u60</td>\n",
" <td>left</td>\n",
" <td>GGGGGGGGg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>105</th>\n",
" <td>210</td>\n",
" <td>3</td>\n",
" <td>B</td>\n",
" <td>4</td>\n",
" <td>북</td>\n",
" <td>남</td>\n",
" <td>000</td>\n",
" <td>180</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u60</td>\n",
" <td>straight</td>\n",
" <td>GGGGGGGGg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>106</th>\n",
" <td>210</td>\n",
" <td>4</td>\n",
" <td>A</td>\n",
" <td>8</td>\n",
" <td>남</td>\n",
" <td>북</td>\n",
" <td>180</td>\n",
" <td>000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u60</td>\n",
" <td>straight</td>\n",
" <td>GGGGGGGGg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>107</th>\n",
" <td>210</td>\n",
" <td>4</td>\n",
" <td>B</td>\n",
" <td>3</td>\n",
" <td>남</td>\n",
" <td>서</td>\n",
" <td>180</td>\n",
" <td>270</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u60</td>\n",
" <td>left</td>\n",
" <td>GGGGGGGGg</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>inter_no</th>\n",
" <th>phase_no</th>\n",
" <th>ring_type</th>\n",
" <th>move_no</th>\n",
" <th>inc_dire</th>\n",
" <th>out_dire</th>\n",
" <th>inc_angle</th>\n",
" <th>out_angle</th>\n",
" <th>inc_edge_id</th>\n",
" <th>out_edge_id</th>\n",
" <th>node_id</th>\n",
" <th>turn_type</th>\n",
" <th>state</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>175</td>\n",
" <td>1</td>\n",
" <td>A</td>\n",
" <td>8</td>\n",
" <td>남</td>\n",
" <td>북</td>\n",
" <td>179</td>\n",
" <td>000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>straight</td>\n",
" <td>GGGGrGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>175</td>\n",
" <td>1</td>\n",
" <td>B</td>\n",
" <td>4</td>\n",
" <td>북</td>\n",
" <td>남</td>\n",
" <td>001</td>\n",
" <td>180</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>straight</td>\n",
" <td>GGGGrGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>175</td>\n",
" <td>2</td>\n",
" <td>A</td>\n",
" <td>7</td>\n",
" <td>북</td>\n",
" <td>동</td>\n",
" <td>001</td>\n",
" <td>090</td>\n",
" <td>571500487_02</td>\n",
" <td>571500487_01.32</td>\n",
" <td>u00</td>\n",
" <td>left</td>\n",
" <td>GGGGGGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>175</td>\n",
" <td>2</td>\n",
" <td>B</td>\n",
" <td>3</td>\n",
" <td>남</td>\n",
" <td>서</td>\n",
" <td>179</td>\n",
" <td>270</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>left</td>\n",
" <td>GGGGrGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>175</td>\n",
" <td>3</td>\n",
" <td>A</td>\n",
" <td>6</td>\n",
" <td>동</td>\n",
" <td>서</td>\n",
" <td>090</td>\n",
" <td>270</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>straight</td>\n",
" <td>GGGGrGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>175</td>\n",
" <td>3</td>\n",
" <td>B</td>\n",
" <td>1</td>\n",
" <td>동</td>\n",
" <td>남</td>\n",
" <td>090</td>\n",
" <td>180</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>left</td>\n",
" <td>GGGGrGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>175</td>\n",
" <td>4</td>\n",
" <td>A</td>\n",
" <td>5</td>\n",
" <td>서</td>\n",
" <td>북</td>\n",
" <td>270</td>\n",
" <td>000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>left</td>\n",
" <td>GGGGrGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>175</td>\n",
" <td>4</td>\n",
" <td>B</td>\n",
" <td>2</td>\n",
" <td>서</td>\n",
" <td>동</td>\n",
" <td>270</td>\n",
" <td>090</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>straight</td>\n",
" <td>GGGGrGGGG</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>inter_no</th>\n",
" <th>phase_no</th>\n",
" <th>ring_type</th>\n",
" <th>move_no</th>\n",
" <th>inc_dire</th>\n",
" <th>out_dire</th>\n",
" <th>inc_angle</th>\n",
" <th>out_angle</th>\n",
" <th>inc_edge_id</th>\n",
" <th>out_edge_id</th>\n",
" <th>node_id</th>\n",
" <th>turn_type</th>\n",
" <th>state</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>175</td>\n",
" <td>1</td>\n",
" <td>A</td>\n",
" <td>8</td>\n",
" <td>남</td>\n",
" <td>북</td>\n",
" <td>179</td>\n",
" <td>000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>175</td>\n",
" <td>1</td>\n",
" <td>B</td>\n",
" <td>4</td>\n",
" <td>북</td>\n",
" <td>남</td>\n",
" <td>001</td>\n",
" <td>180</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>175</td>\n",
" <td>2</td>\n",
" <td>A</td>\n",
" <td>7</td>\n",
" <td>북</td>\n",
" <td>동</td>\n",
" <td>001</td>\n",
" <td>090</td>\n",
" <td>571500487_02</td>\n",
" <td>571500487_01.32</td>\n",
" <td>u00</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>175</td>\n",
" <td>2</td>\n",
" <td>B</td>\n",
" <td>3</td>\n",
" <td>남</td>\n",
" <td>서</td>\n",
" <td>179</td>\n",
" <td>270</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>175</td>\n",
" <td>3</td>\n",
" <td>A</td>\n",
" <td>6</td>\n",
" <td>동</td>\n",
" <td>서</td>\n",
" <td>090</td>\n",
" <td>270</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>175</td>\n",
" <td>3</td>\n",
" <td>B</td>\n",
" <td>1</td>\n",
" <td>동</td>\n",
" <td>남</td>\n",
" <td>090</td>\n",
" <td>180</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>175</td>\n",
" <td>4</td>\n",
" <td>A</td>\n",
" <td>5</td>\n",
" <td>서</td>\n",
" <td>북</td>\n",
" <td>270</td>\n",
" <td>000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>left</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>175</td>\n",
" <td>4</td>\n",
" <td>B</td>\n",
" <td>2</td>\n",
" <td>서</td>\n",
" <td>동</td>\n",
" <td>270</td>\n",
" <td>090</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>u00</td>\n",
" <td>straight</td>\n",
" <td>GGGGgGGGG</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"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
}