다른 사람과의 공유를 위한 repo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

1831 lines
62 KiB

{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import sumolib, math\n",
"import pandas as pd\n",
"import numpy as np\n",
"import os, glob\n",
"from datetime import datetime\n",
"\n",
"### intersections\n",
"intersections_path = os.path.join('daily/S_INT_CONFIG.csv')\n",
"intersections = pd.read_csv(intersections_path)\n",
"intersections_original = intersections.copy()\n",
"\n",
"# demo names\n",
"demo_names = \\\n",
"[\"한솔삼거리(한솔마을3거리)\",\n",
"\"느티마을4단지\",\n",
"\"한솔6단지(정자동사무소)\",\n",
"\"신기4거리\",\n",
"\"느티마을4거리\",\n",
"\"느티마을 안촌유치원\",\n",
"\"상록마을 321동\",\n",
"\"상록4거리(상록마을입구4거리)\",\n",
"\"상록마을단일로\",\n",
"\"상록마을302동 단일로\"]\n",
"intersections = intersections[intersections['INT_NAME'].isin(demo_names)]\n",
"demo_node_ids = [\"n0\", \"n1\", \"n2\", \"n3\", \"n4\", \"n5\", \"n6\", \"n7\", \"n8\", \"n9\"]\n",
"demo_int_nos = list(intersections['INT_NO'])\n",
"\n",
"# SUMO node_id 정보 추가\n",
"name2node_id = dict(zip(demo_names, demo_node_ids))\n",
"intersections['node_ids'] = intersections['INT_NAME'].map(name2node_id)\n",
"\n",
"# SUMO X, Y 좌표 정보 추가\n",
"origin_name = '상록4거리(상록마을입구4거리)'\n",
"ref_lng = intersections[intersections['INT_NAME'] == origin_name]['INT_LNG'].values[0]\n",
"ref_lat = intersections[intersections['INT_NAME'] == origin_name]['INT_LAT'].values[0]\n",
"intersections['X'] = (intersections['INT_LNG'] - ref_lng) * 111000 * math.cos(math.radians(ref_lat))\n",
"intersections['Y'] = (intersections['INT_LAT'] - ref_lat) * 111000\n",
"intersections.reset_index(drop=True, inplace=True)\n",
"\n",
"# n=ways 정보 추가 where \"n지교차로\"\n",
"name2way = \\\n",
"{\"한솔삼거리(한솔마을3거리)\":3,\n",
"\"느티마을4단지\":3,\n",
"\"한솔6단지(정자동사무소)\":4,\n",
"\"신기4거리\":4,\n",
"\"느티마을4거리\":4,\n",
"\"느티마을 안촌유치원\":2,\n",
"\"상록마을 321동\":2,\n",
"\"상록4거리(상록마을입구4거리)\":4,\n",
"\"상록마을단일로\":2,\n",
"\"상록마을302동 단일로\":2}\n",
"intersections['ways'] = intersections['INT_NAME'].map(name2way)\n",
"\n",
"### phase_config\n",
"phase_config_path = os.path.join('daily/S_INT_PHASE_CONFIG.csv')\n",
"phase_config = pd.read_csv(phase_config_path)\n",
"phase_config_original = phase_config.copy()\n",
"phase_config = phase_config[phase_config['INT_NO'].isin(demo_int_nos)]\n",
"\n",
"# INT_NO, ways 가져옴\n",
"phase_config = pd.merge(phase_config, intersections[['INT_NO', 'ways']], on='INT_NO', how='left')\n",
"cols = phase_config.columns.tolist()\n",
"cols.remove('ways')\n",
"cols.insert(1, 'ways')\n",
"phase_config = phase_config[cols]\n",
"\n",
"# 링번호 변경, 주현시여부, 황색시간, 최소녹색시간, 최대녹색시간 임의 지정\n",
"phase_config['INT_RING'] = phase_config['INT_RING'].replace({0: 'A', 1: 'B'})\n",
"phase_config['INT_MAIN_PHASE'] = np.where(phase_config['INT_PHASE_NO'] == 1, 20, 10)\n",
"null_condition = phase_config['INT_FLOW_NO'] == 17\n",
"phase_config['INT_YELLOW'] = np.where(null_condition, 0, 4)\n",
"np.random.seed(0)\n",
"phase_config['INT_MIN_SPLIT'] = np.where(~null_condition, np.random.randint(12, 41, size=len(phase_config)), phase_config['INT_MIN_SPLIT'])\n",
"phase_config['INT_MAX_SPLIT'] = np.where(~null_condition, phase_config['INT_MIN_SPLIT'] + np.random.randint(5, 20, size=len(phase_config)) ,phase_config['INT_MAX_SPLIT'])\n",
"phase_config.sort_values(by=['INT_NO', 'INT_PHASE_NO','INT_RING'], inplace=True)"
]
},
{
"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>INT_NO</th>\n",
" <th>INT_NAME</th>\n",
" <th>SA_NO</th>\n",
" <th>INT_LAT</th>\n",
" <th>INT_LNG</th>\n",
" <th>IS_SMART</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>도촌4거리</td>\n",
" <td>1</td>\n",
" <td>37.41405</td>\n",
" <td>127.14385</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>동원SK삼거리(아시아 주유소)</td>\n",
" <td>1</td>\n",
" <td>37.41282</td>\n",
" <td>127.14382</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>상탑4거리</td>\n",
" <td>0</td>\n",
" <td>37.40809</td>\n",
" <td>127.14296</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>돌마4거리(상탑3거리)</td>\n",
" <td>0</td>\n",
" <td>37.40683</td>\n",
" <td>127.14201</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>상탑초3거리</td>\n",
" <td>0</td>\n",
" <td>37.40561</td>\n",
" <td>127.14473</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>6</td>\n",
" <td>야탑3치안센터(상탑 P.B)</td>\n",
" <td>0</td>\n",
" <td>37.40549</td>\n",
" <td>127.14823</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>7</td>\n",
" <td>테크노 단일로</td>\n",
" <td>0</td>\n",
" <td>37.40486</td>\n",
" <td>127.15121</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>8</td>\n",
" <td>분당테크노파크A동</td>\n",
" <td>0</td>\n",
" <td>37.40499</td>\n",
" <td>127.15034</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>9</td>\n",
" <td>분당테크노파크C동(분당테크노파크)</td>\n",
" <td>0</td>\n",
" <td>37.40545</td>\n",
" <td>127.15526</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>10</td>\n",
" <td>야탑차량등록사업소</td>\n",
" <td>0</td>\n",
" <td>37.40682</td>\n",
" <td>127.15470</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" INT_NO INT_NAME SA_NO INT_LAT INT_LNG IS_SMART\n",
"0 1 도촌4거리 1 37.41405 127.14385 1.0\n",
"1 2 동원SK삼거리(아시아 주유소) 1 37.41282 127.14382 NaN\n",
"2 3 상탑4거리 0 37.40809 127.14296 NaN\n",
"3 4 돌마4거리(상탑3거리) 0 37.40683 127.14201 1.0\n",
"4 5 상탑초3거리 0 37.40561 127.14473 NaN\n",
"5 6 야탑3치안센터(상탑 P.B) 0 37.40549 127.14823 NaN\n",
"6 7 테크노 단일로 0 37.40486 127.15121 NaN\n",
"7 8 분당테크노파크A동 0 37.40499 127.15034 NaN\n",
"8 9 분당테크노파크C동(분당테크노파크) 0 37.40545 127.15526 NaN\n",
"9 10 야탑차량등록사업소 0 37.40682 127.15470 NaN"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 1. 교차로정보 (intersections, 테이블명 : S_INT_CONFIG)\n",
"intersections_original[:10]"
]
},
{
"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>INT_NO</th>\n",
" <th>INT_NAME</th>\n",
" <th>SA_NO</th>\n",
" <th>INT_LAT</th>\n",
" <th>INT_LNG</th>\n",
" <th>IS_SMART</th>\n",
" <th>node_ids</th>\n",
" <th>X</th>\n",
" <th>Y</th>\n",
" <th>ways</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>175</td>\n",
" <td>한솔삼거리(한솔마을3거리)</td>\n",
" <td>0</td>\n",
" <td>37.36857</td>\n",
" <td>127.11478</td>\n",
" <td>NaN</td>\n",
" <td>n0</td>\n",
" <td>437.586026</td>\n",
" <td>566.10</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>176</td>\n",
" <td>느티마을4단지</td>\n",
" <td>0</td>\n",
" <td>37.36724</td>\n",
" <td>127.11480</td>\n",
" <td>NaN</td>\n",
" <td>n1</td>\n",
" <td>439.350485</td>\n",
" <td>418.47</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>177</td>\n",
" <td>한솔6단지(정자동사무소)</td>\n",
" <td>0</td>\n",
" <td>37.36619</td>\n",
" <td>127.11480</td>\n",
" <td>NaN</td>\n",
" <td>n2</td>\n",
" <td>439.350485</td>\n",
" <td>301.92</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>178</td>\n",
" <td>신기4거리</td>\n",
" <td>0</td>\n",
" <td>37.36346</td>\n",
" <td>127.11480</td>\n",
" <td>NaN</td>\n",
" <td>n3</td>\n",
" <td>439.350485</td>\n",
" <td>-1.11</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>201</td>\n",
" <td>느티마을4거리</td>\n",
" <td>0</td>\n",
" <td>37.36854</td>\n",
" <td>127.10984</td>\n",
" <td>0.0</td>\n",
" <td>n4</td>\n",
" <td>1.764460</td>\n",
" <td>562.77</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>202</td>\n",
" <td>느티마을 안촌유치원</td>\n",
" <td>0</td>\n",
" <td>37.36855</td>\n",
" <td>127.11241</td>\n",
" <td>NaN</td>\n",
" <td>n5</td>\n",
" <td>228.497542</td>\n",
" <td>563.88</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>206</td>\n",
" <td>상록마을 321동</td>\n",
" <td>0</td>\n",
" <td>37.36483</td>\n",
" <td>127.10981</td>\n",
" <td>NaN</td>\n",
" <td>n6</td>\n",
" <td>-0.882230</td>\n",
" <td>150.96</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>210</td>\n",
" <td>상록4거리(상록마을입구4거리)</td>\n",
" <td>0</td>\n",
" <td>37.36347</td>\n",
" <td>127.10982</td>\n",
" <td>0.0</td>\n",
" <td>n7</td>\n",
" <td>0.000000</td>\n",
" <td>0.00</td>\n",
" <td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>211</td>\n",
" <td>상록마을단일로</td>\n",
" <td>0</td>\n",
" <td>37.36346</td>\n",
" <td>127.11237</td>\n",
" <td>NaN</td>\n",
" <td>n8</td>\n",
" <td>224.968622</td>\n",
" <td>-1.11</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>212</td>\n",
" <td>상록마을302동 단일로</td>\n",
" <td>0</td>\n",
" <td>37.36347</td>\n",
" <td>127.11306</td>\n",
" <td>NaN</td>\n",
" <td>n9</td>\n",
" <td>285.842484</td>\n",
" <td>0.00</td>\n",
" <td>2</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" INT_NO INT_NAME SA_NO INT_LAT INT_LNG IS_SMART node_ids \\\n",
"0 175 한솔삼거리(한솔마을3거리) 0 37.36857 127.11478 NaN n0 \n",
"1 176 느티마을4단지 0 37.36724 127.11480 NaN n1 \n",
"2 177 한솔6단지(정자동사무소) 0 37.36619 127.11480 NaN n2 \n",
"3 178 신기4거리 0 37.36346 127.11480 NaN n3 \n",
"4 201 느티마을4거리 0 37.36854 127.10984 0.0 n4 \n",
"5 202 느티마을 안촌유치원 0 37.36855 127.11241 NaN n5 \n",
"6 206 상록마을 321동 0 37.36483 127.10981 NaN n6 \n",
"7 210 상록4거리(상록마을입구4거리) 0 37.36347 127.10982 0.0 n7 \n",
"8 211 상록마을단일로 0 37.36346 127.11237 NaN n8 \n",
"9 212 상록마을302동 단일로 0 37.36347 127.11306 NaN n9 \n",
"\n",
" X Y ways \n",
"0 437.586026 566.10 3 \n",
"1 439.350485 418.47 3 \n",
"2 439.350485 301.92 4 \n",
"3 439.350485 -1.11 4 \n",
"4 1.764460 562.77 4 \n",
"5 228.497542 563.88 2 \n",
"6 -0.882230 150.96 2 \n",
"7 0.000000 0.00 4 \n",
"8 224.968622 -1.11 2 \n",
"9 285.842484 0.00 2 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 1*. 교차로정보 수정 (데모버전)\n",
"intersections[:10]"
]
},
{
"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>INT_NO</th>\n",
" <th>INT_PHASE_NO</th>\n",
" <th>INT_PLAN_CLSS</th>\n",
" <th>INT_RING</th>\n",
" <th>INT_FLOW_NO</th>\n",
" <th>INT_MIN_SPLIT</th>\n",
" <th>INT_MAX_SPLIT</th>\n",
" <th>INT_YELLOW</th>\n",
" <th>INT_MAIN_PHASE</th>\n",
" <th>INT_LANE</th>\n",
" <th>INT_PHASE_LAT1</th>\n",
" <th>INT_PHASE_LNG1</th>\n",
" <th>INT_PHASE_LAT2</th>\n",
" <th>INT_PHASE_LNG2</th>\n",
" <th>INT_PHASE_LAT3</th>\n",
" <th>INT_PHASE_LNG3</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>204</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>8</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>37.36581</td>\n",
" <td>127.10822</td>\n",
" <td>37.36614</td>\n",
" <td>127.10822</td>\n",
" <td>37.36626</td>\n",
" <td>127.10822</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>204</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>37.36646</td>\n",
" <td>127.10797</td>\n",
" <td>37.36614</td>\n",
" <td>127.10797</td>\n",
" <td>37.36602</td>\n",
" <td>127.10797</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>204</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>17</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>19.69448</td>\n",
" <td>117.99260</td>\n",
" <td>19.69448</td>\n",
" <td>117.99260</td>\n",
" <td>19.69448</td>\n",
" <td>117.99260</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>205</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>37.36595</td>\n",
" <td>127.10607</td>\n",
" <td>37.36563</td>\n",
" <td>127.10608</td>\n",
" <td>37.36563</td>\n",
" <td>127.10622</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>205</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>37.36595</td>\n",
" <td>127.10582</td>\n",
" <td>37.36563</td>\n",
" <td>127.10583</td>\n",
" <td>37.36551</td>\n",
" <td>127.10583</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>205</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>37.36530</td>\n",
" <td>127.10583</td>\n",
" <td>37.36563</td>\n",
" <td>127.10583</td>\n",
" <td>37.36563</td>\n",
" <td>127.10568</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>205</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>8</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>37.36530</td>\n",
" <td>127.10608</td>\n",
" <td>37.36563</td>\n",
" <td>127.10608</td>\n",
" <td>37.36575</td>\n",
" <td>127.10607</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>205</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>17</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>19.69448</td>\n",
" <td>117.99260</td>\n",
" <td>19.69448</td>\n",
" <td>117.99260</td>\n",
" <td>19.69448</td>\n",
" <td>117.99260</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>205</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>37.36573</td>\n",
" <td>127.10636</td>\n",
" <td>37.36573</td>\n",
" <td>127.10595</td>\n",
" <td>37.36573</td>\n",
" <td>127.10580</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>205</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>37.36553</td>\n",
" <td>127.10636</td>\n",
" <td>37.36553</td>\n",
" <td>127.10595</td>\n",
" <td>37.36541</td>\n",
" <td>127.10595</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" INT_NO INT_PHASE_NO INT_PLAN_CLSS INT_RING INT_FLOW_NO INT_MIN_SPLIT \\\n",
"0 204 1 0 0 8 0 \n",
"1 204 1 0 1 4 0 \n",
"2 204 2 0 0 17 0 \n",
"3 205 1 0 0 7 0 \n",
"4 205 1 0 1 4 0 \n",
"5 205 2 0 1 3 0 \n",
"6 205 2 0 0 8 0 \n",
"7 205 3 0 0 17 0 \n",
"8 205 4 0 0 6 0 \n",
"9 205 4 0 1 1 0 \n",
"\n",
" INT_MAX_SPLIT INT_YELLOW INT_MAIN_PHASE INT_LANE INT_PHASE_LAT1 \\\n",
"0 0 0 0 0 37.36581 \n",
"1 0 0 0 0 37.36646 \n",
"2 0 0 0 0 19.69448 \n",
"3 0 0 0 0 37.36595 \n",
"4 0 0 0 0 37.36595 \n",
"5 0 0 0 0 37.36530 \n",
"6 0 0 0 0 37.36530 \n",
"7 0 0 0 0 19.69448 \n",
"8 0 0 0 0 37.36573 \n",
"9 0 0 0 0 37.36553 \n",
"\n",
" INT_PHASE_LNG1 INT_PHASE_LAT2 INT_PHASE_LNG2 INT_PHASE_LAT3 \\\n",
"0 127.10822 37.36614 127.10822 37.36626 \n",
"1 127.10797 37.36614 127.10797 37.36602 \n",
"2 117.99260 19.69448 117.99260 19.69448 \n",
"3 127.10607 37.36563 127.10608 37.36563 \n",
"4 127.10582 37.36563 127.10583 37.36551 \n",
"5 127.10583 37.36563 127.10583 37.36563 \n",
"6 127.10608 37.36563 127.10608 37.36575 \n",
"7 117.99260 19.69448 117.99260 19.69448 \n",
"8 127.10636 37.36573 127.10595 37.36573 \n",
"9 127.10636 37.36553 127.10595 37.36541 \n",
"\n",
" INT_PHASE_LNG3 \n",
"0 127.10822 \n",
"1 127.10797 \n",
"2 117.99260 \n",
"3 127.10622 \n",
"4 127.10583 \n",
"5 127.10568 \n",
"6 127.10607 \n",
"7 117.99260 \n",
"8 127.10580 \n",
"9 127.10595 "
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 2. 현시정보 (phase_config, 테이블명 : S_INT_PHASE_CONFIG)\n",
"phase_config_original[:10]"
]
},
{
"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>INT_NO</th>\n",
" <th>ways</th>\n",
" <th>INT_PHASE_NO</th>\n",
" <th>INT_PLAN_CLSS</th>\n",
" <th>INT_RING</th>\n",
" <th>INT_FLOW_NO</th>\n",
" <th>INT_MIN_SPLIT</th>\n",
" <th>INT_MAX_SPLIT</th>\n",
" <th>INT_YELLOW</th>\n",
" <th>INT_MAIN_PHASE</th>\n",
" <th>INT_LANE</th>\n",
" <th>INT_PHASE_LAT1</th>\n",
" <th>INT_PHASE_LNG1</th>\n",
" <th>INT_PHASE_LAT2</th>\n",
" <th>INT_PHASE_LNG2</th>\n",
" <th>INT_PHASE_LAT3</th>\n",
" <th>INT_PHASE_LNG3</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>175</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>A</td>\n",
" <td>8</td>\n",
" <td>18</td>\n",
" <td>32</td>\n",
" <td>4</td>\n",
" <td>20</td>\n",
" <td>0</td>\n",
" <td>37.36825</td>\n",
" <td>127.11491</td>\n",
" <td>37.36857</td>\n",
" <td>127.11490</td>\n",
" <td>37.36869</td>\n",
" <td>127.11491</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>175</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>B</td>\n",
" <td>4</td>\n",
" <td>13</td>\n",
" <td>27</td>\n",
" <td>4</td>\n",
" <td>20</td>\n",
" <td>0</td>\n",
" <td>37.36890</td>\n",
" <td>127.11467</td>\n",
" <td>37.36857</td>\n",
" <td>127.11465</td>\n",
" <td>37.36845</td>\n",
" <td>127.11466</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>175</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>A</td>\n",
" <td>7</td>\n",
" <td>19</td>\n",
" <td>27</td>\n",
" <td>4</td>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>37.36889</td>\n",
" <td>127.11491</td>\n",
" <td>37.36857</td>\n",
" <td>127.11490</td>\n",
" <td>37.36856</td>\n",
" <td>127.11505</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>175</td>\n",
" <td>3</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>B</td>\n",
" <td>3</td>\n",
" <td>35</td>\n",
" <td>46</td>\n",
" <td>4</td>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>37.36824</td>\n",
" <td>127.11466</td>\n",
" <td>37.36857</td>\n",
" <td>127.11465</td>\n",
" <td>37.36857</td>\n",
" <td>127.11451</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>175</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>A</td>\n",
" <td>6</td>\n",
" <td>26</td>\n",
" <td>38</td>\n",
" <td>4</td>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>37.36867</td>\n",
" <td>127.11519</td>\n",
" <td>37.36867</td>\n",
" <td>127.11478</td>\n",
" <td>37.36867</td>\n",
" <td>127.11463</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>175</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>B</td>\n",
" <td>1</td>\n",
" <td>36</td>\n",
" <td>52</td>\n",
" <td>4</td>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>37.36847</td>\n",
" <td>127.11518</td>\n",
" <td>37.36847</td>\n",
" <td>127.11478</td>\n",
" <td>37.36835</td>\n",
" <td>127.11478</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>175</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>A</td>\n",
" <td>5</td>\n",
" <td>29</td>\n",
" <td>48</td>\n",
" <td>4</td>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>37.36866</td>\n",
" <td>127.11437</td>\n",
" <td>37.36867</td>\n",
" <td>127.11478</td>\n",
" <td>37.36878</td>\n",
" <td>127.11478</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>175</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>0</td>\n",
" <td>B</td>\n",
" <td>2</td>\n",
" <td>17</td>\n",
" <td>24</td>\n",
" <td>4</td>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>37.36847</td>\n",
" <td>127.11437</td>\n",
" <td>37.36847</td>\n",
" <td>127.11478</td>\n",
" <td>37.36847</td>\n",
" <td>127.11493</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>176</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>A</td>\n",
" <td>8</td>\n",
" <td>37</td>\n",
" <td>53</td>\n",
" <td>4</td>\n",
" <td>20</td>\n",
" <td>0</td>\n",
" <td>37.36691</td>\n",
" <td>127.11493</td>\n",
" <td>37.36724</td>\n",
" <td>127.11493</td>\n",
" <td>37.36735</td>\n",
" <td>127.11493</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>176</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>B</td>\n",
" <td>4</td>\n",
" <td>25</td>\n",
" <td>30</td>\n",
" <td>4</td>\n",
" <td>20</td>\n",
" <td>0</td>\n",
" <td>37.36756</td>\n",
" <td>127.11467</td>\n",
" <td>37.36723</td>\n",
" <td>127.11468</td>\n",
" <td>37.36712</td>\n",
" <td>127.11468</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" INT_NO ways INT_PHASE_NO INT_PLAN_CLSS INT_RING INT_FLOW_NO \\\n",
"20 175 3 1 0 A 8 \n",
"19 175 3 1 0 B 4 \n",
"21 175 3 2 0 A 7 \n",
"22 175 3 2 0 B 3 \n",
"23 175 3 3 0 A 6 \n",
"24 175 3 3 0 B 1 \n",
"25 175 3 4 0 A 5 \n",
"26 175 3 4 0 B 2 \n",
"27 176 3 1 0 A 8 \n",
"28 176 3 1 0 B 4 \n",
"\n",
" INT_MIN_SPLIT INT_MAX_SPLIT INT_YELLOW INT_MAIN_PHASE INT_LANE \\\n",
"20 18 32 4 20 0 \n",
"19 13 27 4 20 0 \n",
"21 19 27 4 10 0 \n",
"22 35 46 4 10 0 \n",
"23 26 38 4 10 0 \n",
"24 36 52 4 10 0 \n",
"25 29 48 4 10 0 \n",
"26 17 24 4 10 0 \n",
"27 37 53 4 20 0 \n",
"28 25 30 4 20 0 \n",
"\n",
" INT_PHASE_LAT1 INT_PHASE_LNG1 INT_PHASE_LAT2 INT_PHASE_LNG2 \\\n",
"20 37.36825 127.11491 37.36857 127.11490 \n",
"19 37.36890 127.11467 37.36857 127.11465 \n",
"21 37.36889 127.11491 37.36857 127.11490 \n",
"22 37.36824 127.11466 37.36857 127.11465 \n",
"23 37.36867 127.11519 37.36867 127.11478 \n",
"24 37.36847 127.11518 37.36847 127.11478 \n",
"25 37.36866 127.11437 37.36867 127.11478 \n",
"26 37.36847 127.11437 37.36847 127.11478 \n",
"27 37.36691 127.11493 37.36724 127.11493 \n",
"28 37.36756 127.11467 37.36723 127.11468 \n",
"\n",
" INT_PHASE_LAT3 INT_PHASE_LNG3 \n",
"20 37.36869 127.11491 \n",
"19 37.36845 127.11466 \n",
"21 37.36856 127.11505 \n",
"22 37.36857 127.11451 \n",
"23 37.36867 127.11463 \n",
"24 37.36835 127.11478 \n",
"25 37.36878 127.11478 \n",
"26 37.36847 127.11493 \n",
"27 37.36735 127.11493 \n",
"28 37.36712 127.11468 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 2*. 현시정보 수정 (데모버전)\n",
"phase_config[:10]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"### tplan\n",
"tplan_path = os.path.join('daily/S_INT_TPLAN.csv')\n",
"tplan = pd.read_csv(tplan_path)\n",
"# cycleplan\n",
"cycleplan_path = os.path.join(recent_folder, 'daily/S_SA_CYCLE_PLAN.csv')\n",
"cycleplan = pd.read_csv(cycleplan_path)\n",
"# wplan\n",
"wplan_path = os.path.join(recent_folder, 'daily/S_SA_WPLAN.csv')\n",
"wplan = pd.read_csv(wplan_path)\n",
"# dplan\n",
"dplan_path = os.path.join(recent_folder, 'daily/S_SA_DPLAN.csv')\n",
"dplan = pd.read_csv(dplan_path)\n",
"# history\n",
"history_path = os.path.join(recent_folder, 'realtime/S_TOD_HIS.csv')\n",
"history= pd.read_csv(history_path)"
]
},
{
"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>INT_NO</th>\n",
" <th>INT_PLAN_NO</th>\n",
" <th>INT_PLAN_INDEX</th>\n",
" <th>INT_ASPLIT1</th>\n",
" <th>INT_ASPLIT2</th>\n",
" <th>INT_ASPLIT3</th>\n",
" <th>INT_ASPLIT4</th>\n",
" <th>INT_ASPLIT5</th>\n",
" <th>INT_ASPLIT6</th>\n",
" <th>INT_ASPLIT7</th>\n",
" <th>INT_ASPLIT8</th>\n",
" <th>INT_BSPLIT1</th>\n",
" <th>INT_BSPLIT2</th>\n",
" <th>INT_BSPLIT3</th>\n",
" <th>INT_BSPLIT4</th>\n",
" <th>INT_BSPLIT5</th>\n",
" <th>INT_BSPLIT6</th>\n",
" <th>INT_BSPLIT7</th>\n",
" <th>INT_BSPLIT8</th>\n",
" <th>INT_OFFSET</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>806</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>60</td>\n",
" <td>50</td>\n",
" <td>30</td>\n",
" <td>20</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>60</td>\n",
" <td>50</td>\n",
" <td>30</td>\n",
" <td>20</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>808</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>60</td>\n",
" <td>50</td>\n",
" <td>30</td>\n",
" <td>20</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>60</td>\n",
" <td>50</td>\n",
" <td>30</td>\n",
" <td>20</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>809</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>60</td>\n",
" <td>50</td>\n",
" <td>30</td>\n",
" <td>20</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>60</td>\n",
" <td>50</td>\n",
" <td>30</td>\n",
" <td>20</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>810</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>60</td>\n",
" <td>50</td>\n",
" <td>30</td>\n",
" <td>20</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>60</td>\n",
" <td>50</td>\n",
" <td>30</td>\n",
" <td>20</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" INT_NO INT_PLAN_NO INT_PLAN_INDEX INT_ASPLIT1 INT_ASPLIT2 INT_ASPLIT3 \\\n",
"0 806 1 1 60 50 30 \n",
"1 808 1 1 60 50 30 \n",
"2 809 1 1 60 50 30 \n",
"3 810 1 1 60 50 30 \n",
"\n",
" INT_ASPLIT4 INT_ASPLIT5 INT_ASPLIT6 INT_ASPLIT7 INT_ASPLIT8 \\\n",
"0 20 NaN NaN NaN NaN \n",
"1 20 NaN NaN NaN NaN \n",
"2 20 NaN NaN NaN NaN \n",
"3 20 NaN NaN NaN NaN \n",
"\n",
" INT_BSPLIT1 INT_BSPLIT2 INT_BSPLIT3 INT_BSPLIT4 INT_BSPLIT5 \\\n",
"0 60 50 30 20 NaN \n",
"1 60 50 30 20 NaN \n",
"2 60 50 30 20 NaN \n",
"3 60 50 30 20 NaN \n",
"\n",
" INT_BSPLIT6 INT_BSPLIT7 INT_BSPLIT8 INT_OFFSET \n",
"0 NaN NaN NaN NaN \n",
"1 NaN NaN NaN NaN \n",
"2 NaN NaN NaN NaN \n",
"3 NaN NaN 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>SA_NO</th>\n",
" <th>SA_WEEK</th>\n",
" <th>SA_DPLAN</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>30</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>30</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>30</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>30</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>30</td>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>30</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>30</td>\n",
" <td>7</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SA_NO SA_WEEK SA_DPLAN\n",
"0 30 1 1\n",
"1 30 2 1\n",
"2 30 3 1\n",
"3 30 4 1\n",
"4 30 5 1\n",
"5 30 6 1\n",
"6 30 7 1\n",
"7 1 2 1\n",
"8 1 3 1\n",
"9 1 1 1"
]
},
"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>SA_NO</th>\n",
" <th>SA_DPLAN_NO</th>\n",
" <th>SA_DPLAN_INDEX</th>\n",
" <th>SA_START_HOUR</th>\n",
" <th>SA_START_MIN</th>\n",
" <th>SA_CYCLE_INDEX</th>\n",
" <th>SA_OFFSET</th>\n",
" <th>SA_SPLIT</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>16</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>8</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>9</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>10</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SA_NO SA_DPLAN_NO SA_DPLAN_INDEX SA_START_HOUR SA_START_MIN \\\n",
"0 1 1 1 0 0 \n",
"1 1 1 2 6 0 \n",
"2 1 1 3 10 0 \n",
"3 1 1 4 16 0 \n",
"4 1 1 5 0 0 \n",
"5 1 1 6 0 0 \n",
"6 1 1 7 0 0 \n",
"7 1 1 8 0 0 \n",
"8 1 1 9 0 0 \n",
"9 1 1 10 0 0 \n",
"\n",
" SA_CYCLE_INDEX SA_OFFSET SA_SPLIT \n",
"0 1 1 1 \n",
"1 2 2 2 \n",
"2 3 5 5 \n",
"3 2 2 2 \n",
"4 0 0 0 \n",
"5 0 0 0 \n",
"6 0 0 0 \n",
"7 0 0 0 \n",
"8 0 0 0 \n",
"9 0 0 0 "
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# 3. 신호계획정보 (tplan, wplan, dplan, 테이블명 : S_INT_TPLAN, S_INT_WPLAN, S_INT_DPLAN)\n",
"display(tplan[:10])\n",
"display(wplan[:10])\n",
"display(dplan[:10])"
]
},
{
"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>INT_NO</th>\n",
" <th>INT_CREATE_DATE</th>\n",
" <th>INT_SPLIT1</th>\n",
" <th>INT_SPLIT2</th>\n",
" <th>INT_SPLIT3</th>\n",
" <th>INT_SPLIT4</th>\n",
" <th>INT_SPLIT5</th>\n",
" <th>INT_SPLIT6</th>\n",
" <th>INT_SPLIT7</th>\n",
" <th>INT_SPLIT8</th>\n",
" <th>INT_OFFSET</th>\n",
" <th>INT_CYCLE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>743</td>\n",
" <td>2023-10-18 08:10:00</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>743</td>\n",
" <td>2023-10-18 08:13:00</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>743</td>\n",
" <td>2023-10-18 08:14:00</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>743</td>\n",
" <td>2023-10-18 08:16:00</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>743</td>\n",
" <td>2023-10-18 08:17:00</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</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",
" </tr>\n",
" <tr>\n",
" <th>11093</th>\n",
" <td>477</td>\n",
" <td>2023-10-18 08:05:00</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11094</th>\n",
" <td>477</td>\n",
" <td>2023-10-18 08:06:00</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11095</th>\n",
" <td>477</td>\n",
" <td>2023-10-18 08:07:00</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11096</th>\n",
" <td>477</td>\n",
" <td>2023-10-18 08:08:00</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11097</th>\n",
" <td>477</td>\n",
" <td>2023-10-18 08:09:00</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>11098 rows × 12 columns</p>\n",
"</div>"
],
"text/plain": [
" INT_NO INT_CREATE_DATE INT_SPLIT1 INT_SPLIT2 INT_SPLIT3 \\\n",
"0 743 2023-10-18 08:10:00 0 0 0 \n",
"1 743 2023-10-18 08:13:00 0 0 0 \n",
"2 743 2023-10-18 08:14:00 0 0 0 \n",
"3 743 2023-10-18 08:16:00 0 0 0 \n",
"4 743 2023-10-18 08:17:00 0 0 0 \n",
"... ... ... ... ... ... \n",
"11093 477 2023-10-18 08:05:00 0 0 0 \n",
"11094 477 2023-10-18 08:06:00 0 0 0 \n",
"11095 477 2023-10-18 08:07:00 0 0 0 \n",
"11096 477 2023-10-18 08:08:00 0 0 0 \n",
"11097 477 2023-10-18 08:09:00 0 0 0 \n",
"\n",
" INT_SPLIT4 INT_SPLIT5 INT_SPLIT6 INT_SPLIT7 INT_SPLIT8 INT_OFFSET \\\n",
"0 0 0 0 NaN NaN 0 \n",
"1 0 0 0 NaN NaN 0 \n",
"2 0 0 0 NaN NaN 0 \n",
"3 0 0 0 NaN NaN 0 \n",
"4 0 0 0 NaN NaN 0 \n",
"... ... ... ... ... ... ... \n",
"11093 0 0 0 NaN NaN 0 \n",
"11094 0 0 0 NaN NaN 0 \n",
"11095 0 0 0 NaN NaN 0 \n",
"11096 0 0 0 NaN NaN 0 \n",
"11097 0 0 0 NaN NaN 0 \n",
"\n",
" INT_CYCLE \n",
"0 0 \n",
"1 0 \n",
"2 0 \n",
"3 0 \n",
"4 0 \n",
"... ... \n",
"11093 0 \n",
"11094 0 \n",
"11095 0 \n",
"11096 0 \n",
"11097 0 \n",
"\n",
"[11098 rows x 12 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 4. 신호이력정보 (history, 테이블명 : S_TOD_HIS)\n",
"history"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "rts",
"language": "python",
"name": "rts"
},
"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
}