|
|
@ -0,0 +1,304 @@ |
|
|
|
{ |
|
|
|
"cells": [ |
|
|
|
{ |
|
|
|
"cell_type": "code", |
|
|
|
"execution_count": 1, |
|
|
|
"metadata": {}, |
|
|
|
"outputs": [], |
|
|
|
"source": [ |
|
|
|
"import os\n", |
|
|
|
"import pandas as pd\n", |
|
|
|
"import numpy as np\n", |
|
|
|
"import sys\n", |
|
|
|
"import copy\n", |
|
|
|
"sys.path.append('../../Scripts')\n", |
|
|
|
"from preprocess_daily import DailyPreprocessor\n", |
|
|
|
"from generate_signals import SignalGenerator" |
|
|
|
] |
|
|
|
}, |
|
|
|
{ |
|
|
|
"cell_type": "code", |
|
|
|
"execution_count": 71, |
|
|
|
"metadata": {}, |
|
|
|
"outputs": [ |
|
|
|
{ |
|
|
|
"name": "stdout", |
|
|
|
"output_type": "stream", |
|
|
|
"text": [ |
|
|
|
"1. 데이터를 로드합니다.\n", |
|
|
|
"1-1. 네트워크가 로드되었습니다.\n", |
|
|
|
"1-2. 테이블들이 로드되었습니다.\n", |
|
|
|
"1-3. 네트워크의 모든 clean state requirement들을 체크했습니다.\n", |
|
|
|
"1-4. 테이블들의 무결성 검사를 완료했습니다.\n", |
|
|
|
"1-5. 주요 객체 (리스트, 딕셔너리)들을 저장했습니다.\n", |
|
|
|
"2-1. 매칭 테이블들을 생성했습니다.\n", |
|
|
|
"2-2. 초기화 신호가 지정되었습니다. (우회전 : g)\n", |
|
|
|
"2-3. 유턴 인덱스 / 비보호좌회전 인덱스를 지정했습니다.\n", |
|
|
|
"i6\n", |
|
|
|
"[8]\n" |
|
|
|
] |
|
|
|
}, |
|
|
|
{ |
|
|
|
"data": { |
|
|
|
"text/html": [ |
|
|
|
"<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", |
|
|
|
" </tr>\n", |
|
|
|
" </thead>\n", |
|
|
|
" <tbody>\n", |
|
|
|
" <tr>\n", |
|
|
|
" <th>92</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>-571542115_01</td>\n", |
|
|
|
" <td>571500535_01</td>\n", |
|
|
|
" <td>i6</td>\n", |
|
|
|
" <td>straight</td>\n", |
|
|
|
" </tr>\n", |
|
|
|
" <tr>\n", |
|
|
|
" <th>93</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>i6</td>\n", |
|
|
|
" <td>NaN</td>\n", |
|
|
|
" </tr>\n", |
|
|
|
" <tr>\n", |
|
|
|
" <th>94</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.18</td>\n", |
|
|
|
" <td>571511538_01</td>\n", |
|
|
|
" <td>i6</td>\n", |
|
|
|
" <td>left</td>\n", |
|
|
|
" </tr>\n", |
|
|
|
" <tr>\n", |
|
|
|
" <th>95</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>571500535_02.18</td>\n", |
|
|
|
" <td>571542115_01</td>\n", |
|
|
|
" <td>i6</td>\n", |
|
|
|
" <td>straight</td>\n", |
|
|
|
" </tr>\n", |
|
|
|
" <tr>\n", |
|
|
|
" <th>96</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>571511538_02.121</td>\n", |
|
|
|
" <td>571542115_01</td>\n", |
|
|
|
" <td>i6</td>\n", |
|
|
|
" <td>left</td>\n", |
|
|
|
" </tr>\n", |
|
|
|
" <tr>\n", |
|
|
|
" <th>97</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>571511538_02.121</td>\n", |
|
|
|
" <td>571500585_01</td>\n", |
|
|
|
" <td>i6</td>\n", |
|
|
|
" <td>straight</td>\n", |
|
|
|
" </tr>\n", |
|
|
|
" <tr>\n", |
|
|
|
" <th>98</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>571500585_02</td>\n", |
|
|
|
" <td>571511538_01</td>\n", |
|
|
|
" <td>i6</td>\n", |
|
|
|
" <td>straight</td>\n", |
|
|
|
" </tr>\n", |
|
|
|
" <tr>\n", |
|
|
|
" <th>99</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>571500585_02</td>\n", |
|
|
|
" <td>571500535_01</td>\n", |
|
|
|
" <td>i6</td>\n", |
|
|
|
" <td>left</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", |
|
|
|
"92 210 1 A 6 동 서 090 \n", |
|
|
|
"93 210 1 B 18 NaN NaN NaN \n", |
|
|
|
"94 210 2 A 5 서 북 270 \n", |
|
|
|
"95 210 2 B 2 서 동 270 \n", |
|
|
|
"96 210 3 A 7 북 동 000 \n", |
|
|
|
"97 210 3 B 4 북 남 000 \n", |
|
|
|
"98 210 4 A 8 남 북 180 \n", |
|
|
|
"99 210 4 B 3 남 서 180 \n", |
|
|
|
"\n", |
|
|
|
" out_angle inc_edge_id out_edge_id node_id turn_type \n", |
|
|
|
"92 270 -571542115_01 571500535_01 i6 straight \n", |
|
|
|
"93 NaN NaN NaN i6 NaN \n", |
|
|
|
"94 000 571500535_02.18 571511538_01 i6 left \n", |
|
|
|
"95 090 571500535_02.18 571542115_01 i6 straight \n", |
|
|
|
"96 090 571511538_02.121 571542115_01 i6 left \n", |
|
|
|
"97 180 571511538_02.121 571500585_01 i6 straight \n", |
|
|
|
"98 000 571500585_02 571511538_01 i6 straight \n", |
|
|
|
"99 270 571500585_02 571500535_01 i6 left " |
|
|
|
] |
|
|
|
}, |
|
|
|
"metadata": {}, |
|
|
|
"output_type": "display_data" |
|
|
|
} |
|
|
|
], |
|
|
|
"source": [ |
|
|
|
"self = DailyPreprocessor()\n", |
|
|
|
"self.load_data() # 1. 데이터 불러오기\n", |
|
|
|
"self.get_matches() # 2-1\n", |
|
|
|
"self.initialize_state() # 2-2\n", |
|
|
|
"self.assign_indices() # 2-3\n", |
|
|
|
"\n", |
|
|
|
"parent_id = self.parent_ids[4]\n", |
|
|
|
"print(parent_id)\n", |
|
|
|
"UPLindices = self.p2UPLindices[parent_id]\n", |
|
|
|
"print(UPLindices)\n", |
|
|
|
"m6 = self.match6[self.match6.node_id==parent_id].copy()\n", |
|
|
|
"\n", |
|
|
|
"# matching에 신호 배정\n", |
|
|
|
"for i, row in self.match6.iterrows():\n", |
|
|
|
" node_id = row.node_id\n", |
|
|
|
" move_no = row.move_no\n", |
|
|
|
" if (pd.isna(row.inc_edge_id)) or (pd.isna(row.out_edge_id)):\n", |
|
|
|
" continue\n", |
|
|
|
" inc_edge = self.net.getEdge(row.inc_edge_id)\n", |
|
|
|
" out_edge = self.net.getEdge(row.out_edge_id)\n", |
|
|
|
" state = copy.deepcopy(self.node2init[node_id])\n", |
|
|
|
" for conn in inc_edge.getConnections(out_edge):\n", |
|
|
|
" index = conn.getTLLinkIndex()\n", |
|
|
|
" if index >= 0:\n", |
|
|
|
" state[index] = 'G'\n", |
|
|
|
" self.match6.at[i, 'state'] = ''.join(state)\n", |
|
|
|
" if node_id in self.parent_ids:\n", |
|
|
|
" UPLindices = self.p2UPLindices[node_id]\n", |
|
|
|
" self.match6.at[i, 'unprotected_left'] = ''.join([state[j] for j in UPLindices])\n", |
|
|
|
"display(self.match6[self.match6.node_id==parent_id])" |
|
|
|
] |
|
|
|
}, |
|
|
|
{ |
|
|
|
"cell_type": "code", |
|
|
|
"execution_count": 20, |
|
|
|
"metadata": {}, |
|
|
|
"outputs": [ |
|
|
|
{ |
|
|
|
"data": { |
|
|
|
"text/plain": [ |
|
|
|
"['b', 'c']" |
|
|
|
] |
|
|
|
}, |
|
|
|
"execution_count": 20, |
|
|
|
"metadata": {}, |
|
|
|
"output_type": "execute_result" |
|
|
|
} |
|
|
|
], |
|
|
|
"source": [ |
|
|
|
"L = 'abcd'\n", |
|
|
|
"UPLindices = [1,2]\n", |
|
|
|
"[L[i] for i in UPLindices]" |
|
|
|
] |
|
|
|
} |
|
|
|
], |
|
|
|
"metadata": { |
|
|
|
"kernelspec": { |
|
|
|
"display_name": "sts", |
|
|
|
"language": "python", |
|
|
|
"name": "sts" |
|
|
|
}, |
|
|
|
"language_info": { |
|
|
|
"codemirror_mode": { |
|
|
|
"name": "ipython", |
|
|
|
"version": 3 |
|
|
|
}, |
|
|
|
"file_extension": ".py", |
|
|
|
"mimetype": "text/x-python", |
|
|
|
"name": "python", |
|
|
|
"nbconvert_exporter": "python", |
|
|
|
"pygments_lexer": "ipython3", |
|
|
|
"version": "3.8.10" |
|
|
|
} |
|
|
|
}, |
|
|
|
"nbformat": 4, |
|
|
|
"nbformat_minor": 2 |
|
|
|
} |