|
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import os, sumolib, ast, re\n",
|
|
"import pandas as pd\n",
|
|
"import numpy as np\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"from matplotlib_venn import venn2, venn3"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"path_root = os.path.dirname(os.path.dirname(os.path.abspath('.')))\n",
|
|
"path_raw = os.path.join(path_root, 'data', 'tables', '20240729') # 원본 테이블 위치\n",
|
|
"path_table = os.path.join(path_root, 'test_0731', 'data', 'tables') # 만들 테이블 위치\n",
|
|
"path_intermediates = os.path.join(path_root, 'test_0731', 'intermediates') # match1을 저장할 위치\n",
|
|
"path_net = os.path.join(path_root, 'test_0731', 'data', 'networks', 'new_sungnam_network_internal_target_0721.net.xml') # 네트워크 위치\n",
|
|
"net = sumolib.net.readNet(path_net)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"['(중원구) 스마트교차로_인접진입로 목록.csv',\n",
|
|
" 'signal_node_matching.csv',\n",
|
|
" 'TC_IF_TOD_DAY_PLAN.csv',\n",
|
|
" 'TC_IF_TOD_HOLIDAY_PLAN.csv',\n",
|
|
" 'TC_IF_TOD_RED_YELLO.csv',\n",
|
|
" 'TC_IF_TOD_WEEK_PLAN.csv',\n",
|
|
" 'TL_IF_SIGL.csv',\n",
|
|
" 'TL_IF_SIGL_CYCL.csv',\n",
|
|
" 'TM_FA_CRSRD.csv',\n",
|
|
" 'TN_IF_SIGL_FLOW.csv',\n",
|
|
" 'turn_type_info.csv',\n",
|
|
" 'uturn_data_info.csv']"
|
|
]
|
|
},
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"os.listdir(path_raw)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"inter_nos = {436, 437, 438, 442, 443, 444, 455, 456, 457, 458}\n",
|
|
"inter_nos = inter_nos - {444} # 444는 네트워크에 포함되어 있지 않음"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"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>inter_name</th>\n",
|
|
" <th>inter_lat</th>\n",
|
|
" <th>inter_lon</th>\n",
|
|
" <th>group_no</th>\n",
|
|
" <th>main_phase_no</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>436</td>\n",
|
|
" <td>이배재 사거리</td>\n",
|
|
" <td>37.431661</td>\n",
|
|
" <td>127.179091</td>\n",
|
|
" <td></td>\n",
|
|
" <td></td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>437</td>\n",
|
|
" <td>반포산업 사거리</td>\n",
|
|
" <td>37.431125</td>\n",
|
|
" <td>127.174188</td>\n",
|
|
" <td></td>\n",
|
|
" <td></td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>438</td>\n",
|
|
" <td>코멕스 삼거리</td>\n",
|
|
" <td>37.431525</td>\n",
|
|
" <td>127.172163</td>\n",
|
|
" <td></td>\n",
|
|
" <td></td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>대원 사거리</td>\n",
|
|
" <td>37.433410</td>\n",
|
|
" <td>127.159925</td>\n",
|
|
" <td></td>\n",
|
|
" <td></td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>443</td>\n",
|
|
" <td>자이아파트 삼거리</td>\n",
|
|
" <td>37.432376</td>\n",
|
|
" <td>127.157714</td>\n",
|
|
" <td></td>\n",
|
|
" <td></td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>455</td>\n",
|
|
" <td>금광중 후문</td>\n",
|
|
" <td>37.447485</td>\n",
|
|
" <td>127.171031</td>\n",
|
|
" <td></td>\n",
|
|
" <td></td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>456</td>\n",
|
|
" <td>하원초교 삼거리</td>\n",
|
|
" <td>37.447184</td>\n",
|
|
" <td>127.169608</td>\n",
|
|
" <td></td>\n",
|
|
" <td></td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>457</td>\n",
|
|
" <td>신구대 사거리</td>\n",
|
|
" <td>37.446709</td>\n",
|
|
" <td>127.167303</td>\n",
|
|
" <td></td>\n",
|
|
" <td></td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>458</td>\n",
|
|
" <td>금광2동사무소 단일로</td>\n",
|
|
" <td>37.446106</td>\n",
|
|
" <td>127.164491</td>\n",
|
|
" <td></td>\n",
|
|
" <td></td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no inter_name inter_lat inter_lon group_no main_phase_no\n",
|
|
"0 436 이배재 사거리 37.431661 127.179091 \n",
|
|
"1 437 반포산업 사거리 37.431125 127.174188 \n",
|
|
"2 438 코멕스 삼거리 37.431525 127.172163 \n",
|
|
"3 442 대원 사거리 37.433410 127.159925 \n",
|
|
"4 443 자이아파트 삼거리 37.432376 127.157714 \n",
|
|
"5 455 금광중 후문 37.447485 127.171031 \n",
|
|
"6 456 하원초교 삼거리 37.447184 127.169608 \n",
|
|
"7 457 신구대 사거리 37.446709 127.167303 \n",
|
|
"8 458 금광2동사무소 단일로 37.446106 127.164491 "
|
|
]
|
|
},
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# inter_info\n",
|
|
"inter_info = pd.read_csv(os.path.join(path_raw, '(중원구) 스마트교차로_인접진입로 목록.csv'))\n",
|
|
"rename_dict = {'교차로ID':'inter_no', '교차로명':'inter_name',\n",
|
|
" '위도(WGS84)':'inter_lat', '경도(WGS84)':'inter_lon'}\n",
|
|
"inter_info = inter_info[list(rename_dict)]\n",
|
|
"inter_info = inter_info.rename(columns=rename_dict)\n",
|
|
"inter_info = inter_info[inter_info.inter_no.isin(inter_nos)].reset_index(drop=True)\n",
|
|
"inter_info['group_no'] = ''\n",
|
|
"inter_info['main_phase_no'] = ''\n",
|
|
"inter_info"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"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>inter_type</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>436</td>\n",
|
|
" <td>109836</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>437</td>\n",
|
|
" <td>109986</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>438</td>\n",
|
|
" <td>106350</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>106332</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>443</td>\n",
|
|
" <td>108769</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>455</td>\n",
|
|
" <td>109901</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>456</td>\n",
|
|
" <td>106231</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>457</td>\n",
|
|
" <td>106234</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>458</td>\n",
|
|
" <td>106238</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no node_id inter_type\n",
|
|
"0 436 109836 parent\n",
|
|
"1 437 109986 parent\n",
|
|
"2 438 106350 parent\n",
|
|
"3 442 106332 parent\n",
|
|
"4 443 108769 parent\n",
|
|
"5 455 109901 parent\n",
|
|
"6 456 106231 parent\n",
|
|
"7 457 106234 parent\n",
|
|
"8 458 106238 parent"
|
|
]
|
|
},
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"# inter_node\n",
|
|
"inter_node = pd.read_csv(os.path.join(path_raw, 'signal_node_matching.csv'), dtype={'node_id':str})\n",
|
|
"inter_node = inter_node.rename(columns={'signal_id':'inter_no'})\n",
|
|
"inter_node['inter_type'] = 'parent'\n",
|
|
"inter_node = inter_node[inter_node.inter_no.isin(inter_nos)].reset_index(drop=True)\n",
|
|
"inter_node"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"True\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# 일대일대응 확인\n",
|
|
"print(len(inter_node) == inter_node.inter_no.nunique() == inter_node.node_id.nunique())\n",
|
|
"# 교차로번호 vs 노드id 간 딕셔너리\n",
|
|
"inter2node = dict(zip(inter_node.inter_no, inter_node.node_id))\n",
|
|
"node2inter = dict(zip(inter_node.node_id, inter_node.inter_no))\n",
|
|
"node_ids = {inter2node[inter_no] for inter_no in inter_nos}"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"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>STOS_NO</th>\n",
|
|
" <th>angle_code</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>436</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>262358</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>436</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>262074</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>436</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>174355</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>436</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>172263</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>436</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>356074</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>436</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>355175</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>436</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>071263</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>436</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>074172</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>437</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>092287</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>437</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>264085</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>437</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>270357</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>437</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>085202</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>437</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>201357</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>437</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>210276</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>437</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>357089</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>437</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>001205</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>16</th>\n",
|
|
" <td>438</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>100277</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>438</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>276098</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>438</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>274342</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>438</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>101181</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>20</th>\n",
|
|
" <td>438</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>183340</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>21</th>\n",
|
|
" <td>438</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>182276</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>22</th>\n",
|
|
" <td>438</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>347099</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>23</th>\n",
|
|
" <td>438</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>348186</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>24</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>099260</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>25</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>097158</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>26</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>094263</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>27</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>264099</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>28</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>265321</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>29</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>262099</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>30</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>320096</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>31</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>318156</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>32</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>151320</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>33</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>155267</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>34</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>154317</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>35</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>152265</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>36</th>\n",
|
|
" <td>443</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>041225</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>37</th>\n",
|
|
" <td>443</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>225041</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>38</th>\n",
|
|
" <td>443</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>222320</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>39</th>\n",
|
|
" <td>443</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>221043</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>40</th>\n",
|
|
" <td>443</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>321039</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>41</th>\n",
|
|
" <td>443</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>18</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>None</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>42</th>\n",
|
|
" <td>455</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>073257</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>43</th>\n",
|
|
" <td>455</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>255076</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>44</th>\n",
|
|
" <td>456</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>257043</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>45</th>\n",
|
|
" <td>456</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>259078</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>46</th>\n",
|
|
" <td>456</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>074258</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>47</th>\n",
|
|
" <td>456</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>256076</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>48</th>\n",
|
|
" <td>456</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>040077</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>49</th>\n",
|
|
" <td>456</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>17</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>None</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>50</th>\n",
|
|
" <td>457</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>076260</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>51</th>\n",
|
|
" <td>457</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>257075</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>52</th>\n",
|
|
" <td>457</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>257347</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>53</th>\n",
|
|
" <td>457</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>075166</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>54</th>\n",
|
|
" <td>457</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>17</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>None</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>55</th>\n",
|
|
" <td>457</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>17</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>None</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>56</th>\n",
|
|
" <td>457</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>163346</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>57</th>\n",
|
|
" <td>457</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>162258</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>58</th>\n",
|
|
" <td>457</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>343079</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>59</th>\n",
|
|
" <td>457</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>B</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>344164</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no phase_no ring_type move_no STOS_NO angle_code\n",
|
|
"0 436 1 A 5 0 262358\n",
|
|
"1 436 1 B 2 0 262074\n",
|
|
"2 436 2 A 8 0 174355\n",
|
|
"3 436 2 B 3 0 172263\n",
|
|
"4 436 3 A 7 0 356074\n",
|
|
"5 436 3 B 4 0 355175\n",
|
|
"6 436 4 A 6 0 071263\n",
|
|
"7 436 4 B 1 0 074172\n",
|
|
"8 437 1 A 6 0 092287\n",
|
|
"9 437 1 B 2 0 264085\n",
|
|
"10 437 2 A 5 0 270357\n",
|
|
"11 437 2 B 1 0 085202\n",
|
|
"12 437 3 A 8 0 201357\n",
|
|
"13 437 3 B 3 0 210276\n",
|
|
"14 437 4 A 7 0 357089\n",
|
|
"15 437 4 B 4 0 001205\n",
|
|
"16 438 1 A 6 0 100277\n",
|
|
"17 438 1 B 2 0 276098\n",
|
|
"18 438 2 A 5 0 274342\n",
|
|
"19 438 2 B 1 0 101181\n",
|
|
"20 438 3 A 8 0 183340\n",
|
|
"21 438 3 B 3 0 182276\n",
|
|
"22 438 4 A 7 0 347099\n",
|
|
"23 438 4 B 4 0 348186\n",
|
|
"24 442 1 A 6 0 099260\n",
|
|
"25 442 1 B 1 0 097158\n",
|
|
"26 442 2 A 6 0 094263\n",
|
|
"27 442 2 B 2 0 264099\n",
|
|
"28 442 3 A 5 0 265321\n",
|
|
"29 442 3 B 2 0 262099\n",
|
|
"30 442 4 A 7 0 320096\n",
|
|
"31 442 4 B 4 0 318156\n",
|
|
"32 442 5 A 8 0 151320\n",
|
|
"33 442 5 B 3 0 155267\n",
|
|
"34 442 6 A 8 0 154317\n",
|
|
"35 442 6 B 3 0 152265\n",
|
|
"36 443 1 A 6 0 041225\n",
|
|
"37 443 1 B 2 0 225041\n",
|
|
"38 443 2 A 5 0 222320\n",
|
|
"39 443 2 B 2 0 221043\n",
|
|
"40 443 3 A 7 0 321039\n",
|
|
"41 443 3 B 18 0 None\n",
|
|
"42 455 1 A 6 0 073257\n",
|
|
"43 455 1 B 2 0 255076\n",
|
|
"44 456 1 A 5 0 257043\n",
|
|
"45 456 1 B 2 0 259078\n",
|
|
"46 456 2 A 6 0 074258\n",
|
|
"47 456 2 B 2 0 256076\n",
|
|
"48 456 3 A 7 0 040077\n",
|
|
"49 456 4 A 17 0 None\n",
|
|
"50 457 1 A 6 0 076260\n",
|
|
"51 457 1 B 2 0 257075\n",
|
|
"52 457 2 A 5 0 257347\n",
|
|
"53 457 2 B 1 0 075166\n",
|
|
"54 457 3 A 17 0 None\n",
|
|
"55 457 3 B 17 0 None\n",
|
|
"56 457 4 A 8 0 163346\n",
|
|
"57 457 4 B 3 0 162258\n",
|
|
"58 457 5 A 7 0 343079\n",
|
|
"59 457 5 B 4 0 344164"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# angle\n",
|
|
"angle = pd.read_csv(os.path.join(path_raw, 'TN_IF_SIGL_FLOW.csv'))\n",
|
|
"angle = angle.rename(columns={'CRSRD_ID':'inter_no', 'PHASE':'phase_no',\n",
|
|
" 'RING':'ring_type', 'FLOW_NO':'move_no'})\n",
|
|
"# angle = angle.drop(columns=['STOS_NO'])\n",
|
|
"angle = angle[angle.move_no.isin(range(1,19))]\n",
|
|
"angle = angle[angle.inter_no.isin(inter_nos)]\n",
|
|
"angle = angle.reset_index(drop=True)\\\n",
|
|
" .sort_values(by=['inter_no', 'phase_no', 'ring_type']).reset_index(drop=True)\n",
|
|
"# display(angle[:60])\n",
|
|
"for ind, row in angle.iterrows():\n",
|
|
" arrow = row.SIGL_ARROW\n",
|
|
"\n",
|
|
" # 위경도 추출\n",
|
|
" # arrow = re.findall(r'-?\\d+\\.?\\d*', arrow)\n",
|
|
" arrow = [coord.lstrip(' ') for coord in arrow.split(',')]\n",
|
|
" arrow = [coord.lstrip('[') for coord in arrow]\n",
|
|
" arrow = [coord.rstrip(']') for coord in arrow]\n",
|
|
" exists = all([bool(coord) for coord in arrow])\n",
|
|
" if exists:\n",
|
|
" y1, x1, y2, x2, y3, x3 = arrow\n",
|
|
"\n",
|
|
" # print(x1, y1, x2, y2, x3, y3)\n",
|
|
"\n",
|
|
" # 미터 단위로 변환\n",
|
|
" x1, y1 = net.convertLonLat2XY(x1, y1)\n",
|
|
" x2, y2 = net.convertLonLat2XY(x2, y2)\n",
|
|
" x3, y3 = net.convertLonLat2XY(x3, y3)\n",
|
|
"\n",
|
|
" # # 시각화\n",
|
|
" # plt.scatter(x1, y1, color='red')\n",
|
|
" # plt.scatter(x2, y2, color='orange')\n",
|
|
" # plt.scatter(x3, y3, color='yellow')\n",
|
|
" # plt.axis('equal')\n",
|
|
" # plt.show()\n",
|
|
"\n",
|
|
" # 진입각, 진출각 설정\n",
|
|
" inc_angle = np.arctan2(y1 - y2, x1 - x2)\n",
|
|
" out_angle = np.arctan2(y3 - y2, x3 - x2)\n",
|
|
" inc_angle = inc_angle * 180 / np.pi\n",
|
|
" out_angle = out_angle * 180 / np.pi\n",
|
|
" inc_angle = int((90 - inc_angle) % 360)\n",
|
|
" out_angle = int((90 - out_angle) % 360)\n",
|
|
"\n",
|
|
" # 각도코드 설정\n",
|
|
" angle_code = str(inc_angle).zfill(3) + str(out_angle).zfill(3)\n",
|
|
" # print(angle_code)\n",
|
|
" angle.loc[ind, 'angle_code'] = angle_code\n",
|
|
" else:\n",
|
|
" angle.loc[ind, 'angle_code'] = None\n",
|
|
"# angle = angle[['inter_no', 'phase_no', 'ring_type', 'move_no', 'angle_code', 'SIGL_ARROW']]\n",
|
|
"angle = angle.drop(columns='SIGL_ARROW')\n",
|
|
"display(angle[:60])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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PgCApMQHAJCU+AAAkhIfAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJISHwBAUi0eH/PmzYuioqKYMmVKSy8FALQCLRofmzdvjnvuuSfOOuusllwGAGhFWiw+Dh06FOPHj4977703Tj755JZaBgBoZVosPqqqqmLMmDExcuTIj9yvvr4+6urqmt0AgLaruCWe9KGHHoqamprYvHnzx+5bXV0dc+fObYkxAIDjUO5XPvbu3RuTJ0+OBx54IDp27Pix+8+aNStqa2ubbnv37s17JADgOJL7lY+tW7fGgQMH4pxzzmna1tDQEOvWrYu777476uvro3379k2PlZSURElJSd5jAADHqdzj45JLLomXXnqp2baJEydGv379YsaMGc3CAwA48eQeH6WlpTFgwIBm2zp37hzdunU7ajsAcOLxG04BgKRa5NMuH7RmzZoUywAArYArHwBAUuIDAEhKfAAASYkPACAp8QEAJCU+AICkxAcAkJT4AACSEh8AQFLiAwBISnwAAEmJDwAgKfEBACQlPgCApMQHAJCU+AAAkhIfAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJISHwBAUuIDAEhKfAAASYkPACAp8QEAJCU+AICkxAcAkJT4AACSEh8AQFLiAwBISnwAAEmJDwAgKfEBACQlPgCApMQHAJCU+AAAkhIfAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJISHwBAUuIDAEhKfAAASYkPACAp8QEAJJV7fFRXV8fQoUOjtLQ0unfvHuPGjYsdO3bkvQwA0ErlHh9r166Nqqqq2LBhQ6xatSqOHDkSl156aRw+fDjvpQCAVqg47ydcuXJls/v3339/dO/ePbZu3RoXXnhh3ssBAK1M7vHxQbW1tRER0bVr12M+Xl9fH/X19U336+rqWnokAKCAWvQNp42NjTFlypQYMWJEDBgw4Jj7VFdXR1lZWdOtoqKiJUcCAAqsReOjqqoqtm/fHg899NCH7jNr1qyora1tuu3du7clRwIACqzFXna58cYb44knnoh169bFqaee+qH7lZSURElJSUuNAQAcZ3KPjyzL4ic/+UksX7481qxZE5WVlXkvAQC0YrnHR1VVVSxbtiweffTRKC0tjX379kVERFlZWXTq1Cnv5QCAVib393ws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mDJlSowYMSIGDBhQ6HFy89BDD0VNTU1UV1cXepQW8eqrr8aiRYuib9++8fTTT8ePfvSjmDRpUixdurTQo+Vi5syZce2110a/fv3ipJNOisGDB8eUKVNi/PjxhR4td++fV06Uc05ExLvvvhszZsyI73znO23my9jmz58fxcXFMWnSpEKPkrsDBw7EoUOHYt68efHNb34z/vSnP8W3vvWtuPLKK2Pt2rVJZmiRX69O4VRVVcX27dvj2WefLfQoudm7d29Mnjw5Vq1ale71yMQaGxtjyJAhcdttt0VExODBg2P79u2xePHimDBhQoGn+/weeeSReOCBB2LZsmXRv3//2LZtW0yZMiXKy8vbxPGdyI4cORJXX311ZFkWixYtKvQ4udi6dWv89re/jZqamigqKir0OLlrbGyMiIgrrrgipk6dGhERZ599djz33HOxePHiuOiii1p8hjZ/5eOUU06J9u3bx/79+5tt379/f/Ts2bNAU7WMG2+8MZ544ol45pln4tRTTy30OLnZunVrHDhwIM4555woLi6O4uLiWLt2bdx5551RXFwcDQ0NhR7xc+vVq1eceeaZzbadccYZyd553tKmT5/edPVj4MCBcf3118fUqVPb5JWs988rJ8I55/3w2LNnT6xatarNXPX461//GgcOHIjevXs3nXP27NkTP/3pT6NPnz6FHu9zO+WUU6K4uLig55w2Hx8dOnSIc889N1avXt20rbGxMVavXh3nnXdeASfLT5ZlceONN8by5cvjL3/5S1RWVhZ6pFxdcskl8dJLL8W2bduabkOGDInx48fHtm3bon379oUe8XMbMWLEUR+P3rlzZ5x22mkFmihf77zzTrRr1/x00759+6b/A2tLKisro2fPns3OOXV1dbFx48Y2c86J+P/hsWvXrvjzn/8c3bp1K/RIubn++uvjxRdfbHbOKS8vj+nTp8fTTz9d6PE+tw4dOsTQoUMLes45IV52mTZtWkyYMCGGDBkSw4YNiwULFsThw4dj4sSJhR4tF1VVVbFs2bJ49NFHo7S0tOl15bKysujUqVOBp/v8SktLj3r/SufOnaNbt25t5n0tU6dOjfPPPz9uu+22uPrqq2PTpk2xZMmSWLJkSaFHy8XYsWPj1ltvjd69e0f//v3j+eefjzvuuCNuuOGGQo/2mRw6dCheeeWVpvu7d++Obdu2RdeuXaN3794xZcqUuOWWW6Jv375RWVkZs2fPjvLy8hg3blzhhv6UPuoYe/XqFd/+9rejpqYmnnjiiWhoaGg673Tt2jU6dOhQqLE/sY/7GX4wpk466aTo2bNnfP3rX0896mfyccc3ffr0uOaaa+LCCy+Miy++OFauXBmPP/54rFmzJs2ABfucTWJ33XVX1rt376xDhw7ZsGHDsg0bNhR6pNxExDFv9913X6FHazFt7aO2WZZljz/+eDZgwICspKQk69evX7ZkyZJCj5Sburq6bPLkyVnv3r2zjh07Zl/5yleyX/ziF1l9fX2hR/tMnnnmmWP+nZswYUKWZf/9uO3s2bOzHj16ZCUlJdkll1yS7dixo7BDf0ofdYy7d+/+0PPOM888U+jRP5GP+xl+UGv7qO0nOb7f/e532Ve/+tWsY8eO2aBBg7IVK1Ykm68oy1rprxgEAFqlNv+eDwDg+CI+AICkxAcAkJT4AACSEh8AQFLiAwBISnwAAEmJDwAgKfEBACQlPgCApMQHAJCU+AAAkvp/OIXRuiQ1blsAAAAASUVORK5CYII=",
|
|
"text/plain": [
|
|
"<Figure size 640x480 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"plt.hist(angle['move_no'], bins=range(0,17))\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# for row in angle.itertuples():\n",
|
|
"# arrow = row.SIGL_ARROW\n",
|
|
"# # 위경도 추출\n",
|
|
"# # arrow = re.findall(r'-?\\d+\\.?\\d*', arrow)\n",
|
|
"# arrow = [coord.lstrip(' ') for coord in arrow.split(',')]\n",
|
|
"# arrow = [coord.lstrip('[') for coord in arrow]\n",
|
|
"# arrow = [coord.rstrip(']') for coord in arrow]\n",
|
|
"# exists = all([bool(coord) for coord in arrow])\n",
|
|
"# if exists:\n",
|
|
"# y1, x1, y2, x2, y3, x3 = arrow\n",
|
|
"\n",
|
|
"# # 미터 단위로 변환\n",
|
|
"# x1, y1 = net.convertLonLat2XY(x1, y1)\n",
|
|
"# x2, y2 = net.convertLonLat2XY(x2, y2)\n",
|
|
"# x3, y3 = net.convertLonLat2XY(x3, y3)\n",
|
|
"\n",
|
|
"# # # 시각화\n",
|
|
"# # plt.plot([x1, x2], [y1, y2], color='red')\n",
|
|
"# # plt.plot([x2, x3], [y2, y3], color='blue')\n",
|
|
"# # plt.scatter(x1, y1, color='k')\n",
|
|
"# # plt.scatter(x2, y2, color='k')\n",
|
|
"# # plt.scatter(x3, y3, color='k')\n",
|
|
"# # plt.axis('equal')\n",
|
|
"# # plt.title(f'inter_no : {row.inter_no}, ring_type : {row.ring_type}, move_no : {row.move_no}, angle_code : {row.angle_code}')\n",
|
|
"# # plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"attachments": {
|
|
"image.png": {
|
|
"image/png": "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"
|
|
}
|
|
},
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# from matplotlib_venn import venn2\n",
|
|
"# node_ids_net = set(node.getID() for node in net.getNodes())\n",
|
|
"# node_ids_IN = {str(node_id) for node_id in inter_node.node_id.unique()}\n",
|
|
"# # for node_id in node_ids_net & node_ids_IN:\n",
|
|
"# # try:\n",
|
|
"# # node2inter[node_id]\n",
|
|
"# # except KeyError as e:\n",
|
|
"# # print(e)\n",
|
|
"# inter_nos_IN_net = {node2inter[node_id] for node_id in node_ids_net & node_ids_IN}\n",
|
|
"# # print(node_ids_net)\n",
|
|
"# # print(node_ids_IN)\n",
|
|
"# # venn2([node_ids_net, node_ids_IN])\n",
|
|
"# # plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# # inter_no가 등장하는 세 테이블 (inter_info, inter_node, angle)에서 inter_no 교집합 설정 후 적용\n",
|
|
"# inter_nos_inter_info = {int(inter_no) for inter_no in inter_info.inter_no.unique()}\n",
|
|
"# inter_nos_IN_net = {int(inter_no) for inter_no in inter_node.inter_no.unique()}\n",
|
|
"# inter_nos_angle = {int(inter_no) for inter_no in angle.inter_no.unique()}\n",
|
|
"\n",
|
|
"# inter_nos = inter_nos_inter_info & inter_nos_IN_net & inter_nos_angle\n",
|
|
"\n",
|
|
"# inter_info = inter_info[inter_info.inter_no.isin(inter_nos)]\n",
|
|
"# inter_node = inter_node[inter_node.inter_no.isin(inter_nos)]\n",
|
|
"# angle = angle[angle.inter_no.isin(inter_nos)]\n",
|
|
"# angle = angle[['inter_no', 'move_no', 'angle_code']]\n",
|
|
"\n",
|
|
"# inter_info.to_csv(os.path.join(path_table, 'inter_info.csv'), index=False)\n",
|
|
"# inter_node.to_csv(os.path.join(path_table, 'inter_node.csv'), index=False)\n",
|
|
"# angle.to_csv(os.path.join(path_table, 'angle.csv'), index=False)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"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>node_id</th>\n",
|
|
" <th>inc_edge_id</th>\n",
|
|
" <th>out_edge_id</th>\n",
|
|
" <th>turn_type</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>106231</td>\n",
|
|
" <td>513136</td>\n",
|
|
" <td>513137</td>\n",
|
|
" <td>straight</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>106231</td>\n",
|
|
" <td>513136</td>\n",
|
|
" <td>513139</td>\n",
|
|
" <td>left</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>106231</td>\n",
|
|
" <td>513138</td>\n",
|
|
" <td>513135</td>\n",
|
|
" <td>straight</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>106231</td>\n",
|
|
" <td>513140</td>\n",
|
|
" <td>513137</td>\n",
|
|
" <td>left</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>106234</td>\n",
|
|
" <td>513152</td>\n",
|
|
" <td>513153</td>\n",
|
|
" <td>left</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" node_id inc_edge_id out_edge_id turn_type\n",
|
|
"0 106231 513136 513137 straight\n",
|
|
"1 106231 513136 513139 left\n",
|
|
"2 106231 513138 513135 straight\n",
|
|
"3 106231 513140 513137 left\n",
|
|
"4 106234 513152 513153 left"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"turn_type = pd.read_csv(os.path.join(path_raw, 'turn_type_info.csv'), dtype=str)\n",
|
|
"turn_type = turn_type[turn_type.node_id.isin(node_ids)].reset_index(drop=True)\n",
|
|
"display(turn_type.head())"
|
|
]
|
|
},
|
|
{
|
|
"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>node_id</th>\n",
|
|
" <th>inc_edge_id</th>\n",
|
|
" <th>out_edge_id</th>\n",
|
|
" <th>turn_type</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>109986</td>\n",
|
|
" <td>513785</td>\n",
|
|
" <td>513842</td>\n",
|
|
" <td>straight</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>106238</td>\n",
|
|
" <td>513189</td>\n",
|
|
" <td>513192</td>\n",
|
|
" <td>straight</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>106238</td>\n",
|
|
" <td>513189</td>\n",
|
|
" <td>513194</td>\n",
|
|
" <td>left</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>106238</td>\n",
|
|
" <td>513193</td>\n",
|
|
" <td>513188</td>\n",
|
|
" <td>straight</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>106238</td>\n",
|
|
" <td>513193</td>\n",
|
|
" <td>513190</td>\n",
|
|
" <td>left</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" node_id inc_edge_id out_edge_id turn_type\n",
|
|
"0 109986 513785 513842 straight\n",
|
|
"1 106238 513189 513192 straight\n",
|
|
"2 106238 513189 513194 left\n",
|
|
"3 106238 513193 513188 straight\n",
|
|
"4 106238 513193 513190 left"
|
|
]
|
|
},
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"from io import StringIO\n",
|
|
"new_data = \\\n",
|
|
"'''109986,\t513785,\t513842,\tstraight\n",
|
|
"106238,\t513189,\t513192,\tstraight\n",
|
|
"106238,\t513189,\t513194,\tleft\n",
|
|
"106238,\t513193,\t513188,\tstraight\n",
|
|
"106238,\t513193,\t513190,\tleft\n",
|
|
"106238,\t513191,\t513194,\tstraight\n",
|
|
"106238,\t513191,\t513188,\tleft\n",
|
|
"106238,\t513195,\t513190,\tstraight\n",
|
|
"106238,\t513195,\t513192,\tleft\n",
|
|
"106332,\t519824,\t513729,\tstraight\n",
|
|
"106332,\t519824,\t513731,\tstraight\n",
|
|
"106332,\t519824,\t513733,\tleft\n",
|
|
"106332,\t519824,\t513726,\tleft\n",
|
|
"106332,\t513730,\t513726,\tstraight\n",
|
|
"106332,\t513730,\t513728,\tleft\n",
|
|
"106332,\t513732,\t513728,\tstraight\n",
|
|
"106332,\t513732,\t513729,\tleft\n",
|
|
"106332,\t513734,\t513729,\tstraight\n",
|
|
"106332,\t513734,\t513731,\tleft\n",
|
|
"106332,\t513727,\t513729,\tstraight\n",
|
|
"106332,\t513727,\t513731,\tleft\n",
|
|
"106350,\t513817,\t513811,\tstraight\n",
|
|
"106350,\t513792,\t513816,\tleft\n",
|
|
"106350,\t513810,\t513816,\tstraight\n",
|
|
"106350,\t513810,\t513793,\tleft\n",
|
|
"109836,\t517003,\t517504,\tstraight\n",
|
|
"109836,\t517003,\t517506,\tleft\n",
|
|
"109836,\t517002,\t517506,\tstraight\n",
|
|
"109836,\t517002,\t517004,\tleft\n",
|
|
"109836,\t517505,\t517004,\tstraight\n",
|
|
"109836,\t517505,\t517507,\tleft\n",
|
|
"109836,\t517509,\t517507,\tstraight\n",
|
|
"109836,\t517509,\t517504,\tleft\n",
|
|
"109901,\t513580,\t513581,\tstraight\n",
|
|
"109901,\t513582,\t513584,\tstraight\n",
|
|
"'''\n",
|
|
"\n",
|
|
"new_data_cleaned = \"\\n\".join([\",\".join([col.strip() for col in row.split(\",\")]) for row in new_data.strip().split(\"\\n\")])\n",
|
|
"new_data_io = StringIO(new_data_cleaned)\n",
|
|
"new_df = pd.read_csv(new_data_io, sep=\",\", header=None, names=['node_id', 'inc_edge_id', 'out_edge_id', 'turn_type'])\n",
|
|
"new_df.head()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"turn_type = pd.concat([turn_type, new_df])\n",
|
|
"turn_type.to_csv(os.path.join(path_table, 'turn_type.csv'), index=False)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"uturn = pd.read_csv(os.path.join(path_raw, 'uturn_data_info.csv'), dtype=str)\n",
|
|
"indices_to_be_removed = uturn.loc[((uturn.inc_edge_id=='514814')&(uturn.out_edge_id=='514823')) |\n",
|
|
" ((uturn.inc_edge_id=='513124')&(uturn.out_edge_id=='513354'))].index\n",
|
|
"uturn = uturn.drop(indices_to_be_removed).reset_index(drop=True)\n",
|
|
"uturn = uturn[uturn.parent_id.isin(node_ids)]\n",
|
|
"uturn = uturn.replace({'515844':'517055'})\n",
|
|
"uturn.to_csv(os.path.join(path_table, 'uturn.csv'), index=False)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"u_condition = uturn[['child_id']].copy()\n",
|
|
"u_condition['condition'] = '좌회전시'\n",
|
|
"u_condition.to_csv(os.path.join(path_table, 'u_condition.csv'), index=False)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"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>parent_id</th>\n",
|
|
" <th>child_id</th>\n",
|
|
" <th>adj_inc_edge_id</th>\n",
|
|
" <th>adj_out_edge_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>106231</td>\n",
|
|
" <td>109295</td>\n",
|
|
" <td>513136</td>\n",
|
|
" <td>513135</td>\n",
|
|
" <td>519797</td>\n",
|
|
" <td>519796</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>106234</td>\n",
|
|
" <td>109296</td>\n",
|
|
" <td>513152</td>\n",
|
|
" <td>513151</td>\n",
|
|
" <td>519799</td>\n",
|
|
" <td>519798</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>106234</td>\n",
|
|
" <td>109297</td>\n",
|
|
" <td>513156</td>\n",
|
|
" <td>513155</td>\n",
|
|
" <td>519801</td>\n",
|
|
" <td>519800</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>108769</td>\n",
|
|
" <td>109333</td>\n",
|
|
" <td>513862</td>\n",
|
|
" <td>513863</td>\n",
|
|
" <td>519873</td>\n",
|
|
" <td>519874</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>109986</td>\n",
|
|
" <td>107587</td>\n",
|
|
" <td>517054</td>\n",
|
|
" <td>512766</td>\n",
|
|
" <td>516929</td>\n",
|
|
" <td>517055</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>109986</td>\n",
|
|
" <td>109313</td>\n",
|
|
" <td>513841</td>\n",
|
|
" <td>513840</td>\n",
|
|
" <td>519834</td>\n",
|
|
" <td>519833</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" parent_id child_id adj_inc_edge_id adj_out_edge_id inc_edge_id out_edge_id\n",
|
|
"0 106231 109295 513136 513135 519797 519796\n",
|
|
"1 106234 109296 513152 513151 519799 519798\n",
|
|
"2 106234 109297 513156 513155 519801 519800\n",
|
|
"6 108769 109333 513862 513863 519873 519874\n",
|
|
"14 109986 107587 517054 512766 516929 517055\n",
|
|
"15 109986 109313 513841 513840 519834 519833"
|
|
]
|
|
},
|
|
"execution_count": 18,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"uturn"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"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>inter_type</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>436</td>\n",
|
|
" <td>109836</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>437</td>\n",
|
|
" <td>109986</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>438</td>\n",
|
|
" <td>106350</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>442</td>\n",
|
|
" <td>106332</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>443</td>\n",
|
|
" <td>108769</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>455</td>\n",
|
|
" <td>109901</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>456</td>\n",
|
|
" <td>106231</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>457</td>\n",
|
|
" <td>106234</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>458</td>\n",
|
|
" <td>106238</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no node_id inter_type\n",
|
|
"0 436 109836 parent\n",
|
|
"1 437 109986 parent\n",
|
|
"2 438 106350 parent\n",
|
|
"3 442 106332 parent\n",
|
|
"4 443 108769 parent\n",
|
|
"5 455 109901 parent\n",
|
|
"6 456 106231 parent\n",
|
|
"7 457 106234 parent\n",
|
|
"8 458 106238 parent"
|
|
]
|
|
},
|
|
"execution_count": 19,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"inter_node"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"new_rows = []\n",
|
|
"for row in uturn.itertuples():\n",
|
|
" parent_id = row.parent_id\n",
|
|
" child_id = row.child_id\n",
|
|
" inter_no = node2inter[parent_id]\n",
|
|
" new_row = pd.DataFrame({'inter_no':[inter_no], 'node_id':[child_id], 'inter_type':['child']})\n",
|
|
" new_rows.append(new_row)\n",
|
|
"inter_node = pd.concat([inter_node, *new_rows]).reset_index(drop=True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# angle = angle[['inter_no', 'move_no', 'STOS_NO', 'angle_code']]\n",
|
|
"\n",
|
|
"inter_info.to_csv(os.path.join(path_table, 'inter_info.csv'), index=False)\n",
|
|
"inter_node.to_csv(os.path.join(path_table, 'inter_node.csv'), index=False)\n",
|
|
"angle.to_csv(os.path.join(path_table, 'angle.csv'), index=False)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 22,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"error (np.int64(456), np.int64(3))\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>inter_no</th>\n",
|
|
" <th>phase_no</th>\n",
|
|
" <th>ring_type</th>\n",
|
|
" <th>move_no</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>60</th>\n",
|
|
" <td>456</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>7</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no phase_no ring_type move_no\n",
|
|
"60 456 3 A 7"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"error (np.int64(456), np.int64(4))\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>inter_no</th>\n",
|
|
" <th>phase_no</th>\n",
|
|
" <th>ring_type</th>\n",
|
|
" <th>move_no</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>62</th>\n",
|
|
" <td>456</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>A</td>\n",
|
|
" <td>17</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no phase_no ring_type move_no\n",
|
|
"62 456 4 A 17"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"match1 = pd.read_csv(os.path.join(path_raw, 'TN_IF_SIGL_FLOW.csv'))\n",
|
|
"match1 = match1[['CRSRD_ID', 'PHASE', 'RING', 'FLOW_NO']]\n",
|
|
"match1 = match1.rename(columns={'CRSRD_ID':'inter_no', 'PHASE':'phase_no', 'RING':'ring_type', 'FLOW_NO':'move_no'})\n",
|
|
"match1 = match1.sort_values(by=['inter_no', 'phase_no', 'ring_type']).reset_index(drop=True)\n",
|
|
"match1 = match1[match1.move_no.isin(range(1,19))]\n",
|
|
"match1 = match1[match1.inter_no.isin(inter_nos)]\n",
|
|
"additional_m1s = []\n",
|
|
"for key, group in match1.groupby(['inter_no', 'phase_no']):\n",
|
|
" inter_no, phase_no = map(int,key)\n",
|
|
" if set(group.ring_type) != {'A', 'B'}:\n",
|
|
" print('error', key)\n",
|
|
" display(group)\n",
|
|
" assert len(group)==1\n",
|
|
" ring_type = group.iloc[0].ring_type\n",
|
|
" RING_TYPE = list({'A', 'B'} - set(ring_type))[0]\n",
|
|
" additional_m1 = group.copy()\n",
|
|
" additional_m1['ring_type'] = RING_TYPE\n",
|
|
" additional_m1s.append(additional_m1)\n",
|
|
"match1 = pd.concat([match1] + additional_m1s)\n",
|
|
"match1 = match1.reset_index(drop=True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 23,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"match1s = []\n",
|
|
"for key, group in match1.copy().groupby(['inter_no', 'phase_no']):\n",
|
|
" inter_no, phase_no = map(int, key)\n",
|
|
" assert len(group) == 2\n",
|
|
" row_A = group[group.ring_type=='A']\n",
|
|
" row_B = group[group.ring_type=='B']\n",
|
|
" assert len(row_A)==len(row_B)==1\n",
|
|
" row_A = row_A.iloc[0]\n",
|
|
" row_B = row_B.iloc[0]\n",
|
|
" m1 = pd.DataFrame({'inter_no':[inter_no], 'phas_A':[row_A.phase_no], 'phas_B':[row_B.phase_no],\n",
|
|
" 'move_A':[row_A.move_no], 'move_B':[row_B.move_no]})\n",
|
|
" match1s.append(m1)\n",
|
|
"match1 = pd.concat(match1s).reset_index(drop=True)\n",
|
|
"match1.to_csv(os.path.join(path_intermediates, 'match1.csv'), index=False)"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "siggen_env",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"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.12.4"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|