diff --git a/Scripts/__pycache__/generate_signals.cpython-312.pyc b/Scripts/__pycache__/generate_signals.cpython-312.pyc
index c1e4b41ab..99eb67bde 100644
Binary files a/Scripts/__pycache__/generate_signals.cpython-312.pyc and b/Scripts/__pycache__/generate_signals.cpython-312.pyc differ
diff --git a/Scripts/__pycache__/preprocess_daily.cpython-312.pyc b/Scripts/__pycache__/preprocess_daily.cpython-312.pyc
index 98fe6fb08..3a831f876 100644
Binary files a/Scripts/__pycache__/preprocess_daily.cpython-312.pyc and b/Scripts/__pycache__/preprocess_daily.cpython-312.pyc differ
diff --git a/Scripts/generate_signals.py b/Scripts/generate_signals.py
index c2ef0426a..ca2e85833 100644
--- a/Scripts/generate_signals.py
+++ b/Scripts/generate_signals.py
@@ -171,7 +171,7 @@ class SignalGenerator():
self.history = pd.read_csv(os.path.join(self.path_tables, 'TL_IF_SIGL_CYCL.csv'), dtype=loading_dtype)
self.inter_node = pd.read_csv(os.path.join(self.path_tables, 'inter_node.csv'), dtype=loading_dtype)
self.matching = pd.read_csv(os.path.join(self.path_intermediates, 'matching.csv'), dtype=loading_dtype)
- self.match1 = pd.read_csv(os.path.join(self.path_intermediates, 'match1.csv'), dtype=loading_dtype)
+ self.match1 = pd.read_csv(os.path.join(self.path_intermediates, 'match1.csv'), dtype=loading_dtype)
self.match6 = pd.read_csv(os.path.join(self.path_intermediates, 'match6.csv'), dtype=loading_dtype)
# 신호이력 컬럼 변경 등
@@ -822,8 +822,8 @@ class SignalGenerator():
SIG = pd.merge(csig_A, csig_B, on=['start_time', 'start_unix'], how='outer')
SIG = SIG.sort_values(by='start_time').reset_index(drop=True)
- SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')
- SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')
+ SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].ffill()
+ SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].ffill()
SIG['phase'] = SIG['phas_A'] + "_" + SIG['phas_B']
SIG['node_id'] = node_id
SIG = SIG[['node_id', 'start_unix', 'start_time', 'phase', 'state_A', 'state_B']]
diff --git a/Scripts/preprocess_daily.py b/Scripts/preprocess_daily.py
index 8e7ca5744..5b6739ed6 100644
--- a/Scripts/preprocess_daily.py
+++ b/Scripts/preprocess_daily.py
@@ -61,7 +61,7 @@ class DailyPreprocessor():
# 테이블 불러오기
self.inter_node = pd.read_csv(os.path.join(self.path_tables, 'inter_node.csv'), dtype=loading_dtype)
self.turn_type = pd.read_csv(os.path.join(self.path_tables, 'turn_type.csv'), dtype=loading_dtype)
- self.uturn = pd.read_csv(os.path.join(self.path_tables, 'uturn.csv'), dtype=loading_dtype)
+ self.uturn = pd.read_csv(os.path.join(self.path_tables, 'uturn.csv'), dtype=loading_dtype)
self.u_condition= pd.read_csv(os.path.join(self.path_tables, 'u_condition.csv'), dtype=loading_dtype)
self.coord = pd.read_csv(os.path.join(self.path_tables, 'coord.csv'), dtype=loading_dtype)
diff --git a/analysis/0725_main_test/6_use_class_gs.ipynb b/analysis/0725_main_test/6_use_class_gs.ipynb
index 09d38c1c6..79126ace8 100644
--- a/analysis/0725_main_test/6_use_class_gs.ipynb
+++ b/analysis/0725_main_test/6_use_class_gs.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
@@ -20,36 +20,11 @@
},
{
"cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "2024-07-29 09:36:32\n",
- "1722213392\n",
- "2024-07-29 09:36:32\n"
- ]
- }
- ],
- "source": [
- "time_str = '2024-07-29 9:36:32'\n",
- "time_dt = datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')\n",
- "print(time_dt)\n",
- "time_unix = int(time_dt.timestamp())\n",
- "print(time_unix)\n",
- "print(datetime.fromtimestamp(time_unix))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
+ "execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"self = SignalGenerator(config_name='test_0731',\n",
- " file_net='new_sungnam_network_internal_target_0721.net.xml',\n",
" month=7,\n",
" day=31,\n",
" hour=9,\n",
@@ -58,495 +33,289 @@
},
{
"cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "1-1. 네트워크가 로드되었습니다.\n"
- ]
- }
- ],
- "source": [
- "self.load_networks()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
+ "execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "1-2. 테이블들이 로드되었습니다.\n"
+ "1. 데이터를 준비합니다.\n",
+ "1-1. 네트워크가 로드되었습니다.\n",
+ "1-2. 테이블들이 로드되었습니다.\n",
+ "1-5. 필요한 보조 객체들이 모두 준비되었습니다.\n",
+ "2. 신호이력 테이블을 변환합니다.\n"
]
}
],
"source": [
- "self.load_tables()"
+ "self.prepare_data()\n",
+ "self.process_history()"
]
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 19,
"metadata": {},
"outputs": [
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "1722383967\n",
- "1722385038\n",
- "1722384300\n",
- "1722351600\n",
- "1722438000\n"
- ]
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " start_unix | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " STOS_NO | \n",
+ " move_A | \n",
+ " move_B | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 1722416326 | \n",
+ " 436 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 1722416326 | \n",
+ " 437 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 0 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 1722416326 | \n",
+ " 438 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 1722416326 | \n",
+ " 442 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 1722416326 | \n",
+ " 443 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 11095 | \n",
+ " 1722417443 | \n",
+ " 444 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 0 | \n",
+ " -1 | \n",
+ " -1 | \n",
+ "
\n",
+ " \n",
+ " 11096 | \n",
+ " 1722417443 | \n",
+ " 455 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " -1 | \n",
+ " -1 | \n",
+ "
\n",
+ " \n",
+ " 11097 | \n",
+ " 1722417443 | \n",
+ " 456 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 0 | \n",
+ " 17 | \n",
+ " -1 | \n",
+ "
\n",
+ " \n",
+ " 11098 | \n",
+ " 1722417443 | \n",
+ " 457 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 0 | \n",
+ " 17 | \n",
+ " 17 | \n",
+ "
\n",
+ " \n",
+ " 11099 | \n",
+ " 1722417443 | \n",
+ " 458 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 17 | \n",
+ " 17 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
11100 rows × 7 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " start_unix inter_no phas_A phas_B STOS_NO move_A move_B\n",
+ "0 1722416326 436 2 2 0 8 3\n",
+ "1 1722416326 437 3 3 0 8 3\n",
+ "2 1722416326 438 1 1 0 6 2\n",
+ "3 1722416326 442 1 1 0 6 1\n",
+ "4 1722416326 443 1 1 0 6 2\n",
+ "... ... ... ... ... ... ... ...\n",
+ "11095 1722417443 444 4 4 0 -1 -1\n",
+ "11096 1722417443 455 2 2 0 -1 -1\n",
+ "11097 1722417443 456 4 4 0 17 -1\n",
+ "11098 1722417443 457 3 3 0 17 17\n",
+ "11099 1722417443 458 2 2 0 17 17\n",
+ "\n",
+ "[11100 rows x 7 columns]"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
}
],
"source": [
- "print(self.history.end_unix.min())\n",
- "print(self.history.end_unix.max())\n",
- "print(self.present_time)\n",
- "print(self.midnight)\n",
- "print(self.next_day)"
+ "phases = pd.read_csv(os.path.join(self.path_tables, 'TL_IF_SIGL.csv'))\n",
+ "phases = phases.drop(columns=['FRST_REG_DT', 'RINGA_FLOW', 'RINGB_FLOW'])\n",
+ "phases = phases.rename(columns={\n",
+ " 'PHASE_DT':'start_unix','CRSRD_ID':'inter_no',\n",
+ " 'RINGA_PHASE':'phas_A', 'RINGB_PHASE':'phas_B',\n",
+ " 'MAP_MODE':'STOS_NO'\n",
+ " })\n",
+ "isp2move_A = self.isp2move['A']\n",
+ "isp2move_B = self.isp2move['B']\n",
+ "phases['move_A'] = phases.apply(\n",
+ " lambda row: int(isp2move_A.get((row.inter_no, row.STOS_NO, row.phas_A), -1)), axis=1)\n",
+ "phases['move_B'] = phases.apply(\n",
+ " lambda row: int(isp2move_B.get((row.inter_no, row.STOS_NO, row.phas_B), -1)), axis=1)\n",
+ "phases['start_unix'] = pd.to_datetime(phases['start_unix'])\n",
+ "phases['start_unix'] = phases['start_unix'].apply(lambda x: int(x.timestamp()))\n",
+ "phases"
]
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
- "# dura_As = [f'dura_A{i}' for i in range(1,9)]\n",
- "# dura_Bs = [f'dura_B{i}' for i in range(1,9)]\n",
- "# for i, row in self.plan.iterrows():\n",
- "# is_zero_A = (row[dura_As]==0).all()\n",
- "# is_zero_B = (row[dura_Bs]==0).all()\n",
- "# assert not (is_zero_A & is_zero_B)\n",
- "# if is_zero_B:\n",
- "# for j in range(1, 9):\n",
- "# self.plan.at[i, f'dura_B{j}'] = row[f'dura_A{j}']\n",
- "# if is_zero_A:\n",
- "# for j in range(1, 9):\n",
- "# self.plan.at[i, f'dura_A{j}'] = row[f'dura_B{j}']"
+ "fsecs = list(range(self.present_time - self.sim_timespan, self.present_time + 1, 5))"
]
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 25,
"metadata": {},
"outputs": [
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "1-5. 필요한 보조 객체들이 모두 준비되었습니다.\n"
+ "ename": "NameError",
+ "evalue": "name 'move' is not defined",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "Cell \u001b[1;32mIn[25], line 16\u001b[0m\n\u001b[0;32m 7\u001b[0m move \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mconcat(moves)\n\u001b[0;32m 8\u001b[0m \u001b[38;5;66;03m# # 2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\u001b[39;00m\n\u001b[0;32m 9\u001b[0m \u001b[38;5;66;03m# recent_histories = [group.iloc[-1:] for _, group in self.history[self.history['end_unix'] < fsec].groupby('inter_no')] # 교차로별로 유닉스시간이 최대인 행들\u001b[39;00m\n\u001b[0;32m 10\u001b[0m \n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 14\u001b[0m \u001b[38;5;66;03m# rhistory = pd.concat(recent_histories)\u001b[39;00m\n\u001b[0;32m 15\u001b[0m \u001b[38;5;66;03m# recent_unix = rhistory[['inter_no', 'end_unix']]\u001b[39;00m\n\u001b[1;32m---> 16\u001b[0m \u001b[43mmove\u001b[49m\n",
+ "\u001b[1;31mNameError\u001b[0m: name 'move' is not defined"
]
}
],
"source": [
- "self.prepare_auxiliaries()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {},
- "outputs": [],
- "source": [
- "# valid_parent_ids = [self.inter2node[inter_no] for inter_no in set(self.history.inter_no)]\n",
- "# invalid_parent_ids = [parent_id for parent_id in self.parent_ids if not parent_id in valid_parent_ids ]\n",
- "# print(sorted(self.parent_ids))\n",
- "# print(sorted(valid_parent_ids))\n",
- "# print(sorted(invalid_parent_ids))\n",
- "# invalid_child_ids = []\n",
- "# for parent_id in invalid_parent_ids:\n",
- "# invalid_child_ids.extend(self.pa2ch[parent_id])\n",
- "# print(sorted(invalid_child_ids))\n",
+ "fsec = fsecs[-1]\n",
+ "# 1. 상태 테이블 조회해서 전체 데이터중 필요데이터(교차로번호, A링 현시번호, A링 이동류번호, B링 현시번호, B링 이동류번호)만 수집 : A\n",
+ "moves = [group.iloc[-1] for _, group in phases[phases.start_unix < fsec].groupby('inter_no')]\n",
+ "if not moves:\n",
+ " pass\n",
+ "else:\n",
+ " move = pd.concat(moves)\n",
+ "# # 2. 이력 테이블 조회해서 교차로별로 유닉스시간 최대인 데이터(교차로번호, 종료유닉스타임)만 수집 : B\n",
+ "# recent_histories = [group.iloc[-1:] for _, group in self.history[self.history['end_unix'] < fsec].groupby('inter_no')] # 교차로별로 유닉스시간이 최대인 행들\n",
"\n",
- "# print()\n",
- "# print()\n",
- "# self.parent_ids = sorted(set(self.parent_ids) - set(invalid_parent_ids))\n",
- "# self.node_ids = sorted(set(self.node_ids) - set(invalid_parent_ids))\n",
- "# self.child_ids = sorted(set(self.child_ids) - set(invalid_child_ids))\n",
- "# self.uturn_ids = sorted(set(self.uturn_ids) - set(invalid_child_ids))\n",
- "# self.coord_ids = sorted(set(self.coord_ids) - set(invalid_child_ids))\n",
- "# print(self.parent_ids)\n",
- "# print(self.node_ids)\n",
- "# print(self.child_ids)\n",
- "# print(self.uturn_ids)\n",
- "# print(self.coord_ids)"
+ "# if not recent_histories:\n",
+ "# rhistory = pd.DataFrame({'inter_no':[], 'end_unix':[]}) # recent history\n",
+ "# else:\n",
+ "# rhistory = pd.concat(recent_histories)\n",
+ "# recent_unix = rhistory[['inter_no', 'end_unix']]\n",
+ "move"
]
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[436, 437, 442, 443, 455, 456, 457]"
- ]
- },
- "execution_count": 11,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
- "sorted(inter_no for inter_no in set(self.history.inter_no))"
+ "self.movement = pd.read_csv(os.path.join(self.path_tables, 'TL_IF_SIGL.csv'))\n",
+ "self.movement = self.movement.drop(columns=['FRST_REG_DT', 'RINGA_FLOW', 'RINGB_FLOW'])\n",
+ "self.movement = self.movement.rename(columns={\n",
+ " 'PHASE_DT':'start_unix','CRSRD_ID':'inter_no',\n",
+ " 'RINGA_PHASE':'phas_A', 'RINGB_PHASE':'phas_B',\n",
+ " 'MAP_MODE':'STOS_NO'\n",
+ " })\n",
+ "isp2move_A = self.isp2move['A']\n",
+ "isp2move_B = self.isp2move['B']\n",
+ "self.movement['move_A'] = self.movement.apply(\n",
+ " lambda row: int(isp2move_A.get((row.inter_no, row.STOS_NO, row.phas_A), -1)), axis=1)\n",
+ "self.movement['move_B'] = self.movement.apply(\n",
+ " lambda row: int(isp2move_B.get((row.inter_no, row.STOS_NO, row.phas_B), -1)), axis=1)\n",
+ "self.movement['start_unix'] = pd.to_datetime(self.movement['start_unix'])\n",
+ "self.movement['start_unix'] = self.movement['start_unix'].apply(lambda x: int(x.timestamp()))\n"
]
},
{
"cell_type": "code",
- "execution_count": 12,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "2. 신호이력 테이블을 변환합니다.\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- "[436, 437, 442, 443, 455, 456, 457]"
- ]
- },
- "execution_count": 12,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "self.process_history()\n",
- "sorted(inter_no for inter_no in set(self.rhistory.inter_no))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[436, 437, 442, 443, 455, 456, 457]"
- ]
- },
- "execution_count": 13,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "sorted(inter_no for inter_no in set(self.rhists.inter_no))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[436, 437, 442, 443, 455, 456, 457]"
- ]
- },
- "execution_count": 14,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "sorted(inter_no for inter_no in set(self.hrhists.inter_no))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "3. 이동류정보 테이블을 변환합니다.\n"
- ]
- },
- {
- "data": {
- "text/plain": [
- "[436, 437, 438, 442, 443, 444, 455, 456, 457, 458]"
- ]
- },
- "execution_count": 15,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "self.process_movement()\n",
- "sorted(inter_no for inter_no in set(self.movement.inter_no))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "4. 통합 테이블을 생성합니다.\n"
- ]
- }
- ],
- "source": [
- "self.make_histids()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 17,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[436, 437, 438, 442, 443, 444, 455, 456, 457, 458]"
- ]
- },
- "execution_count": 17,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "sorted(inter_no for inter_no in set(self.movement_updated.inter_no))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 18,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[436, 437, 442, 443, 455, 456, 457]"
- ]
- },
- "execution_count": 18,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "sorted(inter_no for inter_no in set(self.movedur.inter_no))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 19,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[436, 437, 442, 443, 455, 456, 457]"
- ]
- },
- "execution_count": 19,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "sorted(inter_no for inter_no in set(self.histid.inter_no))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 20,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['106231', '106234', '106332', '108769', '109836', '109901', '109986']"
- ]
- },
- "execution_count": 20,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "sorted(node_id for node_id in set(self.histid.node_id))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 21,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[436, 437, 442, 443, 455, 456, 457]"
- ]
- },
- "execution_count": 21,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "sorted(inter_no for inter_no in set(self.histids.inter_no))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 22,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['106231',\n",
- " '106234',\n",
- " '106332',\n",
- " '107587',\n",
- " '108769',\n",
- " '109295',\n",
- " '109296',\n",
- " '109297',\n",
- " '109313',\n",
- " '109333',\n",
- " '109836',\n",
- " '109901',\n",
- " '109986']"
- ]
- },
- "execution_count": 22,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "sorted(node_id for node_id in set(self.histids.node_id))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 23,
- "metadata": {},
- "outputs": [],
- "source": [
- "self.set_timepoints()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 24,
- "metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "c:\\github\\siggen\\scripts\\generate_signals.py:825: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:826: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:825: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:826: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:825: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:826: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:825: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:826: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:825: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:826: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:825: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:826: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:825: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:826: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:825: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:826: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:825: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:826: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:825: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:826: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:825: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:826: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:825: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:826: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:825: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:826: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n"
- ]
- }
- ],
- "source": [
- "self.assign_red_yellow()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "455"
- ]
- },
- "execution_count": 23,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "self.node2inter[self.node_ids[11]]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
+ "execution_count": 10,
"metadata": {},
"outputs": [
{
@@ -570,92 +339,175 @@
" \n",
" \n",
" | \n",
- " inter_no | \n",
- " plan_no | \n",
- " start_hour | \n",
- " start_minute | \n",
- " cycle | \n",
- " offset | \n",
- " dura_A1 | \n",
- " dura_A2 | \n",
- " dura_A3 | \n",
- " dura_A4 | \n",
- " ... | \n",
- " yellow_A4 | \n",
- " yellow_B4 | \n",
- " red_A5 | \n",
- " red_B5 | \n",
- " yellow_A5 | \n",
- " yellow_B5 | \n",
- " red_A6 | \n",
- " red_B6 | \n",
- " yellow_A6 | \n",
- " yellow_B6 | \n",
+ " PHASE_DT | \n",
+ " CRSRD_ID | \n",
+ " RINGA_PHASE | \n",
+ " RINGA_FLOW | \n",
+ " RINGB_PHASE | \n",
+ " RINGB_FLOW | \n",
+ " MAP_MODE | \n",
+ " FRST_REG_DT | \n",
"
\n",
" \n",
" \n",
" \n",
- " 19 | \n",
- " 455 | \n",
- " 1 | \n",
- " 6 | \n",
+ " 0 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 436 | \n",
+ " 2 | \n",
+ " 8 | \n",
+ " 2 | \n",
+ " 3 | \n",
" 0 | \n",
- " 90 | \n",
- " 63 | \n",
- " 63 | \n",
- " 27 | \n",
+ " 2024-07-31 08:58:46.799000 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 437 | \n",
+ " 3 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ " 3 | \n",
" 0 | \n",
+ " 2024-07-31 08:58:46.799000 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 438 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 2 | \n",
" 0 | \n",
- " ... | \n",
- " 4 | \n",
- " 4 | \n",
+ " 2024-07-31 08:58:46.799000 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 442 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 1 | \n",
" 0 | \n",
+ " 2024-07-31 08:58:46.799000 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 443 | \n",
+ " 1 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 2 | \n",
" 0 | \n",
+ " 2024-07-31 08:58:46.799000 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 11095 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 444 | \n",
+ " 4 | \n",
+ " 7 | \n",
" 4 | \n",
" 4 | \n",
" 0 | \n",
+ " 2024-07-31 09:17:23.051000 | \n",
+ "
\n",
+ " \n",
+ " 11096 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 455 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 1 | \n",
" 0 | \n",
+ " 2024-07-31 09:17:23.051000 | \n",
+ "
\n",
+ " \n",
+ " 11097 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 456 | \n",
" 4 | \n",
+ " 17 | \n",
" 4 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 2024-07-31 09:17:23.051000 | \n",
+ "
\n",
+ " \n",
+ " 11098 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 457 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 3 | \n",
+ " 17 | \n",
+ " 0 | \n",
+ " 2024-07-31 09:17:23.051000 | \n",
+ "
\n",
+ " \n",
+ " 11099 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 458 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 2 | \n",
+ " 17 | \n",
+ " 0 | \n",
+ " 2024-07-31 09:17:23.051000 | \n",
"
\n",
" \n",
"\n",
- "1 rows × 47 columns
\n",
+ "11100 rows × 8 columns
\n",
""
],
"text/plain": [
- " inter_no plan_no start_hour start_minute cycle offset dura_A1 \\\n",
- "19 455 1 6 0 90 63 63 \n",
- "\n",
- " dura_A2 dura_A3 dura_A4 ... yellow_A4 yellow_B4 red_A5 red_B5 \\\n",
- "19 27 0 0 ... 4 4 0 0 \n",
- "\n",
- " yellow_A5 yellow_B5 red_A6 red_B6 yellow_A6 yellow_B6 \n",
- "19 4 4 0 0 4 4 \n",
- "\n",
- "[1 rows x 47 columns]"
+ " PHASE_DT CRSRD_ID RINGA_PHASE RINGA_FLOW RINGB_PHASE \\\n",
+ "0 2024-07-31 08:58:46 436 2 8 2 \n",
+ "1 2024-07-31 08:58:46 437 3 8 3 \n",
+ "2 2024-07-31 08:58:46 438 1 6 1 \n",
+ "3 2024-07-31 08:58:46 442 1 6 1 \n",
+ "4 2024-07-31 08:58:46 443 1 6 1 \n",
+ "... ... ... ... ... ... \n",
+ "11095 2024-07-31 09:17:23 444 4 7 4 \n",
+ "11096 2024-07-31 09:17:23 455 2 1 2 \n",
+ "11097 2024-07-31 09:17:23 456 4 17 4 \n",
+ "11098 2024-07-31 09:17:23 457 3 17 3 \n",
+ "11099 2024-07-31 09:17:23 458 2 17 2 \n",
+ "\n",
+ " RINGB_FLOW MAP_MODE FRST_REG_DT \n",
+ "0 3 0 2024-07-31 08:58:46.799000 \n",
+ "1 3 0 2024-07-31 08:58:46.799000 \n",
+ "2 2 0 2024-07-31 08:58:46.799000 \n",
+ "3 1 0 2024-07-31 08:58:46.799000 \n",
+ "4 2 0 2024-07-31 08:58:46.799000 \n",
+ "... ... ... ... \n",
+ "11095 4 0 2024-07-31 09:17:23.051000 \n",
+ "11096 1 0 2024-07-31 09:17:23.051000 \n",
+ "11097 1 0 2024-07-31 09:17:23.051000 \n",
+ "11098 17 0 2024-07-31 09:17:23.051000 \n",
+ "11099 17 0 2024-07-31 09:17:23.051000 \n",
+ "\n",
+ "[11100 rows x 8 columns]"
]
},
- "execution_count": 24,
"metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "self.plan[self.plan.inter_no==455]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 29,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "109901\n"
- ]
+ "output_type": "display_data"
},
{
"data": {
@@ -678,108 +530,122 @@
" \n",
" \n",
" | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
+ " PHASE_DT | \n",
+ " CRSRD_ID | \n",
+ " RINGA_PHASE | \n",
+ " RINGB_PHASE | \n",
+ " MAP_MODE | \n",
"
\n",
" \n",
" \n",
" \n",
- " 157 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722383976 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
+ " 0 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 436 | \n",
+ " 2 | \n",
" 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
" 0 | \n",
"
\n",
" \n",
- " 158 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384066 | \n",
+ " 1 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 437 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 438 | \n",
" 1 | \n",
" 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
" 0 | \n",
"
\n",
" \n",
- " 159 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384067 | \n",
+ " 3 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 442 | \n",
" 1 | \n",
" 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
" 0 | \n",
"
\n",
" \n",
- " 160 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384155 | \n",
+ " 4 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 443 | \n",
" 1 | \n",
" 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
" 0 | \n",
"
\n",
" \n",
- " 161 | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 11095 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 444 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 11096 | \n",
+ " 2024-07-31 09:17:23 | \n",
" 455 | \n",
- " 109901 | \n",
- " 1722384156 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
" 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
+ " 2 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 11097 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 456 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 11098 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 457 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 11099 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 458 | \n",
+ " 2 | \n",
+ " 2 | \n",
" 0 | \n",
"
\n",
" \n",
"\n",
+ "11100 rows × 5 columns
\n",
""
],
"text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "157 455 109901 1722383976 1 1 6 2 63 \n",
- "158 455 109901 1722384066 1 1 6 2 63 \n",
- "159 455 109901 1722384067 1 1 6 2 63 \n",
- "160 455 109901 1722384155 1 1 6 2 63 \n",
- "161 455 109901 1722384156 1 1 6 2 63 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "157 GGrr rrGG 0 \n",
- "158 GGrr rrGG 0 \n",
- "159 GGrr rrGG 0 \n",
- "160 GGrr rrGG 0 \n",
- "161 GGrr rrGG 0 "
+ " PHASE_DT CRSRD_ID RINGA_PHASE RINGB_PHASE MAP_MODE\n",
+ "0 2024-07-31 08:58:46 436 2 2 0\n",
+ "1 2024-07-31 08:58:46 437 3 3 0\n",
+ "2 2024-07-31 08:58:46 438 1 1 0\n",
+ "3 2024-07-31 08:58:46 442 1 1 0\n",
+ "4 2024-07-31 08:58:46 443 1 1 0\n",
+ "... ... ... ... ... ...\n",
+ "11095 2024-07-31 09:17:23 444 4 4 0\n",
+ "11096 2024-07-31 09:17:23 455 2 2 0\n",
+ "11097 2024-07-31 09:17:23 456 4 4 0\n",
+ "11098 2024-07-31 09:17:23 457 3 3 0\n",
+ "11099 2024-07-31 09:17:23 458 2 2 0\n",
+ "\n",
+ "[11100 rows x 5 columns]"
]
},
"metadata": {},
@@ -806,132 +672,122 @@
" \n",
" \n",
" | \n",
- " inter_no | \n",
- " node_id | \n",
" start_unix | \n",
+ " inter_no | \n",
" phas_A | \n",
" phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- " red_A | \n",
- " red_B | \n",
- " yellow_A | \n",
- " yellow_B | \n",
+ " STOS_NO | \n",
"
\n",
" \n",
" \n",
" \n",
- " 157 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722383976 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
+ " 0 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 436 | \n",
+ " 2 | \n",
" 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
" 0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 4.0 | \n",
- " 4.0 | \n",
"
\n",
" \n",
- " 158 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384066 | \n",
+ " 1 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 437 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 438 | \n",
" 1 | \n",
" 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
" 0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 4.0 | \n",
- " 4.0 | \n",
"
\n",
" \n",
- " 159 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384067 | \n",
+ " 3 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 442 | \n",
" 1 | \n",
" 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
" 0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 4.0 | \n",
- " 4.0 | \n",
"
\n",
" \n",
- " 160 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384155 | \n",
+ " 4 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 443 | \n",
" 1 | \n",
" 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
" 0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 4.0 | \n",
- " 4.0 | \n",
"
\n",
" \n",
- " 161 | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 11095 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 444 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 11096 | \n",
+ " 2024-07-31 09:17:23 | \n",
" 455 | \n",
- " 109901 | \n",
- " 1722384156 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
" 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
+ " 2 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 11097 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 456 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 11098 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 457 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " 11099 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 458 | \n",
+ " 2 | \n",
+ " 2 | \n",
" 0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 4.0 | \n",
- " 4.0 | \n",
"
\n",
" \n",
"\n",
+ "11100 rows × 5 columns
\n",
""
],
"text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "157 455 109901 1722383976 1 1 6 2 63 \n",
- "158 455 109901 1722384066 1 1 6 2 63 \n",
- "159 455 109901 1722384067 1 1 6 2 63 \n",
- "160 455 109901 1722384155 1 1 6 2 63 \n",
- "161 455 109901 1722384156 1 1 6 2 63 \n",
- "\n",
- " state_A state_B phase_sumo red_A red_B yellow_A yellow_B \n",
- "157 GGrr rrGG 0 0.0 0.0 4.0 4.0 \n",
- "158 GGrr rrGG 0 0.0 0.0 4.0 4.0 \n",
- "159 GGrr rrGG 0 0.0 0.0 4.0 4.0 \n",
- "160 GGrr rrGG 0 0.0 0.0 4.0 4.0 \n",
- "161 GGrr rrGG 0 0.0 0.0 4.0 4.0 "
+ " start_unix inter_no phas_A phas_B STOS_NO\n",
+ "0 2024-07-31 08:58:46 436 2 2 0\n",
+ "1 2024-07-31 08:58:46 437 3 3 0\n",
+ "2 2024-07-31 08:58:46 438 1 1 0\n",
+ "3 2024-07-31 08:58:46 442 1 1 0\n",
+ "4 2024-07-31 08:58:46 443 1 1 0\n",
+ "... ... ... ... ... ...\n",
+ "11095 2024-07-31 09:17:23 444 4 4 0\n",
+ "11096 2024-07-31 09:17:23 455 2 2 0\n",
+ "11097 2024-07-31 09:17:23 456 4 4 0\n",
+ "11098 2024-07-31 09:17:23 457 3 3 0\n",
+ "11099 2024-07-31 09:17:23 458 2 2 0\n",
+ "\n",
+ "[11100 rows x 5 columns]"
]
},
"metadata": {},
@@ -958,120 +814,146 @@
" \n",
" \n",
" | \n",
- " inter_no | \n",
- " node_id | \n",
" start_unix | \n",
+ " inter_no | \n",
" phas_A | \n",
" phas_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- " red_A | \n",
- " red_B | \n",
- " yellow_A | \n",
- " yellow_B | \n",
+ " STOS_NO | \n",
+ " move_A | \n",
+ " move_B | \n",
"
\n",
" \n",
" \n",
" \n",
- " 157 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722383976 | \n",
- " 1 | \n",
- " 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
+ " 0 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 436 | \n",
+ " 2 | \n",
+ " 2 | \n",
" 0 | \n",
+ " 8 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 437 | \n",
+ " 3 | \n",
+ " 3 | \n",
" 0 | \n",
- " 4 | \n",
- " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
"
\n",
" \n",
- " 158 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384066 | \n",
+ " 2 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 438 | \n",
" 1 | \n",
" 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
" 0 | \n",
- " 0 | \n",
- " 4 | \n",
- " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
"
\n",
" \n",
- " 159 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384067 | \n",
+ " 3 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 442 | \n",
" 1 | \n",
" 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
" 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 4 | \n",
- " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
"
\n",
" \n",
- " 160 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384155 | \n",
+ " 4 | \n",
+ " 2024-07-31 08:58:46 | \n",
+ " 443 | \n",
" 1 | \n",
" 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- " 0 | \n",
" 0 | \n",
+ " 6 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 11095 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 444 | \n",
" 4 | \n",
" 4 | \n",
+ " 0 | \n",
+ " -1 | \n",
+ " -1 | \n",
"
\n",
" \n",
- " 161 | \n",
+ " 11096 | \n",
+ " 2024-07-31 09:17:23 | \n",
" 455 | \n",
- " 109901 | \n",
- " 1722384156 | \n",
- " 1 | \n",
- " 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- " 0 | \n",
+ " 2 | \n",
+ " 2 | \n",
" 0 | \n",
+ " -1 | \n",
+ " -1 | \n",
+ "
\n",
+ " \n",
+ " 11097 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 456 | \n",
" 4 | \n",
" 4 | \n",
+ " 0 | \n",
+ " 17 | \n",
+ " -1 | \n",
+ "
\n",
+ " \n",
+ " 11098 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 457 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 0 | \n",
+ " 17 | \n",
+ " 17 | \n",
+ "
\n",
+ " \n",
+ " 11099 | \n",
+ " 2024-07-31 09:17:23 | \n",
+ " 458 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 17 | \n",
+ " 17 | \n",
"
\n",
" \n",
"\n",
+ "11100 rows × 7 columns
\n",
""
],
"text/plain": [
- " inter_no node_id start_unix phas_A phas_B duration state_A state_B \\\n",
- "157 455 109901 1722383976 1 1 63 GGrr rrGG \n",
- "158 455 109901 1722384066 1 1 63 GGrr rrGG \n",
- "159 455 109901 1722384067 1 1 63 GGrr rrGG \n",
- "160 455 109901 1722384155 1 1 63 GGrr rrGG \n",
- "161 455 109901 1722384156 1 1 63 GGrr rrGG \n",
- "\n",
- " phase_sumo red_A red_B yellow_A yellow_B \n",
- "157 0 0 0 4 4 \n",
- "158 0 0 0 4 4 \n",
- "159 0 0 0 4 4 \n",
- "160 0 0 0 4 4 \n",
- "161 0 0 0 4 4 "
+ " start_unix inter_no phas_A phas_B STOS_NO move_A move_B\n",
+ "0 2024-07-31 08:58:46 436 2 2 0 8 3\n",
+ "1 2024-07-31 08:58:46 437 3 3 0 8 3\n",
+ "2 2024-07-31 08:58:46 438 1 1 0 6 2\n",
+ "3 2024-07-31 08:58:46 442 1 1 0 6 1\n",
+ "4 2024-07-31 08:58:46 443 1 1 0 6 2\n",
+ "... ... ... ... ... ... ... ...\n",
+ "11095 2024-07-31 09:17:23 444 4 4 0 -1 -1\n",
+ "11096 2024-07-31 09:17:23 455 2 2 0 -1 -1\n",
+ "11097 2024-07-31 09:17:23 456 4 4 0 17 -1\n",
+ "11098 2024-07-31 09:17:23 457 3 3 0 17 17\n",
+ "11099 2024-07-31 09:17:23 458 2 2 0 17 17\n",
+ "\n",
+ "[11100 rows x 7 columns]"
]
},
"metadata": {},
@@ -1099,161 +981,145 @@
" \n",
" | \n",
" start_unix | \n",
+ " inter_no | \n",
" phas_A | \n",
- " duration | \n",
- " state_A | \n",
- " red_A | \n",
- " yellow_A | \n",
+ " phas_B | \n",
+ " STOS_NO | \n",
+ " move_A | \n",
+ " move_B | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
- " 1722383976 | \n",
- " 1 | \n",
- " 63 | \n",
- " GGrr | \n",
+ " 1722416326 | \n",
+ " 436 | \n",
+ " 2 | \n",
+ " 2 | \n",
" 0 | \n",
- " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
"
\n",
" \n",
" 1 | \n",
- " 1722384066 | \n",
- " 1 | \n",
- " 63 | \n",
- " GGrr | \n",
+ " 1722416326 | \n",
+ " 437 | \n",
+ " 3 | \n",
+ " 3 | \n",
" 0 | \n",
- " 4 | \n",
+ " 8 | \n",
+ " 3 | \n",
"
\n",
" \n",
" 2 | \n",
- " 1722384067 | \n",
+ " 1722416326 | \n",
+ " 438 | \n",
+ " 1 | \n",
" 1 | \n",
- " 63 | \n",
- " GGrr | \n",
" 0 | \n",
- " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
"
\n",
" \n",
" 3 | \n",
- " 1722384155 | \n",
+ " 1722416326 | \n",
+ " 442 | \n",
+ " 1 | \n",
" 1 | \n",
- " 63 | \n",
- " GGrr | \n",
" 0 | \n",
- " 4 | \n",
+ " 6 | \n",
+ " 1 | \n",
"
\n",
" \n",
" 4 | \n",
- " 1722384156 | \n",
+ " 1722416326 | \n",
+ " 443 | \n",
+ " 1 | \n",
" 1 | \n",
- " 63 | \n",
- " GGrr | \n",
" 0 | \n",
- " 4 | \n",
+ " 6 | \n",
+ " 2 | \n",
"
\n",
- " \n",
- "\n",
- ""
- ],
- "text/plain": [
- " start_unix phas_A duration state_A red_A yellow_A\n",
- "0 1722383976 1 63 GGrr 0 4\n",
- "1 1722384066 1 63 GGrr 0 4\n",
- "2 1722384067 1 63 GGrr 0 4\n",
- "3 1722384155 1 63 GGrr 0 4\n",
- "4 1722384156 1 63 GGrr 0 4"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " start_unix | \n",
- " phas_B | \n",
- " duration | \n",
- " state_B | \n",
- " red_B | \n",
- " yellow_B | \n",
+ "
\n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
"
\n",
- " \n",
- " \n",
" \n",
- " 0 | \n",
- " 1722383976 | \n",
- " 1 | \n",
- " 63 | \n",
- " rrGG | \n",
- " 0 | \n",
+ " 11095 | \n",
+ " 1722417443 | \n",
+ " 444 | \n",
" 4 | \n",
+ " 4 | \n",
+ " 0 | \n",
+ " -1 | \n",
+ " -1 | \n",
"
\n",
" \n",
- " 1 | \n",
- " 1722384066 | \n",
- " 1 | \n",
- " 63 | \n",
- " rrGG | \n",
+ " 11096 | \n",
+ " 1722417443 | \n",
+ " 455 | \n",
+ " 2 | \n",
+ " 2 | \n",
" 0 | \n",
- " 4 | \n",
+ " -1 | \n",
+ " -1 | \n",
"
\n",
" \n",
- " 2 | \n",
- " 1722384067 | \n",
- " 1 | \n",
- " 63 | \n",
- " rrGG | \n",
- " 0 | \n",
+ " 11097 | \n",
+ " 1722417443 | \n",
+ " 456 | \n",
" 4 | \n",
+ " 4 | \n",
+ " 0 | \n",
+ " 17 | \n",
+ " -1 | \n",
"
\n",
" \n",
- " 3 | \n",
- " 1722384155 | \n",
- " 1 | \n",
- " 63 | \n",
- " rrGG | \n",
+ " 11098 | \n",
+ " 1722417443 | \n",
+ " 457 | \n",
+ " 3 | \n",
+ " 3 | \n",
" 0 | \n",
- " 4 | \n",
+ " 17 | \n",
+ " 17 | \n",
"
\n",
" \n",
- " 4 | \n",
- " 1722384156 | \n",
- " 1 | \n",
- " 63 | \n",
- " rrGG | \n",
+ " 11099 | \n",
+ " 1722417443 | \n",
+ " 458 | \n",
+ " 2 | \n",
+ " 2 | \n",
" 0 | \n",
- " 4 | \n",
+ " 17 | \n",
+ " 17 | \n",
"
\n",
" \n",
"
\n",
+ "
11100 rows × 7 columns
\n",
"
"
],
"text/plain": [
- " start_unix phas_B duration state_B red_B yellow_B\n",
- "0 1722383976 1 63 rrGG 0 4\n",
- "1 1722384066 1 63 rrGG 0 4\n",
- "2 1722384067 1 63 rrGG 0 4\n",
- "3 1722384155 1 63 rrGG 0 4\n",
- "4 1722384156 1 63 rrGG 0 4"
+ " start_unix inter_no phas_A phas_B STOS_NO move_A move_B\n",
+ "0 1722416326 436 2 2 0 8 3\n",
+ "1 1722416326 437 3 3 0 8 3\n",
+ "2 1722416326 438 1 1 0 6 2\n",
+ "3 1722416326 442 1 1 0 6 1\n",
+ "4 1722416326 443 1 1 0 6 2\n",
+ "... ... ... ... ... ... ... ...\n",
+ "11095 1722417443 444 4 4 0 -1 -1\n",
+ "11096 1722417443 455 2 2 0 -1 -1\n",
+ "11097 1722417443 456 4 4 0 17 -1\n",
+ "11098 1722417443 457 3 3 0 17 17\n",
+ "11099 1722417443 458 2 2 0 17 17\n",
+ "\n",
+ "[11100 rows x 7 columns]"
]
},
"metadata": {},
@@ -1261,38 +1127,31 @@
}
],
"source": [
- "self.SIGTABLE = []\n",
- "node_id = self.node_ids[11]\n",
- "print(node_id)\n",
- "sig = self.sigtable.query('node_id==@node_id')\n",
- "display(sig)\n",
- "for i, row in sig.iterrows():\n",
- " inter_no = row.inter_no\n",
- " phas_A = row.phas_A\n",
- " phas_B = row.phas_B\n",
- " start_unix = row.start_unix\n",
- " prow = self.load_prow(inter_no, start_unix)[1].iloc[0]\n",
- " # 황색 및 적색시간 컬럼 생성\n",
- " red_A = prow[f'red_A{phas_A}']\n",
- " yellow_A = prow[f'yellow_A{phas_A}']\n",
- " red_B = prow[f'red_B{phas_B}']\n",
- " yellow_B = prow[f'yellow_B{phas_B}']\n",
- " sig.loc[i, ['red_A', 'red_B', 'yellow_A', 'yellow_B']] = red_A, red_B, yellow_A, yellow_B\n",
- "display(sig)\n",
- "sig = sig.astype({'red_A': int, 'red_B': int, 'yellow_A': int, 'yellow_B': int,\n",
- " 'phas_A':str, 'phas_B':str})\n",
- "sig = sig.drop(['move_A','move_B'], axis=1)\n",
- "display(sig)\n",
- "\n",
- "sig_A = sig[['start_unix', 'phas_A', 'duration', 'state_A', 'red_A', 'yellow_A']].reset_index(drop=True)\n",
- "sig_B = sig[['start_unix', 'phas_B', 'duration', 'state_B', 'red_B', 'yellow_B']].reset_index(drop=True)\n",
- "display(sig_A)\n",
- "display(sig_B)\n"
+ "self.movement = pd.read_csv(os.path.join(self.path_tables, 'TL_IF_SIGL.csv'))\n",
+ "display(self.movement)\n",
+ "self.movement = self.movement.drop(columns=['FRST_REG_DT', 'RINGA_FLOW', 'RINGB_FLOW'])\n",
+ "display(self.movement)\n",
+ "self.movement = self.movement.rename(columns={\n",
+ " 'PHASE_DT':'start_unix','CRSRD_ID':'inter_no',\n",
+ " 'RINGA_PHASE':'phas_A', 'RINGB_PHASE':'phas_B',\n",
+ " 'MAP_MODE':'STOS_NO'\n",
+ " })\n",
+ "display(self.movement)\n",
+ "isp2move_A = self.isp2move['A']\n",
+ "isp2move_B = self.isp2move['B']\n",
+ "self.movement['move_A'] = self.movement.apply(\n",
+ " lambda row: int(isp2move_A.get((row.inter_no, row.STOS_NO, row.phas_A), -1)), axis=1)\n",
+ "self.movement['move_B'] = self.movement.apply(\n",
+ " lambda row: int(isp2move_B.get((row.inter_no, row.STOS_NO, row.phas_B), -1)), axis=1)\n",
+ "display(self.movement)\n",
+ "self.movement['start_unix'] = pd.to_datetime(self.movement['start_unix'])\n",
+ "self.movement['start_unix'] = self.movement['start_unix'].apply(lambda x: int(x.timestamp()))\n",
+ "display(self.movement)"
]
},
{
"cell_type": "code",
- "execution_count": 42,
+ "execution_count": 6,
"metadata": {},
"outputs": [
{
@@ -1316,4539 +1175,764 @@
" \n",
" \n",
" | \n",
- " start_time | \n",
- " phas_A | \n",
- " state_A | \n",
" start_unix | \n",
+ " inter_no | \n",
+ " phas_A | \n",
+ " phas_B | \n",
+ " STOS_NO | \n",
+ " move_A | \n",
+ " move_B | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
+ " 1722416326 | \n",
+ " 436 | \n",
+ " 2 | \n",
+ " 2 | \n",
" 0 | \n",
- " 1g | \n",
- " GGrr | \n",
- " 1722383976 | \n",
+ " 8 | \n",
+ " 3 | \n",
"
\n",
" \n",
" 1 | \n",
- " 59 | \n",
- " 1y | \n",
- " GGrr | \n",
- " 1722383976 | \n",
+ " 1722416326 | \n",
+ " 437 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 0 | \n",
+ " 8 | \n",
+ " 3 | \n",
"
\n",
" \n",
" 2 | \n",
- " 63 | \n",
- " 2r | \n",
- " GGrr | \n",
- " 1722384066 | \n",
+ " 1722416326 | \n",
+ " 438 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 6 | \n",
+ " 2 | \n",
"
\n",
" \n",
" 3 | \n",
- " 63 | \n",
- " 2g | \n",
- " GGrr | \n",
- " 1722384066 | \n",
+ " 1722416326 | \n",
+ " 442 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 6 | \n",
+ " 1 | \n",
"
\n",
" \n",
" 4 | \n",
- " 122 | \n",
- " 2y | \n",
- " GGrr | \n",
- " 1722384066 | \n",
- "
\n",
- " \n",
- " 5 | \n",
- " 126 | \n",
- " 1r | \n",
- " GGrr | \n",
- " 1722384067 | \n",
- "
\n",
- " \n",
- " 6 | \n",
- " 126 | \n",
- " 1g | \n",
- " GGrr | \n",
- " 1722384067 | \n",
+ " 1722416326 | \n",
+ " 443 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " 6 | \n",
+ " 2 | \n",
"
\n",
" \n",
- " 7 | \n",
- " 185 | \n",
- " 1y | \n",
- " GGrr | \n",
- " 1722384067 | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
"
\n",
" \n",
- " 8 | \n",
- " 189 | \n",
- " 2r | \n",
- " GGrr | \n",
- " 1722384155 | \n",
+ " 11095 | \n",
+ " 1722417443 | \n",
+ " 444 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 0 | \n",
+ " -1 | \n",
+ " -1 | \n",
"
\n",
" \n",
- " 9 | \n",
- " 189 | \n",
- " 2g | \n",
- " GGrr | \n",
- " 1722384155 | \n",
+ " 11096 | \n",
+ " 1722417443 | \n",
+ " 455 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " -1 | \n",
+ " -1 | \n",
"
\n",
" \n",
- " 10 | \n",
- " 248 | \n",
- " 2y | \n",
- " GGrr | \n",
- " 1722384155 | \n",
+ " 11097 | \n",
+ " 1722417443 | \n",
+ " 456 | \n",
+ " 4 | \n",
+ " 4 | \n",
+ " 0 | \n",
+ " 17 | \n",
+ " -1 | \n",
"
\n",
" \n",
- " 11 | \n",
- " 252 | \n",
- " 1r | \n",
- " GGrr | \n",
- " 1722384156 | \n",
+ " 11098 | \n",
+ " 1722417443 | \n",
+ " 457 | \n",
+ " 3 | \n",
+ " 3 | \n",
+ " 0 | \n",
+ " 17 | \n",
+ " 17 | \n",
"
\n",
" \n",
- " 12 | \n",
- " 252 | \n",
- " 1g | \n",
- " GGrr | \n",
- " 1722384156 | \n",
- "
\n",
- " \n",
- " 13 | \n",
- " 311 | \n",
- " 1y | \n",
- " GGrr | \n",
- " 1722384156 | \n",
+ " 11099 | \n",
+ " 1722417443 | \n",
+ " 458 | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 0 | \n",
+ " 17 | \n",
+ " 17 | \n",
"
\n",
" \n",
"\n",
+ "11100 rows × 7 columns
\n",
""
],
"text/plain": [
- " start_time phas_A state_A start_unix\n",
- "0 0 1g GGrr 1722383976\n",
- "1 59 1y GGrr 1722383976\n",
- "2 63 2r GGrr 1722384066\n",
- "3 63 2g GGrr 1722384066\n",
- "4 122 2y GGrr 1722384066\n",
- "5 126 1r GGrr 1722384067\n",
- "6 126 1g GGrr 1722384067\n",
- "7 185 1y GGrr 1722384067\n",
- "8 189 2r GGrr 1722384155\n",
- "9 189 2g GGrr 1722384155\n",
- "10 248 2y GGrr 1722384155\n",
- "11 252 1r GGrr 1722384156\n",
- "12 252 1g GGrr 1722384156\n",
- "13 311 1y GGrr 1722384156"
+ " start_unix inter_no phas_A phas_B STOS_NO move_A move_B\n",
+ "0 1722416326 436 2 2 0 8 3\n",
+ "1 1722416326 437 3 3 0 8 3\n",
+ "2 1722416326 438 1 1 0 6 2\n",
+ "3 1722416326 442 1 1 0 6 1\n",
+ "4 1722416326 443 1 1 0 6 2\n",
+ "... ... ... ... ... ... ... ...\n",
+ "11095 1722417443 444 4 4 0 -1 -1\n",
+ "11096 1722417443 455 2 2 0 -1 -1\n",
+ "11097 1722417443 456 4 4 0 17 -1\n",
+ "11098 1722417443 457 3 3 0 17 17\n",
+ "11099 1722417443 458 2 2 0 17 17\n",
+ "\n",
+ "[11100 rows x 7 columns]"
]
},
- "execution_count": 42,
+ "execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "# csig_A = self.cumulate(sig_A, 'A')\n",
- "sig = sig_A\n",
- "alph = 'A'\n",
- "csig = [] # cumulated sig\n",
- "pre = pd.Series({f'phas_{alph}':None})\n",
- "\n",
- "sig[f'phas_{alph}'] = sig[f'phas_{alph}'].astype(int)\n",
- "# 만약 현시번호가 1로 일정하면 2현시를 가상으로 추가\n",
- "if (sig[f'phas_{alph}']==1).all():\n",
- " sig_dup = sig.copy() \n",
- " sig_dup[f'phas_{alph}'] = 2\n",
- " sig = pd.concat([sig, sig_dup]).sort_values(by=['start_unix', f'phas_{alph}'])\n",
+ "display(self.movement)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.process_movement()\n",
+ "self.make_histids()\n",
+ "self.get_signals()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
"\n",
- "start_time = 0\n",
- "elapsed = 0\n",
- "for i, cur in sig.iterrows():\n",
- " start_unix = cur.start_unix\n",
- " \n",
- " # pre, nex\n",
- " if i != 0:\n",
- " pre = sig.iloc[i-1]\n",
- " \n",
- " if i != len(sig) - 1:\n",
- " nex = sig.iloc[i+1]\n",
- " \n",
- " # duration\n",
- " if cur[f'phas_{alph}'] == nex[f'phas_{alph}']:\n",
- " continue\n",
- " if cur[f'phas_{alph}'] == pre[f'phas_{alph}']:\n",
- " duration = cur.duration + pre.duration\n",
- " else:\n",
- " duration = cur.duration\n",
- " start_times = []\n",
- " states = []\n",
- " phases = []\n",
+ "# 예제 DataFrame 생성\n",
+ "data = {\n",
+ " 'A': [1, 2, np.nan, 4, np.nan, 6],\n",
+ " 'B': [np.nan, 2, 3, np.nan, 5, 6],\n",
+ " 'C': [1, np.nan, np.nan, 4, 5, 6]\n",
+ "}\n",
+ "df = pd.DataFrame(data)\n",
"\n",
- " # red\n",
- " if i != 0:\n",
- " start_time += elapsed\n",
- " start_times.append(start_time)\n",
- " states.append(self.get_red(pre[f'state_{alph}'], cur[f'state_{alph}']))\n",
- " phases.append(f'{cur[f\"phas_{alph}\"]}r')\n",
+ "print(\"원본 DataFrame:\")\n",
+ "display(df)\n",
"\n",
- " elapsed = cur[f'red_{alph}']\n",
+ "# 결측값을 앞의 값으로 채우기\n",
+ "# df_filled = df.fillna(method='ffill')\n",
+ "df_filled = df.ffill()#fillna(method='ffill')\n",
"\n",
- " # green\n",
- " if i == 0:\n",
- " start_time = 0\n",
- " else:\n",
- " start_time += elapsed\n",
- " start_times.append(start_time)\n",
- " states.append(cur[f'state_{alph}'])\n",
- " phases.append(f'{cur[f\"phas_{alph}\"]}g')\n",
- " if i == 0:\n",
- " elapsed = duration - cur[f'yellow_{alph}']\n",
- " else:\n",
- " elapsed = duration - cur[f'yellow_{alph}'] - cur[f'red_{alph}']\n",
+ "print(\"\\n결측값을 앞의 값으로 채운 DataFrame:\")\n",
+ "display(df_filled)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "time_str = '2024-07-29 9:36:32'\n",
+ "time_dt = datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')\n",
+ "print(time_dt)\n",
+ "time_unix = int(time_dt.timestamp())\n",
+ "print(time_unix)\n",
+ "print(datetime.fromtimestamp(time_unix))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self = SignalGenerator(config_name='test_0731',\n",
+ " month=7,\n",
+ " day=31,\n",
+ " hour=9,\n",
+ " minute=5)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.load_networks()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.load_tables()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "print(self.history.end_unix.min())\n",
+ "print(self.history.end_unix.max())\n",
+ "print(self.present_time)\n",
+ "print(self.midnight)\n",
+ "print(self.next_day)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# dura_As = [f'dura_A{i}' for i in range(1,9)]\n",
+ "# dura_Bs = [f'dura_B{i}' for i in range(1,9)]\n",
+ "# for i, row in self.plan.iterrows():\n",
+ "# is_zero_A = (row[dura_As]==0).all()\n",
+ "# is_zero_B = (row[dura_Bs]==0).all()\n",
+ "# assert not (is_zero_A & is_zero_B)\n",
+ "# if is_zero_B:\n",
+ "# for j in range(1, 9):\n",
+ "# self.plan.at[i, f'dura_B{j}'] = row[f'dura_A{j}']\n",
+ "# if is_zero_A:\n",
+ "# for j in range(1, 9):\n",
+ "# self.plan.at[i, f'dura_A{j}'] = row[f'dura_B{j}']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.prepare_auxiliaries()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# valid_parent_ids = [self.inter2node[inter_no] for inter_no in set(self.history.inter_no)]\n",
+ "# invalid_parent_ids = [parent_id for parent_id in self.parent_ids if not parent_id in valid_parent_ids ]\n",
+ "# print(sorted(self.parent_ids))\n",
+ "# print(sorted(valid_parent_ids))\n",
+ "# print(sorted(invalid_parent_ids))\n",
+ "# invalid_child_ids = []\n",
+ "# for parent_id in invalid_parent_ids:\n",
+ "# invalid_child_ids.extend(self.pa2ch[parent_id])\n",
+ "# print(sorted(invalid_child_ids))\n",
"\n",
- " # yellow\n",
- " if i != len(sig) - 1:\n",
- " start_time += elapsed\n",
- " start_times.append(start_time)\n",
- " states.append(self.get_yellow(cur[f'state_{alph}'], nex[f'state_{alph}']))\n",
- " phases.append(f'{cur[f\"phas_{alph}\"]}y')\n",
- " elapsed = cur[f'yellow_{alph}']\n",
- " sig_ = pd.DataFrame({'start_time':start_times, f'phas_{alph}':phases, f'state_{alph}':states})\n",
- " sig_['start_unix'] = start_unix\n",
- " csig.append(sig_)\n",
- "csig = pd.concat(csig).reset_index(drop=True)\n",
- "csig\n"
+ "# print()\n",
+ "# print()\n",
+ "# self.parent_ids = sorted(set(self.parent_ids) - set(invalid_parent_ids))\n",
+ "# self.node_ids = sorted(set(self.node_ids) - set(invalid_parent_ids))\n",
+ "# self.child_ids = sorted(set(self.child_ids) - set(invalid_child_ids))\n",
+ "# self.uturn_ids = sorted(set(self.uturn_ids) - set(invalid_child_ids))\n",
+ "# self.coord_ids = sorted(set(self.coord_ids) - set(invalid_child_ids))\n",
+ "# print(self.parent_ids)\n",
+ "# print(self.node_ids)\n",
+ "# print(self.child_ids)\n",
+ "# print(self.uturn_ids)\n",
+ "# print(self.coord_ids)"
]
},
{
"cell_type": "code",
- "execution_count": 50,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "109901\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 157 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722383976 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 158 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384066 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 159 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384067 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 160 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384155 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 161 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384156 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "157 455 109901 1722383976 1 1 6 2 63 \n",
- "158 455 109901 1722384066 1 1 6 2 63 \n",
- "159 455 109901 1722384067 1 1 6 2 63 \n",
- "160 455 109901 1722384155 1 1 6 2 63 \n",
- "161 455 109901 1722384156 1 1 6 2 63 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "157 GGrr rrGG 0 \n",
- "158 GGrr rrGG 0 \n",
- "159 GGrr rrGG 0 \n",
- "160 GGrr rrGG 0 \n",
- "161 GGrr rrGG 0 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- " red_A | \n",
- " red_B | \n",
- " yellow_A | \n",
- " yellow_B | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 157 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722383976 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 4.0 | \n",
- " 4.0 | \n",
- "
\n",
- " \n",
- " 158 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384066 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 4.0 | \n",
- " 4.0 | \n",
- "
\n",
- " \n",
- " 159 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384067 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 4.0 | \n",
- " 4.0 | \n",
- "
\n",
- " \n",
- " 160 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384155 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 4.0 | \n",
- " 4.0 | \n",
- "
\n",
- " \n",
- " 161 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384156 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- " 0.0 | \n",
- " 0.0 | \n",
- " 4.0 | \n",
- " 4.0 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "157 455 109901 1722383976 1 1 6 2 63 \n",
- "158 455 109901 1722384066 1 1 6 2 63 \n",
- "159 455 109901 1722384067 1 1 6 2 63 \n",
- "160 455 109901 1722384155 1 1 6 2 63 \n",
- "161 455 109901 1722384156 1 1 6 2 63 \n",
- "\n",
- " state_A state_B phase_sumo red_A red_B yellow_A yellow_B \n",
- "157 GGrr rrGG 0 0.0 0.0 4.0 4.0 \n",
- "158 GGrr rrGG 0 0.0 0.0 4.0 4.0 \n",
- "159 GGrr rrGG 0 0.0 0.0 4.0 4.0 \n",
- "160 GGrr rrGG 0 0.0 0.0 4.0 4.0 \n",
- "161 GGrr rrGG 0 0.0 0.0 4.0 4.0 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- " red_A | \n",
- " red_B | \n",
- " yellow_A | \n",
- " yellow_B | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 157 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722383976 | \n",
- " 1 | \n",
- " 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 4 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 158 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384066 | \n",
- " 1 | \n",
- " 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 4 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 159 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384067 | \n",
- " 1 | \n",
- " 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 4 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 160 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384155 | \n",
- " 1 | \n",
- " 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 4 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 161 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384156 | \n",
- " 1 | \n",
- " 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- " 0 | \n",
- " 0 | \n",
- " 4 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B duration state_A state_B \\\n",
- "157 455 109901 1722383976 1 1 63 GGrr rrGG \n",
- "158 455 109901 1722384066 1 1 63 GGrr rrGG \n",
- "159 455 109901 1722384067 1 1 63 GGrr rrGG \n",
- "160 455 109901 1722384155 1 1 63 GGrr rrGG \n",
- "161 455 109901 1722384156 1 1 63 GGrr rrGG \n",
- "\n",
- " phase_sumo red_A red_B yellow_A yellow_B \n",
- "157 0 0 0 4 4 \n",
- "158 0 0 0 4 4 \n",
- "159 0 0 0 4 4 \n",
- "160 0 0 0 4 4 \n",
- "161 0 0 0 4 4 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " start_unix | \n",
- " phas_A | \n",
- " duration | \n",
- " state_A | \n",
- " red_A | \n",
- " yellow_A | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " 1722383976 | \n",
- " 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " 0 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " 1722384066 | \n",
- " 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " 0 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 1722384067 | \n",
- " 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " 0 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 1722384155 | \n",
- " 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " 0 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 1722384156 | \n",
- " 1 | \n",
- " 63 | \n",
- " GGrr | \n",
- " 0 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " start_unix phas_A duration state_A red_A yellow_A\n",
- "0 1722383976 1 63 GGrr 0 4\n",
- "1 1722384066 1 63 GGrr 0 4\n",
- "2 1722384067 1 63 GGrr 0 4\n",
- "3 1722384155 1 63 GGrr 0 4\n",
- "4 1722384156 1 63 GGrr 0 4"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " start_unix | \n",
- " phas_B | \n",
- " duration | \n",
- " state_B | \n",
- " red_B | \n",
- " yellow_B | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " 1722383976 | \n",
- " 1 | \n",
- " 63 | \n",
- " rrGG | \n",
- " 0 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " 1722384066 | \n",
- " 1 | \n",
- " 63 | \n",
- " rrGG | \n",
- " 0 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 1722384067 | \n",
- " 1 | \n",
- " 63 | \n",
- " rrGG | \n",
- " 0 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 1722384155 | \n",
- " 1 | \n",
- " 63 | \n",
- " rrGG | \n",
- " 0 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 1722384156 | \n",
- " 1 | \n",
- " 63 | \n",
- " rrGG | \n",
- " 0 | \n",
- " 4 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " start_unix phas_B duration state_B red_B yellow_B\n",
- "0 1722383976 1 63 rrGG 0 4\n",
- "1 1722384066 1 63 rrGG 0 4\n",
- "2 1722384067 1 63 rrGG 0 4\n",
- "3 1722384155 1 63 rrGG 0 4\n",
- "4 1722384156 1 63 rrGG 0 4"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "ename": "ValueError",
- "evalue": "No objects to concatenate",
- "output_type": "error",
- "traceback": [
- "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[1;32mIn[50], line 29\u001b[0m\n\u001b[0;32m 26\u001b[0m display(sig_A)\n\u001b[0;32m 27\u001b[0m display(sig_B)\n\u001b[1;32m---> 29\u001b[0m csig_A \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcumulate\u001b[49m\u001b[43m(\u001b[49m\u001b[43msig_A\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mA\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m 30\u001b[0m csig_B \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcumulate(sig_B, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mB\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m 31\u001b[0m display(csig_A)\n",
- "File \u001b[1;32mc:\\github\\siggen\\scripts\\generate_signals.py:942\u001b[0m, in \u001b[0;36mSignalGenerator.cumulate\u001b[1;34m(self, sig, alph)\u001b[0m\n\u001b[0;32m 940\u001b[0m sig_[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mstart_unix\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m start_unix\n\u001b[0;32m 941\u001b[0m csig\u001b[38;5;241m.\u001b[39mappend(sig_)\n\u001b[1;32m--> 942\u001b[0m csig \u001b[38;5;241m=\u001b[39m \u001b[43mpd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconcat\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcsig\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mreset_index(drop\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m 943\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m csig\n",
- "File \u001b[1;32mc:\\github\\siggen\\siggen_env\\Lib\\site-packages\\pandas\\core\\reshape\\concat.py:382\u001b[0m, in \u001b[0;36mconcat\u001b[1;34m(objs, axis, join, ignore_index, keys, levels, names, verify_integrity, sort, copy)\u001b[0m\n\u001b[0;32m 379\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m copy \u001b[38;5;129;01mand\u001b[39;00m using_copy_on_write():\n\u001b[0;32m 380\u001b[0m copy \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m--> 382\u001b[0m op \u001b[38;5;241m=\u001b[39m \u001b[43m_Concatenator\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 383\u001b[0m \u001b[43m \u001b[49m\u001b[43mobjs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 384\u001b[0m \u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 385\u001b[0m \u001b[43m \u001b[49m\u001b[43mignore_index\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mignore_index\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 386\u001b[0m \u001b[43m \u001b[49m\u001b[43mjoin\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjoin\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 387\u001b[0m \u001b[43m \u001b[49m\u001b[43mkeys\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkeys\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 388\u001b[0m \u001b[43m \u001b[49m\u001b[43mlevels\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlevels\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 389\u001b[0m \u001b[43m \u001b[49m\u001b[43mnames\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnames\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 390\u001b[0m \u001b[43m \u001b[49m\u001b[43mverify_integrity\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mverify_integrity\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 391\u001b[0m \u001b[43m \u001b[49m\u001b[43mcopy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcopy\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 392\u001b[0m \u001b[43m \u001b[49m\u001b[43msort\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msort\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 393\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 395\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m op\u001b[38;5;241m.\u001b[39mget_result()\n",
- "File \u001b[1;32mc:\\github\\siggen\\siggen_env\\Lib\\site-packages\\pandas\\core\\reshape\\concat.py:445\u001b[0m, in \u001b[0;36m_Concatenator.__init__\u001b[1;34m(self, objs, axis, join, keys, levels, names, ignore_index, verify_integrity, copy, sort)\u001b[0m\n\u001b[0;32m 442\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mverify_integrity \u001b[38;5;241m=\u001b[39m verify_integrity\n\u001b[0;32m 443\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcopy \u001b[38;5;241m=\u001b[39m copy\n\u001b[1;32m--> 445\u001b[0m objs, keys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_clean_keys_and_objs\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobjs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeys\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 447\u001b[0m \u001b[38;5;66;03m# figure out what our result ndim is going to be\u001b[39;00m\n\u001b[0;32m 448\u001b[0m ndims \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_ndims(objs)\n",
- "File \u001b[1;32mc:\\github\\siggen\\siggen_env\\Lib\\site-packages\\pandas\\core\\reshape\\concat.py:507\u001b[0m, in \u001b[0;36m_Concatenator._clean_keys_and_objs\u001b[1;34m(self, objs, keys)\u001b[0m\n\u001b[0;32m 504\u001b[0m objs_list \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(objs)\n\u001b[0;32m 506\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(objs_list) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[1;32m--> 507\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo objects to concatenate\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 509\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m keys \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 510\u001b[0m objs_list \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(com\u001b[38;5;241m.\u001b[39mnot_none(\u001b[38;5;241m*\u001b[39mobjs_list))\n",
- "\u001b[1;31mValueError\u001b[0m: No objects to concatenate"
- ]
- }
- ],
- "source": [
- "self.SIGTABLE = []\n",
- "node_id = self.node_ids[11]\n",
- "print(node_id)\n",
- "sig = self.sigtable.query('node_id==@node_id')\n",
- "display(sig)\n",
- "for i, row in sig.iterrows():\n",
- " inter_no = row.inter_no\n",
- " phas_A = row.phas_A\n",
- " phas_B = row.phas_B\n",
- " start_unix = row.start_unix\n",
- " prow = self.load_prow(inter_no, start_unix)[1].iloc[0]\n",
- " # 황색 및 적색시간 컬럼 생성\n",
- " red_A = prow[f'red_A{phas_A}']\n",
- " yellow_A = prow[f'yellow_A{phas_A}']\n",
- " red_B = prow[f'red_B{phas_B}']\n",
- " yellow_B = prow[f'yellow_B{phas_B}']\n",
- " sig.loc[i, ['red_A', 'red_B', 'yellow_A', 'yellow_B']] = red_A, red_B, yellow_A, yellow_B\n",
- "display(sig)\n",
- "sig = sig.astype({'red_A': int, 'red_B': int, 'yellow_A': int, 'yellow_B': int,\n",
- " 'phas_A':str, 'phas_B':str})\n",
- "sig = sig.drop(['move_A','move_B'], axis=1)\n",
- "display(sig)\n",
- "\n",
- "sig_A = sig[['start_unix', 'phas_A', 'duration', 'state_A', 'red_A', 'yellow_A']].reset_index(drop=True)\n",
- "sig_B = sig[['start_unix', 'phas_B', 'duration', 'state_B', 'red_B', 'yellow_B']].reset_index(drop=True)\n",
- "display(sig_A)\n",
- "display(sig_B)\n",
- "\n",
- "csig_A = self.cumulate(sig_A, 'A')\n",
- "csig_B = self.cumulate(sig_B, 'B')\n",
- "display(csig_A)\n",
- "display(csig_B)\n",
- "\n",
- "SIG = pd.merge(csig_A, csig_B, on=['start_time', 'start_unix'], how='outer')\n",
- "display(SIG[:40])\n",
- "SIG = SIG.sort_values(by='start_time').reset_index(drop=True)\n",
- "SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
- "SIG['phase'] = SIG['phas_A'] + \"_\" + SIG['phas_B']\n",
- "SIG['node_id'] = node_id\n",
- "SIG = SIG[['node_id', 'start_unix', 'start_time', 'phase', 'state_A', 'state_B']]\n",
- "SIG['duration'] = SIG['start_time'].shift(-1) - SIG['start_time']\n",
- "SIG = SIG[:-1]\n",
- "SIG['duration'] = SIG['duration'].astype(int)\n",
- "display(SIG[:40])\n",
- "for row in SIG.itertuples():\n",
- " state = ''\n",
- " for a, b, in zip(row.state_A, row.state_B):\n",
- " if a == 'r':\n",
- " state += b\n",
- " elif b == 'r':\n",
- " state += a\n",
- " elif a == b:\n",
- " state += a\n",
- " else:\n",
- " raise ValueError(f\"예상되지 않은 조합 발생: a={a}, b={b}\")\n",
- " SIG.at[row.Index, 'state'] = state\n",
- "display(SIG[:40])\n",
- "SIG = SIG[SIG.duration!=0]\n",
- "SIG = SIG.drop(columns=['start_time', 'state_A', 'state_B'])\n",
- "display(SIG[:40])\n",
- "self.SIGTABLE.append(SIG)\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 21,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "1722384300\n",
- "300\n"
- ]
- }
- ],
- "source": [
- "self.offsets = {}\n",
- "self.sigtable = []\n",
- "sim_start = self.present_time - self.sim_timespan\n",
- "print(self.present_time)\n",
- "print(self.sim_timespan)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 23,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "1722383877"
- ]
- },
- "execution_count": 23,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "node_id = '106231'\n",
- "group = self.histids[self.histids.node_id==node_id]\n",
- "min_start_unix = int(group['start_unix'].min())\n",
- "min_start_unix"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 24,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "1722384007 1722384000 200\n",
- "True\n",
- " hello \n",
- "1722384007\n"
- ]
- }
- ],
- "source": [
- "node_id = '107587'\n",
- "group = self.histids[self.histids.node_id==node_id]\n",
- "series = group[group['start_unix'] < sim_start]['start_unix']\n",
- "min_start_unix = int(group['start_unix'].min())\n",
- "inter_no = self.node2inter[node_id]\n",
- "_, prow = self.load_prow(inter_no, min_start_unix)\n",
- "cycle = prow.iloc[0]['cycle']\n",
- "lsbs = min_start_unix\n",
- "print(lsbs, sim_start, cycle)\n",
- "print(lsbs > sim_start)\n",
- "print(type(lsbs), 'hello', type(sim_start))\n",
- "while lsbs > sim_start:\n",
- " lsbs -= cycle\n",
- "print(min_start_unix)\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 25,
- "metadata": {},
- "outputs": [],
- "source": [
- "self.offsets = {}\n",
- "self.sigtable = []\n",
- "sim_start = self.present_time - self.sim_timespan\n",
- "for node_id, group in self.histids.groupby('node_id'):\n",
- " series = group[group['start_unix'] < sim_start]['start_unix']\n",
- " # lsbs : the last start_unix before sim_start\n",
- " if len(series):\n",
- " lsbs = series.max()\n",
- " else:\n",
- " min_start_unix = int(group['start_unix'].min())\n",
- " inter_no = self.node2inter[node_id]\n",
- " _, prow = self.load_prow(inter_no, min_start_unix)\n",
- " cycle = prow.iloc[0]['cycle']\n",
- " lsbs = min_start_unix\n",
- " while lsbs > sim_start:\n",
- " lsbs -= cycle\n",
- " self.offsets[node_id] = lsbs - sim_start\n",
- " group = group[group.start_unix >= lsbs]\n",
- " start_unixes = np.array(group.start_unix)\n",
- " start_unixes = np.sort(np.unique(start_unixes))[:self.node2num_cycles[node_id]]\n",
- "\n",
- " group = group[group.start_unix.isin(start_unixes)]\n",
- " self.sigtable.append(group)\n",
- "self.sigtable = pd.concat(self.sigtable).reset_index(drop=True)\n",
- "self.sigtable['phase_sumo'] = self.sigtable.groupby(['node_id', 'start_unix']).cumcount()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 26,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[436, 437, 442, 443, 455, 456, 457]"
- ]
- },
- "execution_count": 26,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "sorted(inter_no for inter_no in set(self.sigtable.inter_no))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 27,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "['106231',\n",
- " '106234',\n",
- " '106332',\n",
- " '107587',\n",
- " '108769',\n",
- " '109295',\n",
- " '109296',\n",
- " '109297',\n",
- " '109313',\n",
- " '109333',\n",
- " '109836',\n",
- " '109901',\n",
- " '109986']"
- ]
- },
- "execution_count": 27,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "sorted(node_id for node_id in set(self.sigtable.node_id))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 28,
- "metadata": {},
- "outputs": [],
- "source": [
- "# 5-1\n",
- "self.set_timepoints()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 34,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 0 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722383968 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 15 | \n",
- " grgrrrrG | \n",
- " grgrrGGr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 1 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722383968 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 28 | \n",
- " grgGGrrr | \n",
- " grgrrGGr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 2 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722383968 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 7 | \n",
- " 12 | \n",
- " gGgrrrrr | \n",
- " gGgrrrrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 3 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722383968 | \n",
- " 4 | \n",
- " 4 | \n",
- " 17 | \n",
- " 17 | \n",
- " 35 | \n",
- " grgrrrrr | \n",
- " grgrrrrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 4 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384057 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 15 | \n",
- " grgrrrrG | \n",
- " grgrrGGr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 5 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384057 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 28 | \n",
- " grgGGrrr | \n",
- " grgrrGGr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 6 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384057 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 7 | \n",
- " 12 | \n",
- " gGgrrrrr | \n",
- " gGgrrrrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 7 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384057 | \n",
- " 4 | \n",
- " 4 | \n",
- " 17 | \n",
- " 17 | \n",
- " 35 | \n",
- " grgrrrrr | \n",
- " grgrrrrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 8 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384058 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 15 | \n",
- " grgrrrrG | \n",
- " grgrrGGr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 9 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384058 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 28 | \n",
- " grgGGrrr | \n",
- " grgrrGGr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 10 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384058 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 7 | \n",
- " 12 | \n",
- " gGgrrrrr | \n",
- " gGgrrrrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 11 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384058 | \n",
- " 4 | \n",
- " 4 | \n",
- " 17 | \n",
- " 17 | \n",
- " 35 | \n",
- " grgrrrrr | \n",
- " grgrrrrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 12 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384147 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 15 | \n",
- " grgrrrrG | \n",
- " grgrrGGr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 13 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384147 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 15 | \n",
- " grgrrrrG | \n",
- " grgrrGGr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 14 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384147 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 28 | \n",
- " grgGGrrr | \n",
- " grgrrGGr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 15 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384147 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 28 | \n",
- " grgGGrrr | \n",
- " grgrrGGr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 16 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384147 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 7 | \n",
- " 12 | \n",
- " gGgrrrrr | \n",
- " gGgrrrrr | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 17 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384147 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 7 | \n",
- " 12 | \n",
- " gGgrrrrr | \n",
- " gGgrrrrr | \n",
- " 5 | \n",
- "
\n",
- " \n",
- " 18 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384147 | \n",
- " 4 | \n",
- " 4 | \n",
- " 17 | \n",
- " 17 | \n",
- " 35 | \n",
- " grgrrrrr | \n",
- " grgrrrrr | \n",
- " 6 | \n",
- "
\n",
- " \n",
- " 19 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384147 | \n",
- " 4 | \n",
- " 4 | \n",
- " 17 | \n",
- " 17 | \n",
- " 35 | \n",
- " grgrrrrr | \n",
- " grgrrrrr | \n",
- " 7 | \n",
- "
\n",
- " \n",
- " 20 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384237 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 15 | \n",
- " grgrrrrG | \n",
- " grgrrGGr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 21 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384237 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 28 | \n",
- " grgGGrrr | \n",
- " grgrrGGr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 22 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384237 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 7 | \n",
- " 12 | \n",
- " gGgrrrrr | \n",
- " gGgrrrrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 23 | \n",
- " 456 | \n",
- " 106231 | \n",
- " 1722384237 | \n",
- " 4 | \n",
- " 4 | \n",
- " 17 | \n",
- " 17 | \n",
- " 35 | \n",
- " grgrrrrr | \n",
- " grgrrrrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "0 456 106231 1722383968 1 1 5 2 15 \n",
- "1 456 106231 1722383968 2 2 6 2 28 \n",
- "2 456 106231 1722383968 3 3 7 7 12 \n",
- "3 456 106231 1722383968 4 4 17 17 35 \n",
- "4 456 106231 1722384057 1 1 5 2 15 \n",
- "5 456 106231 1722384057 2 2 6 2 28 \n",
- "6 456 106231 1722384057 3 3 7 7 12 \n",
- "7 456 106231 1722384057 4 4 17 17 35 \n",
- "8 456 106231 1722384058 1 1 5 2 15 \n",
- "9 456 106231 1722384058 2 2 6 2 28 \n",
- "10 456 106231 1722384058 3 3 7 7 12 \n",
- "11 456 106231 1722384058 4 4 17 17 35 \n",
- "12 456 106231 1722384147 1 1 5 2 15 \n",
- "13 456 106231 1722384147 1 1 5 2 15 \n",
- "14 456 106231 1722384147 2 2 6 2 28 \n",
- "15 456 106231 1722384147 2 2 6 2 28 \n",
- "16 456 106231 1722384147 3 3 7 7 12 \n",
- "17 456 106231 1722384147 3 3 7 7 12 \n",
- "18 456 106231 1722384147 4 4 17 17 35 \n",
- "19 456 106231 1722384147 4 4 17 17 35 \n",
- "20 456 106231 1722384237 1 1 5 2 15 \n",
- "21 456 106231 1722384237 2 2 6 2 28 \n",
- "22 456 106231 1722384237 3 3 7 7 12 \n",
- "23 456 106231 1722384237 4 4 17 17 35 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "0 grgrrrrG grgrrGGr 0 \n",
- "1 grgGGrrr grgrrGGr 1 \n",
- "2 gGgrrrrr gGgrrrrr 2 \n",
- "3 grgrrrrr grgrrrrr 3 \n",
- "4 grgrrrrG grgrrGGr 0 \n",
- "5 grgGGrrr grgrrGGr 1 \n",
- "6 gGgrrrrr gGgrrrrr 2 \n",
- "7 grgrrrrr grgrrrrr 3 \n",
- "8 grgrrrrG grgrrGGr 0 \n",
- "9 grgGGrrr grgrrGGr 1 \n",
- "10 gGgrrrrr gGgrrrrr 2 \n",
- "11 grgrrrrr grgrrrrr 3 \n",
- "12 grgrrrrG grgrrGGr 0 \n",
- "13 grgrrrrG grgrrGGr 1 \n",
- "14 grgGGrrr grgrrGGr 2 \n",
- "15 grgGGrrr grgrrGGr 3 \n",
- "16 gGgrrrrr gGgrrrrr 4 \n",
- "17 gGgrrrrr gGgrrrrr 5 \n",
- "18 grgrrrrr grgrrrrr 6 \n",
- "19 grgrrrrr grgrrrrr 7 \n",
- "20 grgrrrrG grgrrGGr 0 \n",
- "21 grgGGrrr grgrrGGr 1 \n",
- "22 gGgrrrrr gGgrrrrr 2 \n",
- "23 grgrrrrr grgrrrrr 3 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 24 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722383873 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 45 | \n",
- " gGGGrgrrrrgrrrrgrrr | \n",
- " grrrrgrrrrgGGGrgrrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 25 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722383873 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 20 | \n",
- " grrrrgrrrrgrrrGgrrr | \n",
- " grrrGgrrrrgrrrrgrrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 26 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722383873 | \n",
- " 3 | \n",
- " 3 | \n",
- " 17 | \n",
- " 17 | \n",
- " 40 | \n",
- " grrrrgrrrrgrrrrgrrr | \n",
- " grrrrgrrrrgrrrrgrrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 27 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722383873 | \n",
- " 4 | \n",
- " 4 | \n",
- " 8 | \n",
- " 3 | \n",
- " 35 | \n",
- " grrrrgGGrrgrrrrgrrr | \n",
- " grrrrgrrGGgrrrrgrrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 28 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722383873 | \n",
- " 5 | \n",
- " 5 | \n",
- " 7 | \n",
- " 4 | \n",
- " 40 | \n",
- " grrrrgrrrrgrrrrgrrG | \n",
- " grrrrgrrrrgrrrrgGGr | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 29 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722384052 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 45 | \n",
- " gGGGrgrrrrgrrrrgrrr | \n",
- " grrrrgrrrrgGGGrgrrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 30 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722384052 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 20 | \n",
- " grrrrgrrrrgrrrGgrrr | \n",
- " grrrGgrrrrgrrrrgrrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 31 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722384052 | \n",
- " 3 | \n",
- " 3 | \n",
- " 17 | \n",
- " 17 | \n",
- " 40 | \n",
- " grrrrgrrrrgrrrrgrrr | \n",
- " grrrrgrrrrgrrrrgrrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 32 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722384052 | \n",
- " 4 | \n",
- " 4 | \n",
- " 8 | \n",
- " 3 | \n",
- " 40 | \n",
- " grrrrgGGrrgrrrrgrrr | \n",
- " grrrrgrrGGgrrrrgrrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 33 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722384052 | \n",
- " 5 | \n",
- " 5 | \n",
- " 7 | \n",
- " 4 | \n",
- " 35 | \n",
- " grrrrgrrrrgrrrrgrrG | \n",
- " grrrrgrrrrgrrrrgGGr | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 34 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722384232 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 45 | \n",
- " gGGGrgrrrrgrrrrgrrr | \n",
- " grrrrgrrrrgGGGrgrrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 35 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722384232 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 20 | \n",
- " grrrrgrrrrgrrrGgrrr | \n",
- " grrrGgrrrrgrrrrgrrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 36 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722384232 | \n",
- " 3 | \n",
- " 3 | \n",
- " 17 | \n",
- " 17 | \n",
- " 40 | \n",
- " grrrrgrrrrgrrrrgrrr | \n",
- " grrrrgrrrrgrrrrgrrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 37 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722384232 | \n",
- " 4 | \n",
- " 4 | \n",
- " 8 | \n",
- " 3 | \n",
- " 40 | \n",
- " grrrrgGGrrgrrrrgrrr | \n",
- " grrrrgrrGGgrrrrgrrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 38 | \n",
- " 457 | \n",
- " 106234 | \n",
- " 1722384232 | \n",
- " 5 | \n",
- " 5 | \n",
- " 7 | \n",
- " 4 | \n",
- " 35 | \n",
- " grrrrgrrrrgrrrrgrrG | \n",
- " grrrrgrrrrgrrrrgGGr | \n",
- " 4 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "24 457 106234 1722383873 1 1 6 2 45 \n",
- "25 457 106234 1722383873 2 2 5 1 20 \n",
- "26 457 106234 1722383873 3 3 17 17 40 \n",
- "27 457 106234 1722383873 4 4 8 3 35 \n",
- "28 457 106234 1722383873 5 5 7 4 40 \n",
- "29 457 106234 1722384052 1 1 6 2 45 \n",
- "30 457 106234 1722384052 2 2 5 1 20 \n",
- "31 457 106234 1722384052 3 3 17 17 40 \n",
- "32 457 106234 1722384052 4 4 8 3 40 \n",
- "33 457 106234 1722384052 5 5 7 4 35 \n",
- "34 457 106234 1722384232 1 1 6 2 45 \n",
- "35 457 106234 1722384232 2 2 5 1 20 \n",
- "36 457 106234 1722384232 3 3 17 17 40 \n",
- "37 457 106234 1722384232 4 4 8 3 40 \n",
- "38 457 106234 1722384232 5 5 7 4 35 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "24 gGGGrgrrrrgrrrrgrrr grrrrgrrrrgGGGrgrrr 0 \n",
- "25 grrrrgrrrrgrrrGgrrr grrrGgrrrrgrrrrgrrr 1 \n",
- "26 grrrrgrrrrgrrrrgrrr grrrrgrrrrgrrrrgrrr 2 \n",
- "27 grrrrgGGrrgrrrrgrrr grrrrgrrGGgrrrrgrrr 3 \n",
- "28 grrrrgrrrrgrrrrgrrG grrrrgrrrrgrrrrgGGr 4 \n",
- "29 gGGGrgrrrrgrrrrgrrr grrrrgrrrrgGGGrgrrr 0 \n",
- "30 grrrrgrrrrgrrrGgrrr grrrGgrrrrgrrrrgrrr 1 \n",
- "31 grrrrgrrrrgrrrrgrrr grrrrgrrrrgrrrrgrrr 2 \n",
- "32 grrrrgGGrrgrrrrgrrr grrrrgrrGGgrrrrgrrr 3 \n",
- "33 grrrrgrrrrgrrrrgrrG grrrrgrrrrgrrrrgGGr 4 \n",
- "34 gGGGrgrrrrgrrrrgrrr grrrrgrrrrgGGGrgrrr 0 \n",
- "35 grrrrgrrrrgrrrGgrrr grrrGgrrrrgrrrrgrrr 1 \n",
- "36 grrrrgrrrrgrrrrgrrr grrrrgrrrrgrrrrgrrr 2 \n",
- "37 grrrrgGGrrgrrrrgrrr grrrrgrrGGgrrrrgrrr 3 \n",
- "38 grrrrgrrrrgrrrrgrrG grrrrgrrrrgrrrrgGGr 4 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- "Empty DataFrame\n",
- "Columns: [inter_no, node_id, start_unix, phas_A, phas_B, move_A, move_B, duration, state_A, state_B, phase_sumo]\n",
- "Index: []"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "106238\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 39 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722383898 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 1 | \n",
- " 31 | \n",
- " gGGGrrrrrrgrrgrrrrrrrrgrrrr | \n",
- " grrrrGGrrrgrrgrrrrrrrrgrrrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 40 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722383898 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 27 | \n",
- " gGGGrrrrrrgrrgrrrrrrrrgrrrr | \n",
- " grrrrrrrrrgrrgrGGGGGrrgrrrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 41 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722383898 | \n",
- " 3 | \n",
- " 3 | \n",
- " 5 | \n",
- " 2 | \n",
- " 32 | \n",
- " grrrrrrrrrgrrgrrrrrrGGgrrrr | \n",
- " grrrrrrrrrgrrgrGGGGGrrgrrrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 42 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722383898 | \n",
- " 4 | \n",
- " 4 | \n",
- " 7 | \n",
- " 4 | \n",
- " 49 | \n",
- " grrrrrrrrrgrrgrrrrrrrrgrrrG | \n",
- " grrrrrrrrrgrrgrrrrrrrrgGGGr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 43 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722383898 | \n",
- " 5 | \n",
- " 5 | \n",
- " 8 | \n",
- " 3 | \n",
- " 45 | \n",
- " grrrrrrGGrgrrgrrrrrrrrgrrrr | \n",
- " grrrrrrrrGgrrgrrrrrrrrgrrrr | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 44 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722383898 | \n",
- " 6 | \n",
- " 6 | \n",
- " 8 | \n",
- " 3 | \n",
- " 16 | \n",
- " grrrrrrGGrgrrgrrrrrrrrgrrrr | \n",
- " grrrrrrrrGgrrgrrrrrrrrgrrrr | \n",
- " 5 | \n",
- "
\n",
- " \n",
- " 45 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722384097 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 1 | \n",
- " 35 | \n",
- " gGGGrrrrrrgrrgrrrrrrrrgrrrr | \n",
- " grrrrGGrrrgrrgrrrrrrrrgrrrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 46 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722384097 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 27 | \n",
- " gGGGrrrrrrgrrgrrrrrrrrgrrrr | \n",
- " grrrrrrrrrgrrgrGGGGGrrgrrrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 47 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722384097 | \n",
- " 3 | \n",
- " 3 | \n",
- " 5 | \n",
- " 2 | \n",
- " 30 | \n",
- " grrrrrrrrrgrrgrrrrrrGGgrrrr | \n",
- " grrrrrrrrrgrrgrGGGGGrrgrrrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 48 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722384097 | \n",
- " 4 | \n",
- " 4 | \n",
- " 7 | \n",
- " 4 | \n",
- " 47 | \n",
- " grrrrrrrrrgrrgrrrrrrrrgrrrG | \n",
- " grrrrrrrrrgrrgrrrrrrrrgGGGr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 49 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722384097 | \n",
- " 5 | \n",
- " 5 | \n",
- " 8 | \n",
- " 3 | \n",
- " 45 | \n",
- " grrrrrrGGrgrrgrrrrrrrrgrrrr | \n",
- " grrrrrrrrGgrrgrrrrrrrrgrrrr | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 50 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722384097 | \n",
- " 6 | \n",
- " 6 | \n",
- " 8 | \n",
- " 3 | \n",
- " 16 | \n",
- " grrrrrrGGrgrrgrrrrrrrrgrrrr | \n",
- " grrrrrrrrGgrrgrrrrrrrrgrrrr | \n",
- " 5 | \n",
- "
\n",
- " \n",
- " 51 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722384297 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 1 | \n",
- " 35 | \n",
- " gGGGrrrrrrgrrgrrrrrrrrgrrrr | \n",
- " grrrrGGrrrgrrgrrrrrrrrgrrrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 52 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722384297 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 27 | \n",
- " gGGGrrrrrrgrrgrrrrrrrrgrrrr | \n",
- " grrrrrrrrrgrrgrGGGGGrrgrrrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 53 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722384297 | \n",
- " 3 | \n",
- " 3 | \n",
- " 5 | \n",
- " 2 | \n",
- " 30 | \n",
- " grrrrrrrrrgrrgrrrrrrGGgrrrr | \n",
- " grrrrrrrrrgrrgrGGGGGrrgrrrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 54 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722384297 | \n",
- " 4 | \n",
- " 4 | \n",
- " 7 | \n",
- " 4 | \n",
- " 47 | \n",
- " grrrrrrrrrgrrgrrrrrrrrgrrrG | \n",
- " grrrrrrrrrgrrgrrrrrrrrgGGGr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 55 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722384297 | \n",
- " 5 | \n",
- " 5 | \n",
- " 8 | \n",
- " 3 | \n",
- " 45 | \n",
- " grrrrrrGGrgrrgrrrrrrrrgrrrr | \n",
- " grrrrrrrrGgrrgrrrrrrrrgrrrr | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 56 | \n",
- " 442 | \n",
- " 106332 | \n",
- " 1722384297 | \n",
- " 6 | \n",
- " 6 | \n",
- " 8 | \n",
- " 3 | \n",
- " 16 | \n",
- " grrrrrrGGrgrrgrrrrrrrrgrrrr | \n",
- " grrrrrrrrGgrrgrrrrrrrrgrrrr | \n",
- " 5 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "39 442 106332 1722383898 1 1 6 1 31 \n",
- "40 442 106332 1722383898 2 2 6 2 27 \n",
- "41 442 106332 1722383898 3 3 5 2 32 \n",
- "42 442 106332 1722383898 4 4 7 4 49 \n",
- "43 442 106332 1722383898 5 5 8 3 45 \n",
- "44 442 106332 1722383898 6 6 8 3 16 \n",
- "45 442 106332 1722384097 1 1 6 1 35 \n",
- "46 442 106332 1722384097 2 2 6 2 27 \n",
- "47 442 106332 1722384097 3 3 5 2 30 \n",
- "48 442 106332 1722384097 4 4 7 4 47 \n",
- "49 442 106332 1722384097 5 5 8 3 45 \n",
- "50 442 106332 1722384097 6 6 8 3 16 \n",
- "51 442 106332 1722384297 1 1 6 1 35 \n",
- "52 442 106332 1722384297 2 2 6 2 27 \n",
- "53 442 106332 1722384297 3 3 5 2 30 \n",
- "54 442 106332 1722384297 4 4 7 4 47 \n",
- "55 442 106332 1722384297 5 5 8 3 45 \n",
- "56 442 106332 1722384297 6 6 8 3 16 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "39 gGGGrrrrrrgrrgrrrrrrrrgrrrr grrrrGGrrrgrrgrrrrrrrrgrrrr 0 \n",
- "40 gGGGrrrrrrgrrgrrrrrrrrgrrrr grrrrrrrrrgrrgrGGGGGrrgrrrr 1 \n",
- "41 grrrrrrrrrgrrgrrrrrrGGgrrrr grrrrrrrrrgrrgrGGGGGrrgrrrr 2 \n",
- "42 grrrrrrrrrgrrgrrrrrrrrgrrrG grrrrrrrrrgrrgrrrrrrrrgGGGr 3 \n",
- "43 grrrrrrGGrgrrgrrrrrrrrgrrrr grrrrrrrrGgrrgrrrrrrrrgrrrr 4 \n",
- "44 grrrrrrGGrgrrgrrrrrrrrgrrrr grrrrrrrrGgrrgrrrrrrrrgrrrr 5 \n",
- "45 gGGGrrrrrrgrrgrrrrrrrrgrrrr grrrrGGrrrgrrgrrrrrrrrgrrrr 0 \n",
- "46 gGGGrrrrrrgrrgrrrrrrrrgrrrr grrrrrrrrrgrrgrGGGGGrrgrrrr 1 \n",
- "47 grrrrrrrrrgrrgrrrrrrGGgrrrr grrrrrrrrrgrrgrGGGGGrrgrrrr 2 \n",
- "48 grrrrrrrrrgrrgrrrrrrrrgrrrG grrrrrrrrrgrrgrrrrrrrrgGGGr 3 \n",
- "49 grrrrrrGGrgrrgrrrrrrrrgrrrr grrrrrrrrGgrrgrrrrrrrrgrrrr 4 \n",
- "50 grrrrrrGGrgrrgrrrrrrrrgrrrr grrrrrrrrGgrrgrrrrrrrrgrrrr 5 \n",
- "51 gGGGrrrrrrgrrgrrrrrrrrgrrrr grrrrGGrrrgrrgrrrrrrrrgrrrr 0 \n",
- "52 gGGGrrrrrrgrrgrrrrrrrrgrrrr grrrrrrrrrgrrgrGGGGGrrgrrrr 1 \n",
- "53 grrrrrrrrrgrrgrrrrrrGGgrrrr grrrrrrrrrgrrgrGGGGGrrgrrrr 2 \n",
- "54 grrrrrrrrrgrrgrrrrrrrrgrrrG grrrrrrrrrgrrgrrrrrrrrgGGGr 3 \n",
- "55 grrrrrrGGrgrrgrrrrrrrrgrrrr grrrrrrrrGgrrgrrrrrrrrgrrrr 4 \n",
- "56 grrrrrrGGrgrrgrrrrrrrrgrrrr grrrrrrrrGgrrgrrrrrrrrgrrrr 5 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- "Empty DataFrame\n",
- "Columns: [inter_no, node_id, start_unix, phas_A, phas_B, move_A, move_B, duration, state_A, state_B, phase_sumo]\n",
- "Index: []"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "106350\n"
- ]
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 65 | \n",
- " 443 | \n",
- " 108769 | \n",
- " 1722383902 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 125 | \n",
- " gGGGGGrrrrrrgrr | \n",
- " grrrrrGGGGGrgrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 66 | \n",
- " 443 | \n",
- " 108769 | \n",
- " 1722383902 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 2 | \n",
- " 25 | \n",
- " grrrrrrrrrrGgrr | \n",
- " grrrrrGGGGGrgrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 67 | \n",
- " 443 | \n",
- " 108769 | \n",
- " 1722383902 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 18 | \n",
- " 50 | \n",
- " grrrrrrrrrrrgGG | \n",
- " grrrrrrrrrrrgrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 68 | \n",
- " 443 | \n",
- " 108769 | \n",
- " 1722384102 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 125 | \n",
- " gGGGGGrrrrrrgrr | \n",
- " grrrrrGGGGGrgrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 69 | \n",
- " 443 | \n",
- " 108769 | \n",
- " 1722384102 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 2 | \n",
- " 25 | \n",
- " grrrrrrrrrrGgrr | \n",
- " grrrrrGGGGGrgrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 70 | \n",
- " 443 | \n",
- " 108769 | \n",
- " 1722384102 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 18 | \n",
- " 50 | \n",
- " grrrrrrrrrrrgGG | \n",
- " grrrrrrrrrrrgrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 71 | \n",
- " 443 | \n",
- " 108769 | \n",
- " 1722384302 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 125 | \n",
- " gGGGGGrrrrrrgrr | \n",
- " grrrrrGGGGGrgrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 72 | \n",
- " 443 | \n",
- " 108769 | \n",
- " 1722384302 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 2 | \n",
- " 25 | \n",
- " grrrrrrrrrrGgrr | \n",
- " grrrrrGGGGGrgrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 73 | \n",
- " 443 | \n",
- " 108769 | \n",
- " 1722384302 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 18 | \n",
- " 50 | \n",
- " grrrrrrrrrrrgGG | \n",
- " grrrrrrrrrrrgrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "65 443 108769 1722383902 1 1 6 2 125 \n",
- "66 443 108769 1722383902 2 2 5 2 25 \n",
- "67 443 108769 1722383902 3 3 7 18 50 \n",
- "68 443 108769 1722384102 1 1 6 2 125 \n",
- "69 443 108769 1722384102 2 2 5 2 25 \n",
- "70 443 108769 1722384102 3 3 7 18 50 \n",
- "71 443 108769 1722384302 1 1 6 2 125 \n",
- "72 443 108769 1722384302 2 2 5 2 25 \n",
- "73 443 108769 1722384302 3 3 7 18 50 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "65 gGGGGGrrrrrrgrr grrrrrGGGGGrgrr 0 \n",
- "66 grrrrrrrrrrGgrr grrrrrGGGGGrgrr 1 \n",
- "67 grrrrrrrrrrrgGG grrrrrrrrrrrgrr 2 \n",
- "68 gGGGGGrrrrrrgrr grrrrrGGGGGrgrr 0 \n",
- "69 grrrrrrrrrrGgrr grrrrrGGGGGrgrr 1 \n",
- "70 grrrrrrrrrrrgGG grrrrrrrrrrrgrr 2 \n",
- "71 gGGGGGrrrrrrgrr grrrrrGGGGGrgrr 0 \n",
- "72 grrrrrrrrrrGgrr grrrrrGGGGGrgrr 1 \n",
- "73 grrrrrrrrrrrgGG grrrrrrrrrrrgrr 2 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 145 | \n",
- " 436 | \n",
- " 109836 | \n",
- " 1722384036 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 50 | \n",
- " grrrrgrrgrGgrr | \n",
- " grrrrgrrgGrgrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 146 | \n",
- " 436 | \n",
- " 109836 | \n",
- " 1722384036 | \n",
- " 2 | \n",
- " 2 | \n",
- " 8 | \n",
- " 3 | \n",
- " 85 | \n",
- " grrrrgGrgrrgrr | \n",
- " grrrrgrGgrrgrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 147 | \n",
- " 436 | \n",
- " 109836 | \n",
- " 1722384036 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 4 | \n",
- " 35 | \n",
- " grrrrgrrgrrgrG | \n",
- " grrrrgrrgrrgGr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 148 | \n",
- " 436 | \n",
- " 109836 | \n",
- " 1722384036 | \n",
- " 4 | \n",
- " 4 | \n",
- " 6 | \n",
- " 1 | \n",
- " 30 | \n",
- " gGGGrgrrgrrgrr | \n",
- " grrrGgrrgrrgrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 149 | \n",
- " 436 | \n",
- " 109836 | \n",
- " 1722384236 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 50 | \n",
- " grrrrgrrgrGgrr | \n",
- " grrrrgrrgGrgrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 150 | \n",
- " 436 | \n",
- " 109836 | \n",
- " 1722384236 | \n",
- " 2 | \n",
- " 2 | \n",
- " 8 | \n",
- " 3 | \n",
- " 85 | \n",
- " grrrrgGrgrrgrr | \n",
- " grrrrgrGgrrgrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 151 | \n",
- " 436 | \n",
- " 109836 | \n",
- " 1722384236 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 4 | \n",
- " 35 | \n",
- " grrrrgrrgrrgrG | \n",
- " grrrrgrrgrrgGr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 152 | \n",
- " 436 | \n",
- " 109836 | \n",
- " 1722384236 | \n",
- " 4 | \n",
- " 4 | \n",
- " 6 | \n",
- " 1 | \n",
- " 30 | \n",
- " gGGGrgrrgrrgrr | \n",
- " grrrGgrrgrrgrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 153 | \n",
- " 436 | \n",
- " 109836 | \n",
- " 1722384436 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 50 | \n",
- " grrrrgrrgrGgrr | \n",
- " grrrrgrrgGrgrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 154 | \n",
- " 436 | \n",
- " 109836 | \n",
- " 1722384436 | \n",
- " 2 | \n",
- " 2 | \n",
- " 8 | \n",
- " 3 | \n",
- " 85 | \n",
- " grrrrgGrgrrgrr | \n",
- " grrrrgrGgrrgrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 155 | \n",
- " 436 | \n",
- " 109836 | \n",
- " 1722384436 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 4 | \n",
- " 35 | \n",
- " grrrrgrrgrrgrG | \n",
- " grrrrgrrgrrgGr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 156 | \n",
- " 436 | \n",
- " 109836 | \n",
- " 1722384436 | \n",
- " 4 | \n",
- " 4 | \n",
- " 6 | \n",
- " 1 | \n",
- " 30 | \n",
- " gGGGrgrrgrrgrr | \n",
- " grrrGgrrgrrgrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "145 436 109836 1722384036 1 1 5 2 50 \n",
- "146 436 109836 1722384036 2 2 8 3 85 \n",
- "147 436 109836 1722384036 3 3 7 4 35 \n",
- "148 436 109836 1722384036 4 4 6 1 30 \n",
- "149 436 109836 1722384236 1 1 5 2 50 \n",
- "150 436 109836 1722384236 2 2 8 3 85 \n",
- "151 436 109836 1722384236 3 3 7 4 35 \n",
- "152 436 109836 1722384236 4 4 6 1 30 \n",
- "153 436 109836 1722384436 1 1 5 2 50 \n",
- "154 436 109836 1722384436 2 2 8 3 85 \n",
- "155 436 109836 1722384436 3 3 7 4 35 \n",
- "156 436 109836 1722384436 4 4 6 1 30 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "145 grrrrgrrgrGgrr grrrrgrrgGrgrr 0 \n",
- "146 grrrrgGrgrrgrr grrrrgrGgrrgrr 1 \n",
- "147 grrrrgrrgrrgrG grrrrgrrgrrgGr 2 \n",
- "148 gGGGrgrrgrrgrr grrrGgrrgrrgrr 3 \n",
- "149 grrrrgrrgrGgrr grrrrgrrgGrgrr 0 \n",
- "150 grrrrgGrgrrgrr grrrrgrGgrrgrr 1 \n",
- "151 grrrrgrrgrrgrG grrrrgrrgrrgGr 2 \n",
- "152 gGGGrgrrgrrgrr grrrGgrrgrrgrr 3 \n",
- "153 grrrrgrrgrGgrr grrrrgrrgGrgrr 0 \n",
- "154 grrrrgGrgrrgrr grrrrgrGgrrgrr 1 \n",
- "155 grrrrgrrgrrgrG grrrrgrrgrrgGr 2 \n",
- "156 gGGGrgrrgrrgrr grrrGgrrgrrgrr 3 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 157 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722383976 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 158 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384066 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 159 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384067 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 160 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384155 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 161 | \n",
- " 455 | \n",
- " 109901 | \n",
- " 1722384156 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 63 | \n",
- " GGrr | \n",
- " rrGG | \n",
- " 0 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "157 455 109901 1722383976 1 1 6 2 63 \n",
- "158 455 109901 1722384066 1 1 6 2 63 \n",
- "159 455 109901 1722384067 1 1 6 2 63 \n",
- "160 455 109901 1722384155 1 1 6 2 63 \n",
- "161 455 109901 1722384156 1 1 6 2 63 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "157 GGrr rrGG 0 \n",
- "158 GGrr rrGG 0 \n",
- "159 GGrr rrGG 0 \n",
- "160 GGrr rrGG 0 \n",
- "161 GGrr rrGG 0 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 162 | \n",
- " 437 | \n",
- " 109986 | \n",
- " 1722384007 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 77 | \n",
- " gGGGGrgrrgrrrrrgrr | \n",
- " grrrrrgrrgGGGGrgrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 163 | \n",
- " 437 | \n",
- " 109986 | \n",
- " 1722384007 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 28 | \n",
- " grrrrrgrrgrrrrGgrr | \n",
- " grrrrGgrrgrrrrrgrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 164 | \n",
- " 437 | \n",
- " 109986 | \n",
- " 1722384007 | \n",
- " 3 | \n",
- " 3 | \n",
- " 8 | \n",
- " 3 | \n",
- " 46 | \n",
- " grrrrrgGrgrrrrrgrr | \n",
- " grrrrrgrGgrrrrrgrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 165 | \n",
- " 437 | \n",
- " 109986 | \n",
- " 1722384007 | \n",
- " 4 | \n",
- " 4 | \n",
- " 7 | \n",
- " 4 | \n",
- " 49 | \n",
- " grrrrrgrrgrrrrrgrG | \n",
- " grrrrrgrrgrrrrrgGr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 166 | \n",
- " 437 | \n",
- " 109986 | \n",
- " 1722384700 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 71 | \n",
- " gGGGGrgrrgrrrrrgrr | \n",
- " grrrrrgrrgGGGGrgrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 167 | \n",
- " 437 | \n",
- " 109986 | \n",
- " 1722384700 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 28 | \n",
- " grrrrrgrrgrrrrGgrr | \n",
- " grrrrGgrrgrrrrrgrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 168 | \n",
- " 437 | \n",
- " 109986 | \n",
- " 1722384700 | \n",
- " 3 | \n",
- " 3 | \n",
- " 8 | \n",
- " 3 | \n",
- " 58 | \n",
- " grrrrrgGrgrrrrrgrr | \n",
- " grrrrrgrGgrrrrrgrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 169 | \n",
- " 437 | \n",
- " 109986 | \n",
- " 1722384700 | \n",
- " 4 | \n",
- " 4 | \n",
- " 7 | \n",
- " 4 | \n",
- " 43 | \n",
- " grrrrrgrrgrrrrrgrG | \n",
- " grrrrrgrrgrrrrrgGr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "162 437 109986 1722384007 1 1 6 2 77 \n",
- "163 437 109986 1722384007 2 2 5 1 28 \n",
- "164 437 109986 1722384007 3 3 8 3 46 \n",
- "165 437 109986 1722384007 4 4 7 4 49 \n",
- "166 437 109986 1722384700 1 1 6 2 71 \n",
- "167 437 109986 1722384700 2 2 5 1 28 \n",
- "168 437 109986 1722384700 3 3 8 3 58 \n",
- "169 437 109986 1722384700 4 4 7 4 43 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "162 gGGGGrgrrgrrrrrgrr grrrrrgrrgGGGGrgrr 0 \n",
- "163 grrrrrgrrgrrrrGgrr grrrrGgrrgrrrrrgrr 1 \n",
- "164 grrrrrgGrgrrrrrgrr grrrrrgrGgrrrrrgrr 2 \n",
- "165 grrrrrgrrgrrrrrgrG grrrrrgrrgrrrrrgGr 3 \n",
- "166 gGGGGrgrrgrrrrrgrr grrrrrgrrgGGGGrgrr 0 \n",
- "167 grrrrrgrrgrrrrGgrr grrrrGgrrgrrrrrgrr 1 \n",
- "168 grrrrrgGrgrrrrrgrr grrrrrgrGgrrrrrgrr 2 \n",
- "169 grrrrrgrrgrrrrrgrG grrrrrgrrgrrrrrgGr 3 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 57 | \n",
- " 437 | \n",
- " 107587 | \n",
- " 1722384007 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 77 | \n",
- " GGGGr | \n",
- " GGGGr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 58 | \n",
- " 437 | \n",
- " 107587 | \n",
- " 1722384007 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 28 | \n",
- " GGGGr | \n",
- " GGGGG | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 59 | \n",
- " 437 | \n",
- " 107587 | \n",
- " 1722384007 | \n",
- " 3 | \n",
- " 3 | \n",
- " 8 | \n",
- " 3 | \n",
- " 46 | \n",
- " GGGGr | \n",
- " GGGGr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 60 | \n",
- " 437 | \n",
- " 107587 | \n",
- " 1722384007 | \n",
- " 4 | \n",
- " 4 | \n",
- " 7 | \n",
- " 4 | \n",
- " 49 | \n",
- " GGGGr | \n",
- " GGGGr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 61 | \n",
- " 437 | \n",
- " 107587 | \n",
- " 1722384700 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 71 | \n",
- " GGGGr | \n",
- " GGGGr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 62 | \n",
- " 437 | \n",
- " 107587 | \n",
- " 1722384700 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 28 | \n",
- " GGGGr | \n",
- " GGGGG | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 63 | \n",
- " 437 | \n",
- " 107587 | \n",
- " 1722384700 | \n",
- " 3 | \n",
- " 3 | \n",
- " 8 | \n",
- " 3 | \n",
- " 58 | \n",
- " GGGGr | \n",
- " GGGGr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 64 | \n",
- " 437 | \n",
- " 107587 | \n",
- " 1722384700 | \n",
- " 4 | \n",
- " 4 | \n",
- " 7 | \n",
- " 4 | \n",
- " 43 | \n",
- " GGGGr | \n",
- " GGGGr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "57 437 107587 1722384007 1 1 6 2 77 \n",
- "58 437 107587 1722384007 2 2 5 1 28 \n",
- "59 437 107587 1722384007 3 3 8 3 46 \n",
- "60 437 107587 1722384007 4 4 7 4 49 \n",
- "61 437 107587 1722384700 1 1 6 2 71 \n",
- "62 437 107587 1722384700 2 2 5 1 28 \n",
- "63 437 107587 1722384700 3 3 8 3 58 \n",
- "64 437 107587 1722384700 4 4 7 4 43 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "57 GGGGr GGGGr 0 \n",
- "58 GGGGr GGGGG 1 \n",
- "59 GGGGr GGGGr 2 \n",
- "60 GGGGr GGGGr 3 \n",
- "61 GGGGr GGGGr 0 \n",
- "62 GGGGr GGGGG 1 \n",
- "63 GGGGr GGGGr 2 \n",
- "64 GGGGr GGGGr 3 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 74 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722383968 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 15 | \n",
- " GGGGGGGG | \n",
- " GGGGGGrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 75 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722383968 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 28 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 76 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722383968 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 7 | \n",
- " 12 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 77 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722383968 | \n",
- " 4 | \n",
- " 4 | \n",
- " 17 | \n",
- " 17 | \n",
- " 35 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 78 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384057 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 15 | \n",
- " GGGGGGGG | \n",
- " GGGGGGrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 79 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384057 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 28 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 80 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384057 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 7 | \n",
- " 12 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 81 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384057 | \n",
- " 4 | \n",
- " 4 | \n",
- " 17 | \n",
- " 17 | \n",
- " 35 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 82 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384058 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 15 | \n",
- " GGGGGGGG | \n",
- " GGGGGGrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 83 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384058 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 28 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 84 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384058 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 7 | \n",
- " 12 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 85 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384058 | \n",
- " 4 | \n",
- " 4 | \n",
- " 17 | \n",
- " 17 | \n",
- " 35 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 86 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384147 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 15 | \n",
- " GGGGGGGG | \n",
- " GGGGGGrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 87 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384147 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 15 | \n",
- " GGGGGGGG | \n",
- " GGGGGGrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 88 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384147 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 28 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 89 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384147 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 28 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 90 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384147 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 7 | \n",
- " 12 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 91 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384147 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 7 | \n",
- " 12 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 5 | \n",
- "
\n",
- " \n",
- " 92 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384147 | \n",
- " 4 | \n",
- " 4 | \n",
- " 17 | \n",
- " 17 | \n",
- " 35 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 6 | \n",
- "
\n",
- " \n",
- " 93 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384147 | \n",
- " 4 | \n",
- " 4 | \n",
- " 17 | \n",
- " 17 | \n",
- " 35 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 7 | \n",
- "
\n",
- " \n",
- " 94 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384237 | \n",
- " 1 | \n",
- " 1 | \n",
- " 5 | \n",
- " 2 | \n",
- " 15 | \n",
- " GGGGGGGG | \n",
- " GGGGGGrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 95 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384237 | \n",
- " 2 | \n",
- " 2 | \n",
- " 6 | \n",
- " 2 | \n",
- " 28 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 96 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384237 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 7 | \n",
- " 12 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 97 | \n",
- " 456 | \n",
- " 109295 | \n",
- " 1722384237 | \n",
- " 4 | \n",
- " 4 | \n",
- " 17 | \n",
- " 17 | \n",
- " 35 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "74 456 109295 1722383968 1 1 5 2 15 \n",
- "75 456 109295 1722383968 2 2 6 2 28 \n",
- "76 456 109295 1722383968 3 3 7 7 12 \n",
- "77 456 109295 1722383968 4 4 17 17 35 \n",
- "78 456 109295 1722384057 1 1 5 2 15 \n",
- "79 456 109295 1722384057 2 2 6 2 28 \n",
- "80 456 109295 1722384057 3 3 7 7 12 \n",
- "81 456 109295 1722384057 4 4 17 17 35 \n",
- "82 456 109295 1722384058 1 1 5 2 15 \n",
- "83 456 109295 1722384058 2 2 6 2 28 \n",
- "84 456 109295 1722384058 3 3 7 7 12 \n",
- "85 456 109295 1722384058 4 4 17 17 35 \n",
- "86 456 109295 1722384147 1 1 5 2 15 \n",
- "87 456 109295 1722384147 1 1 5 2 15 \n",
- "88 456 109295 1722384147 2 2 6 2 28 \n",
- "89 456 109295 1722384147 2 2 6 2 28 \n",
- "90 456 109295 1722384147 3 3 7 7 12 \n",
- "91 456 109295 1722384147 3 3 7 7 12 \n",
- "92 456 109295 1722384147 4 4 17 17 35 \n",
- "93 456 109295 1722384147 4 4 17 17 35 \n",
- "94 456 109295 1722384237 1 1 5 2 15 \n",
- "95 456 109295 1722384237 2 2 6 2 28 \n",
- "96 456 109295 1722384237 3 3 7 7 12 \n",
- "97 456 109295 1722384237 4 4 17 17 35 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "74 GGGGGGGG GGGGGGrr 0 \n",
- "75 GGGGGGrr GGGGGGrr 1 \n",
- "76 GGGGGGrr GGGGGGrr 2 \n",
- "77 GGGGGGrr GGGGGGrr 3 \n",
- "78 GGGGGGGG GGGGGGrr 0 \n",
- "79 GGGGGGrr GGGGGGrr 1 \n",
- "80 GGGGGGrr GGGGGGrr 2 \n",
- "81 GGGGGGrr GGGGGGrr 3 \n",
- "82 GGGGGGGG GGGGGGrr 0 \n",
- "83 GGGGGGrr GGGGGGrr 1 \n",
- "84 GGGGGGrr GGGGGGrr 2 \n",
- "85 GGGGGGrr GGGGGGrr 3 \n",
- "86 GGGGGGGG GGGGGGrr 0 \n",
- "87 GGGGGGGG GGGGGGrr 1 \n",
- "88 GGGGGGrr GGGGGGrr 2 \n",
- "89 GGGGGGrr GGGGGGrr 3 \n",
- "90 GGGGGGrr GGGGGGrr 4 \n",
- "91 GGGGGGrr GGGGGGrr 5 \n",
- "92 GGGGGGrr GGGGGGrr 6 \n",
- "93 GGGGGGrr GGGGGGrr 7 \n",
- "94 GGGGGGGG GGGGGGrr 0 \n",
- "95 GGGGGGrr GGGGGGrr 1 \n",
- "96 GGGGGGrr GGGGGGrr 2 \n",
- "97 GGGGGGrr GGGGGGrr 3 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 98 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722383873 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 45 | \n",
- " GGGrrGGG | \n",
- " GGGrrGGG | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 99 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722383873 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 20 | \n",
- " GGGrrGGG | \n",
- " GGGGGGGG | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 100 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722383873 | \n",
- " 3 | \n",
- " 3 | \n",
- " 17 | \n",
- " 17 | \n",
- " 40 | \n",
- " GGGrrGGG | \n",
- " GGGrrGGG | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 101 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722383873 | \n",
- " 4 | \n",
- " 4 | \n",
- " 8 | \n",
- " 3 | \n",
- " 35 | \n",
- " GGGrrGGG | \n",
- " GGGrrGGG | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 102 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722383873 | \n",
- " 5 | \n",
- " 5 | \n",
- " 7 | \n",
- " 4 | \n",
- " 40 | \n",
- " GGGrrGGG | \n",
- " GGGrrGGG | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 103 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722384052 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 45 | \n",
- " GGGrrGGG | \n",
- " GGGrrGGG | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 104 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722384052 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 20 | \n",
- " GGGrrGGG | \n",
- " GGGGGGGG | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 105 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722384052 | \n",
- " 3 | \n",
- " 3 | \n",
- " 17 | \n",
- " 17 | \n",
- " 40 | \n",
- " GGGrrGGG | \n",
- " GGGrrGGG | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 106 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722384052 | \n",
- " 4 | \n",
- " 4 | \n",
- " 8 | \n",
- " 3 | \n",
- " 40 | \n",
- " GGGrrGGG | \n",
- " GGGrrGGG | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 107 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722384052 | \n",
- " 5 | \n",
- " 5 | \n",
- " 7 | \n",
- " 4 | \n",
- " 35 | \n",
- " GGGrrGGG | \n",
- " GGGrrGGG | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 108 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722384232 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 45 | \n",
- " GGGrrGGG | \n",
- " GGGrrGGG | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 109 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722384232 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 20 | \n",
- " GGGrrGGG | \n",
- " GGGGGGGG | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 110 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722384232 | \n",
- " 3 | \n",
- " 3 | \n",
- " 17 | \n",
- " 17 | \n",
- " 40 | \n",
- " GGGrrGGG | \n",
- " GGGrrGGG | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 111 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722384232 | \n",
- " 4 | \n",
- " 4 | \n",
- " 8 | \n",
- " 3 | \n",
- " 40 | \n",
- " GGGrrGGG | \n",
- " GGGrrGGG | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 112 | \n",
- " 457 | \n",
- " 109296 | \n",
- " 1722384232 | \n",
- " 5 | \n",
- " 5 | \n",
- " 7 | \n",
- " 4 | \n",
- " 35 | \n",
- " GGGrrGGG | \n",
- " GGGrrGGG | \n",
- " 4 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "98 457 109296 1722383873 1 1 6 2 45 \n",
- "99 457 109296 1722383873 2 2 5 1 20 \n",
- "100 457 109296 1722383873 3 3 17 17 40 \n",
- "101 457 109296 1722383873 4 4 8 3 35 \n",
- "102 457 109296 1722383873 5 5 7 4 40 \n",
- "103 457 109296 1722384052 1 1 6 2 45 \n",
- "104 457 109296 1722384052 2 2 5 1 20 \n",
- "105 457 109296 1722384052 3 3 17 17 40 \n",
- "106 457 109296 1722384052 4 4 8 3 40 \n",
- "107 457 109296 1722384052 5 5 7 4 35 \n",
- "108 457 109296 1722384232 1 1 6 2 45 \n",
- "109 457 109296 1722384232 2 2 5 1 20 \n",
- "110 457 109296 1722384232 3 3 17 17 40 \n",
- "111 457 109296 1722384232 4 4 8 3 40 \n",
- "112 457 109296 1722384232 5 5 7 4 35 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "98 GGGrrGGG GGGrrGGG 0 \n",
- "99 GGGrrGGG GGGGGGGG 1 \n",
- "100 GGGrrGGG GGGrrGGG 2 \n",
- "101 GGGrrGGG GGGrrGGG 3 \n",
- "102 GGGrrGGG GGGrrGGG 4 \n",
- "103 GGGrrGGG GGGrrGGG 0 \n",
- "104 GGGrrGGG GGGGGGGG 1 \n",
- "105 GGGrrGGG GGGrrGGG 2 \n",
- "106 GGGrrGGG GGGrrGGG 3 \n",
- "107 GGGrrGGG GGGrrGGG 4 \n",
- "108 GGGrrGGG GGGrrGGG 0 \n",
- "109 GGGrrGGG GGGGGGGG 1 \n",
- "110 GGGrrGGG GGGrrGGG 2 \n",
- "111 GGGrrGGG GGGrrGGG 3 \n",
- "112 GGGrrGGG GGGrrGGG 4 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 113 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722383873 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 45 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 114 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722383873 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 20 | \n",
- " GGGGGGGG | \n",
- " GGGGGGrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 115 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722383873 | \n",
- " 3 | \n",
- " 3 | \n",
- " 17 | \n",
- " 17 | \n",
- " 40 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 116 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722383873 | \n",
- " 4 | \n",
- " 4 | \n",
- " 8 | \n",
- " 3 | \n",
- " 35 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 117 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722383873 | \n",
- " 5 | \n",
- " 5 | \n",
- " 7 | \n",
- " 4 | \n",
- " 40 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 118 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722384052 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 45 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 119 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722384052 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 20 | \n",
- " GGGGGGGG | \n",
- " GGGGGGrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 120 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722384052 | \n",
- " 3 | \n",
- " 3 | \n",
- " 17 | \n",
- " 17 | \n",
- " 40 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 121 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722384052 | \n",
- " 4 | \n",
- " 4 | \n",
- " 8 | \n",
- " 3 | \n",
- " 40 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 122 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722384052 | \n",
- " 5 | \n",
- " 5 | \n",
- " 7 | \n",
- " 4 | \n",
- " 35 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 4 | \n",
- "
\n",
- " \n",
- " 123 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722384232 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 45 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 124 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722384232 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 20 | \n",
- " GGGGGGGG | \n",
- " GGGGGGrr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 125 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722384232 | \n",
- " 3 | \n",
- " 3 | \n",
- " 17 | \n",
- " 17 | \n",
- " 40 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 126 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722384232 | \n",
- " 4 | \n",
- " 4 | \n",
- " 8 | \n",
- " 3 | \n",
- " 40 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 127 | \n",
- " 457 | \n",
- " 109297 | \n",
- " 1722384232 | \n",
- " 5 | \n",
- " 5 | \n",
- " 7 | \n",
- " 4 | \n",
- " 35 | \n",
- " GGGGGGrr | \n",
- " GGGGGGrr | \n",
- " 4 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "113 457 109297 1722383873 1 1 6 2 45 \n",
- "114 457 109297 1722383873 2 2 5 1 20 \n",
- "115 457 109297 1722383873 3 3 17 17 40 \n",
- "116 457 109297 1722383873 4 4 8 3 35 \n",
- "117 457 109297 1722383873 5 5 7 4 40 \n",
- "118 457 109297 1722384052 1 1 6 2 45 \n",
- "119 457 109297 1722384052 2 2 5 1 20 \n",
- "120 457 109297 1722384052 3 3 17 17 40 \n",
- "121 457 109297 1722384052 4 4 8 3 40 \n",
- "122 457 109297 1722384052 5 5 7 4 35 \n",
- "123 457 109297 1722384232 1 1 6 2 45 \n",
- "124 457 109297 1722384232 2 2 5 1 20 \n",
- "125 457 109297 1722384232 3 3 17 17 40 \n",
- "126 457 109297 1722384232 4 4 8 3 40 \n",
- "127 457 109297 1722384232 5 5 7 4 35 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "113 GGGGGGrr GGGGGGrr 0 \n",
- "114 GGGGGGGG GGGGGGrr 1 \n",
- "115 GGGGGGrr GGGGGGrr 2 \n",
- "116 GGGGGGrr GGGGGGrr 3 \n",
- "117 GGGGGGrr GGGGGGrr 4 \n",
- "118 GGGGGGrr GGGGGGrr 0 \n",
- "119 GGGGGGGG GGGGGGrr 1 \n",
- "120 GGGGGGrr GGGGGGrr 2 \n",
- "121 GGGGGGrr GGGGGGrr 3 \n",
- "122 GGGGGGrr GGGGGGrr 4 \n",
- "123 GGGGGGrr GGGGGGrr 0 \n",
- "124 GGGGGGGG GGGGGGrr 1 \n",
- "125 GGGGGGrr GGGGGGrr 2 \n",
- "126 GGGGGGrr GGGGGGrr 3 \n",
- "127 GGGGGGrr GGGGGGrr 4 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 128 | \n",
- " 437 | \n",
- " 109313 | \n",
- " 1722384007 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 77 | \n",
- " GGGGGGGGr | \n",
- " GGGGGGGGr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 129 | \n",
- " 437 | \n",
- " 109313 | \n",
- " 1722384007 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 28 | \n",
- " GGGGGGGGG | \n",
- " GGGGGGGGr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 130 | \n",
- " 437 | \n",
- " 109313 | \n",
- " 1722384007 | \n",
- " 3 | \n",
- " 3 | \n",
- " 8 | \n",
- " 3 | \n",
- " 46 | \n",
- " GGGGGGGGr | \n",
- " GGGGGGGGr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 131 | \n",
- " 437 | \n",
- " 109313 | \n",
- " 1722384007 | \n",
- " 4 | \n",
- " 4 | \n",
- " 7 | \n",
- " 4 | \n",
- " 49 | \n",
- " GGGGGGGGr | \n",
- " GGGGGGGGr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- " 132 | \n",
- " 437 | \n",
- " 109313 | \n",
- " 1722384700 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 71 | \n",
- " GGGGGGGGr | \n",
- " GGGGGGGGr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 133 | \n",
- " 437 | \n",
- " 109313 | \n",
- " 1722384700 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 1 | \n",
- " 28 | \n",
- " GGGGGGGGG | \n",
- " GGGGGGGGr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 134 | \n",
- " 437 | \n",
- " 109313 | \n",
- " 1722384700 | \n",
- " 3 | \n",
- " 3 | \n",
- " 8 | \n",
- " 3 | \n",
- " 58 | \n",
- " GGGGGGGGr | \n",
- " GGGGGGGGr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 135 | \n",
- " 437 | \n",
- " 109313 | \n",
- " 1722384700 | \n",
- " 4 | \n",
- " 4 | \n",
- " 7 | \n",
- " 4 | \n",
- " 43 | \n",
- " GGGGGGGGr | \n",
- " GGGGGGGGr | \n",
- " 3 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "128 437 109313 1722384007 1 1 6 2 77 \n",
- "129 437 109313 1722384007 2 2 5 1 28 \n",
- "130 437 109313 1722384007 3 3 8 3 46 \n",
- "131 437 109313 1722384007 4 4 7 4 49 \n",
- "132 437 109313 1722384700 1 1 6 2 71 \n",
- "133 437 109313 1722384700 2 2 5 1 28 \n",
- "134 437 109313 1722384700 3 3 8 3 58 \n",
- "135 437 109313 1722384700 4 4 7 4 43 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "128 GGGGGGGGr GGGGGGGGr 0 \n",
- "129 GGGGGGGGG GGGGGGGGr 1 \n",
- "130 GGGGGGGGr GGGGGGGGr 2 \n",
- "131 GGGGGGGGr GGGGGGGGr 3 \n",
- "132 GGGGGGGGr GGGGGGGGr 0 \n",
- "133 GGGGGGGGG GGGGGGGGr 1 \n",
- "134 GGGGGGGGr GGGGGGGGr 2 \n",
- "135 GGGGGGGGr GGGGGGGGr 3 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "text/html": [
- "\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " inter_no | \n",
- " node_id | \n",
- " start_unix | \n",
- " phas_A | \n",
- " phas_B | \n",
- " move_A | \n",
- " move_B | \n",
- " duration | \n",
- " state_A | \n",
- " state_B | \n",
- " phase_sumo | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " 136 | \n",
- " 443 | \n",
- " 109333 | \n",
- " 1722383902 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 125 | \n",
- " GGGGGGGGGGGr | \n",
- " GGGGGGGGGGGr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 137 | \n",
- " 443 | \n",
- " 109333 | \n",
- " 1722383902 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 2 | \n",
- " 25 | \n",
- " GGGGGGGGGGGG | \n",
- " GGGGGGGGGGGr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 138 | \n",
- " 443 | \n",
- " 109333 | \n",
- " 1722383902 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 18 | \n",
- " 50 | \n",
- " GGGGGGGGGGGr | \n",
- " GGGGGGGGGGGr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 139 | \n",
- " 443 | \n",
- " 109333 | \n",
- " 1722384102 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 125 | \n",
- " GGGGGGGGGGGr | \n",
- " GGGGGGGGGGGr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 140 | \n",
- " 443 | \n",
- " 109333 | \n",
- " 1722384102 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 2 | \n",
- " 25 | \n",
- " GGGGGGGGGGGG | \n",
- " GGGGGGGGGGGr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 141 | \n",
- " 443 | \n",
- " 109333 | \n",
- " 1722384102 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 18 | \n",
- " 50 | \n",
- " GGGGGGGGGGGr | \n",
- " GGGGGGGGGGGr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- " 142 | \n",
- " 443 | \n",
- " 109333 | \n",
- " 1722384302 | \n",
- " 1 | \n",
- " 1 | \n",
- " 6 | \n",
- " 2 | \n",
- " 125 | \n",
- " GGGGGGGGGGGr | \n",
- " GGGGGGGGGGGr | \n",
- " 0 | \n",
- "
\n",
- " \n",
- " 143 | \n",
- " 443 | \n",
- " 109333 | \n",
- " 1722384302 | \n",
- " 2 | \n",
- " 2 | \n",
- " 5 | \n",
- " 2 | \n",
- " 25 | \n",
- " GGGGGGGGGGGG | \n",
- " GGGGGGGGGGGr | \n",
- " 1 | \n",
- "
\n",
- " \n",
- " 144 | \n",
- " 443 | \n",
- " 109333 | \n",
- " 1722384302 | \n",
- " 3 | \n",
- " 3 | \n",
- " 7 | \n",
- " 18 | \n",
- " 50 | \n",
- " GGGGGGGGGGGr | \n",
- " GGGGGGGGGGGr | \n",
- " 2 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
- "136 443 109333 1722383902 1 1 6 2 125 \n",
- "137 443 109333 1722383902 2 2 5 2 25 \n",
- "138 443 109333 1722383902 3 3 7 18 50 \n",
- "139 443 109333 1722384102 1 1 6 2 125 \n",
- "140 443 109333 1722384102 2 2 5 2 25 \n",
- "141 443 109333 1722384102 3 3 7 18 50 \n",
- "142 443 109333 1722384302 1 1 6 2 125 \n",
- "143 443 109333 1722384302 2 2 5 2 25 \n",
- "144 443 109333 1722384302 3 3 7 18 50 \n",
- "\n",
- " state_A state_B phase_sumo \n",
- "136 GGGGGGGGGGGr GGGGGGGGGGGr 0 \n",
- "137 GGGGGGGGGGGG GGGGGGGGGGGr 1 \n",
- "138 GGGGGGGGGGGr GGGGGGGGGGGr 2 \n",
- "139 GGGGGGGGGGGr GGGGGGGGGGGr 0 \n",
- "140 GGGGGGGGGGGG GGGGGGGGGGGr 1 \n",
- "141 GGGGGGGGGGGr GGGGGGGGGGGr 2 \n",
- "142 GGGGGGGGGGGr GGGGGGGGGGGr 0 \n",
- "143 GGGGGGGGGGGG GGGGGGGGGGGr 1 \n",
- "144 GGGGGGGGGGGr GGGGGGGGGGGr 2 "
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
+ "outputs": [],
+ "source": [
+ "sorted(inter_no for inter_no in set(self.history.inter_no))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.process_history()\n",
+ "sorted(inter_no for inter_no in set(self.rhistory.inter_no))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "sorted(inter_no for inter_no in set(self.rhists.inter_no))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "sorted(inter_no for inter_no in set(self.hrhists.inter_no))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.process_movement()\n",
+ "sorted(inter_no for inter_no in set(self.movement.inter_no))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.make_histids()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "sorted(inter_no for inter_no in set(self.movement_updated.inter_no))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "sorted(inter_no for inter_no in set(self.movedur.inter_no))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "sorted(inter_no for inter_no in set(self.histid.inter_no))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "sorted(node_id for node_id in set(self.histid.node_id))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "sorted(inter_no for inter_no in set(self.histids.inter_no))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "sorted(node_id for node_id in set(self.histids.node_id))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.set_timepoints()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.assign_red_yellow()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.make_tl_file()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.plan[self.plan.inter_no==455]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.SIGTABLE = []\n",
+ "node_id = self.node_ids[11]\n",
+ "print(node_id)\n",
+ "sig = self.sigtable.query('node_id==@node_id')\n",
+ "display(sig)\n",
+ "for i, row in sig.iterrows():\n",
+ " inter_no = row.inter_no\n",
+ " phas_A = row.phas_A\n",
+ " phas_B = row.phas_B\n",
+ " start_unix = row.start_unix\n",
+ " prow = self.load_prow(inter_no, start_unix)[1].iloc[0]\n",
+ " # 황색 및 적색시간 컬럼 생성\n",
+ " red_A = prow[f'red_A{phas_A}']\n",
+ " yellow_A = prow[f'yellow_A{phas_A}']\n",
+ " red_B = prow[f'red_B{phas_B}']\n",
+ " yellow_B = prow[f'yellow_B{phas_B}']\n",
+ " sig.loc[i, ['red_A', 'red_B', 'yellow_A', 'yellow_B']] = red_A, red_B, yellow_A, yellow_B\n",
+ "display(sig)\n",
+ "sig = sig.astype({'red_A': int, 'red_B': int, 'yellow_A': int, 'yellow_B': int,\n",
+ " 'phas_A':str, 'phas_B':str})\n",
+ "sig = sig.drop(['move_A','move_B'], axis=1)\n",
+ "display(sig)\n",
+ "\n",
+ "sig_A = sig[['start_unix', 'phas_A', 'duration', 'state_A', 'red_A', 'yellow_A']].reset_index(drop=True)\n",
+ "sig_B = sig[['start_unix', 'phas_B', 'duration', 'state_B', 'red_B', 'yellow_B']].reset_index(drop=True)\n",
+ "display(sig_A)\n",
+ "display(sig_B)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.parent_ids"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# csig_A = self.cumulate(sig_A, 'A')\n",
+ "sig = sig_A\n",
+ "alph = 'A'\n",
+ "csig = [] # cumulated sig\n",
+ "pre = pd.Series({f'phas_{alph}':None})\n",
+ "\n",
+ "sig[f'phas_{alph}'] = sig[f'phas_{alph}'].astype(int)\n",
+ "# 만약 현시번호가 1로 일정하면 2현시를 가상으로 추가\n",
+ "if (sig[f'phas_{alph}']==1).all():\n",
+ " sig_dup = sig.copy() \n",
+ " sig_dup[f'phas_{alph}'] = 2\n",
+ " sig = pd.concat([sig, sig_dup]).sort_values(by=['start_unix', f'phas_{alph}'])\n",
+ "\n",
+ "start_time = 0\n",
+ "elapsed = 0\n",
+ "for i, cur in sig.iterrows():\n",
+ " start_unix = cur.start_unix\n",
+ " \n",
+ " # pre, nex\n",
+ " if i != 0:\n",
+ " pre = sig.iloc[i-1]\n",
+ " \n",
+ " if i != len(sig) - 1:\n",
+ " nex = sig.iloc[i+1]\n",
+ " \n",
+ " # duration\n",
+ " if cur[f'phas_{alph}'] == nex[f'phas_{alph}']:\n",
+ " continue\n",
+ " if cur[f'phas_{alph}'] == pre[f'phas_{alph}']:\n",
+ " duration = cur.duration + pre.duration\n",
+ " else:\n",
+ " duration = cur.duration\n",
+ " start_times = []\n",
+ " states = []\n",
+ " phases = []\n",
+ "\n",
+ " # red\n",
+ " if i != 0:\n",
+ " start_time += elapsed\n",
+ " start_times.append(start_time)\n",
+ " states.append(self.get_red(pre[f'state_{alph}'], cur[f'state_{alph}']))\n",
+ " phases.append(f'{cur[f\"phas_{alph}\"]}r')\n",
+ "\n",
+ " elapsed = cur[f'red_{alph}']\n",
+ "\n",
+ " # green\n",
+ " if i == 0:\n",
+ " start_time = 0\n",
+ " else:\n",
+ " start_time += elapsed\n",
+ " start_times.append(start_time)\n",
+ " states.append(cur[f'state_{alph}'])\n",
+ " phases.append(f'{cur[f\"phas_{alph}\"]}g')\n",
+ " if i == 0:\n",
+ " elapsed = duration - cur[f'yellow_{alph}']\n",
+ " else:\n",
+ " elapsed = duration - cur[f'yellow_{alph}'] - cur[f'red_{alph}']\n",
+ "\n",
+ " # yellow\n",
+ " if i != len(sig) - 1:\n",
+ " start_time += elapsed\n",
+ " start_times.append(start_time)\n",
+ " states.append(self.get_yellow(cur[f'state_{alph}'], nex[f'state_{alph}']))\n",
+ " phases.append(f'{cur[f\"phas_{alph}\"]}y')\n",
+ " elapsed = cur[f'yellow_{alph}']\n",
+ " sig_ = pd.DataFrame({'start_time':start_times, f'phas_{alph}':phases, f'state_{alph}':states})\n",
+ " sig_['start_unix'] = start_unix\n",
+ " csig.append(sig_)\n",
+ "csig = pd.concat(csig).reset_index(drop=True)\n",
+ "csig\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.SIGTABLE = []\n",
+ "node_id = self.node_ids[11]\n",
+ "print(node_id)\n",
+ "sig = self.sigtable.query('node_id==@node_id')\n",
+ "display(sig)\n",
+ "for i, row in sig.iterrows():\n",
+ " inter_no = row.inter_no\n",
+ " phas_A = row.phas_A\n",
+ " phas_B = row.phas_B\n",
+ " start_unix = row.start_unix\n",
+ " prow = self.load_prow(inter_no, start_unix)[1].iloc[0]\n",
+ " # 황색 및 적색시간 컬럼 생성\n",
+ " red_A = prow[f'red_A{phas_A}']\n",
+ " yellow_A = prow[f'yellow_A{phas_A}']\n",
+ " red_B = prow[f'red_B{phas_B}']\n",
+ " yellow_B = prow[f'yellow_B{phas_B}']\n",
+ " sig.loc[i, ['red_A', 'red_B', 'yellow_A', 'yellow_B']] = red_A, red_B, yellow_A, yellow_B\n",
+ "display(sig)\n",
+ "sig = sig.astype({'red_A': int, 'red_B': int, 'yellow_A': int, 'yellow_B': int,\n",
+ " 'phas_A':str, 'phas_B':str})\n",
+ "sig = sig.drop(['move_A','move_B'], axis=1)\n",
+ "display(sig)\n",
+ "\n",
+ "sig_A = sig[['start_unix', 'phas_A', 'duration', 'state_A', 'red_A', 'yellow_A']].reset_index(drop=True)\n",
+ "sig_B = sig[['start_unix', 'phas_B', 'duration', 'state_B', 'red_B', 'yellow_B']].reset_index(drop=True)\n",
+ "display(sig_A)\n",
+ "display(sig_B)\n",
+ "\n",
+ "csig_A = self.cumulate(sig_A, 'A')\n",
+ "csig_B = self.cumulate(sig_B, 'B')\n",
+ "display(csig_A)\n",
+ "display(csig_B)\n",
+ "\n",
+ "SIG = pd.merge(csig_A, csig_B, on=['start_time', 'start_unix'], how='outer')\n",
+ "display(SIG[:40])\n",
+ "SIG = SIG.sort_values(by='start_time').reset_index(drop=True)\n",
+ "SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
+ "SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
+ "SIG['phase'] = SIG['phas_A'] + \"_\" + SIG['phas_B']\n",
+ "SIG['node_id'] = node_id\n",
+ "SIG = SIG[['node_id', 'start_unix', 'start_time', 'phase', 'state_A', 'state_B']]\n",
+ "SIG['duration'] = SIG['start_time'].shift(-1) - SIG['start_time']\n",
+ "SIG = SIG[:-1]\n",
+ "SIG['duration'] = SIG['duration'].astype(int)\n",
+ "display(SIG[:40])\n",
+ "for row in SIG.itertuples():\n",
+ " state = ''\n",
+ " for a, b, in zip(row.state_A, row.state_B):\n",
+ " if a == 'r':\n",
+ " state += b\n",
+ " elif b == 'r':\n",
+ " state += a\n",
+ " elif a == b:\n",
+ " state += a\n",
+ " else:\n",
+ " raise ValueError(f\"예상되지 않은 조합 발생: a={a}, b={b}\")\n",
+ " SIG.at[row.Index, 'state'] = state\n",
+ "display(SIG[:40])\n",
+ "SIG = SIG[SIG.duration!=0]\n",
+ "SIG = SIG.drop(columns=['start_time', 'state_A', 'state_B'])\n",
+ "display(SIG[:40])\n",
+ "self.SIGTABLE.append(SIG)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.offsets = {}\n",
+ "self.sigtable = []\n",
+ "sim_start = self.present_time - self.sim_timespan\n",
+ "print(self.present_time)\n",
+ "print(self.sim_timespan)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "node_id = '106231'\n",
+ "group = self.histids[self.histids.node_id==node_id]\n",
+ "min_start_unix = int(group['start_unix'].min())\n",
+ "min_start_unix"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "node_id = '107587'\n",
+ "group = self.histids[self.histids.node_id==node_id]\n",
+ "series = group[group['start_unix'] < sim_start]['start_unix']\n",
+ "min_start_unix = int(group['start_unix'].min())\n",
+ "inter_no = self.node2inter[node_id]\n",
+ "_, prow = self.load_prow(inter_no, min_start_unix)\n",
+ "cycle = prow.iloc[0]['cycle']\n",
+ "lsbs = min_start_unix\n",
+ "print(lsbs, sim_start, cycle)\n",
+ "print(lsbs > sim_start)\n",
+ "print(type(lsbs), 'hello', type(sim_start))\n",
+ "while lsbs > sim_start:\n",
+ " lsbs -= cycle\n",
+ "print(min_start_unix)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "self.offsets = {}\n",
+ "self.sigtable = []\n",
+ "sim_start = self.present_time - self.sim_timespan\n",
+ "for node_id, group in self.histids.groupby('node_id'):\n",
+ " series = group[group['start_unix'] < sim_start]['start_unix']\n",
+ " # lsbs : the last start_unix before sim_start\n",
+ " if len(series):\n",
+ " lsbs = series.max()\n",
+ " else:\n",
+ " min_start_unix = int(group['start_unix'].min())\n",
+ " inter_no = self.node2inter[node_id]\n",
+ " _, prow = self.load_prow(inter_no, min_start_unix)\n",
+ " cycle = prow.iloc[0]['cycle']\n",
+ " lsbs = min_start_unix\n",
+ " while lsbs > sim_start:\n",
+ " lsbs -= cycle\n",
+ " self.offsets[node_id] = lsbs - sim_start\n",
+ " group = group[group.start_unix >= lsbs]\n",
+ " start_unixes = np.array(group.start_unix)\n",
+ " start_unixes = np.sort(np.unique(start_unixes))[:self.node2num_cycles[node_id]]\n",
+ "\n",
+ " group = group[group.start_unix.isin(start_unixes)]\n",
+ " self.sigtable.append(group)\n",
+ "self.sigtable = pd.concat(self.sigtable).reset_index(drop=True)\n",
+ "self.sigtable['phase_sumo'] = self.sigtable.groupby(['node_id', 'start_unix']).cumcount()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "sorted(inter_no for inter_no in set(self.sigtable.inter_no))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "sorted(node_id for node_id in set(self.sigtable.node_id))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# 5-1\n",
+ "self.set_timepoints()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
"source": [
"self.SIGTABLE = []\n",
"for node_id in self.node_ids:\n",
@@ -5881,37 +1965,9 @@
},
{
"cell_type": "code",
- "execution_count": 30,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "c:\\github\\siggen\\scripts\\generate_signals.py:818: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:819: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:818: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')\n",
- "c:\\github\\siggen\\scripts\\generate_signals.py:819: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.\n",
- " SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')\n"
- ]
- },
- {
- "ename": "KeyError",
- "evalue": "\"Only a column name can be used for the key in a dtype mappings argument. 'red_A' not found in columns.\"",
- "output_type": "error",
- "traceback": [
- "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
- "Cell \u001b[1;32mIn[30], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# 5-2. 적색 및 황색신호 부여\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43massign_red_yellow\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
- "File \u001b[1;32mc:\\github\\siggen\\scripts\\generate_signals.py:806\u001b[0m, in \u001b[0;36mSignalGenerator.assign_red_yellow\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 804\u001b[0m yellow_B \u001b[38;5;241m=\u001b[39m prow[\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124myellow_B\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mphas_B\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m]\n\u001b[0;32m 805\u001b[0m sig\u001b[38;5;241m.\u001b[39mloc[i, [\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mred_A\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mred_B\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124myellow_A\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124myellow_B\u001b[39m\u001b[38;5;124m'\u001b[39m]] \u001b[38;5;241m=\u001b[39m red_A, red_B, yellow_A, yellow_B\n\u001b[1;32m--> 806\u001b[0m sig \u001b[38;5;241m=\u001b[39m \u001b[43msig\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mastype\u001b[49m\u001b[43m(\u001b[49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mred_A\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mint\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mred_B\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mint\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43myellow_A\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mint\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43myellow_B\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mint\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 807\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mphas_A\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m:\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mphas_B\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m:\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 808\u001b[0m sig \u001b[38;5;241m=\u001b[39m sig\u001b[38;5;241m.\u001b[39mdrop([\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmove_A\u001b[39m\u001b[38;5;124m'\u001b[39m,\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmove_B\u001b[39m\u001b[38;5;124m'\u001b[39m], axis\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m)\n\u001b[0;32m 810\u001b[0m sig_A \u001b[38;5;241m=\u001b[39m sig[[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mstart_unix\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mphas_A\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mduration\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mstate_A\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mred_A\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124myellow_A\u001b[39m\u001b[38;5;124m'\u001b[39m]]\u001b[38;5;241m.\u001b[39mreset_index(drop\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n",
- "File \u001b[1;32mc:\\github\\siggen\\siggen_env\\Lib\\site-packages\\pandas\\core\\generic.py:6605\u001b[0m, in \u001b[0;36mNDFrame.astype\u001b[1;34m(self, dtype, copy, errors)\u001b[0m\n\u001b[0;32m 6603\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m col_name \u001b[38;5;129;01min\u001b[39;00m dtype_ser\u001b[38;5;241m.\u001b[39mindex:\n\u001b[0;32m 6604\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m col_name \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m:\n\u001b[1;32m-> 6605\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(\n\u001b[0;32m 6606\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mOnly a column name can be used for the \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 6607\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mkey in a dtype mappings argument. \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 6608\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mcol_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m not found in columns.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 6609\u001b[0m )\n\u001b[0;32m 6611\u001b[0m dtype_ser \u001b[38;5;241m=\u001b[39m dtype_ser\u001b[38;5;241m.\u001b[39mreindex(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcolumns, fill_value\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, copy\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[0;32m 6613\u001b[0m results \u001b[38;5;241m=\u001b[39m []\n",
- "\u001b[1;31mKeyError\u001b[0m: \"Only a column name can be used for the key in a dtype mappings argument. 'red_A' not found in columns.\""
- ]
- }
- ],
+ "outputs": [],
"source": [
"# 5-2. 적색 및 황색신호 부여\n",
"self.assign_red_yellow()"