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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
start_unixinter_nophas_Aphas_BSTOS_NOmove_Amove_B
0172241632643622083
1172241632643733083
2172241632643811062
3172241632644211061
4172241632644311062
........................
110951722417443444440-1-1
110961722417443455220-1-1
11097172241744345644017-1
1109817224174434573301717
1109917224174434582201717
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", + " \n", + " \n", " \n", " \n", "
start_unixphas_Bdurationstate_Bred_Byellow_B
........................
01722383976163rrGG0110951722417443444440-1-1
11722384066163rrGG1109617224174434552204-1-1
21722384067163rrGG011097172241744345644017-1
31722384155163rrGG11098172241744345733041717
41722384156163rrGG11099172241744345822041717
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
1574551099011722383976116263GGrrrrGG0
1584551099011722384066116263GGrrrrGG0
1594551099011722384067116263GGrrrrGG0
1604551099011722384155116263GGrrrrGG0
1614551099011722384156116263GGrrrrGG0
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumored_Ared_Byellow_Ayellow_B
1574551099011722383976116263GGrrrrGG00.00.04.04.0
1584551099011722384066116263GGrrrrGG00.00.04.04.0
1594551099011722384067116263GGrrrrGG00.00.04.04.0
1604551099011722384155116263GGrrrrGG00.00.04.04.0
1614551099011722384156116263GGrrrrGG00.00.04.04.0
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bdurationstate_Astate_Bphase_sumored_Ared_Byellow_Ayellow_B
15745510990117223839761163GGrrrrGG00044
15845510990117223840661163GGrrrrGG00044
15945510990117223840671163GGrrrrGG00044
16045510990117223841551163GGrrrrGG00044
16145510990117223841561163GGrrrrGG00044
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
start_unixphas_Adurationstate_Ared_Ayellow_A
01722383976163GGrr04
11722384066163GGrr04
21722384067163GGrr04
31722384155163GGrr04
41722384156163GGrr04
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
start_unixphas_Bdurationstate_Bred_Byellow_B
01722383976163rrGG04
11722384066163rrGG04
21722384067163rrGG04
31722384155163rrGG04
41722384156163rrGG04
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
04561062311722383968115215grgrrrrGgrgrrGGr0
14561062311722383968226228grgGGrrrgrgrrGGr1
24561062311722383968337712gGgrrrrrgGgrrrrr2
3456106231172238396844171735grgrrrrrgrgrrrrr3
44561062311722384057115215grgrrrrGgrgrrGGr0
54561062311722384057226228grgGGrrrgrgrrGGr1
64561062311722384057337712gGgrrrrrgGgrrrrr2
7456106231172238405744171735grgrrrrrgrgrrrrr3
84561062311722384058115215grgrrrrGgrgrrGGr0
94561062311722384058226228grgGGrrrgrgrrGGr1
104561062311722384058337712gGgrrrrrgGgrrrrr2
11456106231172238405844171735grgrrrrrgrgrrrrr3
124561062311722384147115215grgrrrrGgrgrrGGr0
134561062311722384147115215grgrrrrGgrgrrGGr1
144561062311722384147226228grgGGrrrgrgrrGGr2
154561062311722384147226228grgGGrrrgrgrrGGr3
164561062311722384147337712gGgrrrrrgGgrrrrr4
174561062311722384147337712gGgrrrrrgGgrrrrr5
18456106231172238414744171735grgrrrrrgrgrrrrr6
19456106231172238414744171735grgrrrrrgrgrrrrr7
204561062311722384237115215grgrrrrGgrgrrGGr0
214561062311722384237226228grgGGrrrgrgrrGGr1
224561062311722384237337712gGgrrrrrgGgrrrrr2
23456106231172238423744171735grgrrrrrgrgrrrrr3
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
244571062341722383873116245gGGGrgrrrrgrrrrgrrrgrrrrgrrrrgGGGrgrrr0
254571062341722383873225120grrrrgrrrrgrrrGgrrrgrrrGgrrrrgrrrrgrrr1
26457106234172238387333171740grrrrgrrrrgrrrrgrrrgrrrrgrrrrgrrrrgrrr2
274571062341722383873448335grrrrgGGrrgrrrrgrrrgrrrrgrrGGgrrrrgrrr3
284571062341722383873557440grrrrgrrrrgrrrrgrrGgrrrrgrrrrgrrrrgGGr4
294571062341722384052116245gGGGrgrrrrgrrrrgrrrgrrrrgrrrrgGGGrgrrr0
304571062341722384052225120grrrrgrrrrgrrrGgrrrgrrrGgrrrrgrrrrgrrr1
31457106234172238405233171740grrrrgrrrrgrrrrgrrrgrrrrgrrrrgrrrrgrrr2
324571062341722384052448340grrrrgGGrrgrrrrgrrrgrrrrgrrGGgrrrrgrrr3
334571062341722384052557435grrrrgrrrrgrrrrgrrGgrrrrgrrrrgrrrrgGGr4
344571062341722384232116245gGGGrgrrrrgrrrrgrrrgrrrrgrrrrgGGGrgrrr0
354571062341722384232225120grrrrgrrrrgrrrGgrrrgrrrGgrrrrgrrrrgrrr1
36457106234172238423233171740grrrrgrrrrgrrrrgrrrgrrrrgrrrrgrrrrgrrr2
374571062341722384232448340grrrrgGGrrgrrrrgrrrgrrrrgrrGGgrrrrgrrr3
384571062341722384232557435grrrrgrrrrgrrrrgrrGgrrrrgrrrrgrrrrgGGr4
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
394421063321722383898116131gGGGrrrrrrgrrgrrrrrrrrgrrrrgrrrrGGrrrgrrgrrrrrrrrgrrrr0
404421063321722383898226227gGGGrrrrrrgrrgrrrrrrrrgrrrrgrrrrrrrrrgrrgrGGGGGrrgrrrr1
414421063321722383898335232grrrrrrrrrgrrgrrrrrrGGgrrrrgrrrrrrrrrgrrgrGGGGGrrgrrrr2
424421063321722383898447449grrrrrrrrrgrrgrrrrrrrrgrrrGgrrrrrrrrrgrrgrrrrrrrrgGGGr3
434421063321722383898558345grrrrrrGGrgrrgrrrrrrrrgrrrrgrrrrrrrrGgrrgrrrrrrrrgrrrr4
444421063321722383898668316grrrrrrGGrgrrgrrrrrrrrgrrrrgrrrrrrrrGgrrgrrrrrrrrgrrrr5
454421063321722384097116135gGGGrrrrrrgrrgrrrrrrrrgrrrrgrrrrGGrrrgrrgrrrrrrrrgrrrr0
464421063321722384097226227gGGGrrrrrrgrrgrrrrrrrrgrrrrgrrrrrrrrrgrrgrGGGGGrrgrrrr1
474421063321722384097335230grrrrrrrrrgrrgrrrrrrGGgrrrrgrrrrrrrrrgrrgrGGGGGrrgrrrr2
484421063321722384097447447grrrrrrrrrgrrgrrrrrrrrgrrrGgrrrrrrrrrgrrgrrrrrrrrgGGGr3
494421063321722384097558345grrrrrrGGrgrrgrrrrrrrrgrrrrgrrrrrrrrGgrrgrrrrrrrrgrrrr4
504421063321722384097668316grrrrrrGGrgrrgrrrrrrrrgrrrrgrrrrrrrrGgrrgrrrrrrrrgrrrr5
514421063321722384297116135gGGGrrrrrrgrrgrrrrrrrrgrrrrgrrrrGGrrrgrrgrrrrrrrrgrrrr0
524421063321722384297226227gGGGrrrrrrgrrgrrrrrrrrgrrrrgrrrrrrrrrgrrgrGGGGGrrgrrrr1
534421063321722384297335230grrrrrrrrrgrrgrrrrrrGGgrrrrgrrrrrrrrrgrrgrGGGGGrrgrrrr2
544421063321722384297447447grrrrrrrrrgrrgrrrrrrrrgrrrGgrrrrrrrrrgrrgrrrrrrrrgGGGr3
554421063321722384297558345grrrrrrGGrgrrgrrrrrrrrgrrrrgrrrrrrrrGgrrgrrrrrrrrgrrrr4
564421063321722384297668316grrrrrrGGrgrrgrrrrrrrrgrrrrgrrrrrrrrGgrrgrrrrrrrrgrrrr5
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
6544310876917223839021162125gGGGGGrrrrrrgrrgrrrrrGGGGGrgrr0
664431087691722383902225225grrrrrrrrrrGgrrgrrrrrGGGGGrgrr1
6744310876917223839023371850grrrrrrrrrrrgGGgrrrrrrrrrrrgrr2
6844310876917223841021162125gGGGGGrrrrrrgrrgrrrrrGGGGGrgrr0
694431087691722384102225225grrrrrrrrrrGgrrgrrrrrGGGGGrgrr1
7044310876917223841023371850grrrrrrrrrrrgGGgrrrrrrrrrrrgrr2
7144310876917223843021162125gGGGGGrrrrrrgrrgrrrrrGGGGGrgrr0
724431087691722384302225225grrrrrrrrrrGgrrgrrrrrGGGGGrgrr1
7344310876917223843023371850grrrrrrrrrrrgGGgrrrrrrrrrrrgrr2
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
1454361098361722384036115250grrrrgrrgrGgrrgrrrrgrrgGrgrr0
1464361098361722384036228385grrrrgGrgrrgrrgrrrrgrGgrrgrr1
1474361098361722384036337435grrrrgrrgrrgrGgrrrrgrrgrrgGr2
1484361098361722384036446130gGGGrgrrgrrgrrgrrrGgrrgrrgrr3
1494361098361722384236115250grrrrgrrgrGgrrgrrrrgrrgGrgrr0
1504361098361722384236228385grrrrgGrgrrgrrgrrrrgrGgrrgrr1
1514361098361722384236337435grrrrgrrgrrgrGgrrrrgrrgrrgGr2
1524361098361722384236446130gGGGrgrrgrrgrrgrrrGgrrgrrgrr3
1534361098361722384436115250grrrrgrrgrGgrrgrrrrgrrgGrgrr0
1544361098361722384436228385grrrrgGrgrrgrrgrrrrgrGgrrgrr1
1554361098361722384436337435grrrrgrrgrrgrGgrrrrgrrgrrgGr2
1564361098361722384436446130gGGGrgrrgrrgrrgrrrGgrrgrrgrr3
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
1574551099011722383976116263GGrrrrGG0
1584551099011722384066116263GGrrrrGG0
1594551099011722384067116263GGrrrrGG0
1604551099011722384155116263GGrrrrGG0
1614551099011722384156116263GGrrrrGG0
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
1624371099861722384007116277gGGGGrgrrgrrrrrgrrgrrrrrgrrgGGGGrgrr0
1634371099861722384007225128grrrrrgrrgrrrrGgrrgrrrrGgrrgrrrrrgrr1
1644371099861722384007338346grrrrrgGrgrrrrrgrrgrrrrrgrGgrrrrrgrr2
1654371099861722384007447449grrrrrgrrgrrrrrgrGgrrrrrgrrgrrrrrgGr3
1664371099861722384700116271gGGGGrgrrgrrrrrgrrgrrrrrgrrgGGGGrgrr0
1674371099861722384700225128grrrrrgrrgrrrrGgrrgrrrrGgrrgrrrrrgrr1
1684371099861722384700338358grrrrrgGrgrrrrrgrrgrrrrrgrGgrrrrrgrr2
1694371099861722384700447443grrrrrgrrgrrrrrgrGgrrrrrgrrgrrrrrgGr3
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
574371075871722384007116277GGGGrGGGGr0
584371075871722384007225128GGGGrGGGGG1
594371075871722384007338346GGGGrGGGGr2
604371075871722384007447449GGGGrGGGGr3
614371075871722384700116271GGGGrGGGGr0
624371075871722384700225128GGGGrGGGGG1
634371075871722384700338358GGGGrGGGGr2
644371075871722384700447443GGGGrGGGGr3
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
744561092951722383968115215GGGGGGGGGGGGGGrr0
754561092951722383968226228GGGGGGrrGGGGGGrr1
764561092951722383968337712GGGGGGrrGGGGGGrr2
77456109295172238396844171735GGGGGGrrGGGGGGrr3
784561092951722384057115215GGGGGGGGGGGGGGrr0
794561092951722384057226228GGGGGGrrGGGGGGrr1
804561092951722384057337712GGGGGGrrGGGGGGrr2
81456109295172238405744171735GGGGGGrrGGGGGGrr3
824561092951722384058115215GGGGGGGGGGGGGGrr0
834561092951722384058226228GGGGGGrrGGGGGGrr1
844561092951722384058337712GGGGGGrrGGGGGGrr2
85456109295172238405844171735GGGGGGrrGGGGGGrr3
864561092951722384147115215GGGGGGGGGGGGGGrr0
874561092951722384147115215GGGGGGGGGGGGGGrr1
884561092951722384147226228GGGGGGrrGGGGGGrr2
894561092951722384147226228GGGGGGrrGGGGGGrr3
904561092951722384147337712GGGGGGrrGGGGGGrr4
914561092951722384147337712GGGGGGrrGGGGGGrr5
92456109295172238414744171735GGGGGGrrGGGGGGrr6
93456109295172238414744171735GGGGGGrrGGGGGGrr7
944561092951722384237115215GGGGGGGGGGGGGGrr0
954561092951722384237226228GGGGGGrrGGGGGGrr1
964561092951722384237337712GGGGGGrrGGGGGGrr2
97456109295172238423744171735GGGGGGrrGGGGGGrr3
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
984571092961722383873116245GGGrrGGGGGGrrGGG0
994571092961722383873225120GGGrrGGGGGGGGGGG1
100457109296172238387333171740GGGrrGGGGGGrrGGG2
1014571092961722383873448335GGGrrGGGGGGrrGGG3
1024571092961722383873557440GGGrrGGGGGGrrGGG4
1034571092961722384052116245GGGrrGGGGGGrrGGG0
1044571092961722384052225120GGGrrGGGGGGGGGGG1
105457109296172238405233171740GGGrrGGGGGGrrGGG2
1064571092961722384052448340GGGrrGGGGGGrrGGG3
1074571092961722384052557435GGGrrGGGGGGrrGGG4
1084571092961722384232116245GGGrrGGGGGGrrGGG0
1094571092961722384232225120GGGrrGGGGGGGGGGG1
110457109296172238423233171740GGGrrGGGGGGrrGGG2
1114571092961722384232448340GGGrrGGGGGGrrGGG3
1124571092961722384232557435GGGrrGGGGGGrrGGG4
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
1134571092971722383873116245GGGGGGrrGGGGGGrr0
1144571092971722383873225120GGGGGGGGGGGGGGrr1
115457109297172238387333171740GGGGGGrrGGGGGGrr2
1164571092971722383873448335GGGGGGrrGGGGGGrr3
1174571092971722383873557440GGGGGGrrGGGGGGrr4
1184571092971722384052116245GGGGGGrrGGGGGGrr0
1194571092971722384052225120GGGGGGGGGGGGGGrr1
120457109297172238405233171740GGGGGGrrGGGGGGrr2
1214571092971722384052448340GGGGGGrrGGGGGGrr3
1224571092971722384052557435GGGGGGrrGGGGGGrr4
1234571092971722384232116245GGGGGGrrGGGGGGrr0
1244571092971722384232225120GGGGGGGGGGGGGGrr1
125457109297172238423233171740GGGGGGrrGGGGGGrr2
1264571092971722384232448340GGGGGGrrGGGGGGrr3
1274571092971722384232557435GGGGGGrrGGGGGGrr4
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
1284371093131722384007116277GGGGGGGGrGGGGGGGGr0
1294371093131722384007225128GGGGGGGGGGGGGGGGGr1
1304371093131722384007338346GGGGGGGGrGGGGGGGGr2
1314371093131722384007447449GGGGGGGGrGGGGGGGGr3
1324371093131722384700116271GGGGGGGGrGGGGGGGGr0
1334371093131722384700225128GGGGGGGGGGGGGGGGGr1
1344371093131722384700338358GGGGGGGGrGGGGGGGGr2
1354371093131722384700447443GGGGGGGGrGGGGGGGGr3
\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", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nonode_idstart_unixphas_Aphas_Bmove_Amove_Bdurationstate_Astate_Bphase_sumo
13644310933317223839021162125GGGGGGGGGGGrGGGGGGGGGGGr0
1374431093331722383902225225GGGGGGGGGGGGGGGGGGGGGGGr1
13844310933317223839023371850GGGGGGGGGGGrGGGGGGGGGGGr2
13944310933317223841021162125GGGGGGGGGGGrGGGGGGGGGGGr0
1404431093331722384102225225GGGGGGGGGGGGGGGGGGGGGGGr1
14144310933317223841023371850GGGGGGGGGGGrGGGGGGGGGGGr2
14244310933317223843021162125GGGGGGGGGGGrGGGGGGGGGGGr0
1434431093331722384302225225GGGGGGGGGGGGGGGGGGGGGGGr1
14444310933317223843023371850GGGGGGGGGGGrGGGGGGGGGGGr2
\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()"