{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import os\n", "import pandas as pd\n", "import numpy as np\n", "import sys\n", "sys.path.append('../../Scripts')\n", "from preprocess_daily import DailyPreprocessor\n", "from generate_signals import SignalGenerator" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1. 데이터를 준비합니다.\n", "1-1. 네트워크가 로드되었습니다.\n", "1-2. 테이블들이 로드되었습니다.\n", "2. 신호이력 테이블을 변환합니다.\n", "3. 이동류정보 테이블을 변환합니다.\n", "4. 통합 테이블을 생성합니다.\n", "5. 신호를 생성합니다.\n", "6. 이슈사항을 저장합니다.\n", "(1) 0:00:00.068803\n", "(1-1) 0:00:00.007337\n", "(1-2) 0:00:00.033005\n", "(1-3) 0:00:00\n", "(1-4) 0:00:00\n", "(1-5) 0:00:00.028461\n", "(2) 0:00:00.369125\n", "(2-1) 0:00:00.074089\n", "(2-2) 0:00:00.244743\n", "(2-3) 0:00:00.050293\n", "(3) 0:00:00.580612\n", "(3-1) 0:00:00.559406\n", "(3-2) 0:00:00.021206\n", "(4) 0:00:00.186527\n", "(4-1) 0:00:00.002003\n", "(4-2) 0:00:00.014893\n", "(4-2) 0:00:00.169631\n", "(5) 0:00:00.715907\n", "(5-1) 0:00:00.013178\n", "(5-2) 0:00:00.696977\n", "(5-3) 0:00:00.005752\n", "(6) 0:00:00.001000\n", "total time : 0:00:01.921974\n" ] } ], "source": [ "self = SignalGenerator()\n", "self.main()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1. 데이터를 준비합니다.\n", "1-1. 네트워크가 로드되었습니다.\n", "1-2. 테이블들이 로드되었습니다.\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", "
Unnamed: 0inter_nonode_idmove_noinc_edge_idout_edge_idstate
00175i01571545870_02571542797_02grrrgrrGgrrrrrgrr
11175i02571510153_02571545870_01grrrgrrrgrrrrrgGr
22175i03-571542797_02571510153_01grrrgrrrgrrrrGgrr
33175i04-571500487_01571542797_02gGGrgrrrgrrrrrgrr
44175i05571510153_02571500487_01grrrgrrrgrrrrrgrG
........................
6767210i621571511538_02.121571500535_01grrrgrrrrgrrgrrr
6868210i621571500535_02.18571500585_01grrrgrrrrgrrgrrr
6969210i621571500585_02571542115_01grrrgrrrrgrrgrrr
7070210i621-571542115_01571511538_01grrrgrrrrgrrgrrr
7171210u605571500535_02-571500535_02ggggggggG
\n", "

72 rows × 7 columns

\n", "
" ], "text/plain": [ " Unnamed: 0 inter_no node_id move_no inc_edge_id out_edge_id \\\n", "0 0 175 i0 1 571545870_02 571542797_02 \n", "1 1 175 i0 2 571510153_02 571545870_01 \n", "2 2 175 i0 3 -571542797_02 571510153_01 \n", "3 3 175 i0 4 -571500487_01 571542797_02 \n", "4 4 175 i0 5 571510153_02 571500487_01 \n", ".. ... ... ... ... ... ... \n", "67 67 210 i6 21 571511538_02.121 571500535_01 \n", "68 68 210 i6 21 571500535_02.18 571500585_01 \n", "69 69 210 i6 21 571500585_02 571542115_01 \n", "70 70 210 i6 21 -571542115_01 571511538_01 \n", "71 71 210 u60 5 571500535_02 -571500535_02 \n", "\n", " state \n", "0 grrrgrrGgrrrrrgrr \n", "1 grrrgrrrgrrrrrgGr \n", "2 grrrgrrrgrrrrGgrr \n", "3 gGGrgrrrgrrrrrgrr \n", "4 grrrgrrrgrrrrrgrG \n", ".. ... \n", "67 grrrgrrrrgrrgrrr \n", "68 grrrgrrrrgrrgrrr \n", "69 grrrgrrrrgrrgrrr \n", "70 grrrgrrrrgrrgrrr \n", "71 ggggggggG \n", "\n", "[72 rows x 7 columns]" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.prepare_data() # 1\n", "self.matching" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1. 데이터를 준비합니다.\n", "1-1. 네트워크가 로드되었습니다.\n", "1-2. 테이블들이 로드되었습니다.\n", "2. 신호이력 테이블을 변환합니다.\n", "3. 이동류정보 테이블을 변환합니다.\n" ] } ], "source": [ "self.prepare_data() # 1\n", "self.process_history() # 2\n", "self.process_movement() # 3\n", "self.merge_dfs() # 4-1" ] }, { "cell_type": "code", "execution_count": 16, "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", "
inter_nostart_unixphas_Aphas_Bmove_Amove_Bdurationnode_id
61761704418870118437i1
717617044188702283103i1
817617044188703351840i1
91761704419051118437i1
1017617044190512283103i1
...........................
24521017044198101161828i6
2462101704419810126215i6
2472101704419810225243i6
2482101704419810337470i6
2492101704419810448324i6
\n", "

192 rows × 8 columns

\n", "
" ], "text/plain": [ " inter_no start_unix phas_A phas_B move_A move_B duration node_id\n", "6 176 1704418870 1 1 8 4 37 i1\n", "7 176 1704418870 2 2 8 3 103 i1\n", "8 176 1704418870 3 3 5 18 40 i1\n", "9 176 1704419051 1 1 8 4 37 i1\n", "10 176 1704419051 2 2 8 3 103 i1\n", ".. ... ... ... ... ... ... ... ...\n", "245 210 1704419810 1 1 6 18 28 i6\n", "246 210 1704419810 1 2 6 2 15 i6\n", "247 210 1704419810 2 2 5 2 43 i6\n", "248 210 1704419810 3 3 7 4 70 i6\n", "249 210 1704419810 4 4 8 3 24 i6\n", "\n", "[192 rows x 8 columns]" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.histid = self.movedur.copy()\n", "self.histid['node_id'] = self.histid['inter_no'].map(self.inter2node)\n", "histid_start = self.present_time - 600\n", "self.histid = self.histid[self.histid.start_unix > histid_start]\n", "\n", "self.histid" ] }, { "cell_type": "code", "execution_count": 25, "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", "
Unnamed: 0inter_nonode_idmove_noinc_edge_idout_edge_idstate
00175i01571545870_02571542797_02grrrgrrGgrrrrrgrr
11175i02571510153_02571545870_01grrrgrrrgrrrrrgGr
22175i03-571542797_02571510153_01grrrgrrrgrrrrGgrr
33175i04-571500487_01571542797_02gGGrgrrrgrrrrrgrr
44175i05571510153_02571500487_01grrrgrrrgrrrrrgrG
........................
6767210i621571511538_02.121571500535_01grrrgrrrrgrrgrrr
6868210i621571500535_02.18571500585_01grrrgrrrrgrrgrrr
6969210i621571500585_02571542115_01grrrgrrrrgrrgrrr
7070210i621-571542115_01571511538_01grrrgrrrrgrrgrrr
7171210u605571500535_02-571500535_02ggggggggG
\n", "

72 rows × 7 columns

\n", "
" ], "text/plain": [ " Unnamed: 0 inter_no node_id move_no inc_edge_id out_edge_id \\\n", "0 0 175 i0 1 571545870_02 571542797_02 \n", "1 1 175 i0 2 571510153_02 571545870_01 \n", "2 2 175 i0 3 -571542797_02 571510153_01 \n", "3 3 175 i0 4 -571500487_01 571542797_02 \n", "4 4 175 i0 5 571510153_02 571500487_01 \n", ".. ... ... ... ... ... ... \n", "67 67 210 i6 21 571511538_02.121 571500535_01 \n", "68 68 210 i6 21 571500535_02.18 571500585_01 \n", "69 69 210 i6 21 571500585_02 571542115_01 \n", "70 70 210 i6 21 -571542115_01 571511538_01 \n", "71 71 210 u60 5 571500535_02 -571500535_02 \n", "\n", " state \n", "0 grrrgrrGgrrrrrgrr \n", "1 grrrgrrrgrrrrrgGr \n", "2 grrrgrrrgrrrrGgrr \n", "3 gGGrgrrrgrrrrrgrr \n", "4 grrrgrrrgrrrrrgrG \n", ".. ... \n", "67 grrrgrrrrgrrgrrr \n", "68 grrrgrrrrgrrgrrr \n", "69 grrrgrrrrgrrgrrr \n", "70 grrrgrrrrgrrgrrr \n", "71 ggggggggG \n", "\n", "[72 rows x 7 columns]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "self.matching[]" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "node_id move_no\n", "i0 1 grrrgrrGgrrrrrgrr\n", " 2 grrrgrrrgrrrrrgGr\n", " 3 grrrgrrrgrrrrGgrr\n", " 4 gGGrgrrrgrrrrrgrr\n", " 5 grrrgrrrgrrrrrgrG\n", " ... \n", "i6 21 grrrgrrrrgrrgrrr\n", " 21 grrrgrrrrgrrgrrr\n", " 21 grrrgrrrrgrrgrrr\n", " 21 grrrgrrrrgrrgrrr\n", "u60 5 ggggggggG\n", "Name: state, Length: 72, dtype: object" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# self.matching.set_index(['node_id', 'move_no'])['state']" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{('i0', 1): 'grrrgrrGgrrrrrgrr',\n", " ('i0', 2): 'grrrgrrrgrrrrrgGr',\n", " ('i0', 3): 'grrrgrrrgrrrrGgrr',\n", " ('i0', 4): 'gGGrgrrrgrrrrrgrr',\n", " ('i0', 5): 'grrrgrrrgrrrrrgrG',\n", " ('i0', 6): 'grrrgGGrgrrrrrgrr',\n", " ('i0', 7): 'grrGgrrrgrrrrrgrr',\n", " ('i0', 8): 'grrrgrrrgGGGGrgrr',\n", " ('i0', 21): 'grrrgrrrgrrrrrgrr',\n", " ('u00', 7): 'ggggGgggg',\n", " ('i1', 3): 'grrrrrGgrr',\n", " ('i1', 4): 'gGGrrrrgrr',\n", " ('i1', 5): 'grrrrrrgGG',\n", " ('i1', 8): 'grrGGGrgrr',\n", " ('i1', 21): 'grrrrrrgrr',\n", " ('i2', 4): 'GGggrrr',\n", " ('i2', 8): 'rrggGGG',\n", " ('u20', 17): 'ggGggg',\n", " ('c30', 20): 'rrrGGG',\n", " ('i3', 1): 'grrrrgrrrGgrrrrgrrrr',\n", " ('i3', 2): 'grrrrgrrrrgrrrrgGGGr',\n", " ('i3', 3): 'grrrrgrrrrgrrrGgrrrr',\n", " ('i3', 4): 'gGGGrgrrrrgrrrrgrrrr',\n", " ('i3', 5): 'grrrrgrrrrgrrrrgrrrG',\n", " ('i3', 6): 'grrrrgGGGrgrrrrgrrrr',\n", " ('i3', 7): 'grrrGgrrrrgrrrrgrrrr',\n", " ('i3', 8): 'grrrrgrrrrgGGGrgrrrr',\n", " ('i3', 21): 'grrrrgrrrrgrrrrgrrrr',\n", " ('u30', 6): 'ggggGggg',\n", " ('u31', 8): 'ggggGggg',\n", " ('u32', 4): 'gggggggG',\n", " ('i8', 1): 'grrrrrrGgrrrgrrr',\n", " ('i8', 2): 'grrrrrrrgrrrgGGr',\n", " ('i8', 3): 'grrrrrrrgrrGgrrr',\n", " ('i8', 4): 'gGGrrrrrgrrrgrrr',\n", " ('i8', 5): 'grrrrrrrgrrrgrrG',\n", " ('i8', 6): 'grrrGGGrgrrrgrrr',\n", " ('i8', 7): 'grrGrrrrgrrrgrrr',\n", " ('i8', 8): 'grrrrrrrgGGrgrrr',\n", " ('i8', 21): 'grrrrrrrgrrrgrrr',\n", " ('i9', 2): 'rrGG',\n", " ('i9', 6): 'GGrr',\n", " ('i7', 4): 'GGrggrr',\n", " ('i7', 8): 'rrrggGG',\n", " ('i6', 1): 'grrrgrrrGgrrgrrr',\n", " ('i6', 2): 'grrrgrrrrgrrgGGr',\n", " ('i6', 3): 'grrrgrrrrgrrgrrr',\n", " ('i6', 4): 'gGGrgrrrrgrrgrrr',\n", " ('i6', 5): 'grrrgrrrrgrrgrrG',\n", " ('i6', 6): 'grrrgGGGrgrrgrrr',\n", " ('i6', 7): 'grrGgrrrrgrrgrrr',\n", " ('i6', 8): 'grrrgrrrrgGGgrrr',\n", " ('i6', 21): 'grrrgrrrrgrrgrrr',\n", " ('u60', 5): 'ggggggggG'}" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mapping_dict" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "mapping_dict = self.matching.set_index(['node_id', 'move_no'])['state'].to_dict()\n", "# matching : 가능한 모든 (노드id, 이동류번호)에 대한 신호 * 시차제와 연관 有\n", "\n", "\n", "for i, row in self.histid.iterrows():\n", " node_id = row.node_id\n", " move_A = row.move_A\n", " move_B = row.move_B\n", " \n", " # A링의 state 지정\n", " if (node_id, move_A) in mapping_dict:\n", " state_A = mapping_dict[(node_id, move_A)]\n", " else:\n", " state_A = ''.join(self.node2init[node_id])\n", " self.histid.at[i, 'state_A'] = state_A\n", "\n", " # B링의 state 지정\n", " if (node_id, move_B) in mapping_dict:\n", " state_B = mapping_dict[(node_id, move_B)]\n", " else:\n", " state_B = ''.join(self.node2init[node_id])\n", " self.histid.at[i, 'state_B'] = state_B " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "self.assign_signals()" ] } ], "metadata": { "kernelspec": { "display_name": "sts", "language": "python", "name": "sts" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.10" } }, "nbformat": 4, "nbformat_minor": 2 }