{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import os\n",
|
|
"import pandas as pd\n",
|
|
"\n",
|
|
"import sys, copy\n",
|
|
"from datetime import datetime\n",
|
|
"sys.path.append('../../Scripts')\n",
|
|
"\n",
|
|
"from preprocess_daily import DailyPreprocessor\n",
|
|
"\n",
|
|
"from generate_signals import SignalGenerator"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"self = DailyPreprocessor()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"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"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"self.load_data()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"이동류정보 불러오는 중: 0%| | 0/17280 [00:00<?, ?it/s]"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"이동류정보 불러오는 중: 100%|██████████| 17280/17280 [00:13<00:00, 1296.07it/s]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# 2-1-1~7\n",
|
|
"self.make_match1()\n",
|
|
"self.make_match2()\n",
|
|
"self.make_match3()\n",
|
|
"self.make_match4()\n",
|
|
"self.make_match5()\n",
|
|
"self.make_match6()\n",
|
|
"self.make_matching()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"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>phas_A</th>\n",
|
|
" <th>phas_B</th>\n",
|
|
" <th>move_A</th>\n",
|
|
" <th>move_B</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>4</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>3</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>1</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>2</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>2</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no phas_A phas_B move_A move_B\n",
|
|
"0 175 1 1 8 4\n",
|
|
"1 175 2 2 7 3\n",
|
|
"2 175 3 3 6 1\n",
|
|
"3 175 3 4 6 2\n",
|
|
"4 175 4 4 5 2"
|
|
]
|
|
},
|
|
"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",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>8</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>4</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>7</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>3</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>6</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no phase_no ring_type move_no\n",
|
|
"0 175 1 A 8\n",
|
|
"0 175 1 B 4\n",
|
|
"1 175 2 A 7\n",
|
|
"1 175 2 B 3\n",
|
|
"2 175 3 A 6"
|
|
]
|
|
},
|
|
"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_dir</th>\n",
|
|
" <th>out_dir</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>북</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>북</td>\n",
|
|
" <td>남</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>북</td>\n",
|
|
" <td>동</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>서</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>동</td>\n",
|
|
" <td>서</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no phase_no ring_type move_no inc_dir out_dir\n",
|
|
"0 175 1 A 8 남 북\n",
|
|
"1 175 1 B 4 북 남\n",
|
|
"2 175 2 A 7 북 동\n",
|
|
"3 175 2 B 3 남 서\n",
|
|
"4 175 3 A 6 동 서"
|
|
]
|
|
},
|
|
"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_dir</th>\n",
|
|
" <th>out_dir</th>\n",
|
|
" <th>inc_angle</th>\n",
|
|
" <th>out_angle</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</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>004</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</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>003</td>\n",
|
|
" <td>176</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</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>095</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</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",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</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",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no phase_no ring_type move_no inc_dir out_dir inc_angle out_angle\n",
|
|
"0 175 1 A 8 남 북 179 004\n",
|
|
"1 175 1 B 4 북 남 003 176\n",
|
|
"2 175 2 A 7 북 동 001 095\n",
|
|
"3 175 2 B 3 남 서 179 270\n",
|
|
"4 175 3 A 6 동 서 090 270"
|
|
]
|
|
},
|
|
"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_dir</th>\n",
|
|
" <th>out_dir</th>\n",
|
|
" <th>inc_angle</th>\n",
|
|
" <th>out_angle</th>\n",
|
|
" <th>inc_edge</th>\n",
|
|
" <th>out_edge</th>\n",
|
|
" <th>node_id</th>\n",
|
|
" <th>inc_edge_id</th>\n",
|
|
" <th>out_edge_id</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</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>004</td>\n",
|
|
" <td>-571542797_02</td>\n",
|
|
" <td>571500487_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</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>003</td>\n",
|
|
" <td>176</td>\n",
|
|
" <td>-571500487_01</td>\n",
|
|
" <td>571542797_02</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</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>095</td>\n",
|
|
" <td>-571500487_01</td>\n",
|
|
" <td>571545870_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</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>-571542797_02</td>\n",
|
|
" <td>571510153_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</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>571545870_02</td>\n",
|
|
" <td>571510153_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no phase_no ring_type move_no inc_dir out_dir inc_angle out_angle \\\n",
|
|
"0 175 1 A 8 남 북 179 004 \n",
|
|
"1 175 1 B 4 북 남 003 176 \n",
|
|
"2 175 2 A 7 북 동 001 095 \n",
|
|
"3 175 2 B 3 남 서 179 270 \n",
|
|
"4 175 3 A 6 동 서 090 270 \n",
|
|
"\n",
|
|
" inc_edge out_edge node_id inc_edge_id out_edge_id \n",
|
|
"0 -571542797_02 571500487_01 i0 NaN NaN \n",
|
|
"1 -571500487_01 571542797_02 i0 NaN NaN \n",
|
|
"2 -571500487_01 571545870_01 i0 NaN NaN \n",
|
|
"3 -571542797_02 571510153_01 i0 NaN NaN \n",
|
|
"4 571545870_02 571510153_01 i0 NaN NaN "
|
|
]
|
|
},
|
|
"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>move_no</th>\n",
|
|
" <th>inc_dir</th>\n",
|
|
" <th>out_dir</th>\n",
|
|
" <th>inc_edge</th>\n",
|
|
" <th>out_edge</th>\n",
|
|
" <th>node_id</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>동</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>571545870_02</td>\n",
|
|
" <td>571542797_02</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>동</td>\n",
|
|
" <td>571510153_02</td>\n",
|
|
" <td>571545870_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>-571542797_02</td>\n",
|
|
" <td>571510153_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>북</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>-571500487_01</td>\n",
|
|
" <td>571542797_02</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>북</td>\n",
|
|
" <td>571510153_02</td>\n",
|
|
" <td>571500487_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no move_no inc_dir out_dir inc_edge out_edge node_id\n",
|
|
"0 175 1 동 남 571545870_02 571542797_02 i0\n",
|
|
"1 175 2 서 동 571510153_02 571545870_01 i0\n",
|
|
"2 175 3 남 서 -571542797_02 571510153_01 i0\n",
|
|
"3 175 4 북 남 -571500487_01 571542797_02 i0\n",
|
|
"4 175 5 서 북 571510153_02 571500487_01 i0"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"display(self.match1.head())\n",
|
|
"display(self.match2.head())\n",
|
|
"display(self.match3.head())\n",
|
|
"display(self.match4.head())\n",
|
|
"display(self.match6.head())\n",
|
|
"display(self.matching.head())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"self.match7 = self.match6.copy()\n",
|
|
"self.match7 = self.match7[['inter_no', 'move_no', 'inc_dir', 'out_dir', 'inc_edge', 'out_edge', 'node_id']]\n",
|
|
"\n",
|
|
"# parent_ids = sorted(self.inter_node[self.inter_node.inter_type=='parent'].node_id.unique())\n",
|
|
"# child_ids = sorted(self.inter_node[self.inter_node.inter_type=='child'].node_id.unique())\n",
|
|
"\n",
|
|
"# (1) 가능한 (진입방향, 진출방향) 목록 \n",
|
|
"flows = self.nema.dropna().apply(lambda row: (row['inc_dir'], row['out_dir']), axis=1).tolist()\n",
|
|
"# (2) 각 교차로별 방향 목록 : pdires (possible directions)\n",
|
|
"pdires = {}\n",
|
|
"for node_id in self.parent_ids:\n",
|
|
" dires = self.match7[self.match7.node_id == node_id][['inc_dir','out_dir']].values.flatten()\n",
|
|
" dires = {dire for dire in dires if type(dire)==str}\n",
|
|
" pdires[node_id] = dires\n",
|
|
"# (3) 각 (교차로, 진입방향) 별 진입id 목록 : inc2id (incoming direction to incoming edge_id)\n",
|
|
"inc2id = {}\n",
|
|
"for node_id in self.parent_ids:\n",
|
|
" for inc_dir in pdires[node_id]:\n",
|
|
" df = self.match7[(self.match7.node_id==node_id) & (self.match7.inc_dir==inc_dir)]\n",
|
|
" inc2id[(node_id, inc_dir)] = df.inc_edge.iloc[0]\n",
|
|
"# (4) 각 (교차로, 진출방향) 별 진출id 목록 : out2id (outgoing direction to outgoing edge_id)\n",
|
|
"out2id = {}\n",
|
|
"for node_id in self.parent_ids:\n",
|
|
" for out_dir in pdires[node_id]:\n",
|
|
" df = self.match7[(self.match7.node_id==node_id) & (self.match7.out_dir==out_dir)]\n",
|
|
" out2id[(node_id, out_dir)] = df.out_edge.iloc[0]\n",
|
|
"# (5) 각 교차로별 가능한 (진입방향, 진출방향) 목록 : pflow (possible flows)\n",
|
|
"pflow = {}\n",
|
|
"for node_id in self.parent_ids:\n",
|
|
" pflow[node_id] = [flow for flow in flows if set(flow).issubset(pdires[node_id])]\n",
|
|
"# (6) 가능한 이동류에 대하여 진입id, 진출id 배정 : matching\n",
|
|
"# node2inter = dict(zip(self.match7['node_id'], self.match7['inter_no']))\n",
|
|
"dires_right = ['북', '서', '남', '동', '북'] # ex (북, 서), (서, 남) 등은 우회전 flow\n",
|
|
"self.matching = []\n",
|
|
"for node_id in self.parent_ids:\n",
|
|
" inter_no = self.node2inter[node_id]\n",
|
|
" print()\n",
|
|
" # 좌회전과 직진(1 ~ 16)\n",
|
|
" for (inc_dir, out_dir) in pflow[node_id]:\n",
|
|
" move_no = self.nema[(self.nema.inc_dir==inc_dir) & (self.nema.out_dir==out_dir)].move_no.iloc[0]\n",
|
|
" inc_edge = inc2id[(node_id, inc_dir)]\n",
|
|
" out_edge = out2id[(node_id, out_dir)]\n",
|
|
" print(node_id, inter_no, inc_dir, out_dir, move_no, inc_edge, out_edge)\n",
|
|
" new_row = pd.DataFrame({'inter_no':[inter_no], 'move_no':[move_no],\n",
|
|
" 'inc_dir':[inc_dir], 'out_dir':[out_dir],\n",
|
|
" 'inc_edge':[inc_edge], 'out_edge':[out_edge], 'node_id':[node_id]})\n",
|
|
" self.matching.append(new_row)\n",
|
|
" display(new_row)\n",
|
|
" # 보행신호(17), 전적색(18)\n",
|
|
" new_row = pd.DataFrame({'inter_no':[inter_no]*2, 'move_no':[17, 18],\n",
|
|
" 'inc_dir':[None]*2, 'out_dir':[None]*2,\n",
|
|
" 'inc_edge':[None]*2, 'out_edge':[None]*2, 'node_id':[node_id]*2})\n",
|
|
" display(new_row)\n",
|
|
" self.matching.append(new_row)\n",
|
|
" # 신호우회전(21)\n",
|
|
" for d in range(len(dires_right)-1):\n",
|
|
" inc_dir = dires_right[d]\n",
|
|
" out_dir = dires_right[d+1]\n",
|
|
" if {inc_dir, out_dir}.issubset(pdires[node_id]):\n",
|
|
" inc_edge = inc2id[(node_id, inc_dir)]\n",
|
|
" out_edge = out2id[(node_id, out_dir)]\n",
|
|
" new_row = pd.DataFrame({'inter_no':[inter_no], 'move_no':[21],\n",
|
|
" 'inc_dir':[inc_dir], 'out_dir':[out_dir],\n",
|
|
" 'inc_edge':[inc_edge], 'out_edge':[out_edge], 'node_id':[node_id]})\n",
|
|
" display(new_row)\n",
|
|
" self.matching.append(new_row)\n",
|
|
"self.matching.append(self.match7[self.match7.node_id.isin(self.child_ids)])\n",
|
|
"self.matching = pd.concat(self.matching)\n",
|
|
"self.matching = self.matching.dropna().sort_values(by=['inter_no', 'node_id', 'move_no']).reset_index(drop=True)\n",
|
|
"self.matching['move_no'] = self.matching['move_no'].astype(int)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 47,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{'i0': {'남', '동', '북', '서'},\n",
|
|
" 'i1': {'남', '북', '서'},\n",
|
|
" 'i2': {'남', '동', '북', '서'},\n",
|
|
" 'i3': {'남', '동', '북', '서'},\n",
|
|
" 'i6': {'남', '동', '북', '서'},\n",
|
|
" 'i7': {'남', '북'},\n",
|
|
" 'i8': {'남', '동', '북', '서'},\n",
|
|
" 'i9': {'동', '서'}}"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"display(pdires)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 62,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{175: {'남': '179', '북': '001', '동': '090', '서': '270'},\n",
|
|
" 176: {'남': '180', '북': '359', '서': '270'},\n",
|
|
" 177: {'남': '179', '북': '000', '서': '268', '동': '090'},\n",
|
|
" 178: {'남': '180', '북': '000', '서': '270', '동': '090'},\n",
|
|
" 201: {'남': '180', '서': '270', '동': '090', '북': '000'},\n",
|
|
" 202: {'동': '090', '서': '270'},\n",
|
|
" 206: {'남': '180', '북': '000'},\n",
|
|
" 210: {'동': '090', '서': '270', '북': '000', '남': '180'}}"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{175: {'북': '000', '남': '180', '동': '090', '서': '270'},\n",
|
|
" 176: {'북': '356', '남': '180', '서': '270'},\n",
|
|
" 177: {'북': '000', '남': '180', '동': '090', '서': '270'},\n",
|
|
" 178: {'북': '000', '남': '180', '동': '090', '서': '270'},\n",
|
|
" 201: {'북': '000', '서': '270', '동': '090', '남': '180'},\n",
|
|
" 202: {'서': '270', '동': '090'},\n",
|
|
" 206: {'북': '000', '남': '180'},\n",
|
|
" 210: {'서': '270', '북': '000', '동': '090', '남': '180'}}"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"inc_dir2angles = dict()\n",
|
|
"out_dir2angles = dict()\n",
|
|
"for inter_no in self.match4.inter_no.unique():\n",
|
|
" df = self.match4[self.match4.inter_no==inter_no].dropna()\n",
|
|
" inc_dir2angle = dict(zip(df['inc_dir'], df['inc_angle']))\n",
|
|
" out_dir2angle = dict(zip(df['out_dir'], df['out_angle']))\n",
|
|
" inc_dir2angles[inter_no] = inc_dir2angle\n",
|
|
" out_dir2angles[inter_no] = out_dir2angle\n",
|
|
"display(inc_dir2angles)\n",
|
|
"display(out_dir2angles)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 85,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"'남'"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"'북'"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"display(inc_dire, out_dire)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 108,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"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>move_no</th>\n",
|
|
" <th>angle_code</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>090180</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>270090</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>179270</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>001180</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>270000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>090270</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>001090</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>179000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>176</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>180270</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>176</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>359180</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>176</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>270356</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>176</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>180356</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>090180</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>268090</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>179270</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>000180</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>268000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>090270</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>000090</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>179000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>178</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>090180</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>178</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>270090</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>178</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>180270</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>178</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>000180</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>178</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>270000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>178</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>090270</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>178</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>000090</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>178</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>180000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>201</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>090180</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>201</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>270090</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>201</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>180270</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>201</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>000180</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>201</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>270000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>201</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>090270</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>201</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>000090</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>201</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>180000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>202</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>270090</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>202</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>090270</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>206</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>000180</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>206</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>180000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>090180</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>270090</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>180270</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>000180</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>270000</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>090270</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>000090</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>180000</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no move_no angle_code\n",
|
|
"0 175 1 090180\n",
|
|
"0 175 2 270090\n",
|
|
"0 175 3 179270\n",
|
|
"0 175 4 001180\n",
|
|
"0 175 5 270000\n",
|
|
"0 175 6 090270\n",
|
|
"0 175 7 001090\n",
|
|
"0 175 8 179000\n",
|
|
"0 176 3 180270\n",
|
|
"0 176 4 359180\n",
|
|
"0 176 5 270356\n",
|
|
"0 176 8 180356\n",
|
|
"0 177 1 090180\n",
|
|
"0 177 2 268090\n",
|
|
"0 177 3 179270\n",
|
|
"0 177 4 000180\n",
|
|
"0 177 5 268000\n",
|
|
"0 177 6 090270\n",
|
|
"0 177 7 000090\n",
|
|
"0 177 8 179000\n",
|
|
"0 178 1 090180\n",
|
|
"0 178 2 270090\n",
|
|
"0 178 3 180270\n",
|
|
"0 178 4 000180\n",
|
|
"0 178 5 270000\n",
|
|
"0 178 6 090270\n",
|
|
"0 178 7 000090\n",
|
|
"0 178 8 180000\n",
|
|
"0 201 1 090180\n",
|
|
"0 201 2 270090\n",
|
|
"0 201 3 180270\n",
|
|
"0 201 4 000180\n",
|
|
"0 201 5 270000\n",
|
|
"0 201 6 090270\n",
|
|
"0 201 7 000090\n",
|
|
"0 201 8 180000\n",
|
|
"0 202 2 270090\n",
|
|
"0 202 6 090270\n",
|
|
"0 206 4 000180\n",
|
|
"0 206 8 180000\n",
|
|
"0 210 1 090180\n",
|
|
"0 210 2 270090\n",
|
|
"0 210 3 180270\n",
|
|
"0 210 4 000180\n",
|
|
"0 210 5 270000\n",
|
|
"0 210 6 090270\n",
|
|
"0 210 7 000090\n",
|
|
"0 210 8 180000"
|
|
]
|
|
},
|
|
"execution_count": 108,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"angles = []\n",
|
|
"for inter_no in self.inter_nos:\n",
|
|
" node_id = self.inter2node[inter_no]\n",
|
|
" flows = pflow[node_id]\n",
|
|
" inc_dir2angle = inc_dir2angles[inter_no]\n",
|
|
" out_dir2angle = out_dir2angles[inter_no]\n",
|
|
" for (inc_dire, out_dire) in flows:\n",
|
|
" inc_angle = inc_dir2angle[inc_dire]\n",
|
|
" out_angle = out_dir2angle[out_dire]\n",
|
|
" angle_code = inc_angle + out_angle\n",
|
|
" nema_row = self.nema[(self.nema.inc_dir==inc_dire)&(self.nema.out_dir==out_dire)]\n",
|
|
" move_no = nema_row.iloc[0].move_no\n",
|
|
" angle = pd.DataFrame({'inter_no':[inter_no],'move_no':[move_no], 'angle_code':[angle_code]})\n",
|
|
" angles.append(angle)\n",
|
|
"angles = pd.concat(angles)\n",
|
|
"angles"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 63,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{'i0': [('동', '남'),\n",
|
|
" ('서', '동'),\n",
|
|
" ('남', '서'),\n",
|
|
" ('북', '남'),\n",
|
|
" ('서', '북'),\n",
|
|
" ('동', '서'),\n",
|
|
" ('북', '동'),\n",
|
|
" ('남', '북')],\n",
|
|
" 'i1': [('남', '서'), ('북', '남'), ('서', '북'), ('남', '북')],\n",
|
|
" 'i2': [('동', '남'),\n",
|
|
" ('서', '동'),\n",
|
|
" ('남', '서'),\n",
|
|
" ('북', '남'),\n",
|
|
" ('서', '북'),\n",
|
|
" ('동', '서'),\n",
|
|
" ('북', '동'),\n",
|
|
" ('남', '북')],\n",
|
|
" 'i3': [('동', '남'),\n",
|
|
" ('서', '동'),\n",
|
|
" ('남', '서'),\n",
|
|
" ('북', '남'),\n",
|
|
" ('서', '북'),\n",
|
|
" ('동', '서'),\n",
|
|
" ('북', '동'),\n",
|
|
" ('남', '북')],\n",
|
|
" 'i6': [('동', '남'),\n",
|
|
" ('서', '동'),\n",
|
|
" ('남', '서'),\n",
|
|
" ('북', '남'),\n",
|
|
" ('서', '북'),\n",
|
|
" ('동', '서'),\n",
|
|
" ('북', '동'),\n",
|
|
" ('남', '북')],\n",
|
|
" 'i7': [('북', '남'), ('남', '북')],\n",
|
|
" 'i8': [('동', '남'),\n",
|
|
" ('서', '동'),\n",
|
|
" ('남', '서'),\n",
|
|
" ('북', '남'),\n",
|
|
" ('서', '북'),\n",
|
|
" ('동', '서'),\n",
|
|
" ('북', '동'),\n",
|
|
" ('남', '북')],\n",
|
|
" 'i9': [('서', '동'), ('동', '서')]}"
|
|
]
|
|
},
|
|
"execution_count": 63,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"pflow"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 23,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"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_dir</th>\n",
|
|
" <th>out_dir</th>\n",
|
|
" <th>inc_angle</th>\n",
|
|
" <th>out_angle</th>\n",
|
|
" <th>inc_edge</th>\n",
|
|
" <th>out_edge</th>\n",
|
|
" <th>node_id</th>\n",
|
|
" <th>inc_edge_id</th>\n",
|
|
" <th>out_edge_id</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</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>004</td>\n",
|
|
" <td>-571542797_02</td>\n",
|
|
" <td>571500487_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</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>003</td>\n",
|
|
" <td>176</td>\n",
|
|
" <td>-571500487_01</td>\n",
|
|
" <td>571542797_02</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</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>095</td>\n",
|
|
" <td>-571500487_01</td>\n",
|
|
" <td>571545870_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</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>-571542797_02</td>\n",
|
|
" <td>571510153_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</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>571545870_02</td>\n",
|
|
" <td>571510153_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>...</th>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</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>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</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>359</td>\n",
|
|
" <td>090</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</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>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</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>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</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>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"<p>116 rows × 13 columns</p>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no phase_no ring_type move_no inc_dir out_dir inc_angle out_angle \\\n",
|
|
"0 175 1 A 8 남 북 179 004 \n",
|
|
"1 175 1 B 4 북 남 003 176 \n",
|
|
"2 175 2 A 7 북 동 001 095 \n",
|
|
"3 175 2 B 3 남 서 179 270 \n",
|
|
"4 175 3 A 6 동 서 090 270 \n",
|
|
".. ... ... ... ... ... ... ... ... \n",
|
|
"3 210 2 B 2 서 동 270 090 \n",
|
|
"4 210 3 A 7 북 동 359 090 \n",
|
|
"5 210 3 B 4 북 남 000 180 \n",
|
|
"6 210 4 A 8 남 북 180 000 \n",
|
|
"7 210 4 B 3 남 서 180 270 \n",
|
|
"\n",
|
|
" inc_edge out_edge node_id inc_edge_id out_edge_id \n",
|
|
"0 -571542797_02 571500487_01 i0 NaN NaN \n",
|
|
"1 -571500487_01 571542797_02 i0 NaN NaN \n",
|
|
"2 -571500487_01 571545870_01 i0 NaN NaN \n",
|
|
"3 -571542797_02 571510153_01 i0 NaN NaN \n",
|
|
"4 571545870_02 571510153_01 i0 NaN NaN \n",
|
|
".. ... ... ... ... ... \n",
|
|
"3 NaN NaN u60 NaN NaN \n",
|
|
"4 NaN NaN u60 NaN NaN \n",
|
|
"5 NaN NaN u60 NaN NaN \n",
|
|
"6 NaN NaN u60 NaN NaN \n",
|
|
"7 NaN NaN u60 NaN NaN \n",
|
|
"\n",
|
|
"[116 rows x 13 columns]"
|
|
]
|
|
},
|
|
"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>move_no</th>\n",
|
|
" <th>inc_dir</th>\n",
|
|
" <th>out_dir</th>\n",
|
|
" <th>inc_edge</th>\n",
|
|
" <th>out_edge</th>\n",
|
|
" <th>node_id</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>동</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>571545870_02</td>\n",
|
|
" <td>571542797_02</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>동</td>\n",
|
|
" <td>571510153_02</td>\n",
|
|
" <td>571545870_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>-571542797_02</td>\n",
|
|
" <td>571510153_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>북</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>-571500487_01</td>\n",
|
|
" <td>571542797_02</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>북</td>\n",
|
|
" <td>571510153_02</td>\n",
|
|
" <td>571500487_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>...</th>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>71</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>북</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>571511538_02.121</td>\n",
|
|
" <td>571500535_01</td>\n",
|
|
" <td>i6</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>72</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>571500535_02.18</td>\n",
|
|
" <td>571500585_01</td>\n",
|
|
" <td>i6</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>73</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>동</td>\n",
|
|
" <td>571500585_02</td>\n",
|
|
" <td>571542115_01</td>\n",
|
|
" <td>i6</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>74</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>동</td>\n",
|
|
" <td>북</td>\n",
|
|
" <td>-571542115_01</td>\n",
|
|
" <td>571511538_01</td>\n",
|
|
" <td>i6</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>75</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>북</td>\n",
|
|
" <td>571500535_02</td>\n",
|
|
" <td>-571500535_02</td>\n",
|
|
" <td>u60</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"<p>76 rows × 7 columns</p>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no move_no inc_dir out_dir inc_edge out_edge node_id\n",
|
|
"0 175 1 동 남 571545870_02 571542797_02 i0\n",
|
|
"1 175 2 서 동 571510153_02 571545870_01 i0\n",
|
|
"2 175 3 남 서 -571542797_02 571510153_01 i0\n",
|
|
"3 175 4 북 남 -571500487_01 571542797_02 i0\n",
|
|
"4 175 5 서 북 571510153_02 571500487_01 i0\n",
|
|
".. ... ... ... ... ... ... ...\n",
|
|
"71 210 21 북 서 571511538_02.121 571500535_01 i6\n",
|
|
"72 210 21 서 남 571500535_02.18 571500585_01 i6\n",
|
|
"73 210 21 남 동 571500585_02 571542115_01 i6\n",
|
|
"74 210 21 동 북 -571542115_01 571511538_01 i6\n",
|
|
"75 210 5 서 북 571500535_02 -571500535_02 u60\n",
|
|
"\n",
|
|
"[76 rows x 7 columns]"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"display(self.match6)\n",
|
|
"display(self.matching)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"1. 데이터를 준비합니다.\n",
|
|
"1-1. 네트워크가 로드되었습니다.\n",
|
|
"1-2. 테이블들이 로드되었습니다.\n",
|
|
"2. 신호이력 테이블을 변환합니다.\n",
|
|
"3. 이동류정보 테이블을 변환합니다.\n",
|
|
"4. 통합 테이블을 생성합니다.\n",
|
|
"5. 신호를 생성합니다.\n",
|
|
"6. 이슈사항을 저장합니다.\n",
|
|
"(1) 0:00:00.141398\n",
|
|
"(1-1) 0:00:00.025139\n",
|
|
"(1-2) 0:00:00.061132\n",
|
|
"(1-3) 0:00:00\n",
|
|
"(1-4) 0:00:00\n",
|
|
"(1-5) 0:00:00.055127\n",
|
|
"(2) 0:00:00.294164\n",
|
|
"(2-1) 0:00:00.064693\n",
|
|
"(2-2) 0:00:00.196721\n",
|
|
"(2-3) 0:00:00.032750\n",
|
|
"(3) 0:00:00.461845\n",
|
|
"(3-1) 0:00:00.437385\n",
|
|
"(3-2) 0:00:00.024460\n",
|
|
"(4) 0:00:00.188478\n",
|
|
"(4-1) 0:00:00.006985\n",
|
|
"(4-2) 0:00:00.015015\n",
|
|
"(4-2) 0:00:00.166478\n",
|
|
"(5) 0:00:00.787933\n",
|
|
"(5-1) 0:00:00.016678\n",
|
|
"(5-2) 0:00:00.770144\n",
|
|
"(5-3) 0:00:00.001111\n",
|
|
"(6) 0:00:00\n",
|
|
"total time : 0:00:01.873818\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"sg = SignalGenerator()\n",
|
|
"sg.main()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"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>start_unix</th>\n",
|
|
" <th>phas_A</th>\n",
|
|
" <th>phas_B</th>\n",
|
|
" <th>move_A</th>\n",
|
|
" <th>move_B</th>\n",
|
|
" <th>duration</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>201</td>\n",
|
|
" <td>1704418940</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>33</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>201</td>\n",
|
|
" <td>1704418940</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>36</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>201</td>\n",
|
|
" <td>1704418940</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>25</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>201</td>\n",
|
|
" <td>1704418940</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>58</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>201</td>\n",
|
|
" <td>1704418940</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>18</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>...</th>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>253</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>1704419870</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>40</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>254</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>1704420050</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>43</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>255</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>1704420050</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>27</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>256</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>1704420050</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>17</td>\n",
|
|
" <td>18</td>\n",
|
|
" <td>70</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>257</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>1704420050</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>40</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"<p>258 rows × 7 columns</p>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no start_unix phas_A phas_B move_A move_B duration\n",
|
|
"0 201 1704418940 1 1 8 3 33\n",
|
|
"1 201 1704418940 2 2 5 2 36\n",
|
|
"2 201 1704418940 3 3 6 2 25\n",
|
|
"3 201 1704418940 4 4 6 1 58\n",
|
|
"4 201 1704418940 5 5 7 4 18\n",
|
|
".. ... ... ... ... ... ... ...\n",
|
|
"253 177 1704419870 4 4 5 1 40\n",
|
|
"254 177 1704420050 1 1 8 4 43\n",
|
|
"255 177 1704420050 2 2 7 3 27\n",
|
|
"256 177 1704420050 3 3 17 18 70\n",
|
|
"257 177 1704420050 4 4 5 1 40\n",
|
|
"\n",
|
|
"[258 rows x 7 columns]"
|
|
]
|
|
},
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"sg.movedur"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"60\n",
|
|
"116\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(len(self.match5))\n",
|
|
"print(len(self.match6))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"['북', '북동', '동', '남동', '남', '남서', '서', '북서']"
|
|
]
|
|
},
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"self.directions"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{'북': array([6.123234e-17, 1.000000e+00]),\n",
|
|
" '북동': array([0.70710678, 0.70710678]),\n",
|
|
" '동': array([1., 0.]),\n",
|
|
" '남동': array([ 0.70710678, -0.70710678]),\n",
|
|
" '남': array([ 6.123234e-17, -1.000000e+00]),\n",
|
|
" '남서': array([-0.70710678, -0.70710678]),\n",
|
|
" '서': array([-1.0000000e+00, -1.2246468e-16]),\n",
|
|
" '북서': array([-0.70710678, 0.70710678])}"
|
|
]
|
|
},
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"\n",
|
|
"# dictionary that maps dire(북) to dir(np.array([0,1]))\n",
|
|
"self.dire2dir = dict()\n",
|
|
"theta = np.pi/2\n",
|
|
"for dire in self.directions:\n",
|
|
" self.dire2dir[dire] = np.array([np.cos(theta), np.sin(theta)])\n",
|
|
" theta -= np.pi/4\n",
|
|
"self.dire2dir"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 22,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"[(10315.19, 11460.86),\n",
|
|
" (10314.85, 11439.86),\n",
|
|
" (10314.54, 11439.86),\n",
|
|
" (10314.9, 11460.86)]"
|
|
]
|
|
},
|
|
"execution_count": 22,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"node_id = 'i5'\n",
|
|
"node = self.net.getNode(node_id)\n",
|
|
"inc_edges = [edge for edge in node.getIncoming() if edge.getFunction() == ''] # incoming edges\n",
|
|
"out_edges = [edge for edge in node.getOutgoing() if edge.getFunction() == ''] # outgoing edges\n",
|
|
"inc_edge = inc_edges[0]\n",
|
|
"loc_inc_edge = inc_edge.getShape()[-1]\n",
|
|
"node.getShape()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"2-2. 비보호우회전(g)을 배정했습니다.\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"self.initialize_state()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"c30\n",
|
|
"571542116_01\n",
|
|
"571542116_02.96\n",
|
|
"i0\n",
|
|
"-571500487_01\n",
|
|
"-571542797_02\n",
|
|
"571510153_02\n",
|
|
"571545870_02\n",
|
|
"i1\n",
|
|
"-571542810_01\n",
|
|
"571542797_02.99\n",
|
|
"571543469_02\n",
|
|
"i2\n",
|
|
"-571542809_01\n",
|
|
"571542107_02\n",
|
|
"571542811_02\n",
|
|
"i3\n",
|
|
"-571500475_01\n",
|
|
"571540303_02.21\n",
|
|
"571540304_02\n",
|
|
"571556450_02\n",
|
|
"i6\n",
|
|
"-571542115_01\n",
|
|
"571500535_02.18\n",
|
|
"571500585_02\n",
|
|
"571511538_02.121\n",
|
|
"i7\n",
|
|
"-571511538_02\n",
|
|
"571542071_02\n",
|
|
"571542073_01\n",
|
|
"i8\n",
|
|
"-571500569_01\n",
|
|
"571500583_01\n",
|
|
"571500617_02\n",
|
|
"571500618_02\n",
|
|
"i9\n",
|
|
"571510152_01\n",
|
|
"571510152_02\n",
|
|
"u00\n",
|
|
"571500487_01\n",
|
|
"571500487_02\n",
|
|
"u20\n",
|
|
"571542810_01.51\n",
|
|
"571542811_01\n",
|
|
"u30\n",
|
|
"571556450_01\n",
|
|
"571556452_01\n",
|
|
"u31\n",
|
|
"571500475_01\n",
|
|
"571500475_02\n",
|
|
"u32\n",
|
|
"571540303_01\n",
|
|
"571540303_02\n",
|
|
"u60\n",
|
|
"571500535_01\n",
|
|
"571500535_02\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"for node_id in self.node_ids:\n",
|
|
" print(node_id)\n",
|
|
" node = self.net.getNode(node_id)\n",
|
|
" inc_edges = [edge for edge in node.getIncoming() if edge.getFunction() == ''] # incoming edges\n",
|
|
" out_edges = [edge for edge in node.getOutgoing() if edge.getFunction() == ''] # outgoing edges\n",
|
|
" inc_edge_ids = [edge.getID() for edge in node.getIncoming() if edge.getFunction() == ''] # incoming edge ids\n",
|
|
" out_edge_ids = [edge.getID() for edge in node.getOutgoing() if edge.getFunction() == ''] # outgoing edge ids\n",
|
|
" # print(node)\n",
|
|
" for inc_edge_id in inc_edge_ids:\n",
|
|
" print(inc_edge_id)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"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>move_no</th>\n",
|
|
" <th>inc_dir</th>\n",
|
|
" <th>out_dir</th>\n",
|
|
" <th>inc_edge</th>\n",
|
|
" <th>out_edge</th>\n",
|
|
" <th>node_id</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>동</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>571545870_02</td>\n",
|
|
" <td>571542797_02</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>동</td>\n",
|
|
" <td>571510153_02</td>\n",
|
|
" <td>571545870_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>-571542797_02</td>\n",
|
|
" <td>571510153_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>북</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>-571500487_01</td>\n",
|
|
" <td>571542797_02</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>북</td>\n",
|
|
" <td>571510153_02</td>\n",
|
|
" <td>571500487_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>...</th>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>71</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>북</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>571511538_02.121</td>\n",
|
|
" <td>571500535_01</td>\n",
|
|
" <td>i6</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>72</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>571500535_02.18</td>\n",
|
|
" <td>571500585_01</td>\n",
|
|
" <td>i6</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>73</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>남</td>\n",
|
|
" <td>동</td>\n",
|
|
" <td>571500585_02</td>\n",
|
|
" <td>571542115_01</td>\n",
|
|
" <td>i6</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>74</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>동</td>\n",
|
|
" <td>북</td>\n",
|
|
" <td>-571542115_01</td>\n",
|
|
" <td>571511538_01</td>\n",
|
|
" <td>i6</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>75</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>서</td>\n",
|
|
" <td>북</td>\n",
|
|
" <td>571500535_02</td>\n",
|
|
" <td>-571500535_02</td>\n",
|
|
" <td>u60</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"<p>76 rows × 7 columns</p>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no move_no inc_dir out_dir inc_edge out_edge node_id\n",
|
|
"0 175 1 동 남 571545870_02 571542797_02 i0\n",
|
|
"1 175 2 서 동 571510153_02 571545870_01 i0\n",
|
|
"2 175 3 남 서 -571542797_02 571510153_01 i0\n",
|
|
"3 175 4 북 남 -571500487_01 571542797_02 i0\n",
|
|
"4 175 5 서 북 571510153_02 571500487_01 i0\n",
|
|
".. ... ... ... ... ... ... ...\n",
|
|
"71 210 21 북 서 571511538_02.121 571500535_01 i6\n",
|
|
"72 210 21 서 남 571500535_02.18 571500585_01 i6\n",
|
|
"73 210 21 남 동 571500585_02 571542115_01 i6\n",
|
|
"74 210 21 동 북 -571542115_01 571511538_01 i6\n",
|
|
"75 210 5 서 북 571500535_02 -571500535_02 u60\n",
|
|
"\n",
|
|
"[76 rows x 7 columns]"
|
|
]
|
|
},
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"self.matching"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"['북', '북동', '동', '남동', '남', '남서', '서', '북서']"
|
|
]
|
|
},
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"self.directions"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"'-571542797_02'"
|
|
]
|
|
},
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"list(self.node_id2inc_edge2dir['i0'])[1]"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 25,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{'-571500487_01': array([-0.00936558, -0.99995614]),\n",
|
|
" '-571542797_02': array([0.00318883, 0.99999492]),\n",
|
|
" '571510153_02': array([0.99927006, 0.03820147]),\n",
|
|
" '571545870_02': array([-0.99951221, 0.03123044])}"
|
|
]
|
|
},
|
|
"execution_count": 25,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"self.node_id2inc_edge2dir['i0']"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 45,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{'북': array([6.123234e-17, 1.000000e+00]),\n",
|
|
" '북동': array([0.70710678, 0.70710678]),\n",
|
|
" '동': array([1., 0.]),\n",
|
|
" '남동': array([ 0.70710678, -0.70710678]),\n",
|
|
" '남': array([ 6.123234e-17, -1.000000e+00]),\n",
|
|
" '남서': array([-0.70710678, -0.70710678]),\n",
|
|
" '서': array([-1.0000000e+00, -1.2246468e-16]),\n",
|
|
" '북서': array([-0.70710678, 0.70710678])}"
|
|
]
|
|
},
|
|
"execution_count": 45,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"self.dire2dir"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 56,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{'-571500487_01': array([-0.00936558, -0.99995614]),\n",
|
|
" '-571542797_02': array([0.00318883, 0.99999492]),\n",
|
|
" '571510153_02': array([0.99927006, 0.03820147]),\n",
|
|
" '571545870_02': array([-0.99951221, 0.03123044])}"
|
|
]
|
|
},
|
|
"execution_count": 56,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"self.node_id2inc_edge2dir['i0']"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 53,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"4\n",
|
|
"남\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[-0.00936558 -0.99995614]\n",
|
|
"-0.999956141961442\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[-0.00936558 -0.99995614]\n",
|
|
"-0.7136982364459966\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[-0.00936558 -0.99995614]\n",
|
|
"-0.00936558346224636\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[-0.00936558 -0.99995614]\n",
|
|
"0.7004533012941507\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[-0.00936558 -0.99995614]\n",
|
|
"0.999956141961442\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[-0.00936558 -0.99995614]\n",
|
|
"0.7136982364459966\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[-0.00936558 -0.99995614]\n",
|
|
"0.009365583462246483\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[-0.00936558 -0.99995614]\n",
|
|
"-0.7004533012941506\n",
|
|
"\n",
|
|
"0\n",
|
|
"북\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[0.00318883 0.99999492]\n",
|
|
"0.9999949156539597\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[0.00318883 0.99999492]\n",
|
|
"0.7093580325944496\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[0.00318883 0.99999492]\n",
|
|
"0.0031888346194069504\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[0.00318883 0.99999492]\n",
|
|
"-0.7048483394275195\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[0.00318883 0.99999492]\n",
|
|
"-0.9999949156539597\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[0.00318883 0.99999492]\n",
|
|
"-0.7093580325944496\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[0.00318883 0.99999492]\n",
|
|
"-0.0031888346194070727\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[0.00318883 0.99999492]\n",
|
|
"0.7048483394275193\n",
|
|
"\n",
|
|
"2\n",
|
|
"동\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[0.99927006 0.03820147]\n",
|
|
"0.03820147100728745\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[0.99927006 0.03820147]\n",
|
|
"0.7336031530235902\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[0.99927006 0.03820147]\n",
|
|
"0.9992700573983387\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[0.99927006 0.03820147]\n",
|
|
"0.6795781146224817\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[0.99927006 0.03820147]\n",
|
|
"-0.038201471007287324\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[0.99927006 0.03820147]\n",
|
|
"-0.7336031530235901\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[0.99927006 0.03820147]\n",
|
|
"-0.9992700573983387\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[0.99927006 0.03820147]\n",
|
|
"-0.6795781146224819\n",
|
|
"\n",
|
|
"6\n",
|
|
"서\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[-0.99951221 0.03123044]\n",
|
|
"0.031230438222358273\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[-0.99951221 0.03123044]\n",
|
|
"-0.6846786075562368\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[-0.99951221 0.03123044]\n",
|
|
"-0.9995122108951142\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[-0.99951221 0.03123044]\n",
|
|
"-0.728845116849151\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[-0.99951221 0.03123044]\n",
|
|
"-0.0312304382223584\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[-0.99951221 0.03123044]\n",
|
|
"0.6846786075562367\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[-0.99951221 0.03123044]\n",
|
|
"0.9995122108951142\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[-0.99951221 0.03123044]\n",
|
|
"0.7288451168491511\n",
|
|
"\n",
|
|
"0\n",
|
|
"북\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[0.01954731 0.99980893]\n",
|
|
"0.9998089329965109\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[0.01954731 0.99980893]\n",
|
|
"0.7207937149812274\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[0.01954731 0.99980893]\n",
|
|
"0.019547314403227895\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[0.01954731 0.99980893]\n",
|
|
"-0.6931496378442115\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[0.01954731 0.99980893]\n",
|
|
"-0.9998089329965109\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[0.01954731 0.99980893]\n",
|
|
"-0.7207937149812274\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[0.01954731 0.99980893]\n",
|
|
"-0.019547314403228017\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[0.01954731 0.99980893]\n",
|
|
"0.6931496378442114\n",
|
|
"\n",
|
|
"4\n",
|
|
"남\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[-0.00324512 -0.99999473]\n",
|
|
"-0.9999947345997597\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[-0.00324512 -0.99999473]\n",
|
|
"-0.7093977009603124\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[-0.00324512 -0.99999473]\n",
|
|
"-0.0032451152146071934\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[-0.00324512 -0.99999473]\n",
|
|
"0.7048084150123516\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[-0.00324512 -0.99999473]\n",
|
|
"0.9999947345997597\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[-0.00324512 -0.99999473]\n",
|
|
"0.7093977009603124\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[-0.00324512 -0.99999473]\n",
|
|
"0.0032451152146073157\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[-0.00324512 -0.99999473]\n",
|
|
"-0.7048084150123515\n",
|
|
"\n",
|
|
"2\n",
|
|
"동\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[ 0.99974606 -0.02253478]\n",
|
|
"-0.02253477852193767\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[ 0.99974606 -0.02253478]\n",
|
|
"0.690992723527485\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[ 0.99974606 -0.02253478]\n",
|
|
"0.9997460596356292\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[ 0.99974606 -0.02253478]\n",
|
|
"0.7228617129382832\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[ 0.99974606 -0.02253478]\n",
|
|
"0.022534778521937793\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[ 0.99974606 -0.02253478]\n",
|
|
"-0.6909927235274849\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[ 0.99974606 -0.02253478]\n",
|
|
"-0.9997460596356292\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[ 0.99974606 -0.02253478]\n",
|
|
"-0.7228617129382833\n",
|
|
"\n",
|
|
"0\n",
|
|
"북\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[0.0188774 0.99982181]\n",
|
|
"0.9998218060534435\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[0.0188774 0.99982181]\n",
|
|
"0.7203291148904717\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[0.0188774 0.99982181]\n",
|
|
"0.018877397596868892\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[0.0188774 0.99982181]\n",
|
|
"-0.6936324431866705\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[0.0188774 0.99982181]\n",
|
|
"-0.9998218060534435\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[0.0188774 0.99982181]\n",
|
|
"-0.7203291148904717\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[0.0188774 0.99982181]\n",
|
|
"-0.018877397596869013\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[0.0188774 0.99982181]\n",
|
|
"0.6936324431866704\n",
|
|
"\n",
|
|
"5\n",
|
|
"남서\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[-0.71131147 -0.70287694]\n",
|
|
"-0.7028769433114078\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[-0.71131147 -0.70287694]\n",
|
|
"-0.9999822145459303\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[-0.71131147 -0.70287694]\n",
|
|
"-0.7113114666313288\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[-0.71131147 -0.70287694]\n",
|
|
"-0.0059641086355921675\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[-0.71131147 -0.70287694]\n",
|
|
"0.7028769433114078\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[-0.71131147 -0.70287694]\n",
|
|
"0.9999822145459303\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[-0.71131147 -0.70287694]\n",
|
|
"0.7113114666313289\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[-0.71131147 -0.70287694]\n",
|
|
"0.005964108635592357\n",
|
|
"\n",
|
|
"4\n",
|
|
"남\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[-0.00514794 -0.99998675]\n",
|
|
"-0.9999867492848744\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[-0.00514794 -0.99998675]\n",
|
|
"-0.7107375526307316\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[-0.00514794 -0.99998675]\n",
|
|
"-0.005147936933367546\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[-0.00514794 -0.99998675]\n",
|
|
"0.7034572704013218\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[-0.00514794 -0.99998675]\n",
|
|
"0.9999867492848744\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[-0.00514794 -0.99998675]\n",
|
|
"0.7107375526307316\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[-0.00514794 -0.99998675]\n",
|
|
"0.005147936933367668\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[-0.00514794 -0.99998675]\n",
|
|
"-0.7034572704013217\n",
|
|
"\n",
|
|
"6\n",
|
|
"서\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[-0.99937585 0.03532571]\n",
|
|
"0.035325714272748256\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[-0.99937585 0.03532571]\n",
|
|
"-0.6816863899147254\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[-0.99937585 0.03532571]\n",
|
|
"-0.9993758521753067\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[-0.99937585 0.03532571]\n",
|
|
"-0.7316444941397628\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[-0.99937585 0.03532571]\n",
|
|
"-0.03532571427274838\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[-0.99937585 0.03532571]\n",
|
|
"0.6816863899147253\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[-0.99937585 0.03532571]\n",
|
|
"0.9993758521753067\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[-0.99937585 0.03532571]\n",
|
|
"0.731644494139763\n",
|
|
"\n",
|
|
"2\n",
|
|
"동\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[ 0.99959605 -0.02842068]\n",
|
|
"-0.028420683815972996\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[ 0.99959605 -0.02842068]\n",
|
|
"0.6867246877003452\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[ 0.99959605 -0.02842068]\n",
|
|
"0.9995960507782293\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[ 0.99959605 -0.02842068]\n",
|
|
"0.7269176042048118\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[ 0.99959605 -0.02842068]\n",
|
|
"0.02842068381597312\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[ 0.99959605 -0.02842068]\n",
|
|
"-0.6867246877003451\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[ 0.99959605 -0.02842068]\n",
|
|
"-0.9995960507782293\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[ 0.99959605 -0.02842068]\n",
|
|
"-0.7269176042048119\n",
|
|
"\n",
|
|
"0\n",
|
|
"북\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[0.00401066 0.99999196]\n",
|
|
"0.9999919572590873\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[0.00401066 0.99999196]\n",
|
|
"0.7099370610648998\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[0.00401066 0.99999196]\n",
|
|
"0.004010662930190224\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[0.00401066 0.99999196]\n",
|
|
"-0.7042651271549178\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[0.00401066 0.99999196]\n",
|
|
"-0.9999919572590873\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[0.00401066 0.99999196]\n",
|
|
"-0.7099370610648998\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[0.00401066 0.99999196]\n",
|
|
"-0.0040106629301903465\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[0.00401066 0.99999196]\n",
|
|
"0.7042651271549177\n",
|
|
"\n",
|
|
"4\n",
|
|
"남\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[-0.02221674 -0.99975318]\n",
|
|
"-0.99975317783161\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[-0.02221674 -0.99975318]\n",
|
|
"-0.7226418571477022\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[-0.02221674 -0.99975318]\n",
|
|
"-0.022216737285151163\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[-0.02221674 -0.99975318]\n",
|
|
"0.6912226459673614\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[-0.02221674 -0.99975318]\n",
|
|
"0.99975317783161\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[-0.02221674 -0.99975318]\n",
|
|
"0.7226418571477022\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[-0.02221674 -0.99975318]\n",
|
|
"0.022216737285151285\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[-0.02221674 -0.99975318]\n",
|
|
"-0.6912226459673613\n",
|
|
"\n",
|
|
"6\n",
|
|
"서\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[-0.99990726 0.01361849]\n",
|
|
"0.013618485596221176\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[-0.99990726 0.01361849]\n",
|
|
"-0.69741148350594\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[-0.99990726 0.01361849]\n",
|
|
"-0.9999072641250615\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[-0.99990726 0.01361849]\n",
|
|
"-0.7166709305350987\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[-0.99990726 0.01361849]\n",
|
|
"-0.013618485596221298\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[-0.99990726 0.01361849]\n",
|
|
"0.6974114835059398\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[-0.99990726 0.01361849]\n",
|
|
"0.9999072641250615\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[-0.99990726 0.01361849]\n",
|
|
"0.7166709305350988\n",
|
|
"\n",
|
|
"2\n",
|
|
"동\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[ 0.99979737 -0.02013015]\n",
|
|
"-0.020130148349706223\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[ 0.99979737 -0.02013015]\n",
|
|
"0.692729334344831\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[ 0.99979737 -0.02013015]\n",
|
|
"0.9997973680338526\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[ 0.99979737 -0.02013015]\n",
|
|
"0.721197663153568\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[ 0.99979737 -0.02013015]\n",
|
|
"0.020130148349706348\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[ 0.99979737 -0.02013015]\n",
|
|
"-0.6927293343448309\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[ 0.99979737 -0.02013015]\n",
|
|
"-0.9997973680338526\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[ 0.99979737 -0.02013015]\n",
|
|
"-0.7211976631535681\n",
|
|
"\n",
|
|
"0\n",
|
|
"북\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[0.02097793 0.99977994]\n",
|
|
"0.9997799391161097\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[0.02097793 0.99977994]\n",
|
|
"0.7217848077280572\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[0.02097793 0.99977994]\n",
|
|
"0.02097792508776536\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[0.02097793 0.99977994]\n",
|
|
"-0.6921175415584926\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[0.02097793 0.99977994]\n",
|
|
"-0.9997799391161097\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[0.02097793 0.99977994]\n",
|
|
"-0.7217848077280572\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[0.02097793 0.99977994]\n",
|
|
"-0.02097792508776548\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[0.02097793 0.99977994]\n",
|
|
"0.6921175415584925\n",
|
|
"\n",
|
|
"4\n",
|
|
"남\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[-0.0178916 -0.99983993]\n",
|
|
"-0.9998399325579537\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[-0.0178916 -0.99983993]\n",
|
|
"-0.7196448663590954\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[-0.0178916 -0.99983993]\n",
|
|
"-0.017891597539252523\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[-0.0178916 -0.99983993]\n",
|
|
"0.6943423264665635\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[-0.0178916 -0.99983993]\n",
|
|
"0.9998399325579537\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[-0.0178916 -0.99983993]\n",
|
|
"0.7196448663590954\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[-0.0178916 -0.99983993]\n",
|
|
"0.017891597539252645\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[-0.0178916 -0.99983993]\n",
|
|
"-0.6943423264665634\n",
|
|
"\n",
|
|
"0\n",
|
|
"북\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[0.03173005 0.99949648]\n",
|
|
"0.9994964752953672\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[0.03173005 0.99949648]\n",
|
|
"0.7291872667376466\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[0.03173005 0.99949648]\n",
|
|
"0.031730046834780104\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[0.03173005 0.99949648]\n",
|
|
"-0.684314204169167\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[0.03173005 0.99949648]\n",
|
|
"-0.9994964752953672\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[0.03173005 0.99949648]\n",
|
|
"-0.7291872667376466\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[0.03173005 0.99949648]\n",
|
|
"-0.03173004683478023\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[0.03173005 0.99949648]\n",
|
|
"0.6843142041691669\n",
|
|
"\n",
|
|
"6\n",
|
|
"서\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[-0.99996279 0.00862609]\n",
|
|
"0.00862608913718171\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[-0.99996279 0.00862609]\n",
|
|
"-0.7009809068725814\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[-0.99996279 0.00862609]\n",
|
|
"-0.9999627946009778\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[-0.99996279 0.00862609]\n",
|
|
"-0.7131800391206231\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[-0.99996279 0.00862609]\n",
|
|
"-0.008626089137181832\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[-0.99996279 0.00862609]\n",
|
|
"0.7009809068725813\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[-0.99996279 0.00862609]\n",
|
|
"0.9999627946009778\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[-0.99996279 0.00862609]\n",
|
|
"0.7131800391206232\n",
|
|
"\n",
|
|
"4\n",
|
|
"남\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[-0.01269051 -0.99991947]\n",
|
|
"-0.9999194722128006\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[-0.01269051 -0.99991947]\n",
|
|
"-0.7160233863906494\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[-0.01269051 -0.99991947]\n",
|
|
"-0.012690511797166758\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[-0.01269051 -0.99991947]\n",
|
|
"0.6980762924936404\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[-0.01269051 -0.99991947]\n",
|
|
"0.9999194722128006\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[-0.01269051 -0.99991947]\n",
|
|
"0.7160233863906494\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[-0.01269051 -0.99991947]\n",
|
|
"0.012690511797166881\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[-0.01269051 -0.99991947]\n",
|
|
"-0.6980762924936403\n",
|
|
"\n",
|
|
"0\n",
|
|
"북\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[0.01501082 0.99988733]\n",
|
|
"0.9998873313095755\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[0.01501082 0.99988733]\n",
|
|
"0.7176413642873244\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[0.01501082 0.99988733]\n",
|
|
"0.015010818985489397\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[0.01501082 0.99988733]\n",
|
|
"-0.6964128604957177\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[0.01501082 0.99988733]\n",
|
|
"-0.9998873313095755\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[0.01501082 0.99988733]\n",
|
|
"-0.7176413642873244\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[0.01501082 0.99988733]\n",
|
|
"-0.01501081898548952\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[0.01501082 0.99988733]\n",
|
|
"0.6964128604957176\n",
|
|
"\n",
|
|
"4\n",
|
|
"남\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[-0.01245578 -0.99992242]\n",
|
|
"-0.9999224237500915\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[-0.01245578 -0.99992242]\n",
|
|
"-0.7158594937446279\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[-0.01245578 -0.99992242]\n",
|
|
"-0.012455781057098932\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[-0.01245578 -0.99992242]\n",
|
|
"0.6982443592437287\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[-0.01245578 -0.99992242]\n",
|
|
"0.9999224237500915\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[-0.01245578 -0.99992242]\n",
|
|
"0.7158594937446279\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[-0.01245578 -0.99992242]\n",
|
|
"0.012455781057099055\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[-0.01245578 -0.99992242]\n",
|
|
"-0.6982443592437285\n",
|
|
"\n",
|
|
"6\n",
|
|
"서\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[-0.99986689 0.01631585]\n",
|
|
"0.016315849579498894\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[-0.99986689 0.01631585]\n",
|
|
"-0.695475608674601\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[-0.99986689 0.01631585]\n",
|
|
"-0.9998668876668031\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[-0.99986689 0.01631585]\n",
|
|
"-0.7185497044315678\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[-0.99986689 0.01631585]\n",
|
|
"-0.01631584957949902\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[-0.99986689 0.01631585]\n",
|
|
"0.6954756086746009\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[-0.99986689 0.01631585]\n",
|
|
"0.9998668876668031\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[-0.99986689 0.01631585]\n",
|
|
"0.718549704431568\n",
|
|
"\n",
|
|
"2\n",
|
|
"동\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[ 0.99992218 -0.01247524]\n",
|
|
"-0.012475239731228712\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[ 0.99992218 -0.01247524]\n",
|
|
"0.6982304283525206\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[ 0.99992218 -0.01247524]\n",
|
|
"0.999922181168939\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[ 0.99992218 -0.01247524]\n",
|
|
"0.7158730815742801\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[ 0.99992218 -0.01247524]\n",
|
|
"0.012475239731228834\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[ 0.99992218 -0.01247524]\n",
|
|
"-0.6982304283525205\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[ 0.99992218 -0.01247524]\n",
|
|
"-0.999922181168939\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[ 0.99992218 -0.01247524]\n",
|
|
"-0.7158730815742802\n",
|
|
"\n",
|
|
"2\n",
|
|
"동\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[ 0.99986806 -0.01624397]\n",
|
|
"-0.016243967759571678\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[ 0.99986806 -0.01624397]\n",
|
|
"0.6955272643837823\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[ 0.99986806 -0.01624397]\n",
|
|
"0.999868058051374\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[ 0.99986806 -0.01624397]\n",
|
|
"0.71849970389612\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[ 0.99986806 -0.01624397]\n",
|
|
"0.016243967759571803\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[ 0.99986806 -0.01624397]\n",
|
|
"-0.6955272643837822\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[ 0.99986806 -0.01624397]\n",
|
|
"-0.999868058051374\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[ 0.99986806 -0.01624397]\n",
|
|
"-0.7184997038961201\n",
|
|
"\n",
|
|
"6\n",
|
|
"서\n",
|
|
"[6.123234e-17 1.000000e+00]\n",
|
|
"[-0.99986809 0.01624217]\n",
|
|
"0.016242171657398802\n",
|
|
"\n",
|
|
"[0.70710678 0.70710678]\n",
|
|
"[-0.99986809 0.01624217]\n",
|
|
"-0.6955285550518142\n",
|
|
"\n",
|
|
"[1. 0.]\n",
|
|
"[-0.99986809 0.01624217]\n",
|
|
"-0.9998680872294363\n",
|
|
"\n",
|
|
"[ 0.70710678 -0.70710678]\n",
|
|
"[-0.99986809 0.01624217]\n",
|
|
"-0.7184984544920996\n",
|
|
"\n",
|
|
"[ 6.123234e-17 -1.000000e+00]\n",
|
|
"[-0.99986809 0.01624217]\n",
|
|
"-0.016242171657398927\n",
|
|
"\n",
|
|
"[-0.70710678 -0.70710678]\n",
|
|
"[-0.99986809 0.01624217]\n",
|
|
"0.6955285550518141\n",
|
|
"\n",
|
|
"[-1.0000000e+00 -1.2246468e-16]\n",
|
|
"[-0.99986809 0.01624217]\n",
|
|
"0.9998680872294363\n",
|
|
"\n",
|
|
"[-0.70710678 0.70710678]\n",
|
|
"[-0.99986809 0.01624217]\n",
|
|
"0.7184984544920997\n",
|
|
"\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"{'-571500487_01': '남',\n",
|
|
" '-571542797_02': '북',\n",
|
|
" '571510153_02': '동',\n",
|
|
" '571545870_02': '서'}"
|
|
]
|
|
},
|
|
"execution_count": 53,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"\n",
|
|
"# dictionary that maps dire(북) to dir(np.array([0,1]))\n",
|
|
"self.dire2dir = dict()\n",
|
|
"theta = np.pi/2\n",
|
|
"for dire in self.directions:\n",
|
|
" self.dire2dir[dire] = np.array([np.cos(theta), np.sin(theta)])\n",
|
|
" theta -= np.pi/4\n",
|
|
"\n",
|
|
"# dictionary that maps node_id and inc_edge_id to direction(북)\n",
|
|
"self.node_id2inc_edge2dire = dict()\n",
|
|
"for node_id in self.parent_ids:\n",
|
|
" inc_edge2dire = dict()\n",
|
|
" node = self.net.getNode(node_id)\n",
|
|
" inc_edges = [inc_edge.getID() for inc_edge in node.getIncoming()]\n",
|
|
" out_edges = [out_edge.getID() for out_edge in node.getOutgoing()]\n",
|
|
"\n",
|
|
" for inc_edge in inc_edges:\n",
|
|
" inc_dir_true = self.node_id2inc_edge2dir[node_id][inc_edge]\n",
|
|
" inc_dirs = [self.dire2dir[inc_dire] for inc_dire in self.directions]\n",
|
|
" inc_index = np.array([np.dot(inc_dir, inc_dir_true) for inc_dir in inc_dirs]).argmax()\n",
|
|
" print(inc_index)\n",
|
|
" print(self.directions[inc_index])\n",
|
|
" for inc_dir in inc_dirs:\n",
|
|
" print(inc_dir)\n",
|
|
" print(inc_dir_true)\n",
|
|
" print(np.dot(inc_dir, inc_dir_true))\n",
|
|
" print()\n",
|
|
" inc_edge2dire[inc_edge] = self.directions[inc_index]\n",
|
|
" self.node_id2inc_edge2dire[node_id] = inc_edge2dire\n",
|
|
"self.node_id2inc_edge2dire['i0']"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"2-2. 비보호우회전(g)을 배정했습니다.\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"match6 = self.match6.copy()\n",
|
|
"matching = self.matching.copy()\n",
|
|
"self.initialize_state()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 112,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"self.match6 = match6\n",
|
|
"self.matching=matching"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 100,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"2-2. 비보호우회전(g)을 배정했습니다.\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"self.initialize_state()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 101,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"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_dir</th>\n",
|
|
" <th>out_dir</th>\n",
|
|
" <th>inc_angle</th>\n",
|
|
" <th>out_angle</th>\n",
|
|
" <th>inc_edge</th>\n",
|
|
" <th>out_edge</th>\n",
|
|
" <th>node_id</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</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>004</td>\n",
|
|
" <td>-571542797_02</td>\n",
|
|
" <td>571500487_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</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>003</td>\n",
|
|
" <td>176</td>\n",
|
|
" <td>-571500487_01</td>\n",
|
|
" <td>571542797_02</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</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>095</td>\n",
|
|
" <td>-571500487_01</td>\n",
|
|
" <td>571545870_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</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>-571542797_02</td>\n",
|
|
" <td>571510153_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</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>571545870_02</td>\n",
|
|
" <td>571510153_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>...</th>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</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",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</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>359</td>\n",
|
|
" <td>090</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>u60</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</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",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</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",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</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",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"<p>116 rows × 11 columns</p>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no phase_no ring_type move_no inc_dir out_dir inc_angle out_angle \\\n",
|
|
"0 175 1 A 8 남 북 179 004 \n",
|
|
"1 175 1 B 4 북 남 003 176 \n",
|
|
"2 175 2 A 7 북 동 001 095 \n",
|
|
"3 175 2 B 3 남 서 179 270 \n",
|
|
"4 175 3 A 6 동 서 090 270 \n",
|
|
".. ... ... ... ... ... ... ... ... \n",
|
|
"3 210 2 B 2 서 동 270 090 \n",
|
|
"4 210 3 A 7 북 동 359 090 \n",
|
|
"5 210 3 B 4 북 남 000 180 \n",
|
|
"6 210 4 A 8 남 북 180 000 \n",
|
|
"7 210 4 B 3 남 서 180 270 \n",
|
|
"\n",
|
|
" inc_edge out_edge node_id \n",
|
|
"0 -571542797_02 571500487_01 i0 \n",
|
|
"1 -571500487_01 571542797_02 i0 \n",
|
|
"2 -571500487_01 571545870_01 i0 \n",
|
|
"3 -571542797_02 571510153_01 i0 \n",
|
|
"4 571545870_02 571510153_01 i0 \n",
|
|
".. ... ... ... \n",
|
|
"3 NaN NaN u60 \n",
|
|
"4 NaN NaN u60 \n",
|
|
"5 NaN NaN u60 \n",
|
|
"6 NaN NaN u60 \n",
|
|
"7 NaN NaN u60 \n",
|
|
"\n",
|
|
"[116 rows x 11 columns]"
|
|
]
|
|
},
|
|
"execution_count": 101,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"self.match6"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 77,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# node = self.net.getNode(node_id)\n",
|
|
"# conns = list(node.getConnections())\n",
|
|
"# print(node_id)\n",
|
|
"# for con in node.getConnections():\n",
|
|
"# print(con)\n",
|
|
"# print()\n",
|
|
"# for con in conns:\n",
|
|
"# print(con)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 71,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"i0\n",
|
|
"['g', 'r', 'r', 'r', 'g', 'r', 'r', 'r', 'g', 'r', 'r', 'r', 'r', 'r', 'g', 'r', 'r']\n",
|
|
"571545870_02\n",
|
|
"571542797_02\n",
|
|
"<connection from=\"571545870_02\" to=\"571542797_02\" fromLane=\"0\" toLane=\"1\" tl=\"i0\" linkIndex=\"7\" direction=\"l\">\n",
|
|
"['g', 'r', 'r', 'r', 'g', 'r', 'r', 'G', 'g', 'r', 'r', 'r', 'r', 'r', 'g', 'r', 'r']\n",
|
|
"[<sumolib.net.connection.Connection object at 0x0000022B6D65A400>, <sumolib.net.connection.Connection object at 0x0000022B6D65A460>, <sumolib.net.connection.Connection object at 0x0000022B6D65A490>, <sumolib.net.connection.Connection object at 0x0000022B6D65A4C0>, <sumolib.net.connection.Connection object at 0x0000022B6D65AB80>, <sumolib.net.connection.Connection object at 0x0000022B6D65ABB0>, <sumolib.net.connection.Connection object at 0x0000022B6D65ABE0>, <sumolib.net.connection.Connection object at 0x0000022B6D65AC10>, <sumolib.net.connection.Connection object at 0x0000022B6D65AC40>, <sumolib.net.connection.Connection object at 0x0000022B6D65AC70>, <sumolib.net.connection.Connection object at 0x0000022B6D593F10>, <sumolib.net.connection.Connection object at 0x0000022B6D593F40>, <sumolib.net.connection.Connection object at 0x0000022B6D593F70>, <sumolib.net.connection.Connection object at 0x0000022B6D82E7F0>, <sumolib.net.connection.Connection object at 0x0000022B6D82E820>, <sumolib.net.connection.Connection object at 0x0000022B6D82E850>, <sumolib.net.connection.Connection object at 0x0000022B6D82E880>]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"all_conns = list(node.getConnections())\n",
|
|
"allocated_conns = []\n",
|
|
"# display(matching)\n",
|
|
"row = self.matching.iloc[0]\n",
|
|
"node_id = row.node_id\n",
|
|
"move_no = row.move_no\n",
|
|
"inc_edge = row.inc_edge\n",
|
|
"out_edge = row.out_edge\n",
|
|
"state = copy.deepcopy(self.node2init)[node_id]\n",
|
|
"\n",
|
|
"node = self.net.getNode(node_id)\n",
|
|
"\n",
|
|
"print(node_id)\n",
|
|
"print(state)\n",
|
|
"print(inc_edge)\n",
|
|
"print(out_edge)\n",
|
|
"inc_edge = self.net.getEdge(inc_edge)\n",
|
|
"out_edge = self.net.getEdge(out_edge)\n",
|
|
"# incoming edge, outgoing edge가 지정된 이동류에 대하여\n",
|
|
"for conn in inc_edge.getConnections(out_edge):\n",
|
|
" allocated_conns.append(conns)\n",
|
|
" print(conn)\n",
|
|
" index = conn.getTLLinkIndex()\n",
|
|
" if index >= 0:\n",
|
|
" # 신호를 G로 지정\n",
|
|
" state[index] = 'G'\n",
|
|
"print(state)\n",
|
|
"for conn in allocated_conns:\n",
|
|
" print(conn)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 84,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"<junction id=\"c30\"/>"
|
|
]
|
|
},
|
|
"execution_count": 84,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"node_id = self.node_ids[0]\n",
|
|
"node = self.net.getNode(node_id)\n",
|
|
"node"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 121,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"node2conns = dict()\n",
|
|
"node2allocated_conns = dict()\n",
|
|
"for node_id in self.node_ids:\n",
|
|
" node = self.net.getNode(node_id)\n",
|
|
" node2conns[node_id] = list(node.getConnections())\n",
|
|
" node2allocated_conns[node_id] = []"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 120,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"self.match6 = match6\n",
|
|
"self.matching=matching"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 122,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"ename": "KeyError",
|
|
"evalue": "'i0'",
|
|
"output_type": "error",
|
|
"traceback": [
|
|
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
|
"\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
|
|
"Cell \u001b[1;32mIn[122], line 17\u001b[0m\n\u001b[0;32m 15\u001b[0m out_edge \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mnet\u001b[38;5;241m.\u001b[39mgetEdge(out_edge)\n\u001b[0;32m 16\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m conn \u001b[38;5;129;01min\u001b[39;00m inc_edge\u001b[38;5;241m.\u001b[39mgetConnections(out_edge):\n\u001b[1;32m---> 17\u001b[0m \u001b[43mnode2allocated_conns\u001b[49m\u001b[43m[\u001b[49m\u001b[43mnode_id\u001b[49m\u001b[43m]\u001b[49m\u001b[38;5;241m.\u001b[39mappend(conn)\n\u001b[0;32m 18\u001b[0m index \u001b[38;5;241m=\u001b[39m conn\u001b[38;5;241m.\u001b[39mgetTLLinkIndex()\n\u001b[0;32m 19\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m index \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m:\n",
|
|
"\u001b[1;31mKeyError\u001b[0m: 'i0'"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"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",
|
|
" \n",
|
|
"node2allocated_conns = dict()\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 = row.inc_edge\n",
|
|
" out_edge = row.out_edge\n",
|
|
" state = copy.deepcopy(self.node2init)[node_id]\n",
|
|
"\n",
|
|
" if move_no != 21:\n",
|
|
" inc_edge = self.net.getEdge(inc_edge)\n",
|
|
" out_edge = self.net.getEdge(out_edge)\n",
|
|
" for conn in inc_edge.getConnections(out_edge):\n",
|
|
" node2allocated_conns[node_id].append(conn)\n",
|
|
" index = conn.getTLLinkIndex()\n",
|
|
" if index >= 0:\n",
|
|
" state[index] = 'G'\n",
|
|
" self.matching.at[row.Index, 'state'] = ''.join(state)\n",
|
|
"\n",
|
|
"self.matching = self.matching.dropna(subset='state')\n",
|
|
"self.matching = self.matching.reset_index(drop=True)\n",
|
|
"self.matching = self.matching[['inter_no', 'node_id', 'move_no', 'state']]\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"node2allocated_conns"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 57,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"2-3. 직진 및 좌회전(G)을 배정했습니다.\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"self.assign_signals()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 62,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"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_dir</th>\n",
|
|
" <th>out_dir</th>\n",
|
|
" <th>inc_angle</th>\n",
|
|
" <th>out_angle</th>\n",
|
|
" <th>inc_edge</th>\n",
|
|
" <th>out_edge</th>\n",
|
|
" <th>node_id</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</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>004</td>\n",
|
|
" <td>-571542797_02</td>\n",
|
|
" <td>571500487_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</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>003</td>\n",
|
|
" <td>176</td>\n",
|
|
" <td>-571500487_01</td>\n",
|
|
" <td>571542797_02</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</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>095</td>\n",
|
|
" <td>-571500487_01</td>\n",
|
|
" <td>571545870_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</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>-571542797_02</td>\n",
|
|
" <td>571510153_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</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>571545870_02</td>\n",
|
|
" <td>571510153_01</td>\n",
|
|
" <td>i0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>...</th>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</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",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</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>359</td>\n",
|
|
" <td>090</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>u60</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</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",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</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",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</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",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"<p>116 rows × 11 columns</p>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no phase_no ring_type move_no inc_dir out_dir inc_angle out_angle \\\n",
|
|
"0 175 1 A 8 남 북 179 004 \n",
|
|
"1 175 1 B 4 북 남 003 176 \n",
|
|
"2 175 2 A 7 북 동 001 095 \n",
|
|
"3 175 2 B 3 남 서 179 270 \n",
|
|
"4 175 3 A 6 동 서 090 270 \n",
|
|
".. ... ... ... ... ... ... ... ... \n",
|
|
"3 210 2 B 2 서 동 270 090 \n",
|
|
"4 210 3 A 7 북 동 359 090 \n",
|
|
"5 210 3 B 4 북 남 000 180 \n",
|
|
"6 210 4 A 8 남 북 180 000 \n",
|
|
"7 210 4 B 3 남 서 180 270 \n",
|
|
"\n",
|
|
" inc_edge out_edge node_id \n",
|
|
"0 -571542797_02 571500487_01 i0 \n",
|
|
"1 -571500487_01 571542797_02 i0 \n",
|
|
"2 -571500487_01 571545870_01 i0 \n",
|
|
"3 -571542797_02 571510153_01 i0 \n",
|
|
"4 571545870_02 571510153_01 i0 \n",
|
|
".. ... ... ... \n",
|
|
"3 NaN NaN u60 \n",
|
|
"4 NaN NaN u60 \n",
|
|
"5 NaN NaN u60 \n",
|
|
"6 NaN NaN u60 \n",
|
|
"7 NaN NaN u60 \n",
|
|
"\n",
|
|
"[116 rows x 11 columns]"
|
|
]
|
|
},
|
|
"execution_count": 62,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"match6"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 58,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"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>node_id</th>\n",
|
|
" <th>phase_no</th>\n",
|
|
" <th>ring_type</th>\n",
|
|
" <th>move_no</th>\n",
|
|
" <th>state</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>grrrgrrrgGGGGrgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>gGGrgrrrgrrrrrgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>grrGgrrrgrrrrrgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>grrrgrrrgrrrrGgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>grrrgGGrgrrrrrgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>...</th>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>111</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>112</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>113</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>114</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>115</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"<p>116 rows × 6 columns</p>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no node_id phase_no ring_type move_no state\n",
|
|
"0 175 i0 1 A 8 grrrgrrrgGGGGrgrr\n",
|
|
"1 175 i0 1 B 4 gGGrgrrrgrrrrrgrr\n",
|
|
"2 175 i0 2 A 7 grrGgrrrgrrrrrgrr\n",
|
|
"3 175 i0 2 B 3 grrrgrrrgrrrrGgrr\n",
|
|
"4 175 i0 3 A 6 grrrgGGrgrrrrrgrr\n",
|
|
".. ... ... ... ... ... ...\n",
|
|
"111 210 u60 2 B 2 ggggggggr\n",
|
|
"112 210 u60 3 A 7 ggggggggr\n",
|
|
"113 210 u60 3 B 4 ggggggggr\n",
|
|
"114 210 u60 4 A 8 ggggggggr\n",
|
|
"115 210 u60 4 B 3 ggggggggr\n",
|
|
"\n",
|
|
"[116 rows x 6 columns]"
|
|
]
|
|
},
|
|
"execution_count": 58,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"self.match6"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 25,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"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>node_id</th>\n",
|
|
" <th>phase_no</th>\n",
|
|
" <th>ring_type</th>\n",
|
|
" <th>move_no</th>\n",
|
|
" <th>state</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>grrrgrrrgGGGGrgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>gGGrgrrrgrrrrrgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>grrGgrrrgrrrrrgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>grrrgrrrgrrrrGgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>grrrgGGrgrrrrrgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>...</th>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" <td>...</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>111</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>112</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>113</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>114</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>115</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"<p>116 rows × 6 columns</p>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no node_id phase_no ring_type move_no state\n",
|
|
"0 175 i0 1 A 8 grrrgrrrgGGGGrgrr\n",
|
|
"1 175 i0 1 B 4 gGGrgrrrgrrrrrgrr\n",
|
|
"2 175 i0 2 A 7 grrGgrrrgrrrrrgrr\n",
|
|
"3 175 i0 2 B 3 grrrgrrrgrrrrGgrr\n",
|
|
"4 175 i0 3 A 6 grrrgGGrgrrrrrgrr\n",
|
|
".. ... ... ... ... ... ...\n",
|
|
"111 210 u60 2 B 2 ggggggggr\n",
|
|
"112 210 u60 3 A 7 ggggggggr\n",
|
|
"113 210 u60 3 B 4 ggggggggr\n",
|
|
"114 210 u60 4 A 8 ggggggggr\n",
|
|
"115 210 u60 4 B 3 ggggggggr\n",
|
|
"\n",
|
|
"[116 rows x 6 columns]"
|
|
]
|
|
},
|
|
"execution_count": 25,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"self.match6"
|
|
]
|
|
}
|
|
],
|
|
"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
|
|
}
|